diff --git a/.eslintrc.json b/.eslintrc.json index bccb07d..c430a49 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -17,7 +17,6 @@ "plugin:import/warnings", "plugin:node/recommended", "plugin:promise/recommended", - "plugin:json/recommended-with-comments", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "airbnb-base" @@ -29,6 +28,7 @@ "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/no-empty-object-type": "off", "camelcase": "off", "class-methods-use-this": "off", "default-param-last": "off", diff --git a/.npmrc b/.npmrc index 29879f1..a395252 100644 --- a/.npmrc +++ b/.npmrc @@ -2,3 +2,4 @@ force=true production=true legacy-peer-deps=true strict-peer-dependencies=false +node-options='--no-deprecation' diff --git a/CHANGELOG.md b/CHANGELOG.md index dbad7aa..3adaf26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # @vladmandic/face-api - Version: **1.7.13** + Version: **1.7.14** Description: **FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS** Author: **Vladimir Mandic ** @@ -9,8 +9,12 @@ ## Changelog -### **HEAD -> master** 2024/01/20 mandic00@live.com +### **1.7.14** 2024/09/10 mandic00@live.com + +### **origin/master** 2024/01/20 mandic00@live.com + +- merge pull request #188 from rebser/master - fixing leaking eventhandlers when using htmlcanvaselement - rebuild types - rebuild diff --git a/dist/face-api.esm-nobundle.js b/dist/face-api.esm-nobundle.js index 5b56bc4..2141f73 100644 --- a/dist/face-api.esm-nobundle.js +++ b/dist/face-api.esm-nobundle.js @@ -4,4 +4,4 @@ author: ' */ -var ur=Object.defineProperty;var ho=Object.getOwnPropertyDescriptor;var bo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var xo=(o=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(o,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):o)(function(o){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var Ye=(o,t)=>{for(var e in t)ur(o,e,{get:t[e],enumerable:!0})},pr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of bo(t))!go.call(o,a)&&a!==e&&ur(o,a,{get:()=>t[a],enumerable:!(r=ho(t,a))||r.enumerable});return o},w=(o,t,e)=>(pr(o,t,"default"),e&&pr(e,t,"default"));var n={};Ye(n,{version:()=>Po});w(n,mn);w(n,pn);w(n,un);import*as mn from"@tensorflow/tfjs/dist/index.js";import*as pn from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as un from"@tensorflow/tfjs-backend-wasm/dist/index.js";var fr="4.16.0",vo="4.16.0",yo="4.16.0",To="4.16.0",_o="4.16.0",Po={tfjs:fr,"tfjs-core":fr,"tfjs-converter":vo,"tfjs-backend-cpu":yo,"tfjs-backend-webgl":To,"tfjs-backend-wasm":_o};var Sr={};Ye(Sr,{AnchorPosition:()=>Ke,DrawBox:()=>ee,DrawBoxOptions:()=>de,DrawFaceLandmarks:()=>De,DrawFaceLandmarksOptions:()=>Fe,DrawTextField:()=>xt,DrawTextFieldOptions:()=>Wt,drawContour:()=>Z,drawDetections:()=>Io,drawFaceExpressions:()=>No,drawFaceLandmarks:()=>So});function Z(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:a},i)=>{let s=t[i];o.moveTo(s.x,s.y),o.lineTo(r,a)}),e){let r=t[t.length-1],a=t[0];if(!r||!a)return;o.moveTo(r.x,r.y),o.lineTo(a.x,a.y)}o.stroke()}var lr={};Ye(lr,{computeReshapedDimensions:()=>je,getCenterPoint:()=>bt,isDimensions:()=>ue,isEven:()=>pe,isFloat:()=>Ge,isTensor:()=>dt,isTensor1D:()=>wo,isTensor2D:()=>Ve,isTensor3D:()=>K,isTensor4D:()=>R,isValidNumber:()=>G,isValidProbablitiy:()=>Mt,range:()=>X,round:()=>ht});var A=class o{constructor(t,e){if(!G(t)||!G(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 o(1/this.width,1/this.height)}};function dt(o,t){return o instanceof n.Tensor&&o.shape.length===t}function wo(o){return dt(o,1)}function Ve(o){return dt(o,2)}function K(o){return dt(o,3)}function R(o){return dt(o,4)}function Ge(o){return o%1!==0}function pe(o){return o%2===0}function ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ue(o){return o&&o.width&&o.height}function je({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function bt(o){return o.reduce((t,e)=>t.add(e),new v(0,0)).div(new v(o.length,o.length))}function X(o,t,e){return Array(o).fill(0).map((r,a)=>t+a*e)}function G(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function Mt(o){return G(o)&&o>=0&&o<=1}var v=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var C=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(G)}static assertIsValidBox(t,e,r=!1){if(!o.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||{},a=[r.left,r.top,r.right,r.bottom].every(G),i=[r.x,r.y,r.width,r.height].every(G);if(!i&&!a)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,c,m,p]=i?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:s,y:c,width:m,height:p},"Box.constructor",e),this._x=s,this._y=c,this._width=m,this._height=p}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 v(this.left,this.top)}get topRight(){return new v(this.right,this.top)}get bottomLeft(){return new v(this.left,this.bottom)}get bottomRight(){return new v(this.right,this.bottom)}round(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(i=>Math.round(i));return new o({x:t,y:e,width:r,height:a})}floor(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(i=>Math.floor(i));return new o({x:t,y:e,width:r,height:a})}toSquare(){let{x:t,y:e,width:r,height:a}=this,i=Math.abs(r-a);return re&&(c=-f+e+r,f=e),l>t&&(m=-l+t+a,l=t),p<1&&(m=2-p,p=1),u<1&&(m=2-u,u=1),{dy:s,edy:m,dx:i,edx:c,y:u,ey:l,x:p,ex:f,w:r,h:a}}calibrate(t){return new o({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 Ct=class extends C{constructor(t,e,r,a,i=!1){super({left:t,top:e,right:r,bottom:a},i)}};var It=class o{constructor(t,e,r,a,i){this._imageDims=new A(i.width,i.height),this._score=t,this._classScore=e,this._className=r,this._box=new C(a).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 C(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var D=class o extends It{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:a,imageDims:i}=super.forSize(t,e);return new o(r,a,i)}};function dr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),a=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),i=r*a;return e?i/(o.area+t.area-i):i/Math.min(o.area,t.area)}function hr(o){let t=o.map(c=>c.x),e=o.map(c=>c.y),r=t.reduce((c,m)=>mmcc({score:s,boxIndex:c})).sort((s,c)=>s.score-c.score).map(s=>s.boxIndex),i=[];for(;a.length>0;){let s=a.pop();i.push(s);let c=a,m=[];for(let p=0;pm[u]<=e)}return i}function J(o,t){return n.tidy(()=>{let[e,r,a]=t,i=n.fill([...o.shape.slice(0,3),1],e,"float32"),s=n.fill([...o.shape.slice(0,3),1],r,"float32"),c=n.fill([...o.shape.slice(0,3),1],a,"float32"),m=n.concat([i,s,c],3);return n.sub(o,m)})}function gr(o,t=!1){return n.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let a=Math.abs(e-r),i=Math.round(a*(t?.5:1)),s=e>r?2:1,c=l=>{let d=o.shape.slice();return d[s]=l,n.fill(d,0,"float32")},m=c(i),p=a-m.shape[s],f=[t&&p?c(p):null,o,m].filter(l=>!!l).map(l=>n.cast(l,"float32"));return n.concat(f,s)})}function Rn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),a=t[e];t[e]=t[r],t[r]=a}return t}function fe(o){return 1/(1+Math.exp(-o))}function On(o){return Math.log(o/(1-o))}var Nt=class extends C{constructor(t,e,r,a,i=!1){super({x:t,y:e,width:r,height:a},i)}};var Fo=.5,Do=.43,Eo=.45,$=class{constructor(t,e,r=new v(0,0)){let{width:a,height:i}=e;this._imgDims=new A(a,i),this._shift=r,this._positions=t.map(s=>s.mul(new v(a,i)).add(r))}get shift(){return new v(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 v(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 v(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let i=t instanceof D?t.box.floor():new C(t);return this.shiftBy(i.x,i.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:a}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(a)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,a]=t,i=f=>a.sub(f).magnitude(),s=(i(e)+i(r))/2,c=Math.floor(s/Eo),m=bt(t),p=Math.floor(Math.max(0,m.x-Fo*c)),u=Math.floor(Math.max(0,m.y-Do*c));return new Nt(p,u,Math.min(c,this.imageWidth+p),Math.min(c,this.imageHeight+u))}alignMinBbox(t){let e=hr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var xr=class extends ${getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],bt([t[3],t[4]])]}};var Lt=class extends ${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(bt)}};var Kt=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?` (${ht(this.distance)})`:""}`}};var Qt=class extends C{static assertIsValidLabeledBox(t,e){if(C.assertIsValidBox(t,e),!G(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 gt=class o{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 o(t.label,e)}};var vr=class extends Qt{static assertIsValidPredictedBox(t,e){if(Qt.assertIsValidLabeledBox(t,e),!Mt(t.score)||!Mt(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,a){super(t,e),this._score=r,this._classScore=a}get score(){return this._score}get classScore(){return this._classScore}};function Q(o){return o.detection instanceof D}function St(o,t){return{...o,...{detection:t}}}function Ue(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function te(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function le(o){let t="";if(!o&&te())try{o=xo("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((a,i)=>{o.readFile(r,(s,c)=>s?i(s):a(c))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Xe(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;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")},i=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,c=le();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:a,createVideoElement:i,fetch:s,...c}}function Je(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var M;function Mo(){if(!M)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return M}function qe(o){M=o}function Ze(){return Je()?qe(Ue()):te()?qe(Xe()):null}function Co(o){if(M||Ze(),!M)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=M.Canvas,Image:e=M.Image}=o;M.Canvas=t,M.Image=e,M.createCanvasElement=o.createCanvasElement||(()=>new t),M.createImageElement=o.createImageElement||(()=>new e),M.ImageData=o.ImageData||M.ImageData,M.Video=o.Video||M.Video,M.fetch=o.fetch||M.fetch,M.readFile=o.readFile||M.readFile}var _={getEnv:Mo,setEnv:qe,initialize:Ze,createBrowserEnv:Ue,createFileSystem:le,createNodejsEnv:Xe,monkeyPatch:Co,isBrowser:Je,isNodejs:te};Ze();function At(o){return!_.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function W(o){let{Canvas:t,CanvasRenderingContext2D:e}=_.getEnv();if(o instanceof e)return o;let r=At(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let a=r.getContext("2d",{willReadFrequently:!0});if(!a)throw new Error("resolveContext2d - canvas 2d context is null");return a}var Ke=(a=>(a.TOP_LEFT="TOP_LEFT",a.TOP_RIGHT="TOP_RIGHT",a.BOTTOM_LEFT="BOTTOM_LEFT",a.BOTTOM_RIGHT="BOTTOM_RIGHT",a))(Ke||{}),Wt=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:a,fontSize:i,fontStyle:s,padding:c}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=a||"rgba(255, 255, 255, 1)",this.fontSize=i||14,this.fontStyle=s||"Georgia",this.padding=c||4}},xt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new Wt(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,a)=>r{let b=m+f.x,y=m+f.y+(d+1)*s;r.fillText(l,b,y)})}};var de=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:a,drawLabelOptions:i}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=a;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Wt({...s,...i})}},ee=class{constructor(t,e={}){this.box=new C(t),this.options=new de(e)}draw(t){let e=W(t),{boxColor:r,lineWidth:a}=this.options,{x:i,y:s,width:c,height:m}=this.box;e.strokeStyle=r,e.lineWidth=a,e.strokeRect(i,s,c,m);let{label:p}=this.options;p&&new xt([p],{x:i-a/2,y:s},this.options.drawLabelOptions).draw(t)}};function Io(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof D?r.score:Q(r)?r.detection.score:void 0,i=r instanceof D?r.box:Q(r)?r.detection.box:new C(r),s=a?`${ht(a)}`:void 0;new ee(i,{label:s}).draw(o)})}function he(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||he(o)){t(null);return}function r(i){i.currentTarget&&(i.currentTarget.removeEventListener("load",a),i.currentTarget.removeEventListener("error",r),e(i))}function a(i){i.currentTarget&&(i.currentTarget.removeEventListener("load",a),i.currentTarget.removeEventListener("error",r),t(i))}o.addEventListener("load",a),o.addEventListener("error",r)})}function Tr(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 a=_.getEnv().createImageElement();a.onload=()=>t(a),a.onerror=e,a.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function kt(o){let{Image:t,Video:e}=_.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 Bt({width:o,height:t}){let{createCanvasElement:e}=_.getEnv(),r=e();return r.width=o,r.height=t,r}function be(o,t){let{ImageData:e}=_.getEnv();if(!(o instanceof e)&&!he(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:a}=t||kt(o),i=Bt({width:r,height:a});return o instanceof e?W(i).putImageData(o,0,0):W(i).drawImage(o,0,0,r,a),i}async function _r(o,t){let e=t||_.getEnv().createCanvasElement(),[r,a,i]=o.shape.slice(R(o)?1:0),s=n.tidy(()=>o.as3D(r,a,i).toInt());return await n.browser.toPixels(s,e),s.dispose(),e}function Qe(o){let{Image:t,Canvas:e,Video:r}=_.getEnv();return o instanceof t||o instanceof e||o instanceof r}function Pr(o,t,e=!1){let{Image:r,Canvas:a}=_.getEnv();if(!(o instanceof r||o instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Bt({width:1,height:1});let i=kt(o),s=t/Math.max(i.height,i.width),c=s*i.width,m=s*i.height,p=Bt({width:t,height:t}),u=o instanceof a?o:be(o),f=Math.abs(c-m)/2,l=e&&c0&&u.height>0&&W(p).drawImage(u,l,d,c,m),p}var tt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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,a)=>{if(K(r)){this._imageTensors[a]=r,this._inputDimensions[a]=r.shape;return}if(R(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[a]=r,this._inputDimensions[a]=r.shape.slice(1);return}let i=r instanceof _.getEnv().Canvas?r:be(r);this._canvases[a]=i,this._inputDimensions[a]=[i.height,i.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 X(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 je({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,n.tidy(()=>{let r=X(this.batchSize,0,1).map(i=>{let s=this.getInput(i);if(s instanceof n.Tensor){let c=R(s)?s:n.expandDims(s);return c=gr(c,e),(c.shape[1]!==t||c.shape[2]!==t)&&(c=n.image.resizeBilinear(c,[t,t],!1,!1)),c.as3D(t,t,3)}if(s instanceof _.getEnv().Canvas)return n.browser.fromPixels(Pr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${i}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return n.stack(r.map(i=>n.cast(i,"float32"))).as4D(this.batchSize,t,t,3)})}};async function F(o){if(o instanceof tt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=a=>Array.isArray(o)?` at input index ${a}:`:"",r=t.map(At);return r.forEach((a,i)=>{if(!Qe(a)&&!K(a)&&!R(a))throw typeof t[i]=="string"?new Error(`toNetInput -${e(i)} string passed, but could not resolve HTMLElement for element id ${t[i]}`):new Error(`toNetInput -${e(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(R(a)){let s=a.shape[0];if(s!==1)throw new Error(`toNetInput -${e(i)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(a=>Qe(a)&&yr(a))),new tt(r,Array.isArray(o))}async function re(o,t){let{Canvas:e}=_.getEnv(),r=o;if(!(o instanceof e)){let s=await F(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let c=s.getInput(0);r=c instanceof e?c:await _r(c)}let a=W(r);return t.map(s=>s instanceof D?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:c,width:m,height:p})=>{let u=Bt({width:m,height:p});return m>0&&p>0&&W(u).putImageData(a.getImageData(s,c,m,p),0,0),u})}async function oe(o,t){if(!K(o)&&!R(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(R(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return n.tidy(()=>{let[e,r,a]=o.shape.slice(R(o)?1:0);return t.map(c=>c instanceof D?c.forSize(r,e).box:c).map(c=>c.clipAtImageBorders(r,e)).filter(c=>c.width>0&&c.height>0).map(({x:c,y:m,width:p,height:u})=>n.slice3d(o.as3D(e,r,a),[m,c,0],[u,p,a]))})}async function st(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 Fi(o){let t=await st(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 Tr(e)}async function wr(o){return(await st(o)).json()}async function Ii(o){return new Float32Array(await(await st(o)).arrayBuffer())}function Fr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=_.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function ki(o){let t=await st(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fr(e)}function ge(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 a=o.split("/").filter(c=>c),i=o.endsWith(".json")?a[a.length-1]:e,s=r+(o.endsWith(".json")?a.slice(0,a.length-1):a).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${i}`:`${s}/${i}`}}async function Dr(o,t){let{manifestUri:e,modelBaseUri:r}=ge(o,t),a=await wr(e);return n.io.loadWeights(a,r)}function Yi(o,t,e=!1){let{width:r,height:a}=e?kt(t):t;return o.width=r,o.height=a,{width:r,height:a}}var I=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:a}=this.traversePropertyPath(t);r[a].dispose(),r[a]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof n.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof n.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=n.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 Dr(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:a}=ge(t,this.getDefaultModelName()),i=p=>Promise.all(p.map(u=>e(u).then(f=>typeof f=="string"?Buffer.from(f):f.buffer))),s=n.io.weightsLoaderFactory(i),c=JSON.parse((await e(r)).toString()),m=await s(c,a);this.loadFromWeightMap(m)}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((i,s)=>{if(!i.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:i.nextObj,objProp:s,nextObj:i.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:a}=e;if(!r||!a||!(r[a]instanceof n.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:a}}};function S(o,t,e){return n.tidy(()=>{let r=n.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=n.add(r,t.bias),r})}function xe(o,t,e=!1){return n.tidy(()=>{let r=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):S(o,t.conv0,[2,2])),a=S(r,t.conv1,[1,1]),i=n.relu(n.add(r,a)),s=S(i,t.conv2,[1,1]);return n.relu(n.add(r,n.add(a,s)))})}function ne(o,t,e=!1,r=!0){return n.tidy(()=>{let a=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):S(o,t.conv0,r?[2,2]:[1,1])),i=S(a,t.conv1,[1,1]),s=n.relu(n.add(a,i)),c=S(s,t.conv2,[1,1]),m=n.relu(n.add(a,n.add(i,c))),p=S(m,t.conv3,[1,1]);return n.relu(n.add(a,n.add(i,n.add(c,p))))})}function vt(o,t,e="same",r=!1){return n.tidy(()=>{let a=n.add(n.conv2d(o,t.filters,[1,1],e),t.bias);return r?n.relu(a):a})}function N(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}function Rt(o,t){return(e,r,a,i)=>{let s=n.tensor4d(o(e*r*a*a),[a,a,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${i}/filters`},{paramPath:`${i}/bias`}),{filters:s,bias:c}}}function ve(o,t){return(e,r,a)=>{let i=n.tensor2d(o(e*r),[e,r]),s=n.tensor1d(o(r));return t.push({paramPath:`${a}/weights`},{paramPath:`${a}/bias`}),{weights:i,bias:s}}}var ae=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function $t(o,t){return(e,r,a)=>{let i=n.tensor4d(o(9*e),[3,3,e,1]),s=n.tensor4d(o(e*r),[1,1,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${a}/depthwise_filter`},{paramPath:`${a}/pointwise_filter`},{paramPath:`${a}/bias`}),new ae(i,s,c)}}function Ot(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),a=o(`${t}/bias`,1);return new ae(e,r,a)}}function k(o,t){return(e,r,a)=>{let i=o[e];if(!dt(i,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${i}`);return t.push({originalPath:e,paramPath:a||e}),i}}function L(o){let t=o;function e(a){let i=t.slice(0,a);return t=t.slice(a),i}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function ye(o,t){let e=Rt(o,t),r=$t(o,t);function a(s,c,m,p=!1){let u=p?e(s,c,3,`${m}/conv0`):r(s,c,`${m}/conv0`),f=r(c,c,`${m}/conv1`),l=r(c,c,`${m}/conv2`);return{conv0:u,conv1:f,conv2:l}}function i(s,c,m,p=!1){let{conv0:u,conv1:f,conv2:l}=a(s,c,m,p),d=r(c,c,`${m}/conv3`);return{conv0:u,conv1:f,conv2:l,conv3:d}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:i}}function Er(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),{extractDenseBlock4Params:a}=ye(e,t),i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),c=a(64,128,"dense2"),m=a(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:i,dense1:s,dense2:c,dense3:m}}}function Te(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function _e(o,t){let e=k(o,t),r=Te(e),a=Ot(e);function i(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`),l=a(`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:s}}function Mr(o){let t=[],{extractDenseBlock4Params:e}=_e(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return N(o,t),{params:r,paramMappings:t}}var Ht=class extends I{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),i=J(r,[122.782,117.001,104.298]).div(255),s=ne(i,e.dense0,!0);return s=ne(s,e.dense1),s=ne(s,e.dense2),s=ne(s,e.dense3),s=n.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await F(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mr(t)}extractParams(t){return Er(t)}};function se(o,t){return n.tidy(()=>n.add(n.matMul(o,t.weights),t.bias))}function Cr(o,t,e){let r=[],{extractWeights:a,getRemainingWeights:i}=L(o),c=ve(a,r)(t,e,"fc");if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{paramMappings:r,params:{fc:c}}}function Ir(o){let t=[],e=k(o,t);function r(i){let s=e(`${i}/weights`,2),c=e(`${i}/bias`,1);return{weights:s,bias:c}}let a={fc:r("fc")};return N(o,t),{params:a,paramMappings:t}}function Pe(o){let t={},e={};return Object.keys(o).forEach(r=>{let a=r.startsWith("fc")?e:t;a[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var zt=class extends I{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 n.tidy(()=>{let r=t instanceof tt?this.faceFeatureExtractor.forwardInput(t):t;return se(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 Cr(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=Pe(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ir(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),a=r*e+r,i=t.slice(0,t.length-a),s=t.slice(t.length-a);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(s)}};var Nr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],it=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Nr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Nr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var we=class extends zt{constructor(t=new Ht){super("FaceExpressionNet",t)}forwardInput(t){return n.tidy(()=>n.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await F(t))}async predictExpressions(t){let e=await F(t),r=await this.forwardInput(e),a=await Promise.all(n.unstack(r).map(async s=>{let c=s.dataSync();return s.dispose(),c}));r.dispose();let i=a.map(s=>new it(s));return e.isBatchInput?i:i[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Lr(o){return o.expressions instanceof it}function tr(o,t){return{...o,...{expressions:t}}}function No(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(i=>{let s=i instanceof it?i:Lr(i)?i.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let m=s.asSortedArray().filter(f=>f.probability>e),p=Q(i)?i.detection.box.bottomLeft:r||new v(0,0);new xt(m.map(f=>`${f.expression} (${ht(f.probability)})`),p).draw(o)})}function Yt(o){return Q(o)&&o.landmarks instanceof $&&o.unshiftedLandmarks instanceof $&&o.alignedRect instanceof D}function Lo(o){let t=m=>m*180/Math.PI,e=(m,p)=>Math.sqrt((m.x-p.x)**2+(m.y-p.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},a=(m,p,u)=>{let f=Math.floor(m.x-p.x),l=Math.floor(p.x-u.x);return f-l},i=(m,p)=>{let u=Math.hypot(p.x-m.x,p.y-m.y),f=p.y-m.y,l=Math.asin(f/u),d=t(l),b=Math.floor(90-d),y=p.x-m.x<0?-1:1;return b*y},s=(m,p,u)=>{let f=e(m,u),l=new v((m.x+u.x)/2,(m.y+u.y)/2),d=e(p,l),b=Math.atan(d/f),y=Math.floor(t(b)),h=l.y-p.y<0?-1:1;return y*h};if(!o||!o.positions||o.positions.length!==68)return r;let c=o.positions;return r.roll=i(c[27],c[66]),r.pitch=s(c[14],c[30],c[2]),r.yaw=a(c[14],c[33],c[2]),r}function ie(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),a=r.align(),{imageDims:i}=o.detection,s=new D(o.detection.score,a.rescale(i.reverse()),i),c=Lo(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:c}}}var Fe=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:a,lineColor:i,pointSize:s,pointColor:c}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=a||1,this.pointSize=s||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=c||"rgba(255, 0, 255, 1)"}},De=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Fe(e)}draw(t){let e=W(t),{drawLines:r,drawPoints:a,lineWidth:i,lineColor:s,pointSize:c,pointColor:m}=this.options;if(r&&this.faceLandmarks instanceof Lt&&(e.strokeStyle=s,e.lineWidth=i,Z(e,this.faceLandmarks.getJawOutline()),Z(e,this.faceLandmarks.getLeftEyeBrow()),Z(e,this.faceLandmarks.getRightEyeBrow()),Z(e,this.faceLandmarks.getNose()),Z(e,this.faceLandmarks.getLeftEye(),!0),Z(e,this.faceLandmarks.getRightEye(),!0),Z(e,this.faceLandmarks.getMouth(),!0)),a){e.strokeStyle=m,e.fillStyle=m;let p=u=>{e.beginPath(),e.arc(u.x,u.y,c,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(p)}}};function So(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof $?r:Yt(r)?r.landmarks:void 0;if(!a)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new De(a).draw(o)})}var Ar="1.7.13";function ko(o,t){let e=Rt(o,t),r=$t(o,t);function a(s,c,m){let p=r(s,c,`${m}/separable_conv0`),u=r(c,c,`${m}/separable_conv1`),f=e(s,c,1,`${m}/expansion_conv`);return{separable_conv0:p,separable_conv1:u,expansion_conv:f}}function i(s,c){let m=r(s,s,`${c}/separable_conv0`),p=r(s,s,`${c}/separable_conv1`),u=r(s,s,`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:a,extractMainBlockParams:i}}function Wr(o,t){let e=[],{extractWeights:r,getRemainingWeights:a}=L(o),{extractConvParams:i,extractSeparableConvParams:s,extractReductionBlockParams:c,extractMainBlockParams:m}=ko(r,e),p=i(3,32,3,"entry_flow/conv_in"),u=c(32,64,"entry_flow/reduction_block_0"),f=c(64,128,"entry_flow/reduction_block_1"),l={conv_in:p,reduction_block_0:u,reduction_block_1:f},d={};X(t,0,1).forEach(g=>{d[`main_block_${g}`]=m(128,`middle_flow/main_block_${g}`)});let b=c(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:y};if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:e,params:{entry_flow:l,middle_flow:d,exit_flow:h}}}function Bo(o,t){let e=k(o,t),r=Te(e),a=Ot(e);function i(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=r(`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=a(`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:s}}function kr(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:s}=Bo(o,e),c=r("entry_flow/conv_in"),m=i("entry_flow/reduction_block_0"),p=i("entry_flow/reduction_block_1"),u={conv_in:c,reduction_block_0:m,reduction_block_1:p},f={};X(t,0,1).forEach(y=>{f[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let l=i("exit_flow/reduction_block"),d=a("exit_flow/separable_conv"),b={reduction_block:l,separable_conv:d};return N(o,e),{params:{entry_flow:u,middle_flow:f,exit_flow:b},paramMappings:e}}function Br(o,t,e){return n.add(n.conv2d(o,t.filters,e,"same"),t.bias)}function er(o,t,e=!0){let r=e?n.relu(o):o;return r=S(r,t.separable_conv0,[1,1]),r=S(n.relu(r),t.separable_conv1,[1,1]),r=n.maxPool(r,[3,3],[2,2],"same"),r=n.add(r,Br(o,t.expansion_conv,[2,2])),r}function Ro(o,t){let e=S(n.relu(o),t.separable_conv0,[1,1]);return e=S(n.relu(e),t.separable_conv1,[1,1]),e=S(n.relu(e),t.separable_conv2,[1,1]),e=n.add(e,o),e}var Ee=class extends I{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"),i=J(r,[122.782,117.001,104.298]).div(255),s=n.relu(Br(i,e.entry_flow.conv_in,[2,2]));return s=er(s,e.entry_flow.reduction_block_0,!1),s=er(s,e.entry_flow.reduction_block_1),X(this._numMainBlocks,0,1).forEach(c=>{s=Ro(s,e.middle_flow[`main_block_${c}`])}),s=er(s,e.exit_flow.reduction_block),s=n.relu(S(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await F(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return kr(t,this._numMainBlocks)}extractParams(t){return Wr(t,this._numMainBlocks)}};function Rr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),a=ve(e,t),i=a(512,1,"fc/age"),s=a(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:i,gender:s}}}}function $r(o){let t=[],e=k(o,t);function r(i){let s=e(`${i}/weights`,2),c=e(`${i}/bias`,1);return{weights:s,bias:c}}let a={fc:{age:r("fc/age"),gender:r("fc/gender")}};return N(o,t),{params:a,paramMappings:t}}var rr=(e=>(e.FEMALE="female",e.MALE="male",e))(rr||{});var Me=class extends I{constructor(t=new Ee(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 n.tidy(()=>{let r=t instanceof tt?this.faceFeatureExtractor.forwardInput(t):t,a=n.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=se(a,e.fc.age).as1D(),s=se(a,e.fc.gender);return{age:i,gender:s}})}forwardInput(t){return n.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:n.softmax(r)}})}async forward(t){return this.forwardInput(await F(t))}async predictAgeAndGender(t){let e=await F(t),r=await this.forwardInput(e),a=n.unstack(r.age),i=n.unstack(r.gender),s=a.map((m,p)=>({ageTensor:m,genderTensor:i[p]})),c=await Promise.all(s.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,d=l?"male":"female",b=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:d,genderProbability:b}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?c:c[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 Rr(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=Pe(t);return this.faceFeatureExtractor.loadFromWeightMap(e),$r(r)}extractParams(t){let r=t.slice(0,t.length-1539),a=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(a)}};var Vt=class extends zt{postProcess(t,e,r){let a=r.map(({width:s,height:c})=>{let m=e/Math.max(c,s);return{width:s*m,height:c*m}}),i=a.length;return n.tidy(()=>{let s=(f,l)=>n.stack([n.fill([68],f,"float32"),n.fill([68],l,"float32")],1).as2D(1,136).as1D(),c=(f,l)=>{let{width:d,height:b}=a[f];return l(d,b)?Math.abs(d-b)/2:0},m=f=>c(f,(l,d)=>lc(f,(l,d)=>ds(m(l),p(l))))).div(n.stack(Array.from(Array(i),(f,l)=>s(a[l].width,a[l].height))))})}forwardInput(t){return n.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,a])=>({height:r,width:a})))})}async forward(t){return this.forwardInput(await F(t))}async detectLandmarks(t){let e=await F(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(async(i,s)=>{let c=Array.from(i.dataSync()),m=c.filter((u,f)=>pe(f)),p=c.filter((u,f)=>!pe(f));return new Lt(Array(68).fill(0).map((u,f)=>new v(m[f],p[f])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(i=>i.dispose()),e.isBatchInput?a:a[0]}getClassifierChannelsOut(){return 136}};var Gt=class extends Vt{constructor(t=new Ht){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function Or(o){let t=[],{extractDenseBlock3Params:e}=_e(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return N(o,t),{params:r,paramMappings:t}}function Hr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),{extractDenseBlock3Params:a}=ye(e,t),i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),c=a(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:i,dense1:s,dense2:c}}}var Ce=class extends I{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),i=J(r,[122.782,117.001,104.298]).div(255),s=xe(i,e.dense0,!0);return s=xe(s,e.dense1),s=xe(s,e.dense2),s=n.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await F(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Or(t)}extractParams(t){return Hr(t)}};var Ie=class extends Vt{constructor(t=new Ce){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var zr=class extends Gt{};function Yr(o,t){return n.add(n.mul(o,t.weights),t.biases)}function or(o,t,e,r,a="same"){let{filters:i,bias:s}=t.conv,c=n.conv2d(o,i,e,a);return c=n.add(c,s),c=Yr(c,t.scale),r?n.relu(c):c}function Vr(o,t){return or(o,t,[1,1],!0)}function nr(o,t){return or(o,t,[1,1],!1)}function Ne(o,t){return or(o,t,[2,2],!0,"valid")}function $o(o,t){function e(c,m,p){let u=o(c),f=u.length/(m*p*p);if(Ge(f))throw new Error(`depth has to be an integer: ${f}, weights.length: ${u.length}, numFilters: ${m}, filterSize: ${p}`);return n.tidy(()=>n.transpose(n.tensor4d(u,[m,f,p,p]),[2,3,1,0]))}function r(c,m,p,u){let f=e(c,m,p),l=n.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:f,bias:l}}function a(c,m){let p=n.tensor1d(o(c)),u=n.tensor1d(o(c));return t.push({paramPath:`${m}/weights`},{paramPath:`${m}/biases`}),{weights:p,biases:u}}function i(c,m,p,u){let f=r(c,m,p,`${u}/conv`),l=a(m,`${u}/scale`);return{conv:f,scale:l}}function s(c,m,p,u,f=!1){let l=i((f?.5:1)*c,m,p,`${u}/conv1`),d=i(c,m,p,`${u}/conv2`);return{conv1:l,conv2:d}}return{extractConvLayerParams:i,extractResidualLayerParams:s}}function Gr(o){let{extractWeights:t,getRemainingWeights:e}=L(o),r=[],{extractConvLayerParams:a,extractResidualLayerParams:i}=$o(t,r),s=a(4704,32,7,"conv32_down"),c=i(9216,32,3,"conv32_1"),m=i(9216,32,3,"conv32_2"),p=i(9216,32,3,"conv32_3"),u=i(36864,64,3,"conv64_down",!0),f=i(36864,64,3,"conv64_1"),l=i(36864,64,3,"conv64_2"),d=i(36864,64,3,"conv64_3"),b=i(147456,128,3,"conv128_down",!0),y=i(147456,128,3,"conv128_1"),h=i(147456,128,3,"conv128_2"),g=i(589824,256,3,"conv256_down",!0),T=i(589824,256,3,"conv256_1"),x=i(589824,256,3,"conv256_2"),E=i(589824,256,3,"conv256_down_out"),B=n.tidy(()=>n.transpose(n.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:c,conv32_2:m,conv32_3:p,conv64_down:u,conv64_1:f,conv64_2:l,conv64_3:d,conv128_down:b,conv128_1:y,conv128_2:h,conv256_down:g,conv256_1:T,conv256_2:x,conv256_down_out:E,fc:B},paramMappings:r}}function Oo(o,t){let e=k(o,t);function r(s){let c=e(`${s}/scale/weights`,1),m=e(`${s}/scale/biases`,1);return{weights:c,biases:m}}function a(s){let c=e(`${s}/conv/filters`,4),m=e(`${s}/conv/bias`,1),p=r(s);return{conv:{filters:c,bias:m},scale:p}}function i(s){return{conv1:a(`${s}/conv1`),conv2:a(`${s}/conv2`)}}return{extractConvLayerParams:a,extractResidualLayerParams:i}}function jr(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Oo(o,t),a=e("conv32_down"),i=r("conv32_1"),s=r("conv32_2"),c=r("conv32_3"),m=r("conv64_down"),p=r("conv64_1"),u=r("conv64_2"),f=r("conv64_3"),l=r("conv128_down"),d=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),T=r("conv256_down_out"),{fc:x}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ve(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let E={conv32_down:a,conv32_1:i,conv32_2:s,conv32_3:c,conv64_down:m,conv64_1:p,conv64_2:u,conv64_3:f,conv128_down:l,conv128_1:d,conv128_2:b,conv256_down:y,conv256_1:h,conv256_2:g,conv256_down_out:T,fc:x};return N(o,t),{params:E,paramMappings:t}}function j(o,t){let e=Vr(o,t.conv1);return e=nr(e,t.conv2),e=n.add(e,o),e=n.relu(e),e}function ce(o,t){let e=Ne(o,t.conv1);e=nr(e,t.conv2);let r=n.avgPool(o,2,2,"valid"),a=n.zeros(r.shape),i=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let c=[...e.shape];c[1]=1;let m=n.zeros(c);e=n.concat([e,m],1);let p=[...e.shape];p[2]=1;let u=n.zeros(p);e=n.concat([e,u],2)}return r=i?n.concat([r,a],3):r,e=n.add(r,e),e=n.relu(e),e}var jt=class extends I{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(150,!0),"float32"),i=J(r,[122.782,117.001,104.298]).div(255),s=Ne(i,e.conv32_down);s=n.maxPool(s,3,2,"valid"),s=j(s,e.conv32_1),s=j(s,e.conv32_2),s=j(s,e.conv32_3),s=ce(s,e.conv64_down),s=j(s,e.conv64_1),s=j(s,e.conv64_2),s=j(s,e.conv64_3),s=ce(s,e.conv128_down),s=j(s,e.conv128_1),s=j(s,e.conv128_2),s=ce(s,e.conv256_down),s=j(s,e.conv256_1),s=j(s,e.conv256_2),s=ce(s,e.conv256_down_out);let c=s.mean([1,2]);return n.matMul(c,e.fc)})}async forward(t){return this.forwardInput(await F(t))}async computeFaceDescriptor(t){var i;if((i=t==null?void 0:t.shape)!=null&&i.some(s=>s<=0))return new Float32Array(128);let e=await F(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return jr(t)}extractParams(t){return Gr(t)}};function gf(o){let t=new jt;return t.extractWeights(o),t}function ar(o,t){return{...o,...{descriptor:t}}}function Tf(o){return typeof o.age=="number"}function sr(o,t){return{...o,...{age:t}}}function Ff(o){return(o.gender==="male"||o.gender==="female")&&Mt(o.genderProbability)}function ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}function Ho(o,t){function e(m,p){let u=n.tensor4d(o(9*m),[3,3,m,1]),f=n.tensor1d(o(m)),l=n.tensor1d(o(m)),d=n.tensor1d(o(m)),b=n.tensor1d(o(m));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/batch_norm_scale`},{paramPath:`${p}/batch_norm_offset`},{paramPath:`${p}/batch_norm_mean`},{paramPath:`${p}/batch_norm_variance`}),{filters:u,batch_norm_scale:f,batch_norm_offset:l,batch_norm_mean:d,batch_norm_variance:b}}function r(m,p,u,f,l){let d=n.tensor4d(o(m*p*u*u),[u,u,m,p]),b=n.tensor1d(o(p));return t.push({paramPath:`${f}/filters`},{paramPath:`${f}/${l?"batch_norm_offset":"bias"}`}),{filters:d,bias:b}}function a(m,p,u,f){let{filters:l,bias:d}=r(m,p,u,f,!0);return{filters:l,batch_norm_offset:d}}function i(m,p,u){let f=e(m,`${u}/depthwise_conv`),l=a(m,p,1,`${u}/pointwise_conv`);return{depthwise_conv:f,pointwise_conv:l}}function s(){let m=a(3,32,3,"mobilenetv1/conv_0"),p=i(32,64,"mobilenetv1/conv_1"),u=i(64,128,"mobilenetv1/conv_2"),f=i(128,128,"mobilenetv1/conv_3"),l=i(128,256,"mobilenetv1/conv_4"),d=i(256,256,"mobilenetv1/conv_5"),b=i(256,512,"mobilenetv1/conv_6"),y=i(512,512,"mobilenetv1/conv_7"),h=i(512,512,"mobilenetv1/conv_8"),g=i(512,512,"mobilenetv1/conv_9"),T=i(512,512,"mobilenetv1/conv_10"),x=i(512,512,"mobilenetv1/conv_11"),E=i(512,1024,"mobilenetv1/conv_12"),B=i(1024,1024,"mobilenetv1/conv_13");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:y,conv_8:h,conv_9:g,conv_10:T,conv_11:x,conv_12:E,conv_13:B}}function c(){let m=a(1024,256,1,"prediction_layer/conv_0"),p=a(256,512,3,"prediction_layer/conv_1"),u=a(512,128,1,"prediction_layer/conv_2"),f=a(128,256,3,"prediction_layer/conv_3"),l=a(256,128,1,"prediction_layer/conv_4"),d=a(128,256,3,"prediction_layer/conv_5"),b=a(256,64,1,"prediction_layer/conv_6"),y=a(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),B=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),V=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),U=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),O=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),ot=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),nt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),at=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:T,class_predictor:x},box_predictor_2:{box_encoding_predictor:E,class_predictor:B},box_predictor_3:{box_encoding_predictor:V,class_predictor:U},box_predictor_4:{box_encoding_predictor:O,class_predictor:ot},box_predictor_5:{box_encoding_predictor:nt,class_predictor:at}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:c}}function Ur(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),{extractMobilenetV1Params:a,extractPredictionLayerParams:i}=Ho(e,t),s=a(),c=i(),p={extra_dim:n.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:c,output_layer:p},paramMappings:t}}function zo(o,t){let e=k(o,t);function r(p,u,f){let l=e(`${p}/Conv2d_${u}_pointwise/weights`,4,`${f}/filters`),d=e(`${p}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${f}/batch_norm_offset`);return{filters:l,batch_norm_offset:d}}function a(p){let u=`mobilenetv1/conv_${p}`,f=`MobilenetV1/Conv2d_${p}_depthwise`,l=`${u}/depthwise_conv`,d=`${u}/pointwise_conv`,b=e(`${f}/depthwise_weights`,4,`${l}/filters`),y=e(`${f}/BatchNorm/gamma`,1,`${l}/batch_norm_scale`),h=e(`${f}/BatchNorm/beta`,1,`${l}/batch_norm_offset`),g=e(`${f}/BatchNorm/moving_mean`,1,`${l}/batch_norm_mean`),T=e(`${f}/BatchNorm/moving_variance`,1,`${l}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",p,d)}}function i(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:a(1),conv_2:a(2),conv_3:a(3),conv_4:a(4),conv_5:a(5),conv_6:a(6),conv_7:a(7),conv_8:a(8),conv_9:a(9),conv_10:a(10),conv_11:a(11),conv_12:a(12),conv_13:a(13)}}function s(p,u){let f=e(`${p}/weights`,4,`${u}/filters`),l=e(`${p}/biases`,1,`${u}/bias`);return{filters:f,bias:l}}function c(p){let u=s(`Prediction/BoxPredictor_${p}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${p}/box_encoding_predictor`),f=s(`Prediction/BoxPredictor_${p}/ClassPredictor`,`prediction_layer/box_predictor_${p}/class_predictor`);return{box_encoding_predictor:u,class_predictor:f}}function m(){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:c(0),box_predictor_1:c(1),box_predictor_2:c(2),box_predictor_3:c(3),box_predictor_4:c(4),box_predictor_5:c(5)}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:m}}function Xr(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=zo(o,t),a=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!K(a))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${a}`);let i={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:a}};return N(o,t),{params:i,paramMappings:t}}function H(o,t,e){return n.tidy(()=>{let r=n.conv2d(o,t.filters,e,"same");return r=n.add(r,t.batch_norm_offset),n.clipByValue(r,0,6)})}var Yo=.0010000000474974513;function Vo(o,t,e){return n.tidy(()=>{let r=n.depthwiseConv2d(o,t.filters,e,"same");return r=n.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Yo),n.clipByValue(r,0,6)})}function Go(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Jr(o,t){return n.tidy(()=>{let e,r=H(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((i,s)=>{let c=s+1,m=Go(c);r=Vo(r,i.depthwise_conv,m),r=H(r,i.pointwise_conv,[1,1]),c===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function jo(o,t,e){let r=o.arraySync(),a=Math.min(r[t][0],r[t][2]),i=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),c=Math.max(r[t][1],r[t][3]),m=Math.min(r[e][0],r[e][2]),p=Math.min(r[e][1],r[e][3]),u=Math.max(r[e][0],r[e][2]),f=Math.max(r[e][1],r[e][3]),l=(s-a)*(c-i),d=(u-m)*(f-p);if(l<=0||d<=0)return 0;let b=Math.max(a,m),y=Math.max(i,p),h=Math.min(s,u),g=Math.min(c,f),T=Math.max(h-b,0)*Math.max(g-y,0);return T/(l+d-T)}function qr(o,t,e,r,a){let i=o.shape[0],s=Math.min(e,i),c=t.map((u,f)=>({score:u,boxIndex:f})).filter(u=>u.score>a).sort((u,f)=>f.score-u.score),m=u=>u<=r?1:0,p=[];return c.forEach(u=>{if(p.length>=s)return;let f=u.score;for(let l=p.length-1;l>=0;--l){let d=jo(o,u.boxIndex,p[l]);if(d!==0&&(u.score*=m(d),u.score<=a))break}f===u.score&&p.push(u.boxIndex)}),p}function Uo(o){let t=n.unstack(n.transpose(o,[1,0])),e=[n.sub(t[2],t[0]),n.sub(t[3],t[1])],r=[n.add(t[0],n.div(e[0],2)),n.add(t[1],n.div(e[1],2))];return{sizes:e,centers:r}}function Xo(o,t){let{sizes:e,centers:r}=Uo(o),a=n.unstack(n.transpose(t,[1,0])),i=n.div(n.mul(n.exp(n.div(a[2],5)),e[0]),2),s=n.add(n.mul(n.div(a[0],10),e[0]),r[0]),c=n.div(n.mul(n.exp(n.div(a[3],5)),e[1]),2),m=n.add(n.mul(n.div(a[1],10),e[1]),r[1]);return n.transpose(n.stack([n.sub(s,i),n.sub(m,c),n.add(s,i),n.add(m,c)]),[1,0])}function Zr(o,t,e){return n.tidy(()=>{let r=o.shape[0],a=Xo(n.reshape(n.tile(e.extra_dim,[r,1,1]),[-1,4]),n.reshape(o,[-1,4]));a=n.reshape(a,[r,a.shape[0]/r,4]);let i=n.sigmoid(n.slice(t,[0,0,1],[-1,-1,-1])),s=n.slice(i,[0,0,0],[-1,-1,1]);s=n.reshape(s,[r,s.shape[1]]);let c=n.unstack(a),m=n.unstack(s);return{boxes:c,scores:m}})}function yt(o,t){return n.tidy(()=>{let e=o.shape[0],r=n.reshape(vt(o,t.box_encoding_predictor),[e,-1,1,4]),a=n.reshape(vt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:a}})}function Kr(o,t,e){return n.tidy(()=>{let r=H(o,e.conv_0,[1,1]),a=H(r,e.conv_1,[2,2]),i=H(a,e.conv_2,[1,1]),s=H(i,e.conv_3,[2,2]),c=H(s,e.conv_4,[1,1]),m=H(c,e.conv_5,[2,2]),p=H(m,e.conv_6,[1,1]),u=H(p,e.conv_7,[2,2]),f=yt(t,e.box_predictor_0),l=yt(o,e.box_predictor_1),d=yt(a,e.box_predictor_2),b=yt(s,e.box_predictor_3),y=yt(m,e.box_predictor_4),h=yt(u,e.box_predictor_5),g=n.concat([f.boxPredictionEncoding,l.boxPredictionEncoding,d.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,h.boxPredictionEncoding],1),T=n.concat([f.classPrediction,l.classPrediction,d.classPrediction,b.classPrediction,y.classPrediction,h.classPrediction],1);return{boxPredictions:g,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 Tt=class extends I{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(512,!1),"float32"),a=n.sub(n.div(r,127.5),1),i=Jr(a,e.mobilenetv1),{boxPredictions:s,classPredictions:c}=Kr(i.out,i.conv11,e.prediction_layer);return Zr(s,c,e.output_layer)})}async forward(t){return this.forwardInput(await F(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:a}=new z(e),i=await F(t),{boxes:s,scores:c}=this.forwardInput(i),m=s[0],p=c[0];for(let x=1;x{let[E,B]=[Math.max(0,g[x][0]),Math.min(1,g[x][2])].map(O=>O*h),[V,U]=[Math.max(0,g[x][1]),Math.min(1,g[x][3])].map(O=>O*y);return new D(u[x],new Nt(V,E,U-V,B-E),{height:i.getInputHeight(0),width:i.getInputWidth(0)})});return m.dispose(),p.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Xr(t)}extractParams(t){return Ur(t)}};function Jo(o){let t=new Tt;return t.extractWeights(o),t}function gl(o){return Jo(o)}var Qr=class extends Tt{};var to=.4,eo=[new v(.738768,.874946),new v(2.42204,2.65704),new v(4.30971,7.04493),new v(10.246,4.59428),new v(12.6868,11.8741)],ro=[new v(1.603231,2.094468),new v(6.041143,7.080126),new v(2.882459,3.518061),new v(4.266906,5.178857),new v(9.041765,10.66308)],oo=[117.001,114.697,97.404],no="tiny_yolov2_model",ao="tiny_yolov2_separable_conv_model";var Le=o=>typeof o=="number";function so(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(!Le(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=>Le(t.x)&&Le(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(Le)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}function Ut(o){return n.tidy(()=>{let t=n.mul(o,n.scalar(.10000000149011612));return n.add(n.relu(n.sub(o,t)),t)})}function et(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.conv2d(e,t.conv.filters,[1,1],"valid"),e=n.sub(e,t.bn.sub),e=n.mul(e,t.bn.truediv),e=n.add(e,t.conv.bias),Ut(e)})}function rt(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=n.add(e,t.bias),Ut(e)})}function qo(o,t){let e=Rt(o,t);function r(s,c){let m=n.tensor1d(o(s)),p=n.tensor1d(o(s));return t.push({paramPath:`${c}/sub`},{paramPath:`${c}/truediv`}),{sub:m,truediv:p}}function a(s,c,m){let p=e(s,c,3,`${m}/conv`),u=r(c,`${m}/bn`);return{conv:p,bn:u}}let i=$t(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:a,extractSeparableConvParams:i}}function io(o,t,e,r){let{extractWeights:a,getRemainingWeights:i}=L(o),s=[],{extractConvParams:c,extractConvWithBatchNormParams:m,extractSeparableConvParams:p}=qo(a,s),u;if(t.withSeparableConvs){let[f,l,d,b,y,h,g,T,x]=r,E=t.isFirstLayerConv2d?c(f,l,3,"conv0"):p(f,l,"conv0"),B=p(l,d,"conv1"),V=p(d,b,"conv2"),U=p(b,y,"conv3"),O=p(y,h,"conv4"),ot=p(h,g,"conv5"),nt=T?p(g,T,"conv6"):void 0,at=x?p(T,x,"conv7"):void 0,Et=c(x||T||g,5*e,1,"conv8");u={conv0:E,conv1:B,conv2:V,conv3:U,conv4:O,conv5:ot,conv6:nt,conv7:at,conv8:Et}}else{let[f,l,d,b,y,h,g,T,x]=r,E=m(f,l,"conv0"),B=m(l,d,"conv1"),V=m(d,b,"conv2"),U=m(b,y,"conv3"),O=m(y,h,"conv4"),ot=m(h,g,"conv5"),nt=m(g,T,"conv6"),at=m(T,x,"conv7"),Et=c(x,5*e,1,"conv8");u={conv0:E,conv1:B,conv2:V,conv3:U,conv4:O,conv5:ot,conv6:nt,conv7:at,conv8:Et}}if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{params:u,paramMappings:s}}function Zo(o,t){let e=k(o,t);function r(c){let m=e(`${c}/sub`,1),p=e(`${c}/truediv`,1);return{sub:m,truediv:p}}function a(c){let m=e(`${c}/filters`,4),p=e(`${c}/bias`,1);return{filters:m,bias:p}}function i(c){let m=a(`${c}/conv`),p=r(`${c}/bn`);return{conv:m,bn:p}}let s=Ot(e);return{extractConvParams:a,extractConvWithBatchNormParams:i,extractSeparableConvParams:s}}function co(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:a,extractSeparableConvParams:i}=Zo(o,e),s;if(t.withSeparableConvs){let c=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:c>7?i("conv6"):void 0,conv7:c>8?i("conv7"):void 0,conv8:r("conv8")}}else s={conv0:a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:a("conv6"),conv7:a("conv7"),conv8:r("conv8")};return N(o,e),{params:s,paramMappings:e}}var q=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 Se=class Se extends I{constructor(t){super("TinyYolov2"),so(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=et(t,e.conv0);return r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv1),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv2),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv3),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv4),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv5),r=n.maxPool(r,[2,2],[1,1],"same"),r=et(r,e.conv6),r=et(r,e.conv7),vt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ut(vt(t,e.conv0,"valid",!1)):rt(t,e.conv0);return r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv1),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv2),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv3),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv4),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv5),r=n.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?rt(r,e.conv6):r,r=e.conv7?rt(r,e.conv7):r,vt(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 a=n.cast(t.toBatchTensor(e,!1),"float32");return a=this.config.meanRgb?J(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,r):this.runTinyYolov2(a,r)})}async forward(t,e){return this.forwardInput(await F(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:a}=new q(e),i=await F(t),s=await this.forwardInput(i,r),c=n.tidy(()=>n.unstack(s)[0].expandDims()),m={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(c,i.getReshapedInputDimensions(0),a);s.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),d=p.map(h=>this.config.classes[h.label]);return br(u.map(h=>h.rescale(r)),f,this.config.iouThreshold,!0).map(h=>new It(f[h],l[h],d[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return co(t,this.config)}extractParams(t){let e=this.config.filterSizes||Se.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 io(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:a,height:i}=e,s=Math.max(a,i),c=s/a,m=s/i,p=t.shape[1],u=this.config.anchors.length,[f,l,d]=n.tidy(()=>{let g=t.reshape([p,p,u,this.boxEncodingSize]),T=g.slice([0,0,0,0],[p,p,u,4]),x=g.slice([0,0,0,4],[p,p,u,1]),E=this.withClassScores?n.softmax(g.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):n.scalar(0);return[T,x,E]}),b=[],y=await l.array(),h=await f.array();for(let g=0;gr){let B=(T+fe(h[g][T][x][0]))/p*c,V=(g+fe(h[g][T][x][1]))/p*m,U=Math.exp(h[g][T][x][2])*this.config.anchors[x].x/p*c,O=Math.exp(h[g][T][x][3])*this.config.anchors[x].y/p*m,ot=B-U/2,nt=V-O/2,at={row:g,col:T,anchor:x},{classScore:Et,label:mr}=this.withClassScores?await this.extractPredictedClass(d,at):{classScore:1,label:0};b.push({box:new Ct(ot,nt,ot+U,nt+O),score:E,classScore:E*Et,label:mr,...at})}}return f.dispose(),l.dispose(),d.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:a,anchor:i}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((c,m)=>s[r][a][i][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}};Se.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Xt=Se;var Jt=class extends Xt{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:to,classes:["face"],...t?{anchors:ro,meanRgb:oo}:{anchors:eo,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(a=>new D(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?ao:no}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function cd(o,t=!0){let e=new Jt(t);return e.extractWeights(o),e}var Ae=class extends q{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Y=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function _t(o,t,e,r,a=({alignedRect:i})=>i){let i=o.map(m=>Yt(m)?a(m):m.detection),s=r||(t instanceof n.Tensor?await oe(t,i):await re(t,i)),c=await e(s);return s.forEach(m=>m instanceof n.Tensor&&m.dispose()),c}async function qt(o,t,e,r,a){return _t([o],t,async i=>e(i[0]),r,a)}var mo=.4,po=[new v(1.603231,2.094468),new v(6.041143,7.080126),new v(2.882459,3.518061),new v(4.266906,5.178857),new v(9.041765,10.66308)],uo=[117.001,114.697,97.404];var Zt=class extends Xt{constructor(){let t={withSeparableConvs:!0,iouThreshold:mo,classes:["face"],anchors:po,meanRgb:uo,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(a=>new D(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Tt,tinyFaceDetector:new Zt,tinyYolov2:new Jt,faceLandmark68Net:new Gt,faceLandmark68TinyNet:new Ie,faceRecognitionNet:new jt,faceExpressionNet:new we,ageGenderNet:new Me},Ko=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),Rd=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),$d=(o,t)=>P.tinyYolov2.locateFaces(o,t),Qo=o=>P.faceLandmark68Net.detectLandmarks(o),Od=o=>P.faceLandmark68TinyNet.detectLandmarks(o),Hd=o=>P.faceRecognitionNet.computeFaceDescriptor(o),zd=o=>P.faceExpressionNet.predictExpressions(o),Yd=o=>P.ageGenderNet.predictAgeAndGender(o),tn=o=>P.ssdMobilenetv1.load(o),Vd=o=>P.tinyFaceDetector.load(o),Gd=o=>P.tinyYolov2.load(o),jd=o=>P.faceLandmark68Net.load(o),Ud=o=>P.faceLandmark68TinyNet.load(o),Xd=o=>P.faceRecognitionNet.load(o),Jd=o=>P.faceExpressionNet.load(o),qd=o=>P.ageGenderNet.load(o),Zd=tn,Kd=Ko,Qd=Qo;var We=class extends Y{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Pt=class extends We{async run(){let t=await this.parentTask,e=await _t(t,this.input,async r=>Promise.all(r.map(a=>P.faceExpressionNet.predictExpressions(a))),this.extractedFaces);return t.map((r,a)=>tr(r,e[a]))}withAgeAndGender(){return new Ft(this,this.input)}},wt=class extends We{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return tr(t,e)}withAgeAndGender(){return new Dt(this,this.input)}},ct=class extends Pt{withAgeAndGender(){return new pt(this,this.input)}withFaceDescriptors(){return new ft(this,this.input)}},mt=class extends wt{withAgeAndGender(){return new ut(this,this.input)}withFaceDescriptor(){return new lt(this,this.input)}};var ke=class extends Y{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Ft=class extends ke{async run(){let t=await this.parentTask,e=await _t(t,this.input,async r=>Promise.all(r.map(a=>P.ageGenderNet.predictAgeAndGender(a))),this.extractedFaces);return t.map((r,a)=>{let{age:i,gender:s,genderProbability:c}=e[a];return sr(ir(r,s,c),i)})}withFaceExpressions(){return new Pt(this,this.input)}},Dt=class extends ke{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:a}=await qt(t,this.input,i=>P.ageGenderNet.predictAgeAndGender(i),this.extractedFaces);return sr(ir(t,r,a),e)}withFaceExpressions(){return new wt(this,this.input)}},pt=class extends Ft{withFaceExpressions(){return new ct(this,this.input)}withFaceDescriptors(){return new ft(this,this.input)}},ut=class extends Dt{withFaceExpressions(){return new mt(this,this.input)}withFaceDescriptor(){return new lt(this,this.input)}};var Be=class extends Y{constructor(e,r){super();this.parentTask=e;this.input=r}},ft=class extends Be{async run(){let t=await this.parentTask;return(await _t(t,this.input,r=>Promise.all(r.map(a=>P.faceRecognitionNet.computeFaceDescriptor(a))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,a)=>ar(t[a],r))}withFaceExpressions(){return new ct(this,this.input)}withAgeAndGender(){return new pt(this,this.input)}},lt=class extends Be{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return ar(t,e)}withFaceExpressions(){return new mt(this,this.input)}withAgeAndGender(){return new ut(this,this.input)}};var Re=class extends Y{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},$e=class extends Re{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof n.Tensor?await oe(this.input,e):await re(this.input,e),a=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof n.Tensor&&s.dispose()),t.filter((s,c)=>a[c]).map((s,c)=>ie(s,a[c]))}withFaceExpressions(){return new ct(this,this.input)}withAgeAndGender(){return new pt(this,this.input)}withFaceDescriptors(){return new ft(this,this.input)}},Oe=class extends Re{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof n.Tensor?await oe(this.input,[e]):await re(this.input,[e]),a=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(i=>i instanceof n.Tensor&&i.dispose()),ie(t,a)}withFaceExpressions(){return new mt(this,this.input)}withAgeAndGender(){return new ut(this,this.input)}withFaceDescriptor(){return new lt(this,this.input)}};var He=class extends Y{constructor(e,r=new z){super();this.input=e;this.options=r}},me=class extends He{async run(){let{input:t,options:e}=this,r;if(e instanceof Ae)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof z)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof q)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((t,e)=>{this.run().then(r=>t(r.map(a=>St({},a)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new $e(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Pt(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Ft(this.runAndExtendWithFaceDetections(),this.input)}},ze=class extends He{async run(){let t=await new me(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?St({},e):void 0)})}withFaceLandmarks(t=!1){return new Oe(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new wt(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Dt(this.runAndExtendWithFaceDetection(),this.input)}};function qh(o,t=new z){return new ze(o,t)}function cr(o,t=new z){return new me(o,t)}async function en(o,t){return cr(o,new z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function rb(o,t={}){return cr(o,new q(t)).withFaceLandmarks().withFaceDescriptors()}var ob=en;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((a,i)=>a-r[i]).reduce((a,i)=>a+i*i,0))}var lo=class o{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 a=1,i=()=>`person ${a++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof gt)return s;if(s instanceof Float32Array)return new gt(i(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new gt(i(),[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,a)=>r+a,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Kt(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>gt.fromJSON(r));return new o(e,t.distanceThreshold)}};function Tb(o){let t=new Zt;return t.extractWeights(o),t}function rn(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(a=>rn(a,{width:e,height:r}));if(Yt(o)){let a=o.detection.forSize(e,r),i=o.unshiftedLandmarks.forSize(a.box.width,a.box.height);return ie(St(o,a),i)}return Q(o)?St(o,o.detection.forSize(e,r)):o instanceof $||o instanceof D?o.forSize(e,r):o}var Lb=Ar;export{Me as AgeGenderNet,Ct as BoundingBox,C as Box,Y as ComposableTask,ft as ComputeAllFaceDescriptorsTask,Be as ComputeFaceDescriptorsTaskBase,lt as ComputeSingleFaceDescriptorTask,$e as DetectAllFaceLandmarksTask,me as DetectAllFacesTask,Re as DetectFaceLandmarksTaskBase,He as DetectFacesTaskBase,Oe as DetectSingleFaceLandmarksTask,ze as DetectSingleFaceTask,A as Dimensions,Nr as FACE_EXPRESSION_LABELS,D as FaceDetection,Qr as FaceDetectionNet,we as FaceExpressionNet,it as FaceExpressions,Gt as FaceLandmark68Net,Ie as FaceLandmark68TinyNet,zr as FaceLandmarkNet,$ as FaceLandmarks,xr as FaceLandmarks5,Lt as FaceLandmarks68,Kt as FaceMatch,lo as FaceMatcher,jt as FaceRecognitionNet,rr as Gender,Qt as LabeledBox,gt as LabeledFaceDescriptors,tt as NetInput,I as NeuralNetwork,It as ObjectDetection,v as Point,vr as PredictedBox,Nt as Rect,Tt as SsdMobilenetv1,z as SsdMobilenetv1Options,Zt as TinyFaceDetector,Ae as TinyFaceDetectorOptions,Jt as TinyYolov2,q as TinyYolov2Options,ob as allFaces,en as allFacesSsdMobilenetv1,rb as allFacesTinyYolov2,yr as awaitMediaLoaded,Tr as bufferToImage,Hd as computeFaceDescriptor,Bt as createCanvas,be as createCanvasFromMedia,gl as createFaceDetectionNet,gf as createFaceRecognitionNet,Jo as createSsdMobilenetv1,Tb as createTinyFaceDetector,cd as createTinyYolov2,cr as detectAllFaces,Qo as detectFaceLandmarks,Od as detectFaceLandmarksTiny,Qd as detectLandmarks,qh as detectSingleFace,Sr as draw,_ as env,fo as euclideanDistance,sr as extendWithAge,ar as extendWithFaceDescriptor,St as extendWithFaceDetection,tr as extendWithFaceExpressions,ie as extendWithFaceLandmarks,ir as extendWithGender,oe as extractFaceTensors,re as extractFaces,Fi as fetchImage,wr as fetchJson,Ii as fetchNetWeights,st as fetchOrThrow,ki as fetchVideo,W as getContext2dOrThrow,kt as getMediaDimensions,_r as imageTensorToCanvas,Pr as imageToSquare,On as inverseSigmoid,dr as iou,Qe as isMediaElement,he as isMediaLoaded,Tf as isWithAge,Q as isWithFaceDetection,Lr as isWithFaceExpressions,Yt as isWithFaceLandmarks,Ff as isWithGender,qd as loadAgeGenderModel,Zd as loadFaceDetectionModel,Jd as loadFaceExpressionModel,jd as loadFaceLandmarkModel,Ud as loadFaceLandmarkTinyModel,Xd as loadFaceRecognitionModel,tn as loadSsdMobilenetv1Model,Vd as loadTinyFaceDetectorModel,Gd as loadTinyYolov2Model,Dr as loadWeightMap,Kd as locateFaces,Yi as matchDimensions,hr as minBbox,P as nets,br as nonMaxSuppression,J as normalize,gr as padToSquare,Yd as predictAgeAndGender,zd as recognizeFaceExpressions,rn as resizeResults,At as resolveInput,Rn as shuffleArray,fe as sigmoid,Ko as ssdMobilenetv1,n as tf,Rd as tinyFaceDetector,$d as tinyYolov2,F as toNetInput,lr as utils,so as validateConfig,Lb as version}; +var ur=Object.defineProperty;var ho=Object.getOwnPropertyDescriptor;var bo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var xo=(o=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(o,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):o)(function(o){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var Ye=(o,t)=>{for(var e in t)ur(o,e,{get:t[e],enumerable:!0})},pr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of bo(t))!go.call(o,a)&&a!==e&&ur(o,a,{get:()=>t[a],enumerable:!(r=ho(t,a))||r.enumerable});return o},w=(o,t,e)=>(pr(o,t,"default"),e&&pr(e,t,"default"));var n={};Ye(n,{version:()=>Po});w(n,mn);w(n,pn);w(n,un);import*as mn from"@tensorflow/tfjs/dist/index.js";import*as pn from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as un from"@tensorflow/tfjs-backend-wasm/dist/index.js";var fr="4.21.0",vo="4.21.0",yo="4.21.0",To="4.21.0",_o="4.21.0",Po={tfjs:fr,"tfjs-core":fr,"tfjs-converter":vo,"tfjs-backend-cpu":yo,"tfjs-backend-webgl":To,"tfjs-backend-wasm":_o};var Sr={};Ye(Sr,{AnchorPosition:()=>Ke,DrawBox:()=>ee,DrawBoxOptions:()=>de,DrawFaceLandmarks:()=>De,DrawFaceLandmarksOptions:()=>Fe,DrawTextField:()=>xt,DrawTextFieldOptions:()=>Wt,drawContour:()=>Z,drawDetections:()=>Io,drawFaceExpressions:()=>No,drawFaceLandmarks:()=>So});function Z(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:a},i)=>{let s=t[i];o.moveTo(s.x,s.y),o.lineTo(r,a)}),e){let r=t[t.length-1],a=t[0];if(!r||!a)return;o.moveTo(r.x,r.y),o.lineTo(a.x,a.y)}o.stroke()}var lr={};Ye(lr,{computeReshapedDimensions:()=>je,getCenterPoint:()=>bt,isDimensions:()=>ue,isEven:()=>pe,isFloat:()=>Ge,isTensor:()=>dt,isTensor1D:()=>wo,isTensor2D:()=>Ve,isTensor3D:()=>K,isTensor4D:()=>R,isValidNumber:()=>G,isValidProbablitiy:()=>Mt,range:()=>X,round:()=>ht});var A=class o{constructor(t,e){if(!G(t)||!G(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 o(1/this.width,1/this.height)}};function dt(o,t){return o instanceof n.Tensor&&o.shape.length===t}function wo(o){return dt(o,1)}function Ve(o){return dt(o,2)}function K(o){return dt(o,3)}function R(o){return dt(o,4)}function Ge(o){return o%1!==0}function pe(o){return o%2===0}function ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ue(o){return o&&o.width&&o.height}function je({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function bt(o){return o.reduce((t,e)=>t.add(e),new v(0,0)).div(new v(o.length,o.length))}function X(o,t,e){return Array(o).fill(0).map((r,a)=>t+a*e)}function G(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function Mt(o){return G(o)&&o>=0&&o<=1}var v=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var C=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(G)}static assertIsValidBox(t,e,r=!1){if(!o.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||{},a=[r.left,r.top,r.right,r.bottom].every(G),i=[r.x,r.y,r.width,r.height].every(G);if(!i&&!a)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,c,m,p]=i?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:s,y:c,width:m,height:p},"Box.constructor",e),this._x=s,this._y=c,this._width=m,this._height=p}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 v(this.left,this.top)}get topRight(){return new v(this.right,this.top)}get bottomLeft(){return new v(this.left,this.bottom)}get bottomRight(){return new v(this.right,this.bottom)}round(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(i=>Math.round(i));return new o({x:t,y:e,width:r,height:a})}floor(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(i=>Math.floor(i));return new o({x:t,y:e,width:r,height:a})}toSquare(){let{x:t,y:e,width:r,height:a}=this,i=Math.abs(r-a);return re&&(c=-f+e+r,f=e),l>t&&(m=-l+t+a,l=t),p<1&&(m=2-p,p=1),u<1&&(m=2-u,u=1),{dy:s,edy:m,dx:i,edx:c,y:u,ey:l,x:p,ex:f,w:r,h:a}}calibrate(t){return new o({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 Ct=class extends C{constructor(t,e,r,a,i=!1){super({left:t,top:e,right:r,bottom:a},i)}};var It=class o{constructor(t,e,r,a,i){this._imageDims=new A(i.width,i.height),this._score=t,this._classScore=e,this._className=r,this._box=new C(a).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 C(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var D=class o extends It{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:a,imageDims:i}=super.forSize(t,e);return new o(r,a,i)}};function dr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),a=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),i=r*a;return e?i/(o.area+t.area-i):i/Math.min(o.area,t.area)}function hr(o){let t=o.map(c=>c.x),e=o.map(c=>c.y),r=t.reduce((c,m)=>mmcc({score:s,boxIndex:c})).sort((s,c)=>s.score-c.score).map(s=>s.boxIndex),i=[];for(;a.length>0;){let s=a.pop();i.push(s);let c=a,m=[];for(let p=0;pm[u]<=e)}return i}function J(o,t){return n.tidy(()=>{let[e,r,a]=t,i=n.fill([...o.shape.slice(0,3),1],e,"float32"),s=n.fill([...o.shape.slice(0,3),1],r,"float32"),c=n.fill([...o.shape.slice(0,3),1],a,"float32"),m=n.concat([i,s,c],3);return n.sub(o,m)})}function gr(o,t=!1){return n.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let a=Math.abs(e-r),i=Math.round(a*(t?.5:1)),s=e>r?2:1,c=l=>{let d=o.shape.slice();return d[s]=l,n.fill(d,0,"float32")},m=c(i),p=a-m.shape[s],f=[t&&p?c(p):null,o,m].filter(l=>!!l).map(l=>n.cast(l,"float32"));return n.concat(f,s)})}function Rn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),a=t[e];t[e]=t[r],t[r]=a}return t}function fe(o){return 1/(1+Math.exp(-o))}function On(o){return Math.log(o/(1-o))}var Nt=class extends C{constructor(t,e,r,a,i=!1){super({x:t,y:e,width:r,height:a},i)}};var Fo=.5,Do=.43,Eo=.45,$=class{constructor(t,e,r=new v(0,0)){let{width:a,height:i}=e;this._imgDims=new A(a,i),this._shift=r,this._positions=t.map(s=>s.mul(new v(a,i)).add(r))}get shift(){return new v(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 v(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 v(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let i=t instanceof D?t.box.floor():new C(t);return this.shiftBy(i.x,i.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:a}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(a)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,a]=t,i=f=>a.sub(f).magnitude(),s=(i(e)+i(r))/2,c=Math.floor(s/Eo),m=bt(t),p=Math.floor(Math.max(0,m.x-Fo*c)),u=Math.floor(Math.max(0,m.y-Do*c));return new Nt(p,u,Math.min(c,this.imageWidth+p),Math.min(c,this.imageHeight+u))}alignMinBbox(t){let e=hr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var xr=class extends ${getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],bt([t[3],t[4]])]}};var Lt=class extends ${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(bt)}};var Kt=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?` (${ht(this.distance)})`:""}`}};var Qt=class extends C{static assertIsValidLabeledBox(t,e){if(C.assertIsValidBox(t,e),!G(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 gt=class o{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 o(t.label,e)}};var vr=class extends Qt{static assertIsValidPredictedBox(t,e){if(Qt.assertIsValidLabeledBox(t,e),!Mt(t.score)||!Mt(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,a){super(t,e),this._score=r,this._classScore=a}get score(){return this._score}get classScore(){return this._classScore}};function Q(o){return o.detection instanceof D}function St(o,t){return{...o,...{detection:t}}}function Ue(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function te(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function le(o){let t="";if(!o&&te())try{o=xo("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((a,i)=>{o.readFile(r,(s,c)=>s?i(s):a(c))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Xe(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;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")},i=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,c=le();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:a,createVideoElement:i,fetch:s,...c}}function Je(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var M;function Mo(){if(!M)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return M}function qe(o){M=o}function Ze(){return Je()?qe(Ue()):te()?qe(Xe()):null}function Co(o){if(M||Ze(),!M)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=M.Canvas,Image:e=M.Image}=o;M.Canvas=t,M.Image=e,M.createCanvasElement=o.createCanvasElement||(()=>new t),M.createImageElement=o.createImageElement||(()=>new e),M.ImageData=o.ImageData||M.ImageData,M.Video=o.Video||M.Video,M.fetch=o.fetch||M.fetch,M.readFile=o.readFile||M.readFile}var _={getEnv:Mo,setEnv:qe,initialize:Ze,createBrowserEnv:Ue,createFileSystem:le,createNodejsEnv:Xe,monkeyPatch:Co,isBrowser:Je,isNodejs:te};Ze();function At(o){return!_.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function W(o){let{Canvas:t,CanvasRenderingContext2D:e}=_.getEnv();if(o instanceof e)return o;let r=At(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let a=r.getContext("2d",{willReadFrequently:!0});if(!a)throw new Error("resolveContext2d - canvas 2d context is null");return a}var Ke=(a=>(a.TOP_LEFT="TOP_LEFT",a.TOP_RIGHT="TOP_RIGHT",a.BOTTOM_LEFT="BOTTOM_LEFT",a.BOTTOM_RIGHT="BOTTOM_RIGHT",a))(Ke||{}),Wt=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:a,fontSize:i,fontStyle:s,padding:c}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=a||"rgba(255, 255, 255, 1)",this.fontSize=i||14,this.fontStyle=s||"Georgia",this.padding=c||4}},xt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new Wt(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,a)=>r{let b=m+f.x,y=m+f.y+(d+1)*s;r.fillText(l,b,y)})}};var de=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:a,drawLabelOptions:i}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=a;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Wt({...s,...i})}},ee=class{constructor(t,e={}){this.box=new C(t),this.options=new de(e)}draw(t){let e=W(t),{boxColor:r,lineWidth:a}=this.options,{x:i,y:s,width:c,height:m}=this.box;e.strokeStyle=r,e.lineWidth=a,e.strokeRect(i,s,c,m);let{label:p}=this.options;p&&new xt([p],{x:i-a/2,y:s},this.options.drawLabelOptions).draw(t)}};function Io(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof D?r.score:Q(r)?r.detection.score:void 0,i=r instanceof D?r.box:Q(r)?r.detection.box:new C(r),s=a?`${ht(a)}`:void 0;new ee(i,{label:s}).draw(o)})}function he(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||he(o)){t(null);return}function r(i){i.currentTarget&&(i.currentTarget.removeEventListener("load",a),i.currentTarget.removeEventListener("error",r),e(i))}function a(i){i.currentTarget&&(i.currentTarget.removeEventListener("load",a),i.currentTarget.removeEventListener("error",r),t(i))}o.addEventListener("load",a),o.addEventListener("error",r)})}function Tr(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 a=_.getEnv().createImageElement();a.onload=()=>t(a),a.onerror=e,a.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function kt(o){let{Image:t,Video:e}=_.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 Bt({width:o,height:t}){let{createCanvasElement:e}=_.getEnv(),r=e();return r.width=o,r.height=t,r}function be(o,t){let{ImageData:e}=_.getEnv();if(!(o instanceof e)&&!he(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:a}=t||kt(o),i=Bt({width:r,height:a});return o instanceof e?W(i).putImageData(o,0,0):W(i).drawImage(o,0,0,r,a),i}async function _r(o,t){let e=t||_.getEnv().createCanvasElement(),[r,a,i]=o.shape.slice(R(o)?1:0),s=n.tidy(()=>o.as3D(r,a,i).toInt());return await n.browser.toPixels(s,e),s.dispose(),e}function Qe(o){let{Image:t,Canvas:e,Video:r}=_.getEnv();return o instanceof t||o instanceof e||o instanceof r}function Pr(o,t,e=!1){let{Image:r,Canvas:a}=_.getEnv();if(!(o instanceof r||o instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Bt({width:1,height:1});let i=kt(o),s=t/Math.max(i.height,i.width),c=s*i.width,m=s*i.height,p=Bt({width:t,height:t}),u=o instanceof a?o:be(o),f=Math.abs(c-m)/2,l=e&&c0&&u.height>0&&W(p).drawImage(u,l,d,c,m),p}var tt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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,a)=>{if(K(r)){this._imageTensors[a]=r,this._inputDimensions[a]=r.shape;return}if(R(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[a]=r,this._inputDimensions[a]=r.shape.slice(1);return}let i=r instanceof _.getEnv().Canvas?r:be(r);this._canvases[a]=i,this._inputDimensions[a]=[i.height,i.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 X(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 je({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,n.tidy(()=>{let r=X(this.batchSize,0,1).map(i=>{let s=this.getInput(i);if(s instanceof n.Tensor){let c=R(s)?s:n.expandDims(s);return c=gr(c,e),(c.shape[1]!==t||c.shape[2]!==t)&&(c=n.image.resizeBilinear(c,[t,t],!1,!1)),c.as3D(t,t,3)}if(s instanceof _.getEnv().Canvas)return n.browser.fromPixels(Pr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${i}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return n.stack(r.map(i=>n.cast(i,"float32"))).as4D(this.batchSize,t,t,3)})}};async function F(o){if(o instanceof tt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=a=>Array.isArray(o)?` at input index ${a}:`:"",r=t.map(At);return r.forEach((a,i)=>{if(!Qe(a)&&!K(a)&&!R(a))throw typeof t[i]=="string"?new Error(`toNetInput -${e(i)} string passed, but could not resolve HTMLElement for element id ${t[i]}`):new Error(`toNetInput -${e(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(R(a)){let s=a.shape[0];if(s!==1)throw new Error(`toNetInput -${e(i)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(a=>Qe(a)&&yr(a))),new tt(r,Array.isArray(o))}async function re(o,t){let{Canvas:e}=_.getEnv(),r=o;if(!(o instanceof e)){let s=await F(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let c=s.getInput(0);r=c instanceof e?c:await _r(c)}let a=W(r);return t.map(s=>s instanceof D?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:c,width:m,height:p})=>{let u=Bt({width:m,height:p});return m>0&&p>0&&W(u).putImageData(a.getImageData(s,c,m,p),0,0),u})}async function oe(o,t){if(!K(o)&&!R(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(R(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return n.tidy(()=>{let[e,r,a]=o.shape.slice(R(o)?1:0);return t.map(c=>c instanceof D?c.forSize(r,e).box:c).map(c=>c.clipAtImageBorders(r,e)).filter(c=>c.width>0&&c.height>0).map(({x:c,y:m,width:p,height:u})=>n.slice3d(o.as3D(e,r,a),[m,c,0],[u,p,a]))})}async function st(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 Fi(o){let t=await st(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 Tr(e)}async function wr(o){return(await st(o)).json()}async function Ii(o){return new Float32Array(await(await st(o)).arrayBuffer())}function Fr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=_.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function ki(o){let t=await st(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fr(e)}function ge(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 a=o.split("/").filter(c=>c),i=o.endsWith(".json")?a[a.length-1]:e,s=r+(o.endsWith(".json")?a.slice(0,a.length-1):a).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${i}`:`${s}/${i}`}}async function Dr(o,t){let{manifestUri:e,modelBaseUri:r}=ge(o,t),a=await wr(e);return n.io.loadWeights(a,r)}function Yi(o,t,e=!1){let{width:r,height:a}=e?kt(t):t;return o.width=r,o.height=a,{width:r,height:a}}var I=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:a}=this.traversePropertyPath(t);r[a].dispose(),r[a]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof n.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof n.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=n.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 Dr(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:a}=ge(t,this.getDefaultModelName()),i=p=>Promise.all(p.map(u=>e(u).then(f=>typeof f=="string"?Buffer.from(f):f.buffer))),s=n.io.weightsLoaderFactory(i),c=JSON.parse((await e(r)).toString()),m=await s(c,a);this.loadFromWeightMap(m)}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((i,s)=>{if(!i.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:i.nextObj,objProp:s,nextObj:i.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:a}=e;if(!r||!a||!(r[a]instanceof n.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:a}}};function S(o,t,e){return n.tidy(()=>{let r=n.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=n.add(r,t.bias),r})}function xe(o,t,e=!1){return n.tidy(()=>{let r=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):S(o,t.conv0,[2,2])),a=S(r,t.conv1,[1,1]),i=n.relu(n.add(r,a)),s=S(i,t.conv2,[1,1]);return n.relu(n.add(r,n.add(a,s)))})}function ne(o,t,e=!1,r=!0){return n.tidy(()=>{let a=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):S(o,t.conv0,r?[2,2]:[1,1])),i=S(a,t.conv1,[1,1]),s=n.relu(n.add(a,i)),c=S(s,t.conv2,[1,1]),m=n.relu(n.add(a,n.add(i,c))),p=S(m,t.conv3,[1,1]);return n.relu(n.add(a,n.add(i,n.add(c,p))))})}function vt(o,t,e="same",r=!1){return n.tidy(()=>{let a=n.add(n.conv2d(o,t.filters,[1,1],e),t.bias);return r?n.relu(a):a})}function N(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}function Rt(o,t){return(e,r,a,i)=>{let s=n.tensor4d(o(e*r*a*a),[a,a,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${i}/filters`},{paramPath:`${i}/bias`}),{filters:s,bias:c}}}function ve(o,t){return(e,r,a)=>{let i=n.tensor2d(o(e*r),[e,r]),s=n.tensor1d(o(r));return t.push({paramPath:`${a}/weights`},{paramPath:`${a}/bias`}),{weights:i,bias:s}}}var ae=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function $t(o,t){return(e,r,a)=>{let i=n.tensor4d(o(9*e),[3,3,e,1]),s=n.tensor4d(o(e*r),[1,1,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${a}/depthwise_filter`},{paramPath:`${a}/pointwise_filter`},{paramPath:`${a}/bias`}),new ae(i,s,c)}}function Ot(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),a=o(`${t}/bias`,1);return new ae(e,r,a)}}function k(o,t){return(e,r,a)=>{let i=o[e];if(!dt(i,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${i}`);return t.push({originalPath:e,paramPath:a||e}),i}}function L(o){let t=o;function e(a){let i=t.slice(0,a);return t=t.slice(a),i}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function ye(o,t){let e=Rt(o,t),r=$t(o,t);function a(s,c,m,p=!1){let u=p?e(s,c,3,`${m}/conv0`):r(s,c,`${m}/conv0`),f=r(c,c,`${m}/conv1`),l=r(c,c,`${m}/conv2`);return{conv0:u,conv1:f,conv2:l}}function i(s,c,m,p=!1){let{conv0:u,conv1:f,conv2:l}=a(s,c,m,p),d=r(c,c,`${m}/conv3`);return{conv0:u,conv1:f,conv2:l,conv3:d}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:i}}function Er(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),{extractDenseBlock4Params:a}=ye(e,t),i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),c=a(64,128,"dense2"),m=a(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:i,dense1:s,dense2:c,dense3:m}}}function Te(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function _e(o,t){let e=k(o,t),r=Te(e),a=Ot(e);function i(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`),l=a(`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:s}}function Mr(o){let t=[],{extractDenseBlock4Params:e}=_e(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return N(o,t),{params:r,paramMappings:t}}var Ht=class extends I{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),i=J(r,[122.782,117.001,104.298]).div(255),s=ne(i,e.dense0,!0);return s=ne(s,e.dense1),s=ne(s,e.dense2),s=ne(s,e.dense3),s=n.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await F(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mr(t)}extractParams(t){return Er(t)}};function se(o,t){return n.tidy(()=>n.add(n.matMul(o,t.weights),t.bias))}function Cr(o,t,e){let r=[],{extractWeights:a,getRemainingWeights:i}=L(o),c=ve(a,r)(t,e,"fc");if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{paramMappings:r,params:{fc:c}}}function Ir(o){let t=[],e=k(o,t);function r(i){let s=e(`${i}/weights`,2),c=e(`${i}/bias`,1);return{weights:s,bias:c}}let a={fc:r("fc")};return N(o,t),{params:a,paramMappings:t}}function Pe(o){let t={},e={};return Object.keys(o).forEach(r=>{let a=r.startsWith("fc")?e:t;a[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var zt=class extends I{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 n.tidy(()=>{let r=t instanceof tt?this.faceFeatureExtractor.forwardInput(t):t;return se(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 Cr(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=Pe(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ir(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),a=r*e+r,i=t.slice(0,t.length-a),s=t.slice(t.length-a);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(s)}};var Nr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],it=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Nr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Nr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var we=class extends zt{constructor(t=new Ht){super("FaceExpressionNet",t)}forwardInput(t){return n.tidy(()=>n.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await F(t))}async predictExpressions(t){let e=await F(t),r=await this.forwardInput(e),a=await Promise.all(n.unstack(r).map(async s=>{let c=s.dataSync();return s.dispose(),c}));r.dispose();let i=a.map(s=>new it(s));return e.isBatchInput?i:i[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Lr(o){return o.expressions instanceof it}function tr(o,t){return{...o,...{expressions:t}}}function No(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(i=>{let s=i instanceof it?i:Lr(i)?i.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let m=s.asSortedArray().filter(f=>f.probability>e),p=Q(i)?i.detection.box.bottomLeft:r||new v(0,0);new xt(m.map(f=>`${f.expression} (${ht(f.probability)})`),p).draw(o)})}function Yt(o){return Q(o)&&o.landmarks instanceof $&&o.unshiftedLandmarks instanceof $&&o.alignedRect instanceof D}function Lo(o){let t=m=>m*180/Math.PI,e=(m,p)=>Math.sqrt((m.x-p.x)**2+(m.y-p.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},a=(m,p,u)=>{let f=Math.floor(m.x-p.x),l=Math.floor(p.x-u.x);return f-l},i=(m,p)=>{let u=Math.hypot(p.x-m.x,p.y-m.y),f=p.y-m.y,l=Math.asin(f/u),d=t(l),b=Math.floor(90-d),y=p.x-m.x<0?-1:1;return b*y},s=(m,p,u)=>{let f=e(m,u),l=new v((m.x+u.x)/2,(m.y+u.y)/2),d=e(p,l),b=Math.atan(d/f),y=Math.floor(t(b)),h=l.y-p.y<0?-1:1;return y*h};if(!o||!o.positions||o.positions.length!==68)return r;let c=o.positions;return r.roll=i(c[27],c[66]),r.pitch=s(c[14],c[30],c[2]),r.yaw=a(c[14],c[33],c[2]),r}function ie(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),a=r.align(),{imageDims:i}=o.detection,s=new D(o.detection.score,a.rescale(i.reverse()),i),c=Lo(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:c}}}var Fe=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:a,lineColor:i,pointSize:s,pointColor:c}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=a||1,this.pointSize=s||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=c||"rgba(255, 0, 255, 1)"}},De=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Fe(e)}draw(t){let e=W(t),{drawLines:r,drawPoints:a,lineWidth:i,lineColor:s,pointSize:c,pointColor:m}=this.options;if(r&&this.faceLandmarks instanceof Lt&&(e.strokeStyle=s,e.lineWidth=i,Z(e,this.faceLandmarks.getJawOutline()),Z(e,this.faceLandmarks.getLeftEyeBrow()),Z(e,this.faceLandmarks.getRightEyeBrow()),Z(e,this.faceLandmarks.getNose()),Z(e,this.faceLandmarks.getLeftEye(),!0),Z(e,this.faceLandmarks.getRightEye(),!0),Z(e,this.faceLandmarks.getMouth(),!0)),a){e.strokeStyle=m,e.fillStyle=m;let p=u=>{e.beginPath(),e.arc(u.x,u.y,c,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(p)}}};function So(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof $?r:Yt(r)?r.landmarks:void 0;if(!a)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new De(a).draw(o)})}var Ar="1.7.14";function ko(o,t){let e=Rt(o,t),r=$t(o,t);function a(s,c,m){let p=r(s,c,`${m}/separable_conv0`),u=r(c,c,`${m}/separable_conv1`),f=e(s,c,1,`${m}/expansion_conv`);return{separable_conv0:p,separable_conv1:u,expansion_conv:f}}function i(s,c){let m=r(s,s,`${c}/separable_conv0`),p=r(s,s,`${c}/separable_conv1`),u=r(s,s,`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:a,extractMainBlockParams:i}}function Wr(o,t){let e=[],{extractWeights:r,getRemainingWeights:a}=L(o),{extractConvParams:i,extractSeparableConvParams:s,extractReductionBlockParams:c,extractMainBlockParams:m}=ko(r,e),p=i(3,32,3,"entry_flow/conv_in"),u=c(32,64,"entry_flow/reduction_block_0"),f=c(64,128,"entry_flow/reduction_block_1"),l={conv_in:p,reduction_block_0:u,reduction_block_1:f},d={};X(t,0,1).forEach(g=>{d[`main_block_${g}`]=m(128,`middle_flow/main_block_${g}`)});let b=c(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:y};if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:e,params:{entry_flow:l,middle_flow:d,exit_flow:h}}}function Bo(o,t){let e=k(o,t),r=Te(e),a=Ot(e);function i(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=r(`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=a(`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:s}}function kr(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:s}=Bo(o,e),c=r("entry_flow/conv_in"),m=i("entry_flow/reduction_block_0"),p=i("entry_flow/reduction_block_1"),u={conv_in:c,reduction_block_0:m,reduction_block_1:p},f={};X(t,0,1).forEach(y=>{f[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let l=i("exit_flow/reduction_block"),d=a("exit_flow/separable_conv"),b={reduction_block:l,separable_conv:d};return N(o,e),{params:{entry_flow:u,middle_flow:f,exit_flow:b},paramMappings:e}}function Br(o,t,e){return n.add(n.conv2d(o,t.filters,e,"same"),t.bias)}function er(o,t,e=!0){let r=e?n.relu(o):o;return r=S(r,t.separable_conv0,[1,1]),r=S(n.relu(r),t.separable_conv1,[1,1]),r=n.maxPool(r,[3,3],[2,2],"same"),r=n.add(r,Br(o,t.expansion_conv,[2,2])),r}function Ro(o,t){let e=S(n.relu(o),t.separable_conv0,[1,1]);return e=S(n.relu(e),t.separable_conv1,[1,1]),e=S(n.relu(e),t.separable_conv2,[1,1]),e=n.add(e,o),e}var Ee=class extends I{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"),i=J(r,[122.782,117.001,104.298]).div(255),s=n.relu(Br(i,e.entry_flow.conv_in,[2,2]));return s=er(s,e.entry_flow.reduction_block_0,!1),s=er(s,e.entry_flow.reduction_block_1),X(this._numMainBlocks,0,1).forEach(c=>{s=Ro(s,e.middle_flow[`main_block_${c}`])}),s=er(s,e.exit_flow.reduction_block),s=n.relu(S(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await F(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return kr(t,this._numMainBlocks)}extractParams(t){return Wr(t,this._numMainBlocks)}};function Rr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),a=ve(e,t),i=a(512,1,"fc/age"),s=a(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:i,gender:s}}}}function $r(o){let t=[],e=k(o,t);function r(i){let s=e(`${i}/weights`,2),c=e(`${i}/bias`,1);return{weights:s,bias:c}}let a={fc:{age:r("fc/age"),gender:r("fc/gender")}};return N(o,t),{params:a,paramMappings:t}}var rr=(e=>(e.FEMALE="female",e.MALE="male",e))(rr||{});var Me=class extends I{constructor(t=new Ee(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 n.tidy(()=>{let r=t instanceof tt?this.faceFeatureExtractor.forwardInput(t):t,a=n.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=se(a,e.fc.age).as1D(),s=se(a,e.fc.gender);return{age:i,gender:s}})}forwardInput(t){return n.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:n.softmax(r)}})}async forward(t){return this.forwardInput(await F(t))}async predictAgeAndGender(t){let e=await F(t),r=await this.forwardInput(e),a=n.unstack(r.age),i=n.unstack(r.gender),s=a.map((m,p)=>({ageTensor:m,genderTensor:i[p]})),c=await Promise.all(s.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,d=l?"male":"female",b=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:d,genderProbability:b}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?c:c[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 Rr(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=Pe(t);return this.faceFeatureExtractor.loadFromWeightMap(e),$r(r)}extractParams(t){let r=t.slice(0,t.length-1539),a=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(a)}};var Vt=class extends zt{postProcess(t,e,r){let a=r.map(({width:s,height:c})=>{let m=e/Math.max(c,s);return{width:s*m,height:c*m}}),i=a.length;return n.tidy(()=>{let s=(f,l)=>n.stack([n.fill([68],f,"float32"),n.fill([68],l,"float32")],1).as2D(1,136).as1D(),c=(f,l)=>{let{width:d,height:b}=a[f];return l(d,b)?Math.abs(d-b)/2:0},m=f=>c(f,(l,d)=>lc(f,(l,d)=>ds(m(l),p(l))))).div(n.stack(Array.from(Array(i),(f,l)=>s(a[l].width,a[l].height))))})}forwardInput(t){return n.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,a])=>({height:r,width:a})))})}async forward(t){return this.forwardInput(await F(t))}async detectLandmarks(t){let e=await F(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(async(i,s)=>{let c=Array.from(i.dataSync()),m=c.filter((u,f)=>pe(f)),p=c.filter((u,f)=>!pe(f));return new Lt(Array(68).fill(0).map((u,f)=>new v(m[f],p[f])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(i=>i.dispose()),e.isBatchInput?a:a[0]}getClassifierChannelsOut(){return 136}};var Gt=class extends Vt{constructor(t=new Ht){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function Or(o){let t=[],{extractDenseBlock3Params:e}=_e(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return N(o,t),{params:r,paramMappings:t}}function Hr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),{extractDenseBlock3Params:a}=ye(e,t),i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),c=a(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:i,dense1:s,dense2:c}}}var Ce=class extends I{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),i=J(r,[122.782,117.001,104.298]).div(255),s=xe(i,e.dense0,!0);return s=xe(s,e.dense1),s=xe(s,e.dense2),s=n.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await F(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Or(t)}extractParams(t){return Hr(t)}};var Ie=class extends Vt{constructor(t=new Ce){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var zr=class extends Gt{};function Yr(o,t){return n.add(n.mul(o,t.weights),t.biases)}function or(o,t,e,r,a="same"){let{filters:i,bias:s}=t.conv,c=n.conv2d(o,i,e,a);return c=n.add(c,s),c=Yr(c,t.scale),r?n.relu(c):c}function Vr(o,t){return or(o,t,[1,1],!0)}function nr(o,t){return or(o,t,[1,1],!1)}function Ne(o,t){return or(o,t,[2,2],!0,"valid")}function $o(o,t){function e(c,m,p){let u=o(c),f=u.length/(m*p*p);if(Ge(f))throw new Error(`depth has to be an integer: ${f}, weights.length: ${u.length}, numFilters: ${m}, filterSize: ${p}`);return n.tidy(()=>n.transpose(n.tensor4d(u,[m,f,p,p]),[2,3,1,0]))}function r(c,m,p,u){let f=e(c,m,p),l=n.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:f,bias:l}}function a(c,m){let p=n.tensor1d(o(c)),u=n.tensor1d(o(c));return t.push({paramPath:`${m}/weights`},{paramPath:`${m}/biases`}),{weights:p,biases:u}}function i(c,m,p,u){let f=r(c,m,p,`${u}/conv`),l=a(m,`${u}/scale`);return{conv:f,scale:l}}function s(c,m,p,u,f=!1){let l=i((f?.5:1)*c,m,p,`${u}/conv1`),d=i(c,m,p,`${u}/conv2`);return{conv1:l,conv2:d}}return{extractConvLayerParams:i,extractResidualLayerParams:s}}function Gr(o){let{extractWeights:t,getRemainingWeights:e}=L(o),r=[],{extractConvLayerParams:a,extractResidualLayerParams:i}=$o(t,r),s=a(4704,32,7,"conv32_down"),c=i(9216,32,3,"conv32_1"),m=i(9216,32,3,"conv32_2"),p=i(9216,32,3,"conv32_3"),u=i(36864,64,3,"conv64_down",!0),f=i(36864,64,3,"conv64_1"),l=i(36864,64,3,"conv64_2"),d=i(36864,64,3,"conv64_3"),b=i(147456,128,3,"conv128_down",!0),y=i(147456,128,3,"conv128_1"),h=i(147456,128,3,"conv128_2"),g=i(589824,256,3,"conv256_down",!0),T=i(589824,256,3,"conv256_1"),x=i(589824,256,3,"conv256_2"),E=i(589824,256,3,"conv256_down_out"),B=n.tidy(()=>n.transpose(n.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:c,conv32_2:m,conv32_3:p,conv64_down:u,conv64_1:f,conv64_2:l,conv64_3:d,conv128_down:b,conv128_1:y,conv128_2:h,conv256_down:g,conv256_1:T,conv256_2:x,conv256_down_out:E,fc:B},paramMappings:r}}function Oo(o,t){let e=k(o,t);function r(s){let c=e(`${s}/scale/weights`,1),m=e(`${s}/scale/biases`,1);return{weights:c,biases:m}}function a(s){let c=e(`${s}/conv/filters`,4),m=e(`${s}/conv/bias`,1),p=r(s);return{conv:{filters:c,bias:m},scale:p}}function i(s){return{conv1:a(`${s}/conv1`),conv2:a(`${s}/conv2`)}}return{extractConvLayerParams:a,extractResidualLayerParams:i}}function jr(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Oo(o,t),a=e("conv32_down"),i=r("conv32_1"),s=r("conv32_2"),c=r("conv32_3"),m=r("conv64_down"),p=r("conv64_1"),u=r("conv64_2"),f=r("conv64_3"),l=r("conv128_down"),d=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),T=r("conv256_down_out"),{fc:x}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ve(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let E={conv32_down:a,conv32_1:i,conv32_2:s,conv32_3:c,conv64_down:m,conv64_1:p,conv64_2:u,conv64_3:f,conv128_down:l,conv128_1:d,conv128_2:b,conv256_down:y,conv256_1:h,conv256_2:g,conv256_down_out:T,fc:x};return N(o,t),{params:E,paramMappings:t}}function j(o,t){let e=Vr(o,t.conv1);return e=nr(e,t.conv2),e=n.add(e,o),e=n.relu(e),e}function ce(o,t){let e=Ne(o,t.conv1);e=nr(e,t.conv2);let r=n.avgPool(o,2,2,"valid"),a=n.zeros(r.shape),i=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let c=[...e.shape];c[1]=1;let m=n.zeros(c);e=n.concat([e,m],1);let p=[...e.shape];p[2]=1;let u=n.zeros(p);e=n.concat([e,u],2)}return r=i?n.concat([r,a],3):r,e=n.add(r,e),e=n.relu(e),e}var jt=class extends I{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(150,!0),"float32"),i=J(r,[122.782,117.001,104.298]).div(255),s=Ne(i,e.conv32_down);s=n.maxPool(s,3,2,"valid"),s=j(s,e.conv32_1),s=j(s,e.conv32_2),s=j(s,e.conv32_3),s=ce(s,e.conv64_down),s=j(s,e.conv64_1),s=j(s,e.conv64_2),s=j(s,e.conv64_3),s=ce(s,e.conv128_down),s=j(s,e.conv128_1),s=j(s,e.conv128_2),s=ce(s,e.conv256_down),s=j(s,e.conv256_1),s=j(s,e.conv256_2),s=ce(s,e.conv256_down_out);let c=s.mean([1,2]);return n.matMul(c,e.fc)})}async forward(t){return this.forwardInput(await F(t))}async computeFaceDescriptor(t){var i;if((i=t==null?void 0:t.shape)!=null&&i.some(s=>s<=0))return new Float32Array(128);let e=await F(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return jr(t)}extractParams(t){return Gr(t)}};function gf(o){let t=new jt;return t.extractWeights(o),t}function ar(o,t){return{...o,...{descriptor:t}}}function Tf(o){return typeof o.age=="number"}function sr(o,t){return{...o,...{age:t}}}function Ff(o){return(o.gender==="male"||o.gender==="female")&&Mt(o.genderProbability)}function ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}function Ho(o,t){function e(m,p){let u=n.tensor4d(o(9*m),[3,3,m,1]),f=n.tensor1d(o(m)),l=n.tensor1d(o(m)),d=n.tensor1d(o(m)),b=n.tensor1d(o(m));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/batch_norm_scale`},{paramPath:`${p}/batch_norm_offset`},{paramPath:`${p}/batch_norm_mean`},{paramPath:`${p}/batch_norm_variance`}),{filters:u,batch_norm_scale:f,batch_norm_offset:l,batch_norm_mean:d,batch_norm_variance:b}}function r(m,p,u,f,l){let d=n.tensor4d(o(m*p*u*u),[u,u,m,p]),b=n.tensor1d(o(p));return t.push({paramPath:`${f}/filters`},{paramPath:`${f}/${l?"batch_norm_offset":"bias"}`}),{filters:d,bias:b}}function a(m,p,u,f){let{filters:l,bias:d}=r(m,p,u,f,!0);return{filters:l,batch_norm_offset:d}}function i(m,p,u){let f=e(m,`${u}/depthwise_conv`),l=a(m,p,1,`${u}/pointwise_conv`);return{depthwise_conv:f,pointwise_conv:l}}function s(){let m=a(3,32,3,"mobilenetv1/conv_0"),p=i(32,64,"mobilenetv1/conv_1"),u=i(64,128,"mobilenetv1/conv_2"),f=i(128,128,"mobilenetv1/conv_3"),l=i(128,256,"mobilenetv1/conv_4"),d=i(256,256,"mobilenetv1/conv_5"),b=i(256,512,"mobilenetv1/conv_6"),y=i(512,512,"mobilenetv1/conv_7"),h=i(512,512,"mobilenetv1/conv_8"),g=i(512,512,"mobilenetv1/conv_9"),T=i(512,512,"mobilenetv1/conv_10"),x=i(512,512,"mobilenetv1/conv_11"),E=i(512,1024,"mobilenetv1/conv_12"),B=i(1024,1024,"mobilenetv1/conv_13");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:y,conv_8:h,conv_9:g,conv_10:T,conv_11:x,conv_12:E,conv_13:B}}function c(){let m=a(1024,256,1,"prediction_layer/conv_0"),p=a(256,512,3,"prediction_layer/conv_1"),u=a(512,128,1,"prediction_layer/conv_2"),f=a(128,256,3,"prediction_layer/conv_3"),l=a(256,128,1,"prediction_layer/conv_4"),d=a(128,256,3,"prediction_layer/conv_5"),b=a(256,64,1,"prediction_layer/conv_6"),y=a(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),B=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),V=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),U=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),O=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),ot=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),nt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),at=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:T,class_predictor:x},box_predictor_2:{box_encoding_predictor:E,class_predictor:B},box_predictor_3:{box_encoding_predictor:V,class_predictor:U},box_predictor_4:{box_encoding_predictor:O,class_predictor:ot},box_predictor_5:{box_encoding_predictor:nt,class_predictor:at}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:c}}function Ur(o){let t=[],{extractWeights:e,getRemainingWeights:r}=L(o),{extractMobilenetV1Params:a,extractPredictionLayerParams:i}=Ho(e,t),s=a(),c=i(),p={extra_dim:n.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:c,output_layer:p},paramMappings:t}}function zo(o,t){let e=k(o,t);function r(p,u,f){let l=e(`${p}/Conv2d_${u}_pointwise/weights`,4,`${f}/filters`),d=e(`${p}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${f}/batch_norm_offset`);return{filters:l,batch_norm_offset:d}}function a(p){let u=`mobilenetv1/conv_${p}`,f=`MobilenetV1/Conv2d_${p}_depthwise`,l=`${u}/depthwise_conv`,d=`${u}/pointwise_conv`,b=e(`${f}/depthwise_weights`,4,`${l}/filters`),y=e(`${f}/BatchNorm/gamma`,1,`${l}/batch_norm_scale`),h=e(`${f}/BatchNorm/beta`,1,`${l}/batch_norm_offset`),g=e(`${f}/BatchNorm/moving_mean`,1,`${l}/batch_norm_mean`),T=e(`${f}/BatchNorm/moving_variance`,1,`${l}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",p,d)}}function i(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:a(1),conv_2:a(2),conv_3:a(3),conv_4:a(4),conv_5:a(5),conv_6:a(6),conv_7:a(7),conv_8:a(8),conv_9:a(9),conv_10:a(10),conv_11:a(11),conv_12:a(12),conv_13:a(13)}}function s(p,u){let f=e(`${p}/weights`,4,`${u}/filters`),l=e(`${p}/biases`,1,`${u}/bias`);return{filters:f,bias:l}}function c(p){let u=s(`Prediction/BoxPredictor_${p}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${p}/box_encoding_predictor`),f=s(`Prediction/BoxPredictor_${p}/ClassPredictor`,`prediction_layer/box_predictor_${p}/class_predictor`);return{box_encoding_predictor:u,class_predictor:f}}function m(){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:c(0),box_predictor_1:c(1),box_predictor_2:c(2),box_predictor_3:c(3),box_predictor_4:c(4),box_predictor_5:c(5)}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:m}}function Xr(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=zo(o,t),a=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!K(a))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${a}`);let i={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:a}};return N(o,t),{params:i,paramMappings:t}}function H(o,t,e){return n.tidy(()=>{let r=n.conv2d(o,t.filters,e,"same");return r=n.add(r,t.batch_norm_offset),n.clipByValue(r,0,6)})}var Yo=.0010000000474974513;function Vo(o,t,e){return n.tidy(()=>{let r=n.depthwiseConv2d(o,t.filters,e,"same");return r=n.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Yo),n.clipByValue(r,0,6)})}function Go(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Jr(o,t){return n.tidy(()=>{let e,r=H(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((i,s)=>{let c=s+1,m=Go(c);r=Vo(r,i.depthwise_conv,m),r=H(r,i.pointwise_conv,[1,1]),c===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function jo(o,t,e){let r=o.arraySync(),a=Math.min(r[t][0],r[t][2]),i=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),c=Math.max(r[t][1],r[t][3]),m=Math.min(r[e][0],r[e][2]),p=Math.min(r[e][1],r[e][3]),u=Math.max(r[e][0],r[e][2]),f=Math.max(r[e][1],r[e][3]),l=(s-a)*(c-i),d=(u-m)*(f-p);if(l<=0||d<=0)return 0;let b=Math.max(a,m),y=Math.max(i,p),h=Math.min(s,u),g=Math.min(c,f),T=Math.max(h-b,0)*Math.max(g-y,0);return T/(l+d-T)}function qr(o,t,e,r,a){let i=o.shape[0],s=Math.min(e,i),c=t.map((u,f)=>({score:u,boxIndex:f})).filter(u=>u.score>a).sort((u,f)=>f.score-u.score),m=u=>u<=r?1:0,p=[];return c.forEach(u=>{if(p.length>=s)return;let f=u.score;for(let l=p.length-1;l>=0;--l){let d=jo(o,u.boxIndex,p[l]);if(d!==0&&(u.score*=m(d),u.score<=a))break}f===u.score&&p.push(u.boxIndex)}),p}function Uo(o){let t=n.unstack(n.transpose(o,[1,0])),e=[n.sub(t[2],t[0]),n.sub(t[3],t[1])],r=[n.add(t[0],n.div(e[0],2)),n.add(t[1],n.div(e[1],2))];return{sizes:e,centers:r}}function Xo(o,t){let{sizes:e,centers:r}=Uo(o),a=n.unstack(n.transpose(t,[1,0])),i=n.div(n.mul(n.exp(n.div(a[2],5)),e[0]),2),s=n.add(n.mul(n.div(a[0],10),e[0]),r[0]),c=n.div(n.mul(n.exp(n.div(a[3],5)),e[1]),2),m=n.add(n.mul(n.div(a[1],10),e[1]),r[1]);return n.transpose(n.stack([n.sub(s,i),n.sub(m,c),n.add(s,i),n.add(m,c)]),[1,0])}function Zr(o,t,e){return n.tidy(()=>{let r=o.shape[0],a=Xo(n.reshape(n.tile(e.extra_dim,[r,1,1]),[-1,4]),n.reshape(o,[-1,4]));a=n.reshape(a,[r,a.shape[0]/r,4]);let i=n.sigmoid(n.slice(t,[0,0,1],[-1,-1,-1])),s=n.slice(i,[0,0,0],[-1,-1,1]);s=n.reshape(s,[r,s.shape[1]]);let c=n.unstack(a),m=n.unstack(s);return{boxes:c,scores:m}})}function yt(o,t){return n.tidy(()=>{let e=o.shape[0],r=n.reshape(vt(o,t.box_encoding_predictor),[e,-1,1,4]),a=n.reshape(vt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:a}})}function Kr(o,t,e){return n.tidy(()=>{let r=H(o,e.conv_0,[1,1]),a=H(r,e.conv_1,[2,2]),i=H(a,e.conv_2,[1,1]),s=H(i,e.conv_3,[2,2]),c=H(s,e.conv_4,[1,1]),m=H(c,e.conv_5,[2,2]),p=H(m,e.conv_6,[1,1]),u=H(p,e.conv_7,[2,2]),f=yt(t,e.box_predictor_0),l=yt(o,e.box_predictor_1),d=yt(a,e.box_predictor_2),b=yt(s,e.box_predictor_3),y=yt(m,e.box_predictor_4),h=yt(u,e.box_predictor_5),g=n.concat([f.boxPredictionEncoding,l.boxPredictionEncoding,d.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,h.boxPredictionEncoding],1),T=n.concat([f.classPrediction,l.classPrediction,d.classPrediction,b.classPrediction,y.classPrediction,h.classPrediction],1);return{boxPredictions:g,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 Tt=class extends I{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(512,!1),"float32"),a=n.sub(n.div(r,127.5),1),i=Jr(a,e.mobilenetv1),{boxPredictions:s,classPredictions:c}=Kr(i.out,i.conv11,e.prediction_layer);return Zr(s,c,e.output_layer)})}async forward(t){return this.forwardInput(await F(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:a}=new z(e),i=await F(t),{boxes:s,scores:c}=this.forwardInput(i),m=s[0],p=c[0];for(let x=1;x{let[E,B]=[Math.max(0,g[x][0]),Math.min(1,g[x][2])].map(O=>O*h),[V,U]=[Math.max(0,g[x][1]),Math.min(1,g[x][3])].map(O=>O*y);return new D(u[x],new Nt(V,E,U-V,B-E),{height:i.getInputHeight(0),width:i.getInputWidth(0)})});return m.dispose(),p.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Xr(t)}extractParams(t){return Ur(t)}};function Jo(o){let t=new Tt;return t.extractWeights(o),t}function gl(o){return Jo(o)}var Qr=class extends Tt{};var to=.4,eo=[new v(.738768,.874946),new v(2.42204,2.65704),new v(4.30971,7.04493),new v(10.246,4.59428),new v(12.6868,11.8741)],ro=[new v(1.603231,2.094468),new v(6.041143,7.080126),new v(2.882459,3.518061),new v(4.266906,5.178857),new v(9.041765,10.66308)],oo=[117.001,114.697,97.404],no="tiny_yolov2_model",ao="tiny_yolov2_separable_conv_model";var Le=o=>typeof o=="number";function so(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(!Le(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=>Le(t.x)&&Le(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(Le)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}function Ut(o){return n.tidy(()=>{let t=n.mul(o,n.scalar(.10000000149011612));return n.add(n.relu(n.sub(o,t)),t)})}function et(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.conv2d(e,t.conv.filters,[1,1],"valid"),e=n.sub(e,t.bn.sub),e=n.mul(e,t.bn.truediv),e=n.add(e,t.conv.bias),Ut(e)})}function rt(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=n.add(e,t.bias),Ut(e)})}function qo(o,t){let e=Rt(o,t);function r(s,c){let m=n.tensor1d(o(s)),p=n.tensor1d(o(s));return t.push({paramPath:`${c}/sub`},{paramPath:`${c}/truediv`}),{sub:m,truediv:p}}function a(s,c,m){let p=e(s,c,3,`${m}/conv`),u=r(c,`${m}/bn`);return{conv:p,bn:u}}let i=$t(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:a,extractSeparableConvParams:i}}function io(o,t,e,r){let{extractWeights:a,getRemainingWeights:i}=L(o),s=[],{extractConvParams:c,extractConvWithBatchNormParams:m,extractSeparableConvParams:p}=qo(a,s),u;if(t.withSeparableConvs){let[f,l,d,b,y,h,g,T,x]=r,E=t.isFirstLayerConv2d?c(f,l,3,"conv0"):p(f,l,"conv0"),B=p(l,d,"conv1"),V=p(d,b,"conv2"),U=p(b,y,"conv3"),O=p(y,h,"conv4"),ot=p(h,g,"conv5"),nt=T?p(g,T,"conv6"):void 0,at=x?p(T,x,"conv7"):void 0,Et=c(x||T||g,5*e,1,"conv8");u={conv0:E,conv1:B,conv2:V,conv3:U,conv4:O,conv5:ot,conv6:nt,conv7:at,conv8:Et}}else{let[f,l,d,b,y,h,g,T,x]=r,E=m(f,l,"conv0"),B=m(l,d,"conv1"),V=m(d,b,"conv2"),U=m(b,y,"conv3"),O=m(y,h,"conv4"),ot=m(h,g,"conv5"),nt=m(g,T,"conv6"),at=m(T,x,"conv7"),Et=c(x,5*e,1,"conv8");u={conv0:E,conv1:B,conv2:V,conv3:U,conv4:O,conv5:ot,conv6:nt,conv7:at,conv8:Et}}if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{params:u,paramMappings:s}}function Zo(o,t){let e=k(o,t);function r(c){let m=e(`${c}/sub`,1),p=e(`${c}/truediv`,1);return{sub:m,truediv:p}}function a(c){let m=e(`${c}/filters`,4),p=e(`${c}/bias`,1);return{filters:m,bias:p}}function i(c){let m=a(`${c}/conv`),p=r(`${c}/bn`);return{conv:m,bn:p}}let s=Ot(e);return{extractConvParams:a,extractConvWithBatchNormParams:i,extractSeparableConvParams:s}}function co(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:a,extractSeparableConvParams:i}=Zo(o,e),s;if(t.withSeparableConvs){let c=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:c>7?i("conv6"):void 0,conv7:c>8?i("conv7"):void 0,conv8:r("conv8")}}else s={conv0:a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:a("conv6"),conv7:a("conv7"),conv8:r("conv8")};return N(o,e),{params:s,paramMappings:e}}var q=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 Se=class Se extends I{constructor(t){super("TinyYolov2"),so(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=et(t,e.conv0);return r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv1),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv2),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv3),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv4),r=n.maxPool(r,[2,2],[2,2],"same"),r=et(r,e.conv5),r=n.maxPool(r,[2,2],[1,1],"same"),r=et(r,e.conv6),r=et(r,e.conv7),vt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ut(vt(t,e.conv0,"valid",!1)):rt(t,e.conv0);return r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv1),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv2),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv3),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv4),r=n.maxPool(r,[2,2],[2,2],"same"),r=rt(r,e.conv5),r=n.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?rt(r,e.conv6):r,r=e.conv7?rt(r,e.conv7):r,vt(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 a=n.cast(t.toBatchTensor(e,!1),"float32");return a=this.config.meanRgb?J(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,r):this.runTinyYolov2(a,r)})}async forward(t,e){return this.forwardInput(await F(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:a}=new q(e),i=await F(t),s=await this.forwardInput(i,r),c=n.tidy(()=>n.unstack(s)[0].expandDims()),m={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(c,i.getReshapedInputDimensions(0),a);s.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),d=p.map(h=>this.config.classes[h.label]);return br(u.map(h=>h.rescale(r)),f,this.config.iouThreshold,!0).map(h=>new It(f[h],l[h],d[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return co(t,this.config)}extractParams(t){let e=this.config.filterSizes||Se.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 io(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:a,height:i}=e,s=Math.max(a,i),c=s/a,m=s/i,p=t.shape[1],u=this.config.anchors.length,[f,l,d]=n.tidy(()=>{let g=t.reshape([p,p,u,this.boxEncodingSize]),T=g.slice([0,0,0,0],[p,p,u,4]),x=g.slice([0,0,0,4],[p,p,u,1]),E=this.withClassScores?n.softmax(g.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):n.scalar(0);return[T,x,E]}),b=[],y=await l.array(),h=await f.array();for(let g=0;gr){let B=(T+fe(h[g][T][x][0]))/p*c,V=(g+fe(h[g][T][x][1]))/p*m,U=Math.exp(h[g][T][x][2])*this.config.anchors[x].x/p*c,O=Math.exp(h[g][T][x][3])*this.config.anchors[x].y/p*m,ot=B-U/2,nt=V-O/2,at={row:g,col:T,anchor:x},{classScore:Et,label:mr}=this.withClassScores?await this.extractPredictedClass(d,at):{classScore:1,label:0};b.push({box:new Ct(ot,nt,ot+U,nt+O),score:E,classScore:E*Et,label:mr,...at})}}return f.dispose(),l.dispose(),d.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:a,anchor:i}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((c,m)=>s[r][a][i][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}};Se.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Xt=Se;var Jt=class extends Xt{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:to,classes:["face"],...t?{anchors:ro,meanRgb:oo}:{anchors:eo,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(a=>new D(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?ao:no}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function cd(o,t=!0){let e=new Jt(t);return e.extractWeights(o),e}var Ae=class extends q{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Y=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function _t(o,t,e,r,a=({alignedRect:i})=>i){let i=o.map(m=>Yt(m)?a(m):m.detection),s=r||(t instanceof n.Tensor?await oe(t,i):await re(t,i)),c=await e(s);return s.forEach(m=>m instanceof n.Tensor&&m.dispose()),c}async function qt(o,t,e,r,a){return _t([o],t,async i=>e(i[0]),r,a)}var mo=.4,po=[new v(1.603231,2.094468),new v(6.041143,7.080126),new v(2.882459,3.518061),new v(4.266906,5.178857),new v(9.041765,10.66308)],uo=[117.001,114.697,97.404];var Zt=class extends Xt{constructor(){let t={withSeparableConvs:!0,iouThreshold:mo,classes:["face"],anchors:po,meanRgb:uo,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(a=>new D(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Tt,tinyFaceDetector:new Zt,tinyYolov2:new Jt,faceLandmark68Net:new Gt,faceLandmark68TinyNet:new Ie,faceRecognitionNet:new jt,faceExpressionNet:new we,ageGenderNet:new Me},Ko=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),Rd=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),$d=(o,t)=>P.tinyYolov2.locateFaces(o,t),Qo=o=>P.faceLandmark68Net.detectLandmarks(o),Od=o=>P.faceLandmark68TinyNet.detectLandmarks(o),Hd=o=>P.faceRecognitionNet.computeFaceDescriptor(o),zd=o=>P.faceExpressionNet.predictExpressions(o),Yd=o=>P.ageGenderNet.predictAgeAndGender(o),tn=o=>P.ssdMobilenetv1.load(o),Vd=o=>P.tinyFaceDetector.load(o),Gd=o=>P.tinyYolov2.load(o),jd=o=>P.faceLandmark68Net.load(o),Ud=o=>P.faceLandmark68TinyNet.load(o),Xd=o=>P.faceRecognitionNet.load(o),Jd=o=>P.faceExpressionNet.load(o),qd=o=>P.ageGenderNet.load(o),Zd=tn,Kd=Ko,Qd=Qo;var We=class extends Y{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Pt=class extends We{async run(){let t=await this.parentTask,e=await _t(t,this.input,async r=>Promise.all(r.map(a=>P.faceExpressionNet.predictExpressions(a))),this.extractedFaces);return t.map((r,a)=>tr(r,e[a]))}withAgeAndGender(){return new Ft(this,this.input)}},wt=class extends We{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return tr(t,e)}withAgeAndGender(){return new Dt(this,this.input)}},ct=class extends Pt{withAgeAndGender(){return new pt(this,this.input)}withFaceDescriptors(){return new ft(this,this.input)}},mt=class extends wt{withAgeAndGender(){return new ut(this,this.input)}withFaceDescriptor(){return new lt(this,this.input)}};var ke=class extends Y{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Ft=class extends ke{async run(){let t=await this.parentTask,e=await _t(t,this.input,async r=>Promise.all(r.map(a=>P.ageGenderNet.predictAgeAndGender(a))),this.extractedFaces);return t.map((r,a)=>{let{age:i,gender:s,genderProbability:c}=e[a];return sr(ir(r,s,c),i)})}withFaceExpressions(){return new Pt(this,this.input)}},Dt=class extends ke{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:a}=await qt(t,this.input,i=>P.ageGenderNet.predictAgeAndGender(i),this.extractedFaces);return sr(ir(t,r,a),e)}withFaceExpressions(){return new wt(this,this.input)}},pt=class extends Ft{withFaceExpressions(){return new ct(this,this.input)}withFaceDescriptors(){return new ft(this,this.input)}},ut=class extends Dt{withFaceExpressions(){return new mt(this,this.input)}withFaceDescriptor(){return new lt(this,this.input)}};var Be=class extends Y{constructor(e,r){super();this.parentTask=e;this.input=r}},ft=class extends Be{async run(){let t=await this.parentTask;return(await _t(t,this.input,r=>Promise.all(r.map(a=>P.faceRecognitionNet.computeFaceDescriptor(a))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,a)=>ar(t[a],r))}withFaceExpressions(){return new ct(this,this.input)}withAgeAndGender(){return new pt(this,this.input)}},lt=class extends Be{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return ar(t,e)}withFaceExpressions(){return new mt(this,this.input)}withAgeAndGender(){return new ut(this,this.input)}};var Re=class extends Y{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},$e=class extends Re{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof n.Tensor?await oe(this.input,e):await re(this.input,e),a=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof n.Tensor&&s.dispose()),t.filter((s,c)=>a[c]).map((s,c)=>ie(s,a[c]))}withFaceExpressions(){return new ct(this,this.input)}withAgeAndGender(){return new pt(this,this.input)}withFaceDescriptors(){return new ft(this,this.input)}},Oe=class extends Re{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof n.Tensor?await oe(this.input,[e]):await re(this.input,[e]),a=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(i=>i instanceof n.Tensor&&i.dispose()),ie(t,a)}withFaceExpressions(){return new mt(this,this.input)}withAgeAndGender(){return new ut(this,this.input)}withFaceDescriptor(){return new lt(this,this.input)}};var He=class extends Y{constructor(e,r=new z){super();this.input=e;this.options=r}},me=class extends He{async run(){let{input:t,options:e}=this,r;if(e instanceof Ae)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof z)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof q)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((t,e)=>{this.run().then(r=>t(r.map(a=>St({},a)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new $e(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Pt(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Ft(this.runAndExtendWithFaceDetections(),this.input)}},ze=class extends He{async run(){let t=await new me(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?St({},e):void 0)})}withFaceLandmarks(t=!1){return new Oe(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new wt(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Dt(this.runAndExtendWithFaceDetection(),this.input)}};function qh(o,t=new z){return new ze(o,t)}function cr(o,t=new z){return new me(o,t)}async function en(o,t){return cr(o,new z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function rb(o,t={}){return cr(o,new q(t)).withFaceLandmarks().withFaceDescriptors()}var ob=en;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((a,i)=>a-r[i]).reduce((a,i)=>a+i*i,0))}var lo=class o{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 a=1,i=()=>`person ${a++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof gt)return s;if(s instanceof Float32Array)return new gt(i(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new gt(i(),[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,a)=>r+a,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Kt(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>gt.fromJSON(r));return new o(e,t.distanceThreshold)}};function Tb(o){let t=new Zt;return t.extractWeights(o),t}function rn(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(a=>rn(a,{width:e,height:r}));if(Yt(o)){let a=o.detection.forSize(e,r),i=o.unshiftedLandmarks.forSize(a.box.width,a.box.height);return ie(St(o,a),i)}return Q(o)?St(o,o.detection.forSize(e,r)):o instanceof $||o instanceof D?o.forSize(e,r):o}var Lb=Ar;export{Me as AgeGenderNet,Ct as BoundingBox,C as Box,Y as ComposableTask,ft as ComputeAllFaceDescriptorsTask,Be as ComputeFaceDescriptorsTaskBase,lt as ComputeSingleFaceDescriptorTask,$e as DetectAllFaceLandmarksTask,me as DetectAllFacesTask,Re as DetectFaceLandmarksTaskBase,He as DetectFacesTaskBase,Oe as DetectSingleFaceLandmarksTask,ze as DetectSingleFaceTask,A as Dimensions,Nr as FACE_EXPRESSION_LABELS,D as FaceDetection,Qr as FaceDetectionNet,we as FaceExpressionNet,it as FaceExpressions,Gt as FaceLandmark68Net,Ie as FaceLandmark68TinyNet,zr as FaceLandmarkNet,$ as FaceLandmarks,xr as FaceLandmarks5,Lt as FaceLandmarks68,Kt as FaceMatch,lo as FaceMatcher,jt as FaceRecognitionNet,rr as Gender,Qt as LabeledBox,gt as LabeledFaceDescriptors,tt as NetInput,I as NeuralNetwork,It as ObjectDetection,v as Point,vr as PredictedBox,Nt as Rect,Tt as SsdMobilenetv1,z as SsdMobilenetv1Options,Zt as TinyFaceDetector,Ae as TinyFaceDetectorOptions,Jt as TinyYolov2,q as TinyYolov2Options,ob as allFaces,en as allFacesSsdMobilenetv1,rb as allFacesTinyYolov2,yr as awaitMediaLoaded,Tr as bufferToImage,Hd as computeFaceDescriptor,Bt as createCanvas,be as createCanvasFromMedia,gl as createFaceDetectionNet,gf as createFaceRecognitionNet,Jo as createSsdMobilenetv1,Tb as createTinyFaceDetector,cd as createTinyYolov2,cr as detectAllFaces,Qo as detectFaceLandmarks,Od as detectFaceLandmarksTiny,Qd as detectLandmarks,qh as detectSingleFace,Sr as draw,_ as env,fo as euclideanDistance,sr as extendWithAge,ar as extendWithFaceDescriptor,St as extendWithFaceDetection,tr as extendWithFaceExpressions,ie as extendWithFaceLandmarks,ir as extendWithGender,oe as extractFaceTensors,re as extractFaces,Fi as fetchImage,wr as fetchJson,Ii as fetchNetWeights,st as fetchOrThrow,ki as fetchVideo,W as getContext2dOrThrow,kt as getMediaDimensions,_r as imageTensorToCanvas,Pr as imageToSquare,On as inverseSigmoid,dr as iou,Qe as isMediaElement,he as isMediaLoaded,Tf as isWithAge,Q as isWithFaceDetection,Lr as isWithFaceExpressions,Yt as isWithFaceLandmarks,Ff as isWithGender,qd as loadAgeGenderModel,Zd as loadFaceDetectionModel,Jd as loadFaceExpressionModel,jd as loadFaceLandmarkModel,Ud as loadFaceLandmarkTinyModel,Xd as loadFaceRecognitionModel,tn as loadSsdMobilenetv1Model,Vd as loadTinyFaceDetectorModel,Gd as loadTinyYolov2Model,Dr as loadWeightMap,Kd as locateFaces,Yi as matchDimensions,hr as minBbox,P as nets,br as nonMaxSuppression,J as normalize,gr as padToSquare,Yd as predictAgeAndGender,zd as recognizeFaceExpressions,rn as resizeResults,At as resolveInput,Rn as shuffleArray,fe as sigmoid,Ko as ssdMobilenetv1,n as tf,Rd as tinyFaceDetector,$d as tinyYolov2,F as toNetInput,lr as utils,so as validateConfig,Lb as version}; diff --git a/dist/face-api.esm.js b/dist/face-api.esm.js index 046b4df..8b8aad1 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -4,69 +4,69 @@ author: ' */ -var yR=Object.defineProperty;var xR=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var nx=(e,t)=>{for(var n in t)yR(e,n,{get:t[n],enumerable:!0})};var Pe={};nx(Pe,{Abs:()=>Yl,Acos:()=>Ni,Acosh:()=>Ti,AdadeltaOptimizer:()=>Vw,AdagradOptimizer:()=>Uw,AdamOptimizer:()=>Gw,AdamaxOptimizer:()=>Hw,Add:()=>xs,AddN:()=>Ci,All:()=>Zl,Any:()=>Jl,ArgMax:()=>Ql,ArgMin:()=>eu,Asin:()=>Ei,Asinh:()=>_i,Atan:()=>Ai,Atan2:()=>$i,Atanh:()=>Fi,AvgPool:()=>Di,AvgPool3D:()=>tu,AvgPool3DGrad:()=>Rc,AvgPoolGrad:()=>Dc,BackendWasm:()=>O$,BatchMatMul:()=>Ri,BatchToSpaceND:()=>nu,Bincount:()=>au,BitwiseAnd:()=>ru,BroadcastArgs:()=>Mc,BroadcastTo:()=>HS,Callback:()=>MC,CallbackList:()=>A2,Cast:()=>Mi,Ceil:()=>Oi,ClipByValue:()=>vs,Complex:()=>wm,ComplexAbs:()=>Oc,Concat:()=>su,Conv2D:()=>Pi,Conv2DBackpropFilter:()=>km,Conv2DBackpropInput:()=>Li,Conv3D:()=>zi,Conv3DBackpropFilterV2:()=>iu,Conv3DBackpropInputV2:()=>ou,Cos:()=>Wi,Cosh:()=>Bi,CropAndResize:()=>uu,Cumprod:()=>lu,Cumsum:()=>Vi,CustomCallback:()=>$2,DataStorage:()=>ym,DenseBincount:()=>Pc,DepthToSpace:()=>pu,DepthwiseConv2dNative:()=>Ui,DepthwiseConv2dNativeBackpropFilter:()=>Im,DepthwiseConv2dNativeBackpropInput:()=>Sm,Diag:()=>Lc,Dilation2D:()=>Gi,Dilation2DBackpropFilter:()=>Rl,Dilation2DBackpropInput:()=>Dl,Draw:()=>Nm,ENV:()=>Nv,EarlyStopping:()=>OC,Einsum:()=>Tm,Elu:()=>qi,EluGrad:()=>cu,Environment:()=>US,Equal:()=>du,Erf:()=>ji,Exp:()=>Ki,ExpandDims:()=>hu,Expm1:()=>Xi,FFT:()=>Cm,Fill:()=>zc,FlipLeftRight:()=>mu,Floor:()=>Yi,FloorDiv:()=>Zi,FromPixels:()=>Hh,FusedBatchNorm:()=>Ji,FusedConv2D:()=>ii,FusedDepthwiseConv2D:()=>oi,GPGPUContext:()=>Wh,GatherNd:()=>gu,GatherV2:()=>fu,GraphModel:()=>F1,Greater:()=>bu,GreaterEqual:()=>Qi,History:()=>F2,IFFT:()=>Em,Identity:()=>eo,Imag:()=>_m,InputSpec:()=>zt,IsFinite:()=>to,IsInf:()=>no,IsNan:()=>ao,KernelBackend:()=>Fc,LRN:()=>oo,LRNGrad:()=>Su,LayerVariable:()=>k2,LayersModel:()=>Cr,LeakyRelu:()=>ro,Less:()=>yu,LessEqual:()=>xu,LinSpace:()=>vu,Log:()=>so,Log1p:()=>io,LogSoftmax:()=>jS,LogicalAnd:()=>wu,LogicalNot:()=>ku,LogicalOr:()=>Iu,LogicalXor:()=>qS,LowerBound:()=>pM,MathBackendCPU:()=>R1,MathBackendWebGL:()=>lk,MatrixBandPart:()=>cM,Max:()=>lo,MaxPool:()=>po,MaxPool3D:()=>Nu,MaxPool3DGrad:()=>Bc,MaxPoolGrad:()=>Wc,MaxPoolWithArgmax:()=>Vc,Maximum:()=>uo,Mean:()=>co,Min:()=>ho,Minimum:()=>mo,MirrorPad:()=>fo,Mod:()=>go,MomentumOptimizer:()=>qw,Multinomial:()=>Tu,Multiply:()=>bo,Neg:()=>Cu,NonMaxSuppressionV3:()=>_u,NonMaxSuppressionV4:()=>Au,NonMaxSuppressionV5:()=>Fu,NotEqual:()=>Eu,OP_SCOPE_SUFFIX:()=>Av,OneHot:()=>yo,OnesLike:()=>$u,Optimizer:()=>Rr,OptimizerConstructors:()=>t2,Pack:()=>Du,PadV2:()=>xo,Pool:()=>dM,Pow:()=>vo,Prelu:()=>wo,Prod:()=>ko,RMSPropOptimizer:()=>jw,RNN:()=>Mr,RaggedGather:()=>Am,RaggedRange:()=>Fm,RaggedTensorToTensor:()=>$m,Range:()=>Uc,Rank:()=>wx,Real:()=>Dm,RealDiv:()=>Hi,Reciprocal:()=>Io,Reduction:()=>wn,Relu:()=>So,Relu6:()=>Co,Reshape:()=>Ru,ResizeBilinear:()=>To,ResizeBilinearGrad:()=>Ou,ResizeNearestNeighbor:()=>No,ResizeNearestNeighborGrad:()=>Mu,Reverse:()=>Eo,RotateWithOffset:()=>Zu,Round:()=>_o,Rsqrt:()=>Ao,SGDOptimizer:()=>mf,ScatterNd:()=>Pu,SearchSorted:()=>zu,Select:()=>Wu,Selu:()=>Fo,Sequential:()=>Cf,Sigmoid:()=>Mo,Sign:()=>Ro,Sin:()=>$o,Sinh:()=>Do,Slice:()=>Bu,Softmax:()=>zo,Softplus:()=>Oo,SpaceToBatchND:()=>Vu,SparseFillEmptyRows:()=>Gc,SparseReshape:()=>Gu,SparseSegmentMean:()=>Hc,SparseSegmentSum:()=>qc,SparseToDense:()=>Hu,SplitV:()=>Uu,Sqrt:()=>Po,Square:()=>jc,SquaredDifference:()=>Wo,StaticRegexReplace:()=>Kc,Step:()=>ks,StridedSlice:()=>qu,StringNGrams:()=>Xc,StringSplit:()=>Yc,StringToHashBucketFast:()=>Zc,Sub:()=>Bo,Sum:()=>Lo,SymbolicTensor:()=>Ha,Tan:()=>Vo,Tanh:()=>Uo,Tensor:()=>Ce,TensorBuffer:()=>Wt,TensorScatterUpdate:()=>Lu,Tile:()=>ws,TopK:()=>ju,Transform:()=>Ku,Transpose:()=>Tr,Unique:()=>Jc,Unpack:()=>Xu,UnsortedSegmentSum:()=>Qc,UpperBound:()=>hM,Variable:()=>os,ZerosLike:()=>Yu,_FusedMatMul:()=>si,abs:()=>Lt,acos:()=>Ov,acosh:()=>Pv,add:()=>X,addN:()=>vN,all:()=>Lm,any:()=>yc,argMax:()=>ci,argMin:()=>Lv,asin:()=>zv,asinh:()=>Wv,atan:()=>Bv,atan2:()=>Vv,atanh:()=>Uv,avgPool:()=>ya,avgPool3d:()=>Hv,backend:()=>$v,backend_util:()=>T,basicLSTMCell:()=>SN,batchNorm:()=>Ss,batchNorm2d:()=>qv,batchNorm3d:()=>jv,batchNorm4d:()=>Kv,batchToSpaceND:()=>id,bincount:()=>Xv,bitwiseAnd:()=>NN,booleanMaskAsync:()=>mT,broadcastArgs:()=>TN,broadcastTo:()=>ni,broadcast_util:()=>Ju,browser:()=>jo,buffer:()=>Oe,callbacks:()=>lj,cast:()=>re,ceil:()=>Yv,clipByValue:()=>an,clone:()=>sr,complex:()=>Er,concat:()=>et,concat1d:()=>Zv,concat2d:()=>Jv,concat3d:()=>Qv,concat4d:()=>ew,constraints:()=>T2,conv1d:()=>zm,conv2d:()=>$t,conv2dTranspose:()=>Wm,conv3d:()=>nw,conv3dTranspose:()=>aw,copyRegisteredKernels:()=>bM,cos:()=>od,cosh:()=>Bm,cosineWindow:()=>uf,cumprod:()=>wc,cumsum:()=>Vm,customGrad:()=>ur,data:()=>iE,denseBincount:()=>Xh,deprecationWarn:()=>Fv,depthToSpace:()=>rw,depthwiseConv2d:()=>Ns,deregisterOp:()=>cj,device_util:()=>ad,diag:()=>EN,dilation2d:()=>sw,disableDeprecationWarnings:()=>XM,dispose:()=>Ee,disposeVariables:()=>YM,div:()=>he,divNoNan:()=>iw,dot:()=>ow,dropout:()=>Pw,einsum:()=>Ys,elu:()=>Qu,enableDebugMode:()=>KM,enableProdMode:()=>jM,enclosingPowerOfTwo:()=>Lw,engine:()=>Ta,ensureShape:()=>AN,env:()=>G,equal:()=>Jn,erf:()=>lw,euclideanNorm:()=>cw,exp:()=>dn,expandDims:()=>Gt,expm1:()=>dw,eye:()=>Um,fft:()=>bd,fill:()=>yn,findBackend:()=>nO,findBackendFactory:()=>aO,floor:()=>tp,floorDiv:()=>Pm,forceHalfFloat:()=>AA,fused:()=>Vl,gather:()=>np,gatherND:()=>yT,gather_util:()=>Yw,getBackend:()=>oN,getGradient:()=>xx,getKernel:()=>fc,getKernelsForBackend:()=>qh,getThreadsCount:()=>Nfe,gpgpu_util:()=>oA,grad:()=>M3,grads:()=>O3,greater:()=>Tn,greaterEqual:()=>$r,ifft:()=>Bl,imag:()=>ld,image:()=>Zn,inTopKAsync:()=>xT,initializers:()=>C2,input:()=>q2,io:()=>qt,irfft:()=>nf,isFinite:()=>hw,isInf:()=>mw,isNaN:()=>fw,keep:()=>Ht,kernel_impls:()=>hr,layers:()=>E2,leakyRelu:()=>ud,less:()=>Pl,lessEqual:()=>Ts,linalg:()=>Bw,linspace:()=>MN,loadGraphModel:()=>b5,loadGraphModelSync:()=>y5,loadLayersModel:()=>r6,localResponseNormalization:()=>gw,log:()=>Qn,log1p:()=>pd,logSigmoid:()=>bw,logSoftmax:()=>Hm,logSumExp:()=>cd,logicalAnd:()=>_a,logicalNot:()=>dd,logicalOr:()=>qm,logicalXor:()=>yw,losses:()=>FT,lowerBound:()=>PN,matMul:()=>$e,math:()=>VT,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>xw,maxPoolWithArgmax:()=>LN,maximum:()=>dr,mean:()=>Ct,memory:()=>Kh,meshgrid:()=>zN,metrics:()=>$C,min:()=>Ol,minimum:()=>cs,mirrorPad:()=>vw,mod:()=>ww,model:()=>o6,models:()=>DC,moments:()=>hd,movingAverage:()=>fT,mul:()=>z,multiRNNCell:()=>WN,multinomial:()=>BN,neg:()=>yt,nextFrame:()=>Zw,norm:()=>ep,notEqual:()=>fi,oneHot:()=>Ll,ones:()=>On,onesLike:()=>ea,op:()=>L,outerProduct:()=>VN,pad:()=>xa,pad1d:()=>UN,pad2d:()=>GN,pad3d:()=>HN,pad4d:()=>qN,pool:()=>kw,pow:()=>_r,prelu:()=>fd,print:()=>Mv,prod:()=>Iw,profile:()=>ZM,raggedGather:()=>jN,raggedRange:()=>KN,raggedTensorToTensor:()=>XN,rand:()=>YN,randomGamma:()=>eT,randomNormal:()=>Km,randomStandardNormal:()=>tT,randomUniform:()=>Cs,randomUniformInt:()=>nT,range:()=>gi,ready:()=>eO,real:()=>zl,reciprocal:()=>Ew,registerBackend:()=>Om,registerCallbackConstructor:()=>u6,registerGradient:()=>KS,registerKernel:()=>ed,registerOp:()=>pj,regularizers:()=>RC,relu:()=>Ke,relu6:()=>Xm,removeBackend:()=>tO,reshape:()=>W,reverse:()=>ba,reverse1d:()=>aT,reverse2d:()=>rT,reverse3d:()=>sT,reverse4d:()=>iT,rfft:()=>yd,round:()=>Ym,rsqrt:()=>Zm,scalar:()=>ve,scatterND:()=>gT,scatter_util:()=>rf,searchSorted:()=>jm,selu:()=>Jm,separableConv2d:()=>Es,sequential:()=>l6,serialization:()=>ne,setBackend:()=>QM,setPlatform:()=>rO,setThreadsCount:()=>Sfe,setWasmPath:()=>kfe,setWasmPaths:()=>Ife,setWebGLContext:()=>F_,setdiff1dAsync:()=>oT,shared:()=>M1,sigmoid:()=>ha,sign:()=>_w,signal:()=>AT,sin:()=>Qm,sinh:()=>ef,slice:()=>Ve,slice1d:()=>gd,slice2d:()=>tf,slice3d:()=>Ho,slice4d:()=>Wl,slice_util:()=>Kt,softmax:()=>ja,softplus:()=>Go,spaceToBatchND:()=>md,sparse:()=>$T,sparseToDense:()=>bT,spectral:()=>_T,split:()=>Pn,sqrt:()=>cn,square:()=>pt,squaredDifference:()=>af,squeeze:()=>_s,stack:()=>At,step:()=>qo,stridedSlice:()=>Aw,string:()=>DT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Mm,tan:()=>Fw,tanh:()=>hi,tensor:()=>bn,tensor1d:()=>qe,tensor2d:()=>Ea,tensor3d:()=>xd,tensor4d:()=>Fa,tensor5d:()=>lT,tensor6d:()=>uT,tensorScatterUpdate:()=>cT,tensor_util:()=>Wa,test_util:()=>ZN,tidy:()=>O,tile:()=>Mn,time:()=>JM,topk:()=>Dw,train:()=>Ks,transpose:()=>De,truncatedNormal:()=>of,unique:()=>Rw,unregisterGradient:()=>gM,unregisterKernel:()=>fM,unsortedSegmentSum:()=>lf,unstack:()=>dt,upcastType:()=>fa,upperBound:()=>dT,util:()=>w,valueAndGrad:()=>P3,valueAndGrads:()=>L3,variable:()=>Mw,variableGrads:()=>ON,version:()=>$fe,version_converter:()=>v5,version_core:()=>l4,version_cpu:()=>w8,version_layers:()=>v0,version_wasm:()=>Tfe,version_webgl:()=>pee,webgl:()=>cee,webgl_util:()=>A_,where:()=>nn,whereAsync:()=>Ow,zeros:()=>It,zerosLike:()=>je});var vR=Object.create,wv=Object.defineProperty,wR=Object.getOwnPropertyDescriptor,kR=Object.getOwnPropertyNames,IR=Object.getPrototypeOf,SR=Object.prototype.hasOwnProperty,Vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_e=(e,t)=>{for(var n in t)wv(e,n,{get:t[n],enumerable:!0})},NR=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of kR(t))!SR.call(e,r)&&r!==n&&wv(e,r,{get:()=>t[r],enumerable:!(a=wR(t,r))||a.enumerable});return e},ys=(e,t,n)=>(n=e!=null?vR(IR(e)):{},NR(t||!e||!e.__esModule?wv(n,"default",{value:e,enumerable:!0}):n,e)),TR=Vt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?v:x;if(M){if(S<0)return v;if(S>=g)return F}else{if(S<=-b)return D;if(S+1>=b)return _}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var H=l(p(B,8)),j=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(j=Z,j.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,j=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,se=0;return se+=H+J,te+=se>>>16,se&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+j,ee&=65535,u(te<<16|se,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,j=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,se=0,ie=0;return ie+=j*ee,se+=ie>>>16,ie&=65535,se+=H*ee,te+=se>>>16,se&=65535,se+=j*J,te+=se>>>16,se&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=j*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+j*K,ae&=65535,u(se<<16|ie,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?v:x;var B,U,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return v;if(S.gt(this.shru(1)))return N;H=v}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var j=this.shr(1);return B=j.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))return this.unsigned?v:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();H=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},$.shr=$.shiftRight,$.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},$.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),CR=Vt(()=>{}),ER=Vt(()=>{}),_R=Vt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}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)}),AR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),FR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=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^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),$R=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),DR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,b,y=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,d.i=f}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),RR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),MR=Vt(()=>{}),OR=Vt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,N,C){var _=[];N=N==!0?{entropy:!0}:N||{};var F=y(b(N.entropy?[I,v(a)]:I==null?x():I,3),_),D=new f(_),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(v(D.S),a),(N.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),B?(r[l]=S,M):S})($,F,"global"in N?N.global:this==r,N.state)}function f(I){var N,C=I.length,_=this,F=0,D=_.i=_.j=0,$=_.S=[];for(C||(I=[C++]);F{var n=_R(),a=AR(),r=FR(),s=$R(),i=DR(),o=RR(),l=OR();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),FS=Vt(()=>{}),kv=Vt(()=>{}),$S=Vt(()=>{}),PR=Vt(()=>{}),LR=Vt(()=>{}),zR=Vt(()=>{}),WR=Vt((e,t)=>{var n=(()=>{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 ue.buffer!=Re&&ut(ue.buffer),gt}function i(){return ue.buffer!=Re&&ut(ue.buffer),Gn}function o(){return ue.buffer!=Re&&ut(ue.buffer),Ot}function l(){return ue.buffer!=Re&&ut(ue.buffer),ln}function u(){return ue.buffer!=Re&&ut(ue.buffer),An}function p(){return ue.buffer!=Re&&ut(ue.buffer),oa}function d(){return ue.buffer!=Re&&ut(ue.buffer),Fn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,q){h=R,m=q});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,q)=>{throw q},v=typeof window=="object",I=typeof importScripts=="function",N=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,_="";function F(R){return c.locateFile?c.locateFile(R,_):_+R}var D,$,S,M;function B(R){R instanceof Us||J("exiting due to exception: "+R)}if(N){var U=kv(),H=$S();I?_=H.dirname(_)+"/":_=__dirname+"/",D=(q,le)=>(q=gl(q)?new URL(q):H.normalize(q),U.readFileSync(q,le?void 0:"utf8")),S=q=>{var le=D(q,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(q,le,Ne)=>{q=gl(q)?new URL(q):H.normalize(q),U.readFile(q,function(Me,Fe){Me?Ne(Me):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(q){if(!(q instanceof Us))throw q}),process.on("unhandledRejection",function(q){throw q}),x=(q,le)=>{if(Ia())throw process.exitCode=q,le;B(le),process.exit(q)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=PR()}catch(q){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),q}global.Worker=R.Worker}else(v||I)&&(I?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof a!="undefined"&&a&&(_=a),_.indexOf("blob:")!==0?_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):_="",N||(D=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.send(null),q.responseText},I&&(S=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.responseType="arraybuffer",q.send(null),new Uint8Array(q.response)}),$=(R,q,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){q(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);N&&typeof performance=="undefined"&&(global.performance=LR().performance);var j=console.log.bind(console),K=console.warn.bind(console);N&&(j=R=>U.writeSync(1,R+` +var vR=Object.defineProperty;var wR=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ax=(e,t)=>{for(var n in t)vR(e,n,{get:t[n],enumerable:!0})};var Pe={};ax(Pe,{Abs:()=>Yl,Acos:()=>Ni,Acosh:()=>Ti,AdadeltaOptimizer:()=>Vw,AdagradOptimizer:()=>Uw,AdamOptimizer:()=>Gw,AdamaxOptimizer:()=>Hw,Add:()=>vs,AddN:()=>Ci,All:()=>Zl,Any:()=>Jl,ArgMax:()=>Ql,ArgMin:()=>eu,Asin:()=>Ei,Asinh:()=>_i,Atan:()=>Ai,Atan2:()=>$i,Atanh:()=>Fi,AvgPool:()=>Di,AvgPool3D:()=>tu,AvgPool3DGrad:()=>Rc,AvgPoolGrad:()=>Dc,BackendWasm:()=>L$,BatchMatMul:()=>Ri,BatchToSpaceND:()=>nu,Bincount:()=>au,BitwiseAnd:()=>ru,BroadcastArgs:()=>Mc,BroadcastTo:()=>HS,Callback:()=>PC,CallbackList:()=>A2,Cast:()=>Mi,Ceil:()=>Oi,ClipByValue:()=>ws,Complex:()=>wm,ComplexAbs:()=>Oc,Concat:()=>su,Conv2D:()=>Pi,Conv2DBackpropFilter:()=>km,Conv2DBackpropInput:()=>Li,Conv3D:()=>zi,Conv3DBackpropFilterV2:()=>iu,Conv3DBackpropInputV2:()=>ou,Cos:()=>Wi,Cosh:()=>Bi,CropAndResize:()=>uu,Cumprod:()=>lu,Cumsum:()=>Vi,CustomCallback:()=>$2,DataStorage:()=>ym,DenseBincount:()=>Pc,DepthToSpace:()=>pu,DepthwiseConv2dNative:()=>Ui,DepthwiseConv2dNativeBackpropFilter:()=>Im,DepthwiseConv2dNativeBackpropInput:()=>Sm,Diag:()=>Lc,Dilation2D:()=>Gi,Dilation2DBackpropFilter:()=>Rl,Dilation2DBackpropInput:()=>Dl,Draw:()=>Nm,ENV:()=>Tv,EarlyStopping:()=>LC,Einsum:()=>Tm,Elu:()=>ji,EluGrad:()=>cu,Environment:()=>US,Equal:()=>du,Erf:()=>qi,Exp:()=>Ki,ExpandDims:()=>hu,Expm1:()=>Xi,FFT:()=>Cm,Fill:()=>zc,FlipLeftRight:()=>mu,Floor:()=>Yi,FloorDiv:()=>Zi,FromPixels:()=>Hh,FusedBatchNorm:()=>Ji,FusedConv2D:()=>oi,FusedDepthwiseConv2D:()=>li,GPGPUContext:()=>Wh,GatherNd:()=>gu,GatherV2:()=>fu,GraphModel:()=>F1,Greater:()=>bu,GreaterEqual:()=>Qi,History:()=>F2,IFFT:()=>Em,Identity:()=>eo,Imag:()=>_m,InputSpec:()=>zt,IsFinite:()=>to,IsInf:()=>no,IsNan:()=>ao,KernelBackend:()=>Fc,LRN:()=>oo,LRNGrad:()=>Su,LayerVariable:()=>k2,LayersModel:()=>Er,LeakyRelu:()=>ro,Less:()=>yu,LessEqual:()=>xu,LinSpace:()=>vu,Log:()=>so,Log1p:()=>io,LogSoftmax:()=>qS,LogicalAnd:()=>wu,LogicalNot:()=>ku,LogicalOr:()=>Iu,LogicalXor:()=>jS,LowerBound:()=>dM,MathBackendCPU:()=>R1,MathBackendWebGL:()=>lk,MatrixBandPart:()=>hM,Max:()=>lo,MaxPool:()=>po,MaxPool3D:()=>Nu,MaxPool3DGrad:()=>Bc,MaxPoolGrad:()=>Wc,MaxPoolWithArgmax:()=>Vc,Maximum:()=>uo,Mean:()=>co,Min:()=>ho,Minimum:()=>mo,MirrorPad:()=>fo,Mod:()=>go,MomentumOptimizer:()=>jw,Multinomial:()=>Tu,Multiply:()=>bo,Neg:()=>Cu,NonMaxSuppressionV3:()=>_u,NonMaxSuppressionV4:()=>Au,NonMaxSuppressionV5:()=>Fu,NotEqual:()=>Eu,OP_SCOPE_SUFFIX:()=>Fv,OneHot:()=>yo,OnesLike:()=>$u,Optimizer:()=>Rr,OptimizerConstructors:()=>t2,Pack:()=>Du,PadV2:()=>xo,Pool:()=>mM,Pow:()=>vo,Prelu:()=>wo,Prod:()=>ko,RMSPropOptimizer:()=>qw,RNN:()=>Mr,RaggedGather:()=>Am,RaggedRange:()=>Fm,RaggedTensorToTensor:()=>$m,Range:()=>Uc,Rank:()=>kx,Real:()=>Dm,RealDiv:()=>Hi,Reciprocal:()=>Io,Reduction:()=>kn,Relu:()=>So,Relu6:()=>Co,Reshape:()=>Ru,ResizeBilinear:()=>To,ResizeBilinearGrad:()=>Ou,ResizeNearestNeighbor:()=>No,ResizeNearestNeighborGrad:()=>Mu,Reverse:()=>Eo,RotateWithOffset:()=>Zu,Round:()=>_o,Rsqrt:()=>Ao,SGDOptimizer:()=>ff,ScatterNd:()=>Pu,SearchSorted:()=>zu,Select:()=>Wu,Selu:()=>Fo,Sequential:()=>Ef,Sigmoid:()=>Mo,Sign:()=>Ro,Sin:()=>$o,Sinh:()=>Do,Slice:()=>Bu,Softmax:()=>zo,Softplus:()=>Oo,SpaceToBatchND:()=>Vu,SparseFillEmptyRows:()=>Gc,SparseReshape:()=>Gu,SparseSegmentMean:()=>Hc,SparseSegmentSum:()=>jc,SparseToDense:()=>Hu,SplitV:()=>Uu,Sqrt:()=>Po,Square:()=>qc,SquaredDifference:()=>Wo,StaticRegexReplace:()=>Kc,Step:()=>Is,StridedSlice:()=>ju,StringNGrams:()=>Xc,StringSplit:()=>Yc,StringToHashBucketFast:()=>Zc,Sub:()=>Bo,Sum:()=>Lo,SymbolicTensor:()=>Ha,Tan:()=>Vo,Tanh:()=>Uo,Tensor:()=>Ce,TensorBuffer:()=>Wt,TensorScatterUpdate:()=>Lu,Tile:()=>ks,TopK:()=>qu,Transform:()=>Ku,Transpose:()=>Cr,Unique:()=>Jc,Unpack:()=>Xu,UnsortedSegmentSum:()=>Qc,UpperBound:()=>fM,Variable:()=>os,ZerosLike:()=>Yu,_FusedMatMul:()=>ii,abs:()=>Lt,acos:()=>Pv,acosh:()=>Lv,add:()=>X,addN:()=>vN,all:()=>Lm,any:()=>yc,argMax:()=>di,argMin:()=>zv,asin:()=>Wv,asinh:()=>Bv,atan:()=>Vv,atan2:()=>Uv,atanh:()=>Gv,avgPool:()=>ya,avgPool3d:()=>jv,backend:()=>Dv,backend_util:()=>T,basicLSTMCell:()=>SN,batchNorm:()=>Ns,batchNorm2d:()=>qv,batchNorm3d:()=>Kv,batchNorm4d:()=>Xv,batchToSpaceND:()=>id,bincount:()=>Yv,bitwiseAnd:()=>NN,booleanMaskAsync:()=>mT,broadcastArgs:()=>TN,broadcastTo:()=>ai,broadcast_util:()=>Ju,browser:()=>qo,buffer:()=>Oe,callbacks:()=>dq,cast:()=>re,ceil:()=>Zv,clipByValue:()=>an,clone:()=>sr,complex:()=>_r,concat:()=>et,concat1d:()=>Jv,concat2d:()=>Qv,concat3d:()=>ew,concat4d:()=>tw,constraints:()=>T2,conv1d:()=>zm,conv2d:()=>$t,conv2dTranspose:()=>Wm,conv3d:()=>aw,conv3dTranspose:()=>rw,copyRegisteredKernels:()=>xM,cos:()=>od,cosh:()=>Bm,cosineWindow:()=>pf,cumprod:()=>wc,cumsum:()=>Vm,customGrad:()=>pr,data:()=>lE,denseBincount:()=>Xh,deprecationWarn:()=>$v,depthToSpace:()=>sw,depthwiseConv2d:()=>Ts,deregisterOp:()=>fq,device_util:()=>ad,diag:()=>EN,dilation2d:()=>iw,disableDeprecationWarnings:()=>ZM,dispose:()=>Ee,disposeVariables:()=>JM,div:()=>he,divNoNan:()=>ow,dot:()=>lw,dropout:()=>Pw,einsum:()=>Zs,elu:()=>Qu,enableDebugMode:()=>YM,enableProdMode:()=>XM,enclosingPowerOfTwo:()=>Lw,engine:()=>Ta,ensureShape:()=>AN,env:()=>G,equal:()=>Jn,erf:()=>Um,euclideanNorm:()=>cw,exp:()=>dn,expandDims:()=>Gt,expm1:()=>dw,eye:()=>Gm,fft:()=>bd,fill:()=>yn,findBackend:()=>rO,findBackendFactory:()=>sO,floor:()=>tp,floorDiv:()=>Pm,forceHalfFloat:()=>$A,fused:()=>Vl,gather:()=>np,gatherND:()=>yT,gather_util:()=>Yw,getBackend:()=>oN,getGradient:()=>vx,getKernel:()=>fc,getKernelsForBackend:()=>jh,getThreadsCount:()=>_fe,gpgpu_util:()=>uA,grad:()=>P3,grads:()=>L3,greater:()=>Cn,greaterEqual:()=>$r,ifft:()=>Bl,imag:()=>ld,image:()=>Zn,inTopKAsync:()=>xT,initializers:()=>C2,input:()=>j2,io:()=>jt,irfft:()=>af,isFinite:()=>hw,isInf:()=>mw,isNaN:()=>fw,keep:()=>Ht,kernel_impls:()=>mr,layers:()=>E2,leakyRelu:()=>ud,less:()=>Pl,lessEqual:()=>Cs,linalg:()=>Bw,linspace:()=>MN,loadGraphModel:()=>w5,loadGraphModelSync:()=>k5,loadLayersModel:()=>oj,localResponseNormalization:()=>gw,log:()=>Qn,log1p:()=>pd,logSigmoid:()=>bw,logSoftmax:()=>jm,logSumExp:()=>cd,logicalAnd:()=>_a,logicalNot:()=>dd,logicalOr:()=>qm,logicalXor:()=>yw,losses:()=>FT,lowerBound:()=>PN,matMul:()=>$e,math:()=>VT,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>xw,maxPoolWithArgmax:()=>LN,maximum:()=>hr,mean:()=>Ct,memory:()=>Kh,meshgrid:()=>zN,metrics:()=>RC,min:()=>Ol,minimum:()=>ds,mirrorPad:()=>vw,mod:()=>ww,model:()=>pj,models:()=>MC,moments:()=>hd,movingAverage:()=>fT,mul:()=>z,multiRNNCell:()=>WN,multinomial:()=>BN,neg:()=>yt,nextFrame:()=>Zw,norm:()=>ep,notEqual:()=>fi,oneHot:()=>Ll,ones:()=>Pn,onesLike:()=>ea,op:()=>L,outerProduct:()=>VN,pad:()=>xa,pad1d:()=>UN,pad2d:()=>GN,pad3d:()=>HN,pad4d:()=>jN,pool:()=>kw,pow:()=>ur,prelu:()=>fd,print:()=>Ov,prod:()=>Iw,profile:()=>QM,raggedGather:()=>qN,raggedRange:()=>KN,raggedTensorToTensor:()=>XN,rand:()=>YN,randomGamma:()=>eT,randomNormal:()=>Xm,randomStandardNormal:()=>tT,randomUniform:()=>Es,randomUniformInt:()=>nT,range:()=>gi,ready:()=>nO,real:()=>zl,reciprocal:()=>Ew,registerBackend:()=>Om,registerCallbackConstructor:()=>dj,registerGradient:()=>KS,registerKernel:()=>ed,registerOp:()=>mq,regularizers:()=>OC,relu:()=>Ke,relu6:()=>Ym,removeBackend:()=>aO,reshape:()=>W,reverse:()=>ba,reverse1d:()=>aT,reverse2d:()=>rT,reverse3d:()=>sT,reverse4d:()=>iT,rfft:()=>yd,round:()=>Zm,rsqrt:()=>Jm,scalar:()=>xe,scatterND:()=>gT,scatter_util:()=>sf,searchSorted:()=>Km,selu:()=>Qm,separableConv2d:()=>_s,sequential:()=>cj,serialization:()=>ne,setBackend:()=>tO,setPlatform:()=>iO,setThreadsCount:()=>Efe,setWasmPath:()=>Tfe,setWasmPaths:()=>Cfe,setWebGLContext:()=>D_,setdiff1dAsync:()=>oT,shared:()=>M1,sigmoid:()=>ha,sign:()=>_w,signal:()=>AT,sin:()=>ef,sinh:()=>tf,slice:()=>Ve,slice1d:()=>gd,slice2d:()=>nf,slice3d:()=>Ho,slice4d:()=>Wl,slice_util:()=>Kt,softmax:()=>qa,softplus:()=>Go,spaceToBatchND:()=>md,sparse:()=>$T,sparseToDense:()=>bT,spectral:()=>_T,split:()=>Ln,sqrt:()=>rn,square:()=>pt,squaredDifference:()=>rf,squeeze:()=>As,stack:()=>At,step:()=>jo,stridedSlice:()=>Aw,string:()=>DT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Mm,tan:()=>Fw,tanh:()=>cs,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Ea,tensor3d:()=>xd,tensor4d:()=>Fa,tensor5d:()=>lT,tensor6d:()=>uT,tensorScatterUpdate:()=>cT,tensor_util:()=>Wa,test_util:()=>ZN,tidy:()=>O,tile:()=>On,time:()=>eO,topk:()=>Dw,train:()=>Xs,transpose:()=>De,truncatedNormal:()=>lf,unique:()=>Rw,unregisterGradient:()=>yM,unregisterKernel:()=>bM,unsortedSegmentSum:()=>uf,unstack:()=>dt,upcastType:()=>fa,upperBound:()=>dT,util:()=>w,valueAndGrad:()=>z3,valueAndGrads:()=>W3,variable:()=>Mw,variableGrads:()=>ON,version:()=>Ofe,version_converter:()=>S5,version_core:()=>p4,version_cpu:()=>NK,version_layers:()=>v0,version_wasm:()=>Afe,version_webgl:()=>mee,webgl:()=>fee,webgl_util:()=>$_,where:()=>nn,whereAsync:()=>Ow,zeros:()=>It,zerosLike:()=>qe});var kR=Object.create,kv=Object.defineProperty,IR=Object.getOwnPropertyDescriptor,SR=Object.getOwnPropertyNames,NR=Object.getPrototypeOf,TR=Object.prototype.hasOwnProperty,Vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_e=(e,t)=>{for(var n in t)kv(e,n,{get:t[n],enumerable:!0})},CR=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of SR(t))!TR.call(e,r)&&r!==n&&kv(e,r,{get:()=>t[r],enumerable:!(a=IR(t,r))||a.enumerable});return e},xs=(e,t,n)=>(n=e!=null?kR(NR(e)):{},CR(t||!e||!e.__esModule?kv(n,"default",{value:e,enumerable:!0}):n,e)),ER=Vt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?v:x;if(M){if(S<0)return v;if(S>=g)return F}else{if(S<=-b)return D;if(S+1>=b)return _}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var H=l(p(B,8)),q=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,se=0;return se+=H+J,te+=se>>>16,se&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|se,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,se=0,ie=0;return ie+=q*ee,se+=ie>>>16,ie&=65535,se+=H*ee,te+=se>>>16,se&=65535,se+=q*J,te+=se>>>16,se&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+q*K,ae&=65535,u(se<<16|ie,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?v:x;var B,U,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return v;if(S.gt(this.shru(1)))return N;H=v}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))return this.unsigned?v:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();H=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},$.shr=$.shiftRight,$.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},$.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),_R=Vt(()=>{}),AR=Vt(()=>{}),FR=Vt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}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)}),$R=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),DR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=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^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),RR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),MR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,b,y=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,d.i=f}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),OR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),PR=Vt(()=>{}),LR=Vt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,N,C){var _=[];N=N==!0?{entropy:!0}:N||{};var F=y(b(N.entropy?[I,v(a)]:I==null?x():I,3),_),D=new f(_),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(v(D.S),a),(N.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),B?(r[l]=S,M):S})($,F,"global"in N?N.global:this==r,N.state)}function f(I){var N,C=I.length,_=this,F=0,D=_.i=_.j=0,$=_.S=[];for(C||(I=[C++]);F{var n=FR(),a=$R(),r=DR(),s=RR(),i=MR(),o=OR(),l=LR();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),FS=Vt(()=>{}),Iv=Vt(()=>{}),$S=Vt(()=>{}),zR=Vt(()=>{}),WR=Vt(()=>{}),BR=Vt(()=>{}),VR=Vt((e,t)=>{var n=(()=>{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 ue.buffer!=Re&&ut(ue.buffer),gt}function i(){return ue.buffer!=Re&&ut(ue.buffer),Gn}function o(){return ue.buffer!=Re&&ut(ue.buffer),Ot}function l(){return ue.buffer!=Re&&ut(ue.buffer),un}function u(){return ue.buffer!=Re&&ut(ue.buffer),Fn}function p(){return ue.buffer!=Re&&ut(ue.buffer),oa}function d(){return ue.buffer!=Re&&ut(ue.buffer),$n}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,j){h=R,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,j)=>{throw j},v=typeof window=="object",I=typeof importScripts=="function",N=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,_="";function F(R){return c.locateFile?c.locateFile(R,_):_+R}var D,$,S,M;function B(R){R instanceof Gs||J("exiting due to exception: "+R)}if(N){var U=Iv(),H=$S();I?_=H.dirname(_)+"/":_=__dirname+"/",D=(j,le)=>(j=gl(j)?new URL(j):H.normalize(j),U.readFileSync(j,le?void 0:"utf8")),S=j=>{var le=D(j,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(j,le,Ne)=>{j=gl(j)?new URL(j):H.normalize(j),U.readFile(j,function(Me,Fe){Me?Ne(Me):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Gs))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,le)=>{if(Ia())throw process.exitCode=j,le;B(le),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=zR()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=R.Worker}else(v||I)&&(I?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof a!="undefined"&&a&&(_=a),_.indexOf("blob:")!==0?_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):_="",N||(D=R=>{var j=new XMLHttpRequest;return j.open("GET",R,!1),j.send(null),j.responseText},I&&(S=R=>{var j=new XMLHttpRequest;return j.open("GET",R,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),$=(R,j,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){j(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);N&&typeof performance=="undefined"&&(global.performance=WR().performance);var q=console.log.bind(console),K=console.warn.bind(console);N&&(q=R=>U.writeSync(1,R+` `),K=R=>U.writeSync(2,R+` -`));var Z=c.print||j,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,se=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var xe=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Vs("no native wasm support detected");var ue,ye,ke=!1,Se;function Le(R,q){R||Vs(q)}var Ue=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function mt(R,q,le){q>>>=0;for(var Ne=q+le,Me=q;R[Me]&&!(Me>=Ne);)++Me;if(Me-q>16&&R.buffer&&Ue)return Ue.decode(R.buffer instanceof SharedArrayBuffer?R.slice(q,Me):R.subarray(q,Me));for(var Fe="";q>10,56320|ua&1023)}}return Fe}function st(R,q){return R>>>=0,R?mt(i(),R,q):""}function tt(R,q,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Me=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var Tt=R.charCodeAt(++me);we=65536+((we&1023)<<10)|Tt&1023}if(we<=127){if(le>=Fe)break;q[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;q[le++>>>0]=192|we>>6,q[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;q[le++>>>0]=224|we>>12,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;q[le++>>>0]=240|we>>18,q[le++>>>0]=128|we>>12&63,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}}return q[le>>>0]=0,le-Me}function nt(R,q,le){return tt(R,i(),q,le)}var Re,gt,Gn,Ot,ia,ln,An,oa,Fn;C&&(Re=c.buffer);function ut(R){Re=R,c.HEAP8=gt=new Int8Array(R),c.HEAP16=Ot=new Int16Array(R),c.HEAP32=ln=new Int32Array(R),c.HEAPU8=Gn=new Uint8Array(R),c.HEAPU16=ia=new Uint16Array(R),c.HEAPU32=An=new Uint32Array(R),c.HEAPF32=oa=new Float32Array(R),c.HEAPF64=Fn=new Float64Array(R)}var $n=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Re=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:$n/65536,maximum:65536,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),N&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Re=ue.buffer),$n=Re.byteLength,ut(Re);var Hn,yr=[],ml=[],Za=[],Wp=!1;function Ia(){return xe}function Ur(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Ig(c.preRun.shift());Vp(yr)}function Jt(){Wp=!0,!C&&Vp(ml)}function Hd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Rk(c.postRun.shift());Vp(Za)}}function Ig(R){yr.unshift(R)}function Sg(R){ml.unshift(R)}function Rk(R){Za.unshift(R)}var Gr=0,fl=null,xr=null;function Ng(R){Gr++,c.monitorRunDependencies&&c.monitorRunDependencies(Gr)}function qd(R){if(Gr--,c.monitorRunDependencies&&c.monitorRunDependencies(Gr),Gr==0&&(fl!==null&&(clearInterval(fl),fl=null),xr)){var q=xr;xr=null,q()}}function Vs(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(R);throw m(q),q}var Tg="data:application/octet-stream;base64,";function jd(R){return R.startsWith(Tg)}function gl(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",jd(gn)||(gn=F(gn));function Kd(R){try{if(R==gn&&ie)return new Uint8Array(ie);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(q){Vs(q)}}function Cg(){if(!ie&&(v||I)){if(typeof fetch=="function"&&!gl(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return Kd(gn)});if($)return new Promise(function(R,q){$(gn,function(le){R(new Uint8Array(le))},q)})}return Promise.resolve().then(function(){return Kd(gn)})}function Eg(){var R={env:oh,wasi_snapshot_preview1:oh};function q(me,we){var Tt=me.exports;if(c.asm=Tt,Pg(c.asm._emscripten_tls_init),Hn=c.asm.__indirect_function_table,Sg(c.asm.__wasm_call_ctors),ye=we,!C){var ua=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(wr){Ae.loadWasmModuleToWorker(wr,function(){--ua||qd("wasm-instantiate")})})}}C||Ng("wasm-instantiate");function le(me){q(me.instance,me.module)}function Ne(me){return Cg().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Vs(we)})}function Me(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!jd(gn)&&!gl(gn)&&!N&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(Tt){return J("wasm streaming compile failed: "+Tt),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,q);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Me().catch(m),{}}var Mk,Ok,Xd={};function Us(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function _g(R){var q=Ae.pthreads[R];delete Ae.pthreads[R],q.terminate(),Qy(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(q),1),q.pthread_ptr=0}function Ag(R){var q=Ae.pthreads[R];q.postMessage({cmd:"cancel"})}function Bp(R){var q=Ae.pthreads[R];Le(q),Ae.returnWorkerToPool(q)}function Fg(R){var q=Ae.getNewWorker();if(!q)return 6;Ae.runningWorkers.push(q),Ae.pthreads[R.pthread_ptr]=q,q.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return q.runPthread=()=>{N&&q.ref(),q.postMessage(le,R.transferList),delete q.runPthread},q.loaded&&q.runPthread(),0}var Yd={varargs:void 0,get:function(){Yd.varargs+=4;var R=l()[Yd.varargs-4>>>2];return R},getStr:function(R){var q=st(R);return q}};function Zd(R){if(C)return Hr(1,1,R);Se=R,Ia()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new Us(R))}function $g(R,q){if(Se=R,!q&&C)throw Qd(R),"unwind";Zd(R)}var Jd=$g;function Dg(R){if(R instanceof Us||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){xe=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var q=R.pthread_ptr;delete Ae.pthreads[q],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,N&&R.unref(),Qy(q)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,q){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=hh()){var Tt=Ae.pthreads[me.targetThread];Tt?Tt.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?Up(me.queue):we==="spawnThread"?Fg(me):we==="cleanupThread"?Bp(me.thread):we==="killThread"?_g(me.thread):we==="cancelThread"?Ag(me.thread):we==="loaded"?(R.loaded=!0,N&&R.unref(),q&&q(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},N&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Me of Ne)c.hasOwnProperty(Me)&&le.push(Me);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:ye})},allocateUnusedWorker:function(){var R,q=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(q),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Vp(R){for(;R.length>0;)R.shift()(c)}function Rg(){var R=hh(),q=l()[R+52>>>2],le=l()[R+56>>>2],Ne=q-le;Vk(q,Ne),mh(q)}c.establishStackSpace=Rg;function Qd(R){if(C)return Hr(2,0,R);try{Jd(R)}catch(q){Dg(q)}}var bl=[];function Mg(R){var q=bl[R];return q||(R>=bl.length&&(bl.length=R+1),bl[R]=q=Hn.get(R)),q}function Og(R,q){var le=Mg(R)(q);Ia()?Ae.setExitStatus(le):Bk(le)}c.invokeEntryPoint=Og;function Pg(R){Ae.tlsInitFunctions.push(R)}function Lg(R){Lk(R,!I,1,!v),Ae.threadInitTLS()}function zg(R){C?postMessage({cmd:"cleanupThread",thread:R}):Bp(R)}function eh(R,q,le,Ne){return C?Hr(3,1,R,q,le,Ne):th(R,q,le,Ne)}function th(R,q,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Me=[],Fe=0;if(C&&(Me.length===0||Fe))return eh(R,q,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Me};return C?(me.cmd="spawnThread",postMessage(me,Me),0):Fg(me)}function Wg(){return 65536}var Bg=!0;function Vg(){return Bg}function Up(R){Atomics.store(l(),R>>2,1),hh()&&Wk(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=Up;function Ug(R,q,le,Ne){if(R==q)setTimeout(()=>Up(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Me=Ae.pthreads[R];if(!Me)return;Me.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Gg(R,q,le){return-1}function Hg(){Vs("")}function Gs(R){Gs.shown||(Gs.shown={}),Gs.shown[R]||(Gs.shown[R]=1,N&&(R="warning: "+R),J(R))}function qg(){N||I||Gs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function jg(){return Date.now()}function nh(){return 4294901760}function Kg(){return nh()}var Gp;N?Gp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:Gp=()=>performance.timeOrigin+performance.now();function Xg(R,q,le){i().copyWithin(R>>>0,q>>>0,q+le>>>0)}function Yg(){return N?zR().cpus().length:navigator.hardwareConcurrency}function Zg(R){var q=ex(),le=R();return mh(q),le}function Hr(R,q){var le=arguments.length-2,Ne=arguments;return Zg(()=>{for(var Me=le,Fe=fh(Me*8),me=Fe>>3,we=0;we>>0]=Tt}return zk(R,Me,Fe,q)})}var Hp=[];function Jg(R,q,le){Hp.length=q;for(var Ne=le>>3,Me=0;Me>>0];var Fe=R<0,me=Fe?Xd[-R-1]:ob[R];return me.apply(null,Hp)}function Qg(R){try{return ue.grow(R-Re.byteLength+65535>>>16),ut(ue.buffer),1}catch(q){}}function eb(R){var q=i().length;if(R=R>>>0,R<=q)return!1;var le=nh();if(R>le)return!1;let Ne=(Tt,ua)=>Tt+(ua-Tt%ua)%ua;for(var Me=1;Me<=4;Me*=2){var Fe=q*(1+.2/Me);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=Qg(me);if(we)return!0}return!1}function tb(){throw"unwind"}function ah(R){return C?Hr(4,1,R):52}function rh(R,q,le,Ne,Me){return C?Hr(5,1,R,q,le,Ne,Me):70}var nb=[null,[],[]];function ab(R,q){var le=nb[R];q===0||q===10?((R===1?Z:J)(mt(le,0)),le.length=0):le.push(q)}function sh(R,q,le,Ne){if(C)return Hr(6,1,R,q,le,Ne);for(var Me=0,Fe=0;Fe>>2],we=u()[q+4>>>2];q+=8;for(var Tt=0;Tt>>0]);Me+=we}return u()[Ne>>>2]=Me,0}function ih(R){var q=c["_"+R];return q}function rb(R,q){s().set(R,q>>>0)}function sb(R,q,le,Ne,Me){var Fe={string:pa=>{var wl=0;if(pa!=null&&pa!==0){var Hk=(pa.length<<2)+1;wl=fh(Hk),nt(pa,wl,Hk)}return wl},array:pa=>{var wl=fh(pa.length);return rb(pa,wl),wl}};function me(pa){return q==="string"?st(pa):q==="boolean"?!!pa:pa}var we=ih(R),Tt=[],ua=0;if(Ne)for(var wr=0;wrme==="number"||me==="boolean"),Fe=q!=="string";return Fe&&Me&&!Ne?ih(R):function(){return sb(R,q,le,arguments,Ne)}}Ae.init();var ob=[null,Zd,Qd,eh,ah,rh,sh],oh={__emscripten_init_main_thread_js:Lg,__emscripten_thread_cleanup:zg,__pthread_create_js:th,_emscripten_default_pthread_stack_size:Wg,_emscripten_get_now_is_monotonic:Vg,_emscripten_notify_task_queue:Ug,_emscripten_set_offscreencanvas_size:Gg,abort:Hg,emscripten_check_blocking_allowed:qg,emscripten_date_now:jg,emscripten_get_heap_max:Kg,emscripten_get_now:Gp,emscripten_memcpy_big:Xg,emscripten_num_logical_cores:Yg,emscripten_receive_on_main_thread_js:Jg,emscripten_resize_heap:eb,emscripten_unwind_to_js_event_loop:tb,exit:Jd,fd_close:ah,fd_seek:rh,fd_write:sh,memory:ue||c.wasmMemory},Pk=Eg(),lb=c.___wasm_call_ctors=function(){return(lb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},ub=c._init=function(){return(ub=c._init=c.asm.init).apply(null,arguments)},pb=c._init_with_threads_count=function(){return(pb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},cb=c._get_threads_count=function(){return(cb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},db=c._register_tensor=function(){return(db=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},hb=c._dispose_data=function(){return(hb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},mb=c._dispose=function(){return(mb=c._dispose=c.asm.dispose).apply(null,arguments)},fb=c._Abs=function(){return(fb=c._Abs=c.asm.Abs).apply(null,arguments)},gb=c._Acos=function(){return(gb=c._Acos=c.asm.Acos).apply(null,arguments)},bb=c._Acosh=function(){return(bb=c._Acosh=c.asm.Acosh).apply(null,arguments)},yb=c._Add=function(){return(yb=c._Add=c.asm.Add).apply(null,arguments)},xb=c._AddN=function(){return(xb=c._AddN=c.asm.AddN).apply(null,arguments)},vb=c._All=function(){return(vb=c._All=c.asm.All).apply(null,arguments)},wb=c._Any=function(){return(wb=c._Any=c.asm.Any).apply(null,arguments)},kb=c._ArgMax=function(){return(kb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Ib=c._ArgMin=function(){return(Ib=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},Sb=c._Asin=function(){return(Sb=c._Asin=c.asm.Asin).apply(null,arguments)},Nb=c._Asinh=function(){return(Nb=c._Asinh=c.asm.Asinh).apply(null,arguments)},Tb=c._Atan=function(){return(Tb=c._Atan=c.asm.Atan).apply(null,arguments)},Cb=c._Atan2=function(){return(Cb=c._Atan2=c.asm.Atan2).apply(null,arguments)},Eb=c._Atanh=function(){return(Eb=c._Atanh=c.asm.Atanh).apply(null,arguments)},_b=c._AvgPool=function(){return(_b=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Ab=c._AvgPool3D=function(){return(Ab=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},Fb=c._AvgPool3DGrad=function(){return(Fb=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},$b=c._AvgPoolGrad=function(){return($b=c._AvgPoolGrad=c.asm.AvgPoolGrad).apply(null,arguments)},Db=c._BatchMatMul=function(){return(Db=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Rb=c._Bincount=function(){return(Rb=c._Bincount=c.asm.Bincount).apply(null,arguments)},Mb=c._BitwiseAnd=function(){return(Mb=c._BitwiseAnd=c.asm.BitwiseAnd).apply(null,arguments)},Ob=c._Ceil=function(){return(Ob=c._Ceil=c.asm.Ceil).apply(null,arguments)},Pb=c._ClipByValue=function(){return(Pb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Lb=c._Conv2D=function(){return(Lb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},zb=c._Conv2DBackpropInput=function(){return(zb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Wb=c._Conv3D=function(){return(Wb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Bb=c._Conv3DBackpropFilterV2=function(){return(Bb=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Vb=c._Conv3DBackpropInputV2=function(){return(Vb=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},Ub=c._Cos=function(){return(Ub=c._Cos=c.asm.Cos).apply(null,arguments)},Gb=c._Cosh=function(){return(Gb=c._Cosh=c.asm.Cosh).apply(null,arguments)},Hb=c._CropAndResize=function(){return(Hb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},qb=c._Cumprod=function(){return(qb=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},jb=c._Cumsum=function(){return(jb=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Kb=c._DenseBincount=function(){return(Kb=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},Xb=c._DepthToSpace=function(){return(Xb=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Yb=c._DepthwiseConv2dNative=function(){return(Yb=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Zb=c._Diag=function(){return(Zb=c._Diag=c.asm.Diag).apply(null,arguments)},Jb=c._Dilation2D=function(){return(Jb=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},Qb=c._Dilation2DBackpropFilter=function(){return(Qb=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},ey=c._Dilation2DBackpropInput=function(){return(ey=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},ty=c._Elu=function(){return(ty=c._Elu=c.asm.Elu).apply(null,arguments)},ny=c._EluGrad=function(){return(ny=c._EluGrad=c.asm.EluGrad).apply(null,arguments)},ay=c._Equal=function(){return(ay=c._Equal=c.asm.Equal).apply(null,arguments)},ry=c._Erf=function(){return(ry=c._Erf=c.asm.Erf).apply(null,arguments)},sy=c._Exp=function(){return(sy=c._Exp=c.asm.Exp).apply(null,arguments)},iy=c._Expm1=function(){return(iy=c._Expm1=c.asm.Expm1).apply(null,arguments)},oy=c._FlipLeftRight=function(){return(oy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},ly=c._Floor=function(){return(ly=c._Floor=c.asm.Floor).apply(null,arguments)},uy=c._FloorDiv=function(){return(uy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},py=c._FusedBatchNorm=function(){return(py=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},cy=c._FusedConv2D=function(){return(cy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},dy=c._FusedDepthwiseConv2D=function(){return(dy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},hy=c._Gather=function(){return(hy=c._Gather=c.asm.Gather).apply(null,arguments)},my=c._GatherNd=function(){return(my=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},fy=c._Greater=function(){return(fy=c._Greater=c.asm.Greater).apply(null,arguments)},gy=c._GreaterEqual=function(){return(gy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},by=c._IsFinite=function(){return(by=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},yy=c._IsInf=function(){return(yy=c._IsInf=c.asm.IsInf).apply(null,arguments)},xy=c._IsNan=function(){return(xy=c._IsNan=c.asm.IsNan).apply(null,arguments)},vy=c._LRN=function(){return(vy=c._LRN=c.asm.LRN).apply(null,arguments)},wy=c._LRNGrad=function(){return(wy=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},ky=c._LeakyRelu=function(){return(ky=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Iy=c._Less=function(){return(Iy=c._Less=c.asm.Less).apply(null,arguments)},Sy=c._LessEqual=function(){return(Sy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Ny=c._LinSpace=function(){return(Ny=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},Ty=c._Log=function(){return(Ty=c._Log=c.asm.Log).apply(null,arguments)},Cy=c._Log1p=function(){return(Cy=c._Log1p=c.asm.Log1p).apply(null,arguments)},Ey=c._LogicalAnd=function(){return(Ey=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},_y=c._LogicalNot=function(){return(_y=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Ay=c._LogicalOr=function(){return(Ay=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Fy=c._LogicalXor=function(){return(Fy=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},$y=c._Max=function(){return($y=c._Max=c.asm.Max).apply(null,arguments)},Dy=c._MaxPool=function(){return(Dy=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Ry=c._MaxPool3D=function(){return(Ry=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},My=c._MaxPool3DGrad=function(){return(My=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},Oy=c._MaxPoolGrad=function(){return(Oy=c._MaxPoolGrad=c.asm.MaxPoolGrad).apply(null,arguments)},Py=c._MaxPoolWithArgmax=function(){return(Py=c._MaxPoolWithArgmax=c.asm.MaxPoolWithArgmax).apply(null,arguments)},Ly=c._Maximum=function(){return(Ly=c._Maximum=c.asm.Maximum).apply(null,arguments)},zy=c._Mean=function(){return(zy=c._Mean=c.asm.Mean).apply(null,arguments)},Wy=c._Min=function(){return(Wy=c._Min=c.asm.Min).apply(null,arguments)},By=c._Minimum=function(){return(By=c._Minimum=c.asm.Minimum).apply(null,arguments)},Vy=c._MirrorPad=function(){return(Vy=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Uy=c._Mod=function(){return(Uy=c._Mod=c.asm.Mod).apply(null,arguments)},Gy=c._Multinomial=function(){return(Gy=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},Hy=c._Multiply=function(){return(Hy=c._Multiply=c.asm.Multiply).apply(null,arguments)},qy=c._Neg=function(){return(qy=c._Neg=c.asm.Neg).apply(null,arguments)},jy=c._NonMaxSuppressionV3=function(){return(jy=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Ky=c._NonMaxSuppressionV4=function(){return(Ky=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},lh=c._NonMaxSuppressionV5=function(){return(lh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},uh=c._NotEqual=function(){return(uh=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},qp=c._OneHot=function(){return(qp=c._OneHot=c.asm.OneHot).apply(null,arguments)},Xy=c._PadV2=function(){return(Xy=c._PadV2=c.asm.PadV2).apply(null,arguments)},Yy=c._Pow=function(){return(Yy=c._Pow=c.asm.Pow).apply(null,arguments)},yl=c._Prelu=function(){return(yl=c._Prelu=c.asm.Prelu).apply(null,arguments)},ph=c._Prod=function(){return(ph=c._Prod=c.asm.Prod).apply(null,arguments)},xl=c._RealDiv=function(){return(xl=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},vl=c._Reciprocal=function(){return(vl=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},Zy=c._Relu=function(){return(Zy=c._Relu=c.asm.Relu).apply(null,arguments)},Y=c._Relu6=function(){return(Y=c._Relu6=c.asm.Relu6).apply(null,arguments)},oe=c._ResizeBilinear=function(){return(oe=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Ie=c._ResizeBilinearGrad=function(){return(Ie=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},Ye=c._ResizeNearestNeighbor=function(){return(Ye=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},wt=c._ResizeNearestNeighborGrad=function(){return(wt=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},kt=c._Reverse=function(){return(kt=c._Reverse=c.asm.Reverse).apply(null,arguments)},Ge=c._RotateWithOffset=function(){return(Ge=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Be=c._Round=function(){return(Be=c._Round=c.asm.Round).apply(null,arguments)},Pt=c._Rsqrt=function(){return(Pt=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},la=c._ScatterNd=function(){return(la=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},vr=c._SearchSorted=function(){return(vr=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},ch=c._SelectV2=function(){return(ch=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},jp=c._Selu=function(){return(jp=c._Selu=c.asm.Selu).apply(null,arguments)},Jy=c._Sigmoid=function(){return(Jy=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Dn=c._Sign=function(){return(Dn=c._Sign=c.asm.Sign).apply(null,arguments)},qr=c._Sin=function(){return(qr=c._Sin=c.asm.Sin).apply(null,arguments)},dh=c._Sinh=function(){return(dh=c._Sinh=c.asm.Sinh).apply(null,arguments)},zD=c._Softmax=function(){return(zD=c._Softmax=c.asm.Softmax).apply(null,arguments)},WD=c._Softplus=function(){return(WD=c._Softplus=c.asm.Softplus).apply(null,arguments)},BD=c._SparseFillEmptyRows=function(){return(BD=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},VD=c._SparseReshape=function(){return(VD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},UD=c._SparseSegmentReduction=function(){return(UD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},GD=c._SparseToDense=function(){return(GD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},HD=c._Sqrt=function(){return(HD=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},qD=c._Square=function(){return(qD=c._Square=c.asm.Square).apply(null,arguments)},jD=c._SquaredDifference=function(){return(jD=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},KD=c._Step=function(){return(KD=c._Step=c.asm.Step).apply(null,arguments)},XD=c._StridedSlice=function(){return(XD=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},YD=c._Sub=function(){return(YD=c._Sub=c.asm.Sub).apply(null,arguments)},ZD=c._Sum=function(){return(ZD=c._Sum=c.asm.Sum).apply(null,arguments)},JD=c._Tan=function(){return(JD=c._Tan=c.asm.Tan).apply(null,arguments)},QD=c._Tanh=function(){return(QD=c._Tanh=c.asm.Tanh).apply(null,arguments)},eR=c._TensorScatterUpdate=function(){return(eR=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},tR=c._Tile=function(){return(tR=c._Tile=c.asm.Tile).apply(null,arguments)},nR=c._TopK=function(){return(nR=c._TopK=c.asm.TopK).apply(null,arguments)},aR=c._Transform=function(){return(aR=c._Transform=c.asm.Transform).apply(null,arguments)},rR=c._Transpose=function(){return(rR=c._Transpose=c.asm.Transpose).apply(null,arguments)},sR=c.__FusedMatMul=function(){return(sR=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},iR=c._malloc=function(){return(iR=c._malloc=c.asm.malloc).apply(null,arguments)},oR=c._free=function(){return(oR=c._free=c.asm.free).apply(null,arguments)},lR=c.__emscripten_tls_init=function(){return(lR=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},hh=c._pthread_self=function(){return(hh=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},uR=c.___errno_location=function(){return(uR=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Lk=c.__emscripten_thread_init=function(){return(Lk=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},pR=c.__emscripten_thread_crashed=function(){return(pR=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},cR=c._emscripten_main_thread_process_queued_calls=function(){return(cR=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},dR=c._emscripten_main_browser_thread_id=function(){return(dR=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},zk=c._emscripten_run_in_main_runtime_thread_js=function(){return(zk=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},hR=c._emscripten_dispatch_to_thread_=function(){return(hR=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Wk=c.__emscripten_proxy_execute_task_queue=function(){return(Wk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Qy=c.__emscripten_thread_free_data=function(){return(Qy=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},Bk=c.__emscripten_thread_exit=function(){return(Bk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},Vk=c._emscripten_stack_set_limits=function(){return(Vk=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},ex=c.stackSave=function(){return(ex=c.stackSave=c.asm.stackSave).apply(null,arguments)},mh=c.stackRestore=function(){return(mh=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},fh=c.stackAlloc=function(){return(fh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},mR=c.dynCall_iijjiiii=function(){return(mR=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},fR=c.dynCall_jiji=function(){return(fR=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Ia,c.wasmMemory=ue,c.cwrap=ib,c.ExitStatus=Us,c.PThread=Ae;var gh;xr=function R(){gh||Uk(),gh||(xr=R)};function Uk(R){if(R=R||b,Gr>0)return;if(C){h(c),Jt(),startWorker(c);return}if(Ur(),Gr>0)return;function q(){gh||(gh=!0,c.calledRun=!0,!ke&&(Jt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Hd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),q()},1)):q()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();Uk();var bh;f&&(bh={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var yh;if(typeof WasmBackendModule!="undefined")yh=WasmBackendModule;else if(typeof r!="undefined")yh=r;else throw new Error("Could not find wasm module in post.js");if(bh){var gR=yh._dispose;yh._dispose=function(){gR(),bh.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),bh.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}return 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)}),BR=Vt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}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;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),VR=Vt((e,t)=>{var n=(()=>{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(Y,oe){i=Y,o=oe});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,v,I;function N(Y){Y instanceof fl||D("exiting due to exception: "+Y)}if(f){var C=kv(),_=$S();m?g=_.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=Ur(Y)?new URL(Y):_.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),v=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=Ur(Y)?new URL(Y):_.normalize(Y),C.readFile(Y,function(Ye,wt){Ye?Ie(Ye):oe(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof fl))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(Gn())throw process.exitCode=Y,oe;N(oe),process.exit(Y)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(v=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Ye=new XMLHttpRequest;Ye.open("GET",Y,!0),Ye.responseType="arraybuffer",Ye.onload=()=>{if(Ye.status==200||Ye.status==0&&Ye.response){oe(Ye.response);return}Ie()},Ye.onerror=Ie,Ye.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var $=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Za("no native wasm support detected");var B,U=!1,H;function j(Y,oe){Y||Za(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Ye=oe+Ie,wt=oe;Y[wt]&&!(wt>=Ye);)++wt;if(wt-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,wt));for(var kt="";oe>10,56320|la&1023)}}return kt}function J(Y,oe){return Y>>>=0,Y?Z(ie,Y,oe):""}function ee(Y,oe,Ie,Ye){if(Ie>>>=0,!(Ye>0))return 0;for(var wt=Ie,kt=Ie+Ye-1,Ge=0;Ge=55296&&Be<=57343){var Pt=Y.charCodeAt(++Ge);Be=65536+((Be&1023)<<10)|Pt&1023}if(Be<=127){if(Ie>=kt)break;oe[Ie++>>>0]=Be}else if(Be<=2047){if(Ie+1>=kt)break;oe[Ie++>>>0]=192|Be>>6,oe[Ie++>>>0]=128|Be&63}else if(Be<=65535){if(Ie+2>=kt)break;oe[Ie++>>>0]=224|Be>>12,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}else{if(Ie+3>=kt)break;oe[Ie++>>>0]=240|Be>>18,oe[Ie++>>>0]=128|Be>>12&63,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}}return oe[Ie>>>0]=0,Ie-wt}function ae(Y,oe,Ie){return ee(Y,ie,oe,Ie)}var te,se,ie,xe,ue,ye,ke,Se,Le;function Ue(Y){te=Y,s.HEAP8=se=new Int8Array(Y),s.HEAP16=xe=new Int16Array(Y),s.HEAP32=ye=new Int32Array(Y),s.HEAPU8=ie=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=Le=new Float64Array(Y)}var mt=s.INITIAL_MEMORY||16777216,st,tt=[],nt=[],Re=[],gt=!1;function Gn(){return M}function Ot(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)An(s.preRun.shift());xr(tt)}function ia(){gt=!0,xr(nt)}function ln(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Fn(s.postRun.shift());xr(Re)}function An(Y){tt.unshift(Y)}function oa(Y){nt.unshift(Y)}function Fn(Y){Re.unshift(Y)}var ut=0,$n=null,Hn=null;function yr(Y){ut++,s.monitorRunDependencies&&s.monitorRunDependencies(ut)}function ml(Y){if(ut--,s.monitorRunDependencies&&s.monitorRunDependencies(ut),ut==0&&($n!==null&&(clearInterval($n),$n=null),Hn)){var oe=Hn;Hn=null,oe()}}function Za(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var Wp="data:application/octet-stream;base64,";function Ia(Y){return Y.startsWith(Wp)}function Ur(Y){return Y.startsWith("file://")}var Jt;Jt="tfjs-backend-wasm.wasm",Ia(Jt)||(Jt=b(Jt));function Hd(Y){try{if(Y==Jt&&S)return new Uint8Array(S);if(v)return v(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){Za(oe)}}function Ig(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Ur(Jt))return fetch(Jt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Jt+"'";return Y.arrayBuffer()}).catch(function(){return Hd(Jt)});if(x)return new Promise(function(Y,oe){x(Jt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return Hd(Jt)})}function Sg(){var Y={env:Bp,wasi_snapshot_preview1:Bp};function oe(Ge,Be){var Pt=Ge.exports;s.asm=Pt,B=s.asm.memory,Ue(B.buffer),st=s.asm.__indirect_function_table,oa(s.asm.__wasm_call_ctors),ml("wasm-instantiate")}yr("wasm-instantiate");function Ie(Ge){oe(Ge.instance)}function Ye(Ge){return Ig().then(function(Be){return WebAssembly.instantiate(Be,Y)}).then(function(Be){return Be}).then(Ge,function(Be){D("failed to asynchronously prepare wasm: "+Be),Za(Be)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Ia(Jt)&&!Ur(Jt)&&!f&&typeof fetch=="function"?fetch(Jt,{credentials:"same-origin"}).then(function(Ge){var Be=WebAssembly.instantiateStreaming(Ge,Y);return Be.then(Ie,function(Pt){return D("wasm streaming compile failed: "+Pt),D("falling back to ArrayBuffer instantiation"),Ye(Ie)})}):Ye(Ie)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(Y,oe);return kt}catch(Ge){D("Module.instantiateWasm callback failed with error: "+Ge),o(Ge)}return wt().catch(o),{}}var Rk,Gr;function fl(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function xr(Y){for(;Y.length>0;)Y.shift()(s)}function Ng(){Za("")}function qd(){return 4294901760}function Vs(){return qd()}function Tg(Y,oe,Ie){ie.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function jd(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ue(B.buffer),1}catch(oe){}}function gl(Y){var oe=ie.length;Y=Y>>>0;var Ie=qd();if(Y>Ie)return!1;let Ye=(Pt,la)=>Pt+(la-Pt%la)%la;for(var wt=1;wt<=4;wt*=2){var kt=oe*(1+.2/wt);kt=Math.min(kt,Y+100663296);var Ge=Math.min(Ie,Ye(Math.max(Y,kt),65536)),Be=jd(Ge);if(Be)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=ye[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function Kd(Y){return 52}function Cg(Y,oe,Ie,Ye,wt){return 70}var Eg=[null,[],[]];function Mk(Y,oe){var Ie=Eg[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function Ok(Y,oe,Ie,Ye){for(var wt=0,kt=0;kt>>2],Be=ke[oe+4>>>2];oe+=8;for(var Pt=0;Pt>>0]);wt+=Be}return ke[Ye>>>2]=wt,0}function Xd(Y){var oe=s["_"+Y];return oe}function Us(Y,oe){se.set(Y,oe>>>0)}function _g(Y,oe,Ie,Ye,wt){var kt={string:Dn=>{var qr=0;if(Dn!=null&&Dn!==0){var dh=(Dn.length<<2)+1;qr=qp(dh),ae(Dn,qr,dh)}return qr},array:Dn=>{var qr=qp(Dn.length);return Us(Dn,qr),qr}};function Ge(Dn){return oe==="string"?J(Dn):oe==="boolean"?!!Dn:Dn}var Be=Xd(Y),Pt=[],la=0;if(Ye)for(var vr=0;vrGe==="number"||Ge==="boolean"),kt=oe!=="string";return kt&&wt&&!Ye?Xd(Y):function(){return _g(Y,oe,Ie,arguments,Ye)}}var Bp={abort:Ng,emscripten_get_heap_max:Vs,emscripten_memcpy_big:Tg,emscripten_resize_heap:gl,fd_close:Kd,fd_seek:Cg,fd_write:Ok},Fg=Sg(),Yd=s.___wasm_call_ctors=function(){return(Yd=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Zd=s._init=function(){return(Zd=s._init=s.asm.init).apply(null,arguments)},$g=s._init_with_threads_count=function(){return($g=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Jd=s._get_threads_count=function(){return(Jd=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Dg=s._register_tensor=function(){return(Dg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Vp=s._dispose=function(){return(Vp=s._dispose=s.asm.dispose).apply(null,arguments)},Rg=s._Abs=function(){return(Rg=s._Abs=s.asm.Abs).apply(null,arguments)},Qd=s._Acos=function(){return(Qd=s._Acos=s.asm.Acos).apply(null,arguments)},bl=s._Acosh=function(){return(bl=s._Acosh=s.asm.Acosh).apply(null,arguments)},Mg=s._Add=function(){return(Mg=s._Add=s.asm.Add).apply(null,arguments)},Og=s._AddN=function(){return(Og=s._AddN=s.asm.AddN).apply(null,arguments)},Pg=s._All=function(){return(Pg=s._All=s.asm.All).apply(null,arguments)},Lg=s._Any=function(){return(Lg=s._Any=s.asm.Any).apply(null,arguments)},zg=s._ArgMax=function(){return(zg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},eh=s._ArgMin=function(){return(eh=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},th=s._Asin=function(){return(th=s._Asin=s.asm.Asin).apply(null,arguments)},Wg=s._Asinh=function(){return(Wg=s._Asinh=s.asm.Asinh).apply(null,arguments)},Bg=s._Atan=function(){return(Bg=s._Atan=s.asm.Atan).apply(null,arguments)},Vg=s._Atan2=function(){return(Vg=s._Atan2=s.asm.Atan2).apply(null,arguments)},Up=s._Atanh=function(){return(Up=s._Atanh=s.asm.Atanh).apply(null,arguments)},Ug=s._AvgPool=function(){return(Ug=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Gg=s._AvgPool3D=function(){return(Gg=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},Hg=s._AvgPool3DGrad=function(){return(Hg=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},Gs=s._AvgPoolGrad=function(){return(Gs=s._AvgPoolGrad=s.asm.AvgPoolGrad).apply(null,arguments)},qg=s._BatchMatMul=function(){return(qg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},jg=s._Bincount=function(){return(jg=s._Bincount=s.asm.Bincount).apply(null,arguments)},nh=s._BitwiseAnd=function(){return(nh=s._BitwiseAnd=s.asm.BitwiseAnd).apply(null,arguments)},Kg=s._Ceil=function(){return(Kg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Gp=s._ClipByValue=function(){return(Gp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Xg=s._Conv2D=function(){return(Xg=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Yg=s._Conv2DBackpropInput=function(){return(Yg=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Zg=s._Conv3D=function(){return(Zg=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},Hr=s._Conv3DBackpropFilterV2=function(){return(Hr=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Hp=s._Conv3DBackpropInputV2=function(){return(Hp=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},Jg=s._Cos=function(){return(Jg=s._Cos=s.asm.Cos).apply(null,arguments)},Qg=s._Cosh=function(){return(Qg=s._Cosh=s.asm.Cosh).apply(null,arguments)},eb=s._CropAndResize=function(){return(eb=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},tb=s._Cumprod=function(){return(tb=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},ah=s._Cumsum=function(){return(ah=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},rh=s._DenseBincount=function(){return(rh=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},nb=s._DepthToSpace=function(){return(nb=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},ab=s._DepthwiseConv2dNative=function(){return(ab=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},sh=s._Diag=function(){return(sh=s._Diag=s.asm.Diag).apply(null,arguments)},ih=s._Dilation2D=function(){return(ih=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},rb=s._Dilation2DBackpropFilter=function(){return(rb=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},sb=s._Dilation2DBackpropInput=function(){return(sb=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},ib=s._Elu=function(){return(ib=s._Elu=s.asm.Elu).apply(null,arguments)},ob=s._EluGrad=function(){return(ob=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},oh=s._Equal=function(){return(oh=s._Equal=s.asm.Equal).apply(null,arguments)},Pk=s._Erf=function(){return(Pk=s._Erf=s.asm.Erf).apply(null,arguments)},lb=s._Exp=function(){return(lb=s._Exp=s.asm.Exp).apply(null,arguments)},ub=s._Expm1=function(){return(ub=s._Expm1=s.asm.Expm1).apply(null,arguments)},pb=s._FlipLeftRight=function(){return(pb=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},cb=s._Floor=function(){return(cb=s._Floor=s.asm.Floor).apply(null,arguments)},db=s._FloorDiv=function(){return(db=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},hb=s._FusedBatchNorm=function(){return(hb=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},mb=s._FusedConv2D=function(){return(mb=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},fb=s._FusedDepthwiseConv2D=function(){return(fb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},gb=s._Gather=function(){return(gb=s._Gather=s.asm.Gather).apply(null,arguments)},bb=s._GatherNd=function(){return(bb=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},yb=s._Greater=function(){return(yb=s._Greater=s.asm.Greater).apply(null,arguments)},xb=s._GreaterEqual=function(){return(xb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},vb=s._IsFinite=function(){return(vb=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},wb=s._IsInf=function(){return(wb=s._IsInf=s.asm.IsInf).apply(null,arguments)},kb=s._IsNan=function(){return(kb=s._IsNan=s.asm.IsNan).apply(null,arguments)},Ib=s._LRN=function(){return(Ib=s._LRN=s.asm.LRN).apply(null,arguments)},Sb=s._LRNGrad=function(){return(Sb=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},Nb=s._LeakyRelu=function(){return(Nb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Tb=s._Less=function(){return(Tb=s._Less=s.asm.Less).apply(null,arguments)},Cb=s._LessEqual=function(){return(Cb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Eb=s._LinSpace=function(){return(Eb=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},_b=s._Log=function(){return(_b=s._Log=s.asm.Log).apply(null,arguments)},Ab=s._Log1p=function(){return(Ab=s._Log1p=s.asm.Log1p).apply(null,arguments)},Fb=s._LogicalAnd=function(){return(Fb=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},$b=s._LogicalNot=function(){return($b=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Db=s._LogicalOr=function(){return(Db=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Rb=s._LogicalXor=function(){return(Rb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Mb=s._Max=function(){return(Mb=s._Max=s.asm.Max).apply(null,arguments)},Ob=s._MaxPool=function(){return(Ob=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Pb=s._MaxPool3D=function(){return(Pb=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},Lb=s._MaxPool3DGrad=function(){return(Lb=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},zb=s._MaxPoolGrad=function(){return(zb=s._MaxPoolGrad=s.asm.MaxPoolGrad).apply(null,arguments)},Wb=s._MaxPoolWithArgmax=function(){return(Wb=s._MaxPoolWithArgmax=s.asm.MaxPoolWithArgmax).apply(null,arguments)},Bb=s._Maximum=function(){return(Bb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Vb=s._Mean=function(){return(Vb=s._Mean=s.asm.Mean).apply(null,arguments)},Ub=s._Min=function(){return(Ub=s._Min=s.asm.Min).apply(null,arguments)},Gb=s._Minimum=function(){return(Gb=s._Minimum=s.asm.Minimum).apply(null,arguments)},Hb=s._MirrorPad=function(){return(Hb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},qb=s._Mod=function(){return(qb=s._Mod=s.asm.Mod).apply(null,arguments)},jb=s._Multinomial=function(){return(jb=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},Kb=s._Multiply=function(){return(Kb=s._Multiply=s.asm.Multiply).apply(null,arguments)},Xb=s._Neg=function(){return(Xb=s._Neg=s.asm.Neg).apply(null,arguments)},Yb=s._NonMaxSuppressionV3=function(){return(Yb=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},Zb=s._NonMaxSuppressionV4=function(){return(Zb=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Jb=s._NonMaxSuppressionV5=function(){return(Jb=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},Qb=s._NotEqual=function(){return(Qb=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},ey=s._OneHot=function(){return(ey=s._OneHot=s.asm.OneHot).apply(null,arguments)},ty=s._PadV2=function(){return(ty=s._PadV2=s.asm.PadV2).apply(null,arguments)},ny=s._Pow=function(){return(ny=s._Pow=s.asm.Pow).apply(null,arguments)},ay=s._Prelu=function(){return(ay=s._Prelu=s.asm.Prelu).apply(null,arguments)},ry=s._Prod=function(){return(ry=s._Prod=s.asm.Prod).apply(null,arguments)},sy=s._RealDiv=function(){return(sy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},iy=s._Reciprocal=function(){return(iy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},oy=s._Relu=function(){return(oy=s._Relu=s.asm.Relu).apply(null,arguments)},ly=s._Relu6=function(){return(ly=s._Relu6=s.asm.Relu6).apply(null,arguments)},uy=s._ResizeBilinear=function(){return(uy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},py=s._ResizeBilinearGrad=function(){return(py=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},cy=s._ResizeNearestNeighbor=function(){return(cy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},dy=s._ResizeNearestNeighborGrad=function(){return(dy=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},hy=s._Reverse=function(){return(hy=s._Reverse=s.asm.Reverse).apply(null,arguments)},my=s._RotateWithOffset=function(){return(my=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},fy=s._Round=function(){return(fy=s._Round=s.asm.Round).apply(null,arguments)},gy=s._Rsqrt=function(){return(gy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},by=s._ScatterNd=function(){return(by=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},yy=s._SearchSorted=function(){return(yy=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},xy=s._SelectV2=function(){return(xy=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},vy=s._Selu=function(){return(vy=s._Selu=s.asm.Selu).apply(null,arguments)},wy=s._Sigmoid=function(){return(wy=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},ky=s._Sign=function(){return(ky=s._Sign=s.asm.Sign).apply(null,arguments)},Iy=s._Sin=function(){return(Iy=s._Sin=s.asm.Sin).apply(null,arguments)},Sy=s._Sinh=function(){return(Sy=s._Sinh=s.asm.Sinh).apply(null,arguments)},Ny=s._Softmax=function(){return(Ny=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ty=s._Softplus=function(){return(Ty=s._Softplus=s.asm.Softplus).apply(null,arguments)},Cy=s._SparseFillEmptyRows=function(){return(Cy=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Ey=s._SparseReshape=function(){return(Ey=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},_y=s._SparseSegmentReduction=function(){return(_y=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Ay=s._SparseToDense=function(){return(Ay=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},Fy=s._Sqrt=function(){return(Fy=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},$y=s._Square=function(){return($y=s._Square=s.asm.Square).apply(null,arguments)},Dy=s._SquaredDifference=function(){return(Dy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Ry=s._Step=function(){return(Ry=s._Step=s.asm.Step).apply(null,arguments)},My=s._StridedSlice=function(){return(My=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Oy=s._Sub=function(){return(Oy=s._Sub=s.asm.Sub).apply(null,arguments)},Py=s._Sum=function(){return(Py=s._Sum=s.asm.Sum).apply(null,arguments)},Ly=s._Tan=function(){return(Ly=s._Tan=s.asm.Tan).apply(null,arguments)},zy=s._Tanh=function(){return(zy=s._Tanh=s.asm.Tanh).apply(null,arguments)},Wy=s._TensorScatterUpdate=function(){return(Wy=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},By=s._Tile=function(){return(By=s._Tile=s.asm.Tile).apply(null,arguments)},Vy=s._TopK=function(){return(Vy=s._TopK=s.asm.TopK).apply(null,arguments)},Uy=s._Transform=function(){return(Uy=s._Transform=s.asm.Transform).apply(null,arguments)},Gy=s._Transpose=function(){return(Gy=s._Transpose=s.asm.Transpose).apply(null,arguments)},Hy=s.__FusedMatMul=function(){return(Hy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},qy=s._malloc=function(){return(qy=s._malloc=s.asm.malloc).apply(null,arguments)},jy=s._free=function(){return(jy=s._free=s.asm.free).apply(null,arguments)},Ky=s.___errno_location=function(){return(Ky=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},lh=s.stackSave=function(){return(lh=s.stackSave=s.asm.stackSave).apply(null,arguments)},uh=s.stackRestore=function(){return(uh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},qp=s.stackAlloc=function(){return(qp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Xy=s.dynCall_iijjiiii=function(){return(Xy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Yy=s.dynCall_jiji=function(){return(Yy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Ag;var yl;Hn=function Y(){yl||ph(),yl||(Hn=Y)};function ph(Y){if(Y=Y||p,ut>0||(Ot(),ut>0))return;function oe(){yl||(yl=!0,s.calledRun=!0,!U&&(ia(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),ln()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();ph();var xl;l&&(xl={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-1})});var vl;if(typeof r!="undefined")vl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")vl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(xl){var Zy=vl._dispose;vl._dispose=function(){Zy(),xl.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),xl.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}return 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)}),ym=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}},Fc=class{refCount(e){return qn("refCount")}incRef(e){return qn("incRef")}timerAvailable(){return!0}time(e){return qn("time")}read(e){return qn("read")}readSync(e){return qn("readSync")}readToGPU(e,t){return qn("readToGPU")}numDataIds(){return qn("numDataIds")}disposeData(e,t){return qn("disposeData")}write(e,t,n){return qn("write")}move(e,t,n,a,r){return qn("move")}createTensorFromGPUData(e,t,n){return qn("createTensorFromGPUData")}memory(){return qn("memory")}floatPrecision(){return qn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return qn("dispose")}};function qn(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 DS(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Vh(e,t,n)}function UR(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=0;for(;n>0;)a=Math.random()*n|0,n--,Vh(e,n,a),Vh(t,n,a)}function hc(e,t,n){return Math.max(e,Math.min(t,n))}function GR(e){return e%2===0?e:e+1}function Vh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function HR(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Si(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ot(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function QR(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 Aa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>$l(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function MS(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Aa(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 OS(e,t){return Iv(e,t)}function Iv(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 PS(e,t){for(let n=0;nt+=n.length),t}function Jr(e){return typeof e=="string"||e instanceof String}function WS(e){return typeof e=="boolean"}function BS(e){return typeof e=="number"}function $c(e){return Array.isArray(e)?$c(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":BS(e)?"float32":Jr(e)?"string":WS(e)?"bool":"float32"}function ss(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Gh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function VS(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return VS(0,e,t,n)}function tM(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function Sv(e,t){let n=xm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return El(e,new Float32Array(n));if(t==="int32")return El(e,new Int32Array(n));if(t==="bool")return El(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function na(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function aM(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]=oM(n,a)})}};function sM(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(iM(t,a[0],a[1]),a.join("="))),t}function iM(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function oM(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return Nv}var Nv=null;function lM(e){Nv=e}var ax;function GS(){if(ax==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");ax=e}return ax}function uM(){let e=GS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Tv(e,t){let n=uM();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Yl="Abs",Ni="Acos",Ti="Acosh",xs="Add",Ci="AddN",Zl="All",Jl="Any",Ql="ArgMax",eu="ArgMin",Ei="Asin",_i="Asinh",Ai="Atan",Fi="Atanh",$i="Atan2",Di="AvgPool",Dc="AvgPoolGrad",tu="AvgPool3D",Rc="AvgPool3DGrad",Ri="BatchMatMul",nu="BatchToSpaceND",au="Bincount",ru="BitwiseAnd",HS="BroadcastTo",Mc="BroadcastArgs",Mi="Cast",Oi="Ceil",vs="ClipByValue",wm="Complex",Oc="ComplexAbs",su="Concat",Pi="Conv2D",km="Conv2DBackpropFilter",Li="Conv2DBackpropInput",zi="Conv3D",iu="Conv3DBackpropFilterV2",ou="Conv3DBackpropInputV2",Wi="Cos",Bi="Cosh",lu="Cumprod",Vi="Cumsum",uu="CropAndResize",Pc="DenseBincount",pu="DepthToSpace",Ui="DepthwiseConv2dNative",Im="DepthwiseConv2dNativeBackpropFilter",Sm="DepthwiseConv2dNativeBackpropInput",Lc="Diag",Gi="Dilation2D",Dl="Dilation2DBackpropInput",Rl="Dilation2DBackpropFilter",Nm="Draw",Hi="RealDiv",Tm="Einsum",qi="Elu",cu="EluGrad",ji="Erf",du="Equal",Ki="Exp",hu="ExpandDims",Xi="Expm1",Cm="FFT",zc="Fill",mu="FlipLeftRight",Yi="Floor",Zi="FloorDiv",Ji="FusedBatchNorm",fu="GatherV2",gu="GatherNd",bu="Greater",Qi="GreaterEqual",eo="Identity",Em="IFFT",_m="Imag",to="IsFinite",no="IsInf",ao="IsNan",ro="LeakyRelu",yu="Less",xu="LessEqual",vu="LinSpace",so="Log",io="Log1p",wu="LogicalAnd",ku="LogicalNot",Iu="LogicalOr",qS="LogicalXor",jS="LogSoftmax",pM="LowerBound",oo="LRN",Su="LRNGrad",cM="MatrixBandPart",lo="Max",uo="Maximum",po="MaxPool",Wc="MaxPoolGrad",Nu="MaxPool3D",Bc="MaxPool3DGrad",Vc="MaxPoolWithArgmax",co="Mean",ho="Min",mo="Minimum",fo="MirrorPad",go="Mod",Tu="Multinomial",bo="Multiply",Cu="Neg",Eu="NotEqual",_u="NonMaxSuppressionV3",Au="NonMaxSuppressionV4",Fu="NonMaxSuppressionV5",$u="OnesLike",yo="OneHot",Du="Pack",xo="PadV2",dM="Pool",vo="Pow",wo="Prelu",ko="Prod",Am="RaggedGather",Fm="RaggedRange",$m="RaggedTensorToTensor",Uc="Range",Dm="Real",Io="Reciprocal",So="Relu",Ru="Reshape",No="ResizeNearestNeighbor",Mu="ResizeNearestNeighborGrad",To="ResizeBilinear",Ou="ResizeBilinearGrad",Co="Relu6",Eo="Reverse",_o="Round",Ao="Rsqrt",Pu="ScatterNd",Lu="TensorScatterUpdate",zu="SearchSorted",Wu="Select",Fo="Selu",Bu="Slice",$o="Sin",Do="Sinh",Ro="Sign",Mo="Sigmoid",Oo="Softplus",Po="Sqrt",Lo="Sum",Vu="SpaceToBatchND",Uu="SplitV",zo="Softmax",Gc="SparseFillEmptyRows",Gu="SparseReshape",Hc="SparseSegmentMean",qc="SparseSegmentSum",Hu="SparseToDense",Wo="SquaredDifference",jc="Square",Kc="StaticRegexReplace",qu="StridedSlice",Xc="StringNGrams",Yc="StringSplit",Zc="StringToHashBucketFast",Bo="Sub",Vo="Tan",Uo="Tanh",ws="Tile",ju="TopK",Ku="Transform",Tr="Transpose",Jc="Unique",Xu="Unpack",Qc="UnsortedSegmentSum",hM="UpperBound",Yu="ZerosLike",ks="Step",Hh="FromPixels",Zu="RotateWithOffset",si="_FusedMatMul",ii="FusedConv2D",oi="FusedDepthwiseConv2D";function Zr(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function mM(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var Ml=Tv("kernelRegistry",()=>new Map),mc=Tv("gradRegistry",()=>new Map);function fc(e,t){let n=Cv(e,t);return Ml.get(n)}function xx(e){return mc.get(e)}function qh(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 ed(e){let{kernelName:t,backendName:n}=e,a=Cv(t,n);Ml.has(a)&&Zr(`The kernel '${t}' for backend '${n}' is already registered`),Ml.set(a,e)}function KS(e){let{kernelName:t}=e;mc.has(t)&&G().getBool("DEBUG")&&Zr(`Overriding the gradient for '${t}'`),mc.set(t,e)}function fM(e,t){let n=Cv(e,t);if(!Ml.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ml.delete(n)}function gM(e){if(!mc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);mc.delete(e)}function bM(e,t){qh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});ed(a)})}function Cv(e,t){return`${t}_${e}`}var w={};_e(w,{arraysEqual:()=>Ar,arraysEqualWithNull:()=>RS,assert:()=>A,assertNonNegativeIntegerDimensions:()=>na,assertNonNull:()=>Si,assertShapesMatch:()=>Sn,bytesFromStringArray:()=>zS,bytesPerElement:()=>Uh,checkConversionForErrors:()=>PS,clamp:()=>hc,computeStrides:()=>Xl,convertBackendValuesAndArrayBuffer:()=>tM,createScalarValue:()=>IM,createShuffledIndices:()=>ZR,decodeString:()=>jh,distSquared:()=>jR,encodeString:()=>nd,fetch:()=>NM,fingerPrint64:()=>kM,flatten:()=>is,getArrayFromDType:()=>Iv,getTypedArrayFromDType:()=>OS,hasEncodingLoss:()=>eM,hexToLong:()=>td,indexToLoc:()=>rM,inferDtype:()=>$c,inferFromImplicitShape:()=>QR,isBoolean:()=>WS,isFunction:()=>ss,isInt:()=>$l,isNumber:()=>BS,isPromise:()=>vm,isScalarShape:()=>KR,isString:()=>Jr,isTypedArray:()=>en,isValidDtype:()=>LS,locToIndex:()=>aM,makeOnesTypedArray:()=>Sv,makeZerosNestedTypedArray:()=>nM,makeZerosTypedArray:()=>xm,nearestDivisor:()=>Gh,nearestLargerEven:()=>GR,now:()=>gc,parseAxisParam:()=>Aa,randUniform:()=>qR,repeatedTry:()=>JR,rightPad:()=>uc,shuffle:()=>DS,shuffleCombo:()=>UR,sizeFromShape:()=>ot,sizeToSquarishShape:()=>YR,squeezeShape:()=>MS,sum:()=>HR,swap:()=>Vh,tanh:()=>XR,toNestedArray:()=>El,toTypedArray:()=>Rm});function XS(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var jk=ys(TR()),Xs=jk.default||jk;function td(e){return Xs.fromString(e,!0,16)}var YS=td("c3a5c85c97cb3127"),js=td("b492b66fbe98f273"),vn=td("9ae16a3b2f90404f");function vx(e){return e.xor(e.shru(47))}function ZS(e,t,n){let a=e.slice(t,t+n);return Xs.fromBytes(Array.from(a),!0,!0)}function bt(e,t){return ZS(e,t,8)}function Kk(e,t){return ZS(e,t,4)}function Qt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ns(e,t,n=td("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function yM(e,t,n,a,r,s){r=r.add(e),s=Qt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Qt(r,44)),[r.add(a),s.add(i)]}function xh(e,t,n,a){return yM(bt(e,t),bt(e,t+8),bt(e,t+16),bt(e,t+24),n,a)}function xM(e,t=e.length){if(t>=8){let n=vn.add(t*2),a=bt(e,0).add(vn),r=bt(e,t-8),s=Qt(r,37).mul(n).add(a),i=Qt(a,25).add(r).mul(n);return ns(s,i,n)}if(t>=4){let n=vn.add(t*2),a=Kk(e,0);return ns(a.shl(3).add(t),Kk(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return vx(vn.mul(s).xor(YS.mul(i))).mul(vn)}return vn}function vM(e,t=e.length){let n=vn.add(t*2),a=bt(e,0).mul(js),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(vn);return ns(Qt(a.add(r),43).add(Qt(s,30)).add(i),a.add(Qt(r.add(vn),18)).add(s),n)}function wM(e,t=e.length){let n=vn.add(t*2),a=bt(e,0).mul(vn),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(vn),o=Qt(a.add(r),43).add(Qt(s,30)).add(i),l=ns(o,a.add(Qt(r.add(vn),18)).add(s),n),u=bt(e,16).mul(n),p=bt(e,24),d=o.add(bt(e,t-32)).mul(n),c=l.add(bt(e,t-24)).mul(n);return ns(Qt(u.add(p),43).add(Qt(d,30)).add(c),u.add(Qt(p.add(a),18)).add(d),n)}function kM(e,t=e.length){let n=Xs.fromNumber(81,!0);if(t<=32)return t<=16?xM(e,t):vM(e,t);if(t<=64)return wM(e,t);let a=n,r=n.mul(js).add(113),s=vx(r.mul(vn).add(113)).mul(vn),i=[Xs.UZERO,Xs.UZERO],o=[Xs.UZERO,Xs.UZERO];a=a.mul(vn).add(bt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(js),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(js),a=a.xor(o[1]),r=r.add(i[0]).add(bt(e,l+40)),s=Qt(s.add(o[0]),33).mul(js),i=xh(e,l,i[1].mul(js),a.add(o[0])),o=xh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=js.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(d),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(bt(e,l+40))),s=Qt(s.add(o[0]),33).mul(d),i=xh(e,l,i[1].mul(d),a.add(o[0])),o=xh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],ns(ns(i[0],o[0],d).add(vx(r).mul(YS)).add(s),ns(i[1],o[1],d).add(a),d)}function IM(e,t){return t==="string"?nd(e):Rm([e],t)}function SM(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Rm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=is(e)),G().getBool("DEBUG")&&PS(e,t),SM(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=gc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:gc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{CM(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 CM(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function _M(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],p=u.inputs;for(let d=0;d=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 p=s.inputs[l];if(!Ar(u.shape,p.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 '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var Xk=20,Kp=3,rx=7;function FM(e,t,n,a){let r=Xl(t),s=$M(e,t,n,r),i=t.length,o=Dh(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(` +`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,se=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var ve=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Us("no native wasm support detected");var ue,ye,ke=!1,Se;function Le(R,j){R||Us(j)}var Ue=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function mt(R,j,le){j>>>=0;for(var Ne=j+le,Me=j;R[Me]&&!(Me>=Ne);)++Me;if(Me-j>16&&R.buffer&&Ue)return Ue.decode(R.buffer instanceof SharedArrayBuffer?R.slice(j,Me):R.subarray(j,Me));for(var Fe="";j>10,56320|ua&1023)}}return Fe}function st(R,j){return R>>>=0,R?mt(i(),R,j):""}function tt(R,j,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Me=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var Tt=R.charCodeAt(++me);we=65536+((we&1023)<<10)|Tt&1023}if(we<=127){if(le>=Fe)break;j[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;j[le++>>>0]=192|we>>6,j[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;j[le++>>>0]=224|we>>12,j[le++>>>0]=128|we>>6&63,j[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;j[le++>>>0]=240|we>>18,j[le++>>>0]=128|we>>12&63,j[le++>>>0]=128|we>>6&63,j[le++>>>0]=128|we&63}}return j[le>>>0]=0,le-Me}function nt(R,j,le){return tt(R,i(),j,le)}var Re,gt,Gn,Ot,ia,un,Fn,oa,$n;C&&(Re=c.buffer);function ut(R){Re=R,c.HEAP8=gt=new Int8Array(R),c.HEAP16=Ot=new Int16Array(R),c.HEAP32=un=new Int32Array(R),c.HEAPU8=Gn=new Uint8Array(R),c.HEAPU16=ia=new Uint16Array(R),c.HEAPU32=Fn=new Uint32Array(R),c.HEAPF32=oa=new Float32Array(R),c.HEAPF64=$n=new Float64Array(R)}var Dn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Re=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Dn/65536,maximum:65536,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),N&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Re=ue.buffer),Dn=Re.byteLength,ut(Re);var Hn,xr=[],ml=[],Za=[],Wp=!1;function Ia(){return ve}function Ur(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Sg(c.preRun.shift());Vp(xr)}function Jt(){Wp=!0,!C&&Vp(ml)}function Hd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Rk(c.postRun.shift());Vp(Za)}}function Sg(R){xr.unshift(R)}function Ng(R){ml.unshift(R)}function Rk(R){Za.unshift(R)}var Gr=0,fl=null,vr=null;function Tg(R){Gr++,c.monitorRunDependencies&&c.monitorRunDependencies(Gr)}function jd(R){if(Gr--,c.monitorRunDependencies&&c.monitorRunDependencies(Gr),Gr==0&&(fl!==null&&(clearInterval(fl),fl=null),vr)){var j=vr;vr=null,j()}}function Us(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(R);throw m(j),j}var Cg="data:application/octet-stream;base64,";function qd(R){return R.startsWith(Cg)}function gl(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",qd(gn)||(gn=F(gn));function Kd(R){try{if(R==gn&&ie)return new Uint8Array(ie);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(j){Us(j)}}function Eg(){if(!ie&&(v||I)){if(typeof fetch=="function"&&!gl(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return Kd(gn)});if($)return new Promise(function(R,j){$(gn,function(le){R(new Uint8Array(le))},j)})}return Promise.resolve().then(function(){return Kd(gn)})}function _g(){var R={env:oh,wasi_snapshot_preview1:oh};function j(me,we){var Tt=me.exports;if(c.asm=Tt,Lg(c.asm._emscripten_tls_init),Hn=c.asm.__indirect_function_table,Ng(c.asm.__wasm_call_ctors),ye=we,!C){var ua=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(kr){Ae.loadWasmModuleToWorker(kr,function(){--ua||jd("wasm-instantiate")})})}}C||Tg("wasm-instantiate");function le(me){j(me.instance,me.module)}function Ne(me){return Eg().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Us(we)})}function Me(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!qd(gn)&&!gl(gn)&&!N&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(Tt){return J("wasm streaming compile failed: "+Tt),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,j);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Me().catch(m),{}}var Mk,Ok,Xd={};function Gs(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function Ag(R){var j=Ae.pthreads[R];delete Ae.pthreads[R],j.terminate(),ex(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Fg(R){var j=Ae.pthreads[R];j.postMessage({cmd:"cancel"})}function Bp(R){var j=Ae.pthreads[R];Le(j),Ae.returnWorkerToPool(j)}function $g(R){var j=Ae.getNewWorker();if(!j)return 6;Ae.runningWorkers.push(j),Ae.pthreads[R.pthread_ptr]=j,j.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return j.runPthread=()=>{N&&j.ref(),j.postMessage(le,R.transferList),delete j.runPthread},j.loaded&&j.runPthread(),0}var Yd={varargs:void 0,get:function(){Yd.varargs+=4;var R=l()[Yd.varargs-4>>>2];return R},getStr:function(R){var j=st(R);return j}};function Zd(R){if(C)return Hr(1,1,R);Se=R,Ia()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new Gs(R))}function Dg(R,j){if(Se=R,!j&&C)throw Qd(R),"unwind";Zd(R)}var Jd=Dg;function Rg(R){if(R instanceof Gs||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){ve=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var j=R.pthread_ptr;delete Ae.pthreads[j],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,N&&R.unref(),ex(j)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,j){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=hh()){var Tt=Ae.pthreads[me.targetThread];Tt?Tt.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?Up(me.queue):we==="spawnThread"?$g(me):we==="cleanupThread"?Bp(me.thread):we==="killThread"?Ag(me.thread):we==="cancelThread"?Fg(me.thread):we==="loaded"?(R.loaded=!0,N&&R.unref(),j&&j(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},N&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Me of Ne)c.hasOwnProperty(Me)&&le.push(Me);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:ye})},allocateUnusedWorker:function(){var R,j=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(j),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Vp(R){for(;R.length>0;)R.shift()(c)}function Mg(){var R=hh(),j=l()[R+52>>>2],le=l()[R+56>>>2],Ne=j-le;Vk(j,Ne),mh(j)}c.establishStackSpace=Mg;function Qd(R){if(C)return Hr(2,0,R);try{Jd(R)}catch(j){Rg(j)}}var bl=[];function Og(R){var j=bl[R];return j||(R>=bl.length&&(bl.length=R+1),bl[R]=j=Hn.get(R)),j}function Pg(R,j){var le=Og(R)(j);Ia()?Ae.setExitStatus(le):Bk(le)}c.invokeEntryPoint=Pg;function Lg(R){Ae.tlsInitFunctions.push(R)}function zg(R){Lk(R,!I,1,!v),Ae.threadInitTLS()}function Wg(R){C?postMessage({cmd:"cleanupThread",thread:R}):Bp(R)}function eh(R,j,le,Ne){return C?Hr(3,1,R,j,le,Ne):th(R,j,le,Ne)}function th(R,j,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Me=[],Fe=0;if(C&&(Me.length===0||Fe))return eh(R,j,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Me};return C?(me.cmd="spawnThread",postMessage(me,Me),0):$g(me)}function Bg(){return 65536}var Vg=!0;function Ug(){return Vg}function Up(R){Atomics.store(l(),R>>2,1),hh()&&Wk(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=Up;function Gg(R,j,le,Ne){if(R==j)setTimeout(()=>Up(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Me=Ae.pthreads[R];if(!Me)return;Me.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Hg(R,j,le){return-1}function jg(){Us("")}function Hs(R){Hs.shown||(Hs.shown={}),Hs.shown[R]||(Hs.shown[R]=1,N&&(R="warning: "+R),J(R))}function qg(){N||I||Hs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Kg(){return Date.now()}function nh(){return 4294901760}function Xg(){return nh()}var Gp;N?Gp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:Gp=()=>performance.timeOrigin+performance.now();function Yg(R,j,le){i().copyWithin(R>>>0,j>>>0,j+le>>>0)}function Zg(){return N?BR().cpus().length:navigator.hardwareConcurrency}function Jg(R){var j=tx(),le=R();return mh(j),le}function Hr(R,j){var le=arguments.length-2,Ne=arguments;return Jg(()=>{for(var Me=le,Fe=fh(Me*8),me=Fe>>3,we=0;we>>0]=Tt}return zk(R,Me,Fe,j)})}var Hp=[];function Qg(R,j,le){Hp.length=j;for(var Ne=le>>3,Me=0;Me>>0];var Fe=R<0,me=Fe?Xd[-R-1]:lb[R];return me.apply(null,Hp)}function eb(R){try{return ue.grow(R-Re.byteLength+65535>>>16),ut(ue.buffer),1}catch(j){}}function tb(R){var j=i().length;if(R=R>>>0,R<=j)return!1;var le=nh();if(R>le)return!1;let Ne=(Tt,ua)=>Tt+(ua-Tt%ua)%ua;for(var Me=1;Me<=4;Me*=2){var Fe=j*(1+.2/Me);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=eb(me);if(we)return!0}return!1}function nb(){throw"unwind"}function ah(R){return C?Hr(4,1,R):52}function rh(R,j,le,Ne,Me){return C?Hr(5,1,R,j,le,Ne,Me):70}var ab=[null,[],[]];function rb(R,j){var le=ab[R];j===0||j===10?((R===1?Z:J)(mt(le,0)),le.length=0):le.push(j)}function sh(R,j,le,Ne){if(C)return Hr(6,1,R,j,le,Ne);for(var Me=0,Fe=0;Fe>>2],we=u()[j+4>>>2];j+=8;for(var Tt=0;Tt>>0]);Me+=we}return u()[Ne>>>2]=Me,0}function ih(R){var j=c["_"+R];return j}function sb(R,j){s().set(R,j>>>0)}function ib(R,j,le,Ne,Me){var Fe={string:pa=>{var wl=0;if(pa!=null&&pa!==0){var Hk=(pa.length<<2)+1;wl=fh(Hk),nt(pa,wl,Hk)}return wl},array:pa=>{var wl=fh(pa.length);return sb(pa,wl),wl}};function me(pa){return j==="string"?st(pa):j==="boolean"?!!pa:pa}var we=ih(R),Tt=[],ua=0;if(Ne)for(var kr=0;krme==="number"||me==="boolean"),Fe=j!=="string";return Fe&&Me&&!Ne?ih(R):function(){return ib(R,j,le,arguments,Ne)}}Ae.init();var lb=[null,Zd,Qd,eh,ah,rh,sh],oh={__emscripten_init_main_thread_js:zg,__emscripten_thread_cleanup:Wg,__pthread_create_js:th,_emscripten_default_pthread_stack_size:Bg,_emscripten_get_now_is_monotonic:Ug,_emscripten_notify_task_queue:Gg,_emscripten_set_offscreencanvas_size:Hg,abort:jg,emscripten_check_blocking_allowed:qg,emscripten_date_now:Kg,emscripten_get_heap_max:Xg,emscripten_get_now:Gp,emscripten_memcpy_big:Yg,emscripten_num_logical_cores:Zg,emscripten_receive_on_main_thread_js:Qg,emscripten_resize_heap:tb,emscripten_unwind_to_js_event_loop:nb,exit:Jd,fd_close:ah,fd_seek:rh,fd_write:sh,memory:ue||c.wasmMemory},Pk=_g(),ub=c.___wasm_call_ctors=function(){return(ub=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},pb=c._init=function(){return(pb=c._init=c.asm.init).apply(null,arguments)},cb=c._init_with_threads_count=function(){return(cb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},db=c._get_threads_count=function(){return(db=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},hb=c._register_tensor=function(){return(hb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},mb=c._dispose_data=function(){return(mb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},fb=c._dispose=function(){return(fb=c._dispose=c.asm.dispose).apply(null,arguments)},gb=c._Abs=function(){return(gb=c._Abs=c.asm.Abs).apply(null,arguments)},bb=c._Acos=function(){return(bb=c._Acos=c.asm.Acos).apply(null,arguments)},yb=c._Acosh=function(){return(yb=c._Acosh=c.asm.Acosh).apply(null,arguments)},xb=c._Add=function(){return(xb=c._Add=c.asm.Add).apply(null,arguments)},vb=c._AddN=function(){return(vb=c._AddN=c.asm.AddN).apply(null,arguments)},wb=c._All=function(){return(wb=c._All=c.asm.All).apply(null,arguments)},kb=c._Any=function(){return(kb=c._Any=c.asm.Any).apply(null,arguments)},Ib=c._ArgMax=function(){return(Ib=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Sb=c._ArgMin=function(){return(Sb=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},Nb=c._Asin=function(){return(Nb=c._Asin=c.asm.Asin).apply(null,arguments)},Tb=c._Asinh=function(){return(Tb=c._Asinh=c.asm.Asinh).apply(null,arguments)},Cb=c._Atan=function(){return(Cb=c._Atan=c.asm.Atan).apply(null,arguments)},Eb=c._Atan2=function(){return(Eb=c._Atan2=c.asm.Atan2).apply(null,arguments)},_b=c._Atanh=function(){return(_b=c._Atanh=c.asm.Atanh).apply(null,arguments)},Ab=c._AvgPool=function(){return(Ab=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Fb=c._AvgPool3D=function(){return(Fb=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},$b=c._AvgPool3DGrad=function(){return($b=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},Db=c._AvgPoolGrad=function(){return(Db=c._AvgPoolGrad=c.asm.AvgPoolGrad).apply(null,arguments)},Rb=c._BatchMatMul=function(){return(Rb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Mb=c._Bincount=function(){return(Mb=c._Bincount=c.asm.Bincount).apply(null,arguments)},Ob=c._BitwiseAnd=function(){return(Ob=c._BitwiseAnd=c.asm.BitwiseAnd).apply(null,arguments)},Pb=c._Ceil=function(){return(Pb=c._Ceil=c.asm.Ceil).apply(null,arguments)},Lb=c._ClipByValue=function(){return(Lb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},zb=c._Conv2D=function(){return(zb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},Wb=c._Conv2DBackpropInput=function(){return(Wb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Bb=c._Conv3D=function(){return(Bb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Vb=c._Conv3DBackpropFilterV2=function(){return(Vb=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Ub=c._Conv3DBackpropInputV2=function(){return(Ub=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},Gb=c._Cos=function(){return(Gb=c._Cos=c.asm.Cos).apply(null,arguments)},Hb=c._Cosh=function(){return(Hb=c._Cosh=c.asm.Cosh).apply(null,arguments)},jb=c._CropAndResize=function(){return(jb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},qb=c._Cumprod=function(){return(qb=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Kb=c._Cumsum=function(){return(Kb=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Xb=c._DenseBincount=function(){return(Xb=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},Yb=c._DepthToSpace=function(){return(Yb=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Zb=c._DepthwiseConv2dNative=function(){return(Zb=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Jb=c._Diag=function(){return(Jb=c._Diag=c.asm.Diag).apply(null,arguments)},Qb=c._Dilation2D=function(){return(Qb=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},ey=c._Dilation2DBackpropFilter=function(){return(ey=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},ty=c._Dilation2DBackpropInput=function(){return(ty=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},ny=c._Elu=function(){return(ny=c._Elu=c.asm.Elu).apply(null,arguments)},ay=c._EluGrad=function(){return(ay=c._EluGrad=c.asm.EluGrad).apply(null,arguments)},ry=c._Equal=function(){return(ry=c._Equal=c.asm.Equal).apply(null,arguments)},sy=c._Erf=function(){return(sy=c._Erf=c.asm.Erf).apply(null,arguments)},iy=c._Exp=function(){return(iy=c._Exp=c.asm.Exp).apply(null,arguments)},oy=c._Expm1=function(){return(oy=c._Expm1=c.asm.Expm1).apply(null,arguments)},ly=c._FlipLeftRight=function(){return(ly=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},uy=c._Floor=function(){return(uy=c._Floor=c.asm.Floor).apply(null,arguments)},py=c._FloorDiv=function(){return(py=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},cy=c._FusedBatchNorm=function(){return(cy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},dy=c._FusedConv2D=function(){return(dy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},hy=c._FusedDepthwiseConv2D=function(){return(hy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},my=c._Gather=function(){return(my=c._Gather=c.asm.Gather).apply(null,arguments)},fy=c._GatherNd=function(){return(fy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},gy=c._Greater=function(){return(gy=c._Greater=c.asm.Greater).apply(null,arguments)},by=c._GreaterEqual=function(){return(by=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},yy=c._IsFinite=function(){return(yy=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},xy=c._IsInf=function(){return(xy=c._IsInf=c.asm.IsInf).apply(null,arguments)},vy=c._IsNan=function(){return(vy=c._IsNan=c.asm.IsNan).apply(null,arguments)},wy=c._LRN=function(){return(wy=c._LRN=c.asm.LRN).apply(null,arguments)},ky=c._LRNGrad=function(){return(ky=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},Iy=c._LeakyRelu=function(){return(Iy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Sy=c._Less=function(){return(Sy=c._Less=c.asm.Less).apply(null,arguments)},Ny=c._LessEqual=function(){return(Ny=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Ty=c._LinSpace=function(){return(Ty=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},Cy=c._Log=function(){return(Cy=c._Log=c.asm.Log).apply(null,arguments)},Ey=c._Log1p=function(){return(Ey=c._Log1p=c.asm.Log1p).apply(null,arguments)},_y=c._LogicalAnd=function(){return(_y=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Ay=c._LogicalNot=function(){return(Ay=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Fy=c._LogicalOr=function(){return(Fy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},$y=c._LogicalXor=function(){return($y=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Dy=c._Max=function(){return(Dy=c._Max=c.asm.Max).apply(null,arguments)},Ry=c._MaxPool=function(){return(Ry=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},My=c._MaxPool3D=function(){return(My=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},Oy=c._MaxPool3DGrad=function(){return(Oy=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},Py=c._MaxPoolGrad=function(){return(Py=c._MaxPoolGrad=c.asm.MaxPoolGrad).apply(null,arguments)},Ly=c._MaxPoolWithArgmax=function(){return(Ly=c._MaxPoolWithArgmax=c.asm.MaxPoolWithArgmax).apply(null,arguments)},zy=c._Maximum=function(){return(zy=c._Maximum=c.asm.Maximum).apply(null,arguments)},Wy=c._Mean=function(){return(Wy=c._Mean=c.asm.Mean).apply(null,arguments)},By=c._Min=function(){return(By=c._Min=c.asm.Min).apply(null,arguments)},Vy=c._Minimum=function(){return(Vy=c._Minimum=c.asm.Minimum).apply(null,arguments)},Uy=c._MirrorPad=function(){return(Uy=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Gy=c._Mod=function(){return(Gy=c._Mod=c.asm.Mod).apply(null,arguments)},Hy=c._Multinomial=function(){return(Hy=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},jy=c._Multiply=function(){return(jy=c._Multiply=c.asm.Multiply).apply(null,arguments)},qy=c._Neg=function(){return(qy=c._Neg=c.asm.Neg).apply(null,arguments)},Ky=c._NonMaxSuppressionV3=function(){return(Ky=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Xy=c._NonMaxSuppressionV4=function(){return(Xy=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},lh=c._NonMaxSuppressionV5=function(){return(lh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},uh=c._NotEqual=function(){return(uh=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},jp=c._OneHot=function(){return(jp=c._OneHot=c.asm.OneHot).apply(null,arguments)},Yy=c._PadV2=function(){return(Yy=c._PadV2=c.asm.PadV2).apply(null,arguments)},Zy=c._Pow=function(){return(Zy=c._Pow=c.asm.Pow).apply(null,arguments)},yl=c._Prelu=function(){return(yl=c._Prelu=c.asm.Prelu).apply(null,arguments)},ph=c._Prod=function(){return(ph=c._Prod=c.asm.Prod).apply(null,arguments)},xl=c._RealDiv=function(){return(xl=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},vl=c._Reciprocal=function(){return(vl=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},Jy=c._Relu=function(){return(Jy=c._Relu=c.asm.Relu).apply(null,arguments)},Y=c._Relu6=function(){return(Y=c._Relu6=c.asm.Relu6).apply(null,arguments)},oe=c._ResizeBilinear=function(){return(oe=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Ie=c._ResizeBilinearGrad=function(){return(Ie=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},Ye=c._ResizeNearestNeighbor=function(){return(Ye=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},wt=c._ResizeNearestNeighborGrad=function(){return(wt=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},kt=c._Reverse=function(){return(kt=c._Reverse=c.asm.Reverse).apply(null,arguments)},Ge=c._RotateWithOffset=function(){return(Ge=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Be=c._Round=function(){return(Be=c._Round=c.asm.Round).apply(null,arguments)},Pt=c._Rsqrt=function(){return(Pt=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},la=c._ScatterNd=function(){return(la=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},wr=c._SearchSorted=function(){return(wr=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},ch=c._SelectV2=function(){return(ch=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},qp=c._Selu=function(){return(qp=c._Selu=c.asm.Selu).apply(null,arguments)},Qy=c._Sigmoid=function(){return(Qy=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Rn=c._Sign=function(){return(Rn=c._Sign=c.asm.Sign).apply(null,arguments)},jr=c._Sin=function(){return(jr=c._Sin=c.asm.Sin).apply(null,arguments)},dh=c._Sinh=function(){return(dh=c._Sinh=c.asm.Sinh).apply(null,arguments)},BD=c._Softmax=function(){return(BD=c._Softmax=c.asm.Softmax).apply(null,arguments)},VD=c._Softplus=function(){return(VD=c._Softplus=c.asm.Softplus).apply(null,arguments)},UD=c._SparseFillEmptyRows=function(){return(UD=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},GD=c._SparseReshape=function(){return(GD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},HD=c._SparseSegmentReduction=function(){return(HD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},jD=c._SparseToDense=function(){return(jD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},qD=c._Sqrt=function(){return(qD=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},KD=c._Square=function(){return(KD=c._Square=c.asm.Square).apply(null,arguments)},XD=c._SquaredDifference=function(){return(XD=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},YD=c._Step=function(){return(YD=c._Step=c.asm.Step).apply(null,arguments)},ZD=c._StridedSlice=function(){return(ZD=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},JD=c._Sub=function(){return(JD=c._Sub=c.asm.Sub).apply(null,arguments)},QD=c._Sum=function(){return(QD=c._Sum=c.asm.Sum).apply(null,arguments)},eR=c._Tan=function(){return(eR=c._Tan=c.asm.Tan).apply(null,arguments)},tR=c._Tanh=function(){return(tR=c._Tanh=c.asm.Tanh).apply(null,arguments)},nR=c._TensorScatterUpdate=function(){return(nR=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},aR=c._Tile=function(){return(aR=c._Tile=c.asm.Tile).apply(null,arguments)},rR=c._TopK=function(){return(rR=c._TopK=c.asm.TopK).apply(null,arguments)},sR=c._Transform=function(){return(sR=c._Transform=c.asm.Transform).apply(null,arguments)},iR=c._Transpose=function(){return(iR=c._Transpose=c.asm.Transpose).apply(null,arguments)},oR=c.__FusedMatMul=function(){return(oR=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},lR=c._malloc=function(){return(lR=c._malloc=c.asm.malloc).apply(null,arguments)},uR=c._free=function(){return(uR=c._free=c.asm.free).apply(null,arguments)},pR=c.__emscripten_tls_init=function(){return(pR=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},hh=c._pthread_self=function(){return(hh=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},cR=c.___errno_location=function(){return(cR=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Lk=c.__emscripten_thread_init=function(){return(Lk=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},dR=c.__emscripten_thread_crashed=function(){return(dR=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},hR=c._emscripten_main_thread_process_queued_calls=function(){return(hR=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},mR=c._emscripten_main_browser_thread_id=function(){return(mR=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},zk=c._emscripten_run_in_main_runtime_thread_js=function(){return(zk=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},fR=c._emscripten_dispatch_to_thread_=function(){return(fR=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Wk=c.__emscripten_proxy_execute_task_queue=function(){return(Wk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},ex=c.__emscripten_thread_free_data=function(){return(ex=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},Bk=c.__emscripten_thread_exit=function(){return(Bk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},Vk=c._emscripten_stack_set_limits=function(){return(Vk=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},tx=c.stackSave=function(){return(tx=c.stackSave=c.asm.stackSave).apply(null,arguments)},mh=c.stackRestore=function(){return(mh=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},fh=c.stackAlloc=function(){return(fh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},gR=c.dynCall_iijjiiii=function(){return(gR=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},bR=c.dynCall_jiji=function(){return(bR=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Ia,c.wasmMemory=ue,c.cwrap=ob,c.ExitStatus=Gs,c.PThread=Ae;var gh;vr=function R(){gh||Uk(),gh||(vr=R)};function Uk(R){if(R=R||b,Gr>0)return;if(C){h(c),Jt(),startWorker(c);return}if(Ur(),Gr>0)return;function j(){gh||(gh=!0,c.calledRun=!0,!ke&&(Jt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Hd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();Uk();var bh;f&&(bh={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var yh;if(typeof WasmBackendModule!="undefined")yh=WasmBackendModule;else if(typeof r!="undefined")yh=r;else throw new Error("Could not find wasm module in post.js");if(bh){var yR=yh._dispose;yh._dispose=function(){yR(),bh.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),bh.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}return 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)}),UR=Vt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}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;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),GR=Vt((e,t)=>{var n=(()=>{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(Y,oe){i=Y,o=oe});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,v,I;function N(Y){Y instanceof fl||D("exiting due to exception: "+Y)}if(f){var C=Iv(),_=$S();m?g=_.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=Ur(Y)?new URL(Y):_.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),v=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=Ur(Y)?new URL(Y):_.normalize(Y),C.readFile(Y,function(Ye,wt){Ye?Ie(Ye):oe(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof fl))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(Gn())throw process.exitCode=Y,oe;N(oe),process.exit(Y)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(v=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Ye=new XMLHttpRequest;Ye.open("GET",Y,!0),Ye.responseType="arraybuffer",Ye.onload=()=>{if(Ye.status==200||Ye.status==0&&Ye.response){oe(Ye.response);return}Ie()},Ye.onerror=Ie,Ye.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var $=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Za("no native wasm support detected");var B,U=!1,H;function q(Y,oe){Y||Za(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Ye=oe+Ie,wt=oe;Y[wt]&&!(wt>=Ye);)++wt;if(wt-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,wt));for(var kt="";oe>10,56320|la&1023)}}return kt}function J(Y,oe){return Y>>>=0,Y?Z(ie,Y,oe):""}function ee(Y,oe,Ie,Ye){if(Ie>>>=0,!(Ye>0))return 0;for(var wt=Ie,kt=Ie+Ye-1,Ge=0;Ge=55296&&Be<=57343){var Pt=Y.charCodeAt(++Ge);Be=65536+((Be&1023)<<10)|Pt&1023}if(Be<=127){if(Ie>=kt)break;oe[Ie++>>>0]=Be}else if(Be<=2047){if(Ie+1>=kt)break;oe[Ie++>>>0]=192|Be>>6,oe[Ie++>>>0]=128|Be&63}else if(Be<=65535){if(Ie+2>=kt)break;oe[Ie++>>>0]=224|Be>>12,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}else{if(Ie+3>=kt)break;oe[Ie++>>>0]=240|Be>>18,oe[Ie++>>>0]=128|Be>>12&63,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}}return oe[Ie>>>0]=0,Ie-wt}function ae(Y,oe,Ie){return ee(Y,ie,oe,Ie)}var te,se,ie,ve,ue,ye,ke,Se,Le;function Ue(Y){te=Y,s.HEAP8=se=new Int8Array(Y),s.HEAP16=ve=new Int16Array(Y),s.HEAP32=ye=new Int32Array(Y),s.HEAPU8=ie=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=Le=new Float64Array(Y)}var mt=s.INITIAL_MEMORY||16777216,st,tt=[],nt=[],Re=[],gt=!1;function Gn(){return M}function Ot(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());vr(tt)}function ia(){gt=!0,vr(nt)}function un(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)$n(s.postRun.shift());vr(Re)}function Fn(Y){tt.unshift(Y)}function oa(Y){nt.unshift(Y)}function $n(Y){Re.unshift(Y)}var ut=0,Dn=null,Hn=null;function xr(Y){ut++,s.monitorRunDependencies&&s.monitorRunDependencies(ut)}function ml(Y){if(ut--,s.monitorRunDependencies&&s.monitorRunDependencies(ut),ut==0&&(Dn!==null&&(clearInterval(Dn),Dn=null),Hn)){var oe=Hn;Hn=null,oe()}}function Za(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var Wp="data:application/octet-stream;base64,";function Ia(Y){return Y.startsWith(Wp)}function Ur(Y){return Y.startsWith("file://")}var Jt;Jt="tfjs-backend-wasm.wasm",Ia(Jt)||(Jt=b(Jt));function Hd(Y){try{if(Y==Jt&&S)return new Uint8Array(S);if(v)return v(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){Za(oe)}}function Sg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Ur(Jt))return fetch(Jt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Jt+"'";return Y.arrayBuffer()}).catch(function(){return Hd(Jt)});if(x)return new Promise(function(Y,oe){x(Jt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return Hd(Jt)})}function Ng(){var Y={env:Bp,wasi_snapshot_preview1:Bp};function oe(Ge,Be){var Pt=Ge.exports;s.asm=Pt,B=s.asm.memory,Ue(B.buffer),st=s.asm.__indirect_function_table,oa(s.asm.__wasm_call_ctors),ml("wasm-instantiate")}xr("wasm-instantiate");function Ie(Ge){oe(Ge.instance)}function Ye(Ge){return Sg().then(function(Be){return WebAssembly.instantiate(Be,Y)}).then(function(Be){return Be}).then(Ge,function(Be){D("failed to asynchronously prepare wasm: "+Be),Za(Be)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Ia(Jt)&&!Ur(Jt)&&!f&&typeof fetch=="function"?fetch(Jt,{credentials:"same-origin"}).then(function(Ge){var Be=WebAssembly.instantiateStreaming(Ge,Y);return Be.then(Ie,function(Pt){return D("wasm streaming compile failed: "+Pt),D("falling back to ArrayBuffer instantiation"),Ye(Ie)})}):Ye(Ie)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(Y,oe);return kt}catch(Ge){D("Module.instantiateWasm callback failed with error: "+Ge),o(Ge)}return wt().catch(o),{}}var Rk,Gr;function fl(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function vr(Y){for(;Y.length>0;)Y.shift()(s)}function Tg(){Za("")}function jd(){return 4294901760}function Us(){return jd()}function Cg(Y,oe,Ie){ie.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function qd(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ue(B.buffer),1}catch(oe){}}function gl(Y){var oe=ie.length;Y=Y>>>0;var Ie=jd();if(Y>Ie)return!1;let Ye=(Pt,la)=>Pt+(la-Pt%la)%la;for(var wt=1;wt<=4;wt*=2){var kt=oe*(1+.2/wt);kt=Math.min(kt,Y+100663296);var Ge=Math.min(Ie,Ye(Math.max(Y,kt),65536)),Be=qd(Ge);if(Be)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=ye[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function Kd(Y){return 52}function Eg(Y,oe,Ie,Ye,wt){return 70}var _g=[null,[],[]];function Mk(Y,oe){var Ie=_g[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function Ok(Y,oe,Ie,Ye){for(var wt=0,kt=0;kt>>2],Be=ke[oe+4>>>2];oe+=8;for(var Pt=0;Pt>>0]);wt+=Be}return ke[Ye>>>2]=wt,0}function Xd(Y){var oe=s["_"+Y];return oe}function Gs(Y,oe){se.set(Y,oe>>>0)}function Ag(Y,oe,Ie,Ye,wt){var kt={string:Rn=>{var jr=0;if(Rn!=null&&Rn!==0){var dh=(Rn.length<<2)+1;jr=jp(dh),ae(Rn,jr,dh)}return jr},array:Rn=>{var jr=jp(Rn.length);return Gs(Rn,jr),jr}};function Ge(Rn){return oe==="string"?J(Rn):oe==="boolean"?!!Rn:Rn}var Be=Xd(Y),Pt=[],la=0;if(Ye)for(var wr=0;wrGe==="number"||Ge==="boolean"),kt=oe!=="string";return kt&&wt&&!Ye?Xd(Y):function(){return Ag(Y,oe,Ie,arguments,Ye)}}var Bp={abort:Tg,emscripten_get_heap_max:Us,emscripten_memcpy_big:Cg,emscripten_resize_heap:gl,fd_close:Kd,fd_seek:Eg,fd_write:Ok},$g=Ng(),Yd=s.___wasm_call_ctors=function(){return(Yd=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Zd=s._init=function(){return(Zd=s._init=s.asm.init).apply(null,arguments)},Dg=s._init_with_threads_count=function(){return(Dg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Jd=s._get_threads_count=function(){return(Jd=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Rg=s._register_tensor=function(){return(Rg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Vp=s._dispose=function(){return(Vp=s._dispose=s.asm.dispose).apply(null,arguments)},Mg=s._Abs=function(){return(Mg=s._Abs=s.asm.Abs).apply(null,arguments)},Qd=s._Acos=function(){return(Qd=s._Acos=s.asm.Acos).apply(null,arguments)},bl=s._Acosh=function(){return(bl=s._Acosh=s.asm.Acosh).apply(null,arguments)},Og=s._Add=function(){return(Og=s._Add=s.asm.Add).apply(null,arguments)},Pg=s._AddN=function(){return(Pg=s._AddN=s.asm.AddN).apply(null,arguments)},Lg=s._All=function(){return(Lg=s._All=s.asm.All).apply(null,arguments)},zg=s._Any=function(){return(zg=s._Any=s.asm.Any).apply(null,arguments)},Wg=s._ArgMax=function(){return(Wg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},eh=s._ArgMin=function(){return(eh=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},th=s._Asin=function(){return(th=s._Asin=s.asm.Asin).apply(null,arguments)},Bg=s._Asinh=function(){return(Bg=s._Asinh=s.asm.Asinh).apply(null,arguments)},Vg=s._Atan=function(){return(Vg=s._Atan=s.asm.Atan).apply(null,arguments)},Ug=s._Atan2=function(){return(Ug=s._Atan2=s.asm.Atan2).apply(null,arguments)},Up=s._Atanh=function(){return(Up=s._Atanh=s.asm.Atanh).apply(null,arguments)},Gg=s._AvgPool=function(){return(Gg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Hg=s._AvgPool3D=function(){return(Hg=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},jg=s._AvgPool3DGrad=function(){return(jg=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},Hs=s._AvgPoolGrad=function(){return(Hs=s._AvgPoolGrad=s.asm.AvgPoolGrad).apply(null,arguments)},qg=s._BatchMatMul=function(){return(qg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Kg=s._Bincount=function(){return(Kg=s._Bincount=s.asm.Bincount).apply(null,arguments)},nh=s._BitwiseAnd=function(){return(nh=s._BitwiseAnd=s.asm.BitwiseAnd).apply(null,arguments)},Xg=s._Ceil=function(){return(Xg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Gp=s._ClipByValue=function(){return(Gp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Yg=s._Conv2D=function(){return(Yg=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Zg=s._Conv2DBackpropInput=function(){return(Zg=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Jg=s._Conv3D=function(){return(Jg=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},Hr=s._Conv3DBackpropFilterV2=function(){return(Hr=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Hp=s._Conv3DBackpropInputV2=function(){return(Hp=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},Qg=s._Cos=function(){return(Qg=s._Cos=s.asm.Cos).apply(null,arguments)},eb=s._Cosh=function(){return(eb=s._Cosh=s.asm.Cosh).apply(null,arguments)},tb=s._CropAndResize=function(){return(tb=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},nb=s._Cumprod=function(){return(nb=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},ah=s._Cumsum=function(){return(ah=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},rh=s._DenseBincount=function(){return(rh=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},ab=s._DepthToSpace=function(){return(ab=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},rb=s._DepthwiseConv2dNative=function(){return(rb=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},sh=s._Diag=function(){return(sh=s._Diag=s.asm.Diag).apply(null,arguments)},ih=s._Dilation2D=function(){return(ih=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},sb=s._Dilation2DBackpropFilter=function(){return(sb=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},ib=s._Dilation2DBackpropInput=function(){return(ib=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},ob=s._Elu=function(){return(ob=s._Elu=s.asm.Elu).apply(null,arguments)},lb=s._EluGrad=function(){return(lb=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},oh=s._Equal=function(){return(oh=s._Equal=s.asm.Equal).apply(null,arguments)},Pk=s._Erf=function(){return(Pk=s._Erf=s.asm.Erf).apply(null,arguments)},ub=s._Exp=function(){return(ub=s._Exp=s.asm.Exp).apply(null,arguments)},pb=s._Expm1=function(){return(pb=s._Expm1=s.asm.Expm1).apply(null,arguments)},cb=s._FlipLeftRight=function(){return(cb=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},db=s._Floor=function(){return(db=s._Floor=s.asm.Floor).apply(null,arguments)},hb=s._FloorDiv=function(){return(hb=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},mb=s._FusedBatchNorm=function(){return(mb=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},fb=s._FusedConv2D=function(){return(fb=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},gb=s._FusedDepthwiseConv2D=function(){return(gb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},bb=s._Gather=function(){return(bb=s._Gather=s.asm.Gather).apply(null,arguments)},yb=s._GatherNd=function(){return(yb=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},xb=s._Greater=function(){return(xb=s._Greater=s.asm.Greater).apply(null,arguments)},vb=s._GreaterEqual=function(){return(vb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},wb=s._IsFinite=function(){return(wb=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},kb=s._IsInf=function(){return(kb=s._IsInf=s.asm.IsInf).apply(null,arguments)},Ib=s._IsNan=function(){return(Ib=s._IsNan=s.asm.IsNan).apply(null,arguments)},Sb=s._LRN=function(){return(Sb=s._LRN=s.asm.LRN).apply(null,arguments)},Nb=s._LRNGrad=function(){return(Nb=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},Tb=s._LeakyRelu=function(){return(Tb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Cb=s._Less=function(){return(Cb=s._Less=s.asm.Less).apply(null,arguments)},Eb=s._LessEqual=function(){return(Eb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},_b=s._LinSpace=function(){return(_b=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},Ab=s._Log=function(){return(Ab=s._Log=s.asm.Log).apply(null,arguments)},Fb=s._Log1p=function(){return(Fb=s._Log1p=s.asm.Log1p).apply(null,arguments)},$b=s._LogicalAnd=function(){return($b=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Db=s._LogicalNot=function(){return(Db=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Rb=s._LogicalOr=function(){return(Rb=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Mb=s._LogicalXor=function(){return(Mb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Ob=s._Max=function(){return(Ob=s._Max=s.asm.Max).apply(null,arguments)},Pb=s._MaxPool=function(){return(Pb=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Lb=s._MaxPool3D=function(){return(Lb=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},zb=s._MaxPool3DGrad=function(){return(zb=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},Wb=s._MaxPoolGrad=function(){return(Wb=s._MaxPoolGrad=s.asm.MaxPoolGrad).apply(null,arguments)},Bb=s._MaxPoolWithArgmax=function(){return(Bb=s._MaxPoolWithArgmax=s.asm.MaxPoolWithArgmax).apply(null,arguments)},Vb=s._Maximum=function(){return(Vb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Ub=s._Mean=function(){return(Ub=s._Mean=s.asm.Mean).apply(null,arguments)},Gb=s._Min=function(){return(Gb=s._Min=s.asm.Min).apply(null,arguments)},Hb=s._Minimum=function(){return(Hb=s._Minimum=s.asm.Minimum).apply(null,arguments)},jb=s._MirrorPad=function(){return(jb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},qb=s._Mod=function(){return(qb=s._Mod=s.asm.Mod).apply(null,arguments)},Kb=s._Multinomial=function(){return(Kb=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},Xb=s._Multiply=function(){return(Xb=s._Multiply=s.asm.Multiply).apply(null,arguments)},Yb=s._Neg=function(){return(Yb=s._Neg=s.asm.Neg).apply(null,arguments)},Zb=s._NonMaxSuppressionV3=function(){return(Zb=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},Jb=s._NonMaxSuppressionV4=function(){return(Jb=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Qb=s._NonMaxSuppressionV5=function(){return(Qb=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},ey=s._NotEqual=function(){return(ey=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},ty=s._OneHot=function(){return(ty=s._OneHot=s.asm.OneHot).apply(null,arguments)},ny=s._PadV2=function(){return(ny=s._PadV2=s.asm.PadV2).apply(null,arguments)},ay=s._Pow=function(){return(ay=s._Pow=s.asm.Pow).apply(null,arguments)},ry=s._Prelu=function(){return(ry=s._Prelu=s.asm.Prelu).apply(null,arguments)},sy=s._Prod=function(){return(sy=s._Prod=s.asm.Prod).apply(null,arguments)},iy=s._RealDiv=function(){return(iy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},oy=s._Reciprocal=function(){return(oy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},ly=s._Relu=function(){return(ly=s._Relu=s.asm.Relu).apply(null,arguments)},uy=s._Relu6=function(){return(uy=s._Relu6=s.asm.Relu6).apply(null,arguments)},py=s._ResizeBilinear=function(){return(py=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},cy=s._ResizeBilinearGrad=function(){return(cy=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},dy=s._ResizeNearestNeighbor=function(){return(dy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},hy=s._ResizeNearestNeighborGrad=function(){return(hy=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},my=s._Reverse=function(){return(my=s._Reverse=s.asm.Reverse).apply(null,arguments)},fy=s._RotateWithOffset=function(){return(fy=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},gy=s._Round=function(){return(gy=s._Round=s.asm.Round).apply(null,arguments)},by=s._Rsqrt=function(){return(by=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},yy=s._ScatterNd=function(){return(yy=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},xy=s._SearchSorted=function(){return(xy=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},vy=s._SelectV2=function(){return(vy=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},wy=s._Selu=function(){return(wy=s._Selu=s.asm.Selu).apply(null,arguments)},ky=s._Sigmoid=function(){return(ky=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Iy=s._Sign=function(){return(Iy=s._Sign=s.asm.Sign).apply(null,arguments)},Sy=s._Sin=function(){return(Sy=s._Sin=s.asm.Sin).apply(null,arguments)},Ny=s._Sinh=function(){return(Ny=s._Sinh=s.asm.Sinh).apply(null,arguments)},Ty=s._Softmax=function(){return(Ty=s._Softmax=s.asm.Softmax).apply(null,arguments)},Cy=s._Softplus=function(){return(Cy=s._Softplus=s.asm.Softplus).apply(null,arguments)},Ey=s._SparseFillEmptyRows=function(){return(Ey=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},_y=s._SparseReshape=function(){return(_y=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Ay=s._SparseSegmentReduction=function(){return(Ay=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Fy=s._SparseToDense=function(){return(Fy=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},$y=s._Sqrt=function(){return($y=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Dy=s._Square=function(){return(Dy=s._Square=s.asm.Square).apply(null,arguments)},Ry=s._SquaredDifference=function(){return(Ry=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},My=s._Step=function(){return(My=s._Step=s.asm.Step).apply(null,arguments)},Oy=s._StridedSlice=function(){return(Oy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Py=s._Sub=function(){return(Py=s._Sub=s.asm.Sub).apply(null,arguments)},Ly=s._Sum=function(){return(Ly=s._Sum=s.asm.Sum).apply(null,arguments)},zy=s._Tan=function(){return(zy=s._Tan=s.asm.Tan).apply(null,arguments)},Wy=s._Tanh=function(){return(Wy=s._Tanh=s.asm.Tanh).apply(null,arguments)},By=s._TensorScatterUpdate=function(){return(By=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},Vy=s._Tile=function(){return(Vy=s._Tile=s.asm.Tile).apply(null,arguments)},Uy=s._TopK=function(){return(Uy=s._TopK=s.asm.TopK).apply(null,arguments)},Gy=s._Transform=function(){return(Gy=s._Transform=s.asm.Transform).apply(null,arguments)},Hy=s._Transpose=function(){return(Hy=s._Transpose=s.asm.Transpose).apply(null,arguments)},jy=s.__FusedMatMul=function(){return(jy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},qy=s._malloc=function(){return(qy=s._malloc=s.asm.malloc).apply(null,arguments)},Ky=s._free=function(){return(Ky=s._free=s.asm.free).apply(null,arguments)},Xy=s.___errno_location=function(){return(Xy=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},lh=s.stackSave=function(){return(lh=s.stackSave=s.asm.stackSave).apply(null,arguments)},uh=s.stackRestore=function(){return(uh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},jp=s.stackAlloc=function(){return(jp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Yy=s.dynCall_iijjiiii=function(){return(Yy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Zy=s.dynCall_jiji=function(){return(Zy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Fg;var yl;Hn=function Y(){yl||ph(),yl||(Hn=Y)};function ph(Y){if(Y=Y||p,ut>0||(Ot(),ut>0))return;function oe(){yl||(yl=!0,s.calledRun=!0,!U&&(ia(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),un()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();ph();var xl;l&&(xl={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-1})});var vl;if(typeof r!="undefined")vl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")vl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(xl){var Jy=vl._dispose;vl._dispose=function(){Jy(),xl.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),xl.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}return 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)}),ym=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}},Fc=class{refCount(e){return jn("refCount")}incRef(e){return jn("incRef")}timerAvailable(){return!0}time(e){return jn("time")}read(e){return jn("read")}readSync(e){return jn("readSync")}readToGPU(e,t){return jn("readToGPU")}numDataIds(){return jn("numDataIds")}disposeData(e,t){return jn("disposeData")}write(e,t,n){return jn("write")}move(e,t,n,a,r){return jn("move")}createTensorFromGPUData(e,t,n){return jn("createTensorFromGPUData")}memory(){return jn("memory")}floatPrecision(){return jn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return jn("dispose")}};function jn(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 DS(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Vh(e,t,n)}function HR(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=0;for(;n>0;)a=Math.random()*n|0,n--,Vh(e,n,a),Vh(t,n,a)}function hc(e,t,n){return Math.max(e,Math.min(t,n))}function jR(e){return e%2===0?e:e+1}function Vh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function qR(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Si(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ot(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function tM(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 Aa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>$l(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function MS(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Aa(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 OS(e,t){return Sv(e,t)}function Sv(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 PS(e,t){for(let n=0;nt+=n.length),t}function Jr(e){return typeof e=="string"||e instanceof String}function WS(e){return typeof e=="boolean"}function BS(e){return typeof e=="number"}function $c(e){return Array.isArray(e)?$c(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":BS(e)?"float32":Jr(e)?"string":WS(e)?"bool":"float32"}function ss(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Gh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function VS(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return VS(0,e,t,n)}function aM(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function Nv(e,t){let n=xm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return El(e,new Float32Array(n));if(t==="int32")return El(e,new Int32Array(n));if(t==="bool")return El(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function na(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function sM(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]=uM(n,a)})}};function oM(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(lM(t,a[0],a[1]),a.join("="))),t}function lM(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function uM(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return Tv}var Tv=null;function pM(e){Tv=e}var rx;function GS(){if(rx==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");rx=e}return rx}function cM(){let e=GS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Cv(e,t){let n=cM();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Yl="Abs",Ni="Acos",Ti="Acosh",vs="Add",Ci="AddN",Zl="All",Jl="Any",Ql="ArgMax",eu="ArgMin",Ei="Asin",_i="Asinh",Ai="Atan",Fi="Atanh",$i="Atan2",Di="AvgPool",Dc="AvgPoolGrad",tu="AvgPool3D",Rc="AvgPool3DGrad",Ri="BatchMatMul",nu="BatchToSpaceND",au="Bincount",ru="BitwiseAnd",HS="BroadcastTo",Mc="BroadcastArgs",Mi="Cast",Oi="Ceil",ws="ClipByValue",wm="Complex",Oc="ComplexAbs",su="Concat",Pi="Conv2D",km="Conv2DBackpropFilter",Li="Conv2DBackpropInput",zi="Conv3D",iu="Conv3DBackpropFilterV2",ou="Conv3DBackpropInputV2",Wi="Cos",Bi="Cosh",lu="Cumprod",Vi="Cumsum",uu="CropAndResize",Pc="DenseBincount",pu="DepthToSpace",Ui="DepthwiseConv2dNative",Im="DepthwiseConv2dNativeBackpropFilter",Sm="DepthwiseConv2dNativeBackpropInput",Lc="Diag",Gi="Dilation2D",Dl="Dilation2DBackpropInput",Rl="Dilation2DBackpropFilter",Nm="Draw",Hi="RealDiv",Tm="Einsum",ji="Elu",cu="EluGrad",qi="Erf",du="Equal",Ki="Exp",hu="ExpandDims",Xi="Expm1",Cm="FFT",zc="Fill",mu="FlipLeftRight",Yi="Floor",Zi="FloorDiv",Ji="FusedBatchNorm",fu="GatherV2",gu="GatherNd",bu="Greater",Qi="GreaterEqual",eo="Identity",Em="IFFT",_m="Imag",to="IsFinite",no="IsInf",ao="IsNan",ro="LeakyRelu",yu="Less",xu="LessEqual",vu="LinSpace",so="Log",io="Log1p",wu="LogicalAnd",ku="LogicalNot",Iu="LogicalOr",jS="LogicalXor",qS="LogSoftmax",dM="LowerBound",oo="LRN",Su="LRNGrad",hM="MatrixBandPart",lo="Max",uo="Maximum",po="MaxPool",Wc="MaxPoolGrad",Nu="MaxPool3D",Bc="MaxPool3DGrad",Vc="MaxPoolWithArgmax",co="Mean",ho="Min",mo="Minimum",fo="MirrorPad",go="Mod",Tu="Multinomial",bo="Multiply",Cu="Neg",Eu="NotEqual",_u="NonMaxSuppressionV3",Au="NonMaxSuppressionV4",Fu="NonMaxSuppressionV5",$u="OnesLike",yo="OneHot",Du="Pack",xo="PadV2",mM="Pool",vo="Pow",wo="Prelu",ko="Prod",Am="RaggedGather",Fm="RaggedRange",$m="RaggedTensorToTensor",Uc="Range",Dm="Real",Io="Reciprocal",So="Relu",Ru="Reshape",No="ResizeNearestNeighbor",Mu="ResizeNearestNeighborGrad",To="ResizeBilinear",Ou="ResizeBilinearGrad",Co="Relu6",Eo="Reverse",_o="Round",Ao="Rsqrt",Pu="ScatterNd",Lu="TensorScatterUpdate",zu="SearchSorted",Wu="Select",Fo="Selu",Bu="Slice",$o="Sin",Do="Sinh",Ro="Sign",Mo="Sigmoid",Oo="Softplus",Po="Sqrt",Lo="Sum",Vu="SpaceToBatchND",Uu="SplitV",zo="Softmax",Gc="SparseFillEmptyRows",Gu="SparseReshape",Hc="SparseSegmentMean",jc="SparseSegmentSum",Hu="SparseToDense",Wo="SquaredDifference",qc="Square",Kc="StaticRegexReplace",ju="StridedSlice",Xc="StringNGrams",Yc="StringSplit",Zc="StringToHashBucketFast",Bo="Sub",Vo="Tan",Uo="Tanh",ks="Tile",qu="TopK",Ku="Transform",Cr="Transpose",Jc="Unique",Xu="Unpack",Qc="UnsortedSegmentSum",fM="UpperBound",Yu="ZerosLike",Is="Step",Hh="FromPixels",Zu="RotateWithOffset",ii="_FusedMatMul",oi="FusedConv2D",li="FusedDepthwiseConv2D";function Zr(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function gM(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var Ml=Cv("kernelRegistry",()=>new Map),mc=Cv("gradRegistry",()=>new Map);function fc(e,t){let n=Ev(e,t);return Ml.get(n)}function vx(e){return mc.get(e)}function jh(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 ed(e){let{kernelName:t,backendName:n}=e,a=Ev(t,n);Ml.has(a)&&Zr(`The kernel '${t}' for backend '${n}' is already registered`),Ml.set(a,e)}function KS(e){let{kernelName:t}=e;mc.has(t)&&G().getBool("DEBUG")&&Zr(`Overriding the gradient for '${t}'`),mc.set(t,e)}function bM(e,t){let n=Ev(e,t);if(!Ml.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ml.delete(n)}function yM(e){if(!mc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);mc.delete(e)}function xM(e,t){jh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});ed(a)})}function Ev(e,t){return`${t}_${e}`}var w={};_e(w,{arraysEqual:()=>Ar,arraysEqualWithNull:()=>RS,assert:()=>A,assertNonNegativeIntegerDimensions:()=>na,assertNonNull:()=>Si,assertShapesMatch:()=>Nn,bytesFromStringArray:()=>zS,bytesPerElement:()=>Uh,checkConversionForErrors:()=>PS,clamp:()=>hc,computeStrides:()=>Xl,convertBackendValuesAndArrayBuffer:()=>aM,createScalarValue:()=>NM,createShuffledIndices:()=>QR,decodeString:()=>qh,distSquared:()=>XR,encodeString:()=>nd,fetch:()=>CM,fingerPrint64:()=>SM,flatten:()=>is,getArrayFromDType:()=>Sv,getTypedArrayFromDType:()=>OS,hasEncodingLoss:()=>nM,hexToLong:()=>td,indexToLoc:()=>iM,inferDtype:()=>$c,inferFromImplicitShape:()=>tM,isBoolean:()=>WS,isFunction:()=>ss,isInt:()=>$l,isNumber:()=>BS,isPromise:()=>vm,isScalarShape:()=>YR,isString:()=>Jr,isTypedArray:()=>en,isValidDtype:()=>LS,locToIndex:()=>sM,makeOnesTypedArray:()=>Nv,makeZerosNestedTypedArray:()=>rM,makeZerosTypedArray:()=>xm,nearestDivisor:()=>Gh,nearestLargerEven:()=>jR,now:()=>gc,parseAxisParam:()=>Aa,randUniform:()=>KR,repeatedTry:()=>eM,rightPad:()=>uc,shuffle:()=>DS,shuffleCombo:()=>HR,sizeFromShape:()=>ot,sizeToSquarishShape:()=>JR,squeezeShape:()=>MS,sum:()=>qR,swap:()=>Vh,tanh:()=>ZR,toNestedArray:()=>El,toTypedArray:()=>Rm});function XS(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var qk=xs(ER()),Ys=qk.default||qk;function td(e){return Ys.fromString(e,!0,16)}var YS=td("c3a5c85c97cb3127"),Ks=td("b492b66fbe98f273"),wn=td("9ae16a3b2f90404f");function wx(e){return e.xor(e.shru(47))}function ZS(e,t,n){let a=e.slice(t,t+n);return Ys.fromBytes(Array.from(a),!0,!0)}function bt(e,t){return ZS(e,t,8)}function Kk(e,t){return ZS(e,t,4)}function Qt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ns(e,t,n=td("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function vM(e,t,n,a,r,s){r=r.add(e),s=Qt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Qt(r,44)),[r.add(a),s.add(i)]}function xh(e,t,n,a){return vM(bt(e,t),bt(e,t+8),bt(e,t+16),bt(e,t+24),n,a)}function wM(e,t=e.length){if(t>=8){let n=wn.add(t*2),a=bt(e,0).add(wn),r=bt(e,t-8),s=Qt(r,37).mul(n).add(a),i=Qt(a,25).add(r).mul(n);return ns(s,i,n)}if(t>=4){let n=wn.add(t*2),a=Kk(e,0);return ns(a.shl(3).add(t),Kk(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return wx(wn.mul(s).xor(YS.mul(i))).mul(wn)}return wn}function kM(e,t=e.length){let n=wn.add(t*2),a=bt(e,0).mul(Ks),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(wn);return ns(Qt(a.add(r),43).add(Qt(s,30)).add(i),a.add(Qt(r.add(wn),18)).add(s),n)}function IM(e,t=e.length){let n=wn.add(t*2),a=bt(e,0).mul(wn),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(wn),o=Qt(a.add(r),43).add(Qt(s,30)).add(i),l=ns(o,a.add(Qt(r.add(wn),18)).add(s),n),u=bt(e,16).mul(n),p=bt(e,24),d=o.add(bt(e,t-32)).mul(n),c=l.add(bt(e,t-24)).mul(n);return ns(Qt(u.add(p),43).add(Qt(d,30)).add(c),u.add(Qt(p.add(a),18)).add(d),n)}function SM(e,t=e.length){let n=Ys.fromNumber(81,!0);if(t<=32)return t<=16?wM(e,t):kM(e,t);if(t<=64)return IM(e,t);let a=n,r=n.mul(Ks).add(113),s=wx(r.mul(wn).add(113)).mul(wn),i=[Ys.UZERO,Ys.UZERO],o=[Ys.UZERO,Ys.UZERO];a=a.mul(wn).add(bt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(Ks),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(Ks),a=a.xor(o[1]),r=r.add(i[0]).add(bt(e,l+40)),s=Qt(s.add(o[0]),33).mul(Ks),i=xh(e,l,i[1].mul(Ks),a.add(o[0])),o=xh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Ks.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(d),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(bt(e,l+40))),s=Qt(s.add(o[0]),33).mul(d),i=xh(e,l,i[1].mul(d),a.add(o[0])),o=xh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],ns(ns(i[0],o[0],d).add(wx(r).mul(YS)).add(s),ns(i[1],o[1],d).add(a),d)}function NM(e,t){return t==="string"?nd(e):Rm([e],t)}function TM(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Rm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=is(e)),G().getBool("DEBUG")&&PS(e,t),TM(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=gc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:gc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{_M(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 _M(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function FM(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],p=u.inputs;for(let d=0;d=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 p=s.inputs[l];if(!Ar(u.shape,p.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 '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var Xk=20,Kp=3,sx=7;function DM(e,t,n,a){let r=Xl(t),s=RM(e,t,n,r),i=t.length,o=Dh(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 $M(e,t,n,a){let r=ot(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?ec(e):e;if(o>1)for(let u=0;uXk){let f=Kp*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-Kp)*i,o*i));return n==="complex64"&&(g=ec(g),b=ec(b)),["["+g.map((y,x)=>Qp(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>Qp(y,r[o-Kp+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?ec(e):Array.from(e)).map((f,g)=>Qp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>Xk){for(let f=0;f0?c[0]+h:"");for(let f=1;f1)for(let u=0;uXk){let f=Kp*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-Kp)*i,o*i));return n==="complex64"&&(g=ec(g),b=ec(b)),["["+g.map((y,x)=>Qp(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>Qp(y,r[o-Kp+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?ec(e):Array.from(e)).map((f,g)=>Qp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>Xk){for(let f=0;f0?c[0]+h:"");for(let f=1;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||Iv(t,this.size),this.strides=Xl(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 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;ajh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),za().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=za().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>jh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await za().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),za().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Sl.print(this,e)}clone(){return this.throwIfDisposed(),Sl.clone(this)}toString(e=!1){let t=this.dataSync();return FM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Sl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),za().makeVariable(this,e,t,n)}};Object.defineProperty(Ce,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Tv("Tensor",()=>Ce)}Q();var os=class extends Ce{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Ar(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);za().disposeTensor(this),this.dataId=e.dataId,za().incRef(this,null)}dispose(){za().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(os,Symbol.hasInstance,{value:e=>e instanceof Ce&&e.assign!=null&&e.assign instanceof Function});var Wa={};_e(Wa,{assertTypesMatch:()=>tN,getTensorsInContainer:()=>Ev,isTensorInList:()=>LM,makeTypesMatch:()=>_t});var wx;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(wx||(wx={}));var kx;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(kx||(kx={}));var Ix;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ix||(Ix={}));var Sx;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Sx||(Sx={}));var Nx;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Nx||(Nx={}));var PM={float32:Sx,int32:kx,bool:Ix,complex64:Nx};function fa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return PM[e][t]}function Mm(e){return fa(e,"int32")}function QS(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function eN(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=fa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function tN(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function LM(e,t){return t.some(n=>n.id===e.id)}function Ev(e){let t=[];return nN(e,t,new Set),t}function nN(e,t,n){if(e==null)return;if(e instanceof Ce){t.push(e);return}if(!zM(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),nN(s,t,n))}}function zM(e){return Array.isArray(e)||typeof e=="object"}function sx(e){return e.kernelName!=null}var Yk=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()}},_v=class Tx{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Yk}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let n=0;n{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){qh(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let n=this.registryFactory[t];if(n==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let a=n.factory();if(a&&!(a instanceof Fc)&&typeof a.then=="function"){let r=++this.pendingBackendInitId,s=a.then(i=>r(rthis.registryFactory[n].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let n=0;nthis.startScope(a),()=>this.endScope(r),()=>(r=n(),r instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(t,n,a){t();try{let r=a();return n(),r}catch(r){throw n(),r}}nextTensorId(){return Tx.nextTensorId++}nextVariableId(){return Tx.nextVariableId++}clone(t){let n=P.runKernel(eo,{x:t}),a={x:t},r=i=>({x:()=>{let o="float32",l={x:i},u={dtype:o};return P.runKernel(Mi,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,a,[n],r,s,{}),n}runKernel(t,n,a){if(this.backendName==null&&this.backend,fc(t,this.backendName)==null)throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:n,attrs:a})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,n,a){let r=this.backend.numDataIds(),s=0;a.forEach(l=>{s+=l.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=r-n-s-i;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${t}'`)}runKernelFunc(t){let n,a=[],r=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let o;this.backendName==null&&this.backend;let l,u=sx(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(sx(t)){let{kernelName:m,inputs:f,attrs:g}=t;this.backendName==null&&this.backend;let b=fc(m,this.backendName);A(b!=null,()=>`Cannot find registered kernel '${m}' for backend '${this.backendName}'`),o=()=>{let y=this.backend.numDataIds();l=b.kernelFunc({inputs:f,attrs:g,backend:this.backend});let x=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(m,y,x);let v=x.map(I=>I.rank!=null?I:this.makeTensorFromTensorInfo(I));if(r){let I=this.getTensorsForGradient(m,f,v);a=this.saveTensorsForBackwardMode(I)}return v}}else{let{forwardFunc:m}=t,f=g=>{r&&(a=g.map(b=>this.keep(this.clone(b))))};o=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>m(this.backend,f));let b=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,b),b}}let{inputs:p,attrs:d}=t,c=sx(t)?null:t.backwardsFunc,h;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?n=o():(h=this.profiler.profileKernel(u,p,()=>o()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(h),n=h.outputs)}),r&&this.addTapeNode(u,p,n,c,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(p).map(m=>p[m]!=null?p[m].shape:null),outputShapes:n.map(m=>m.shape),kernelTimeMs:h.timeMs,extraInfo:h.extraInfo}),Array.isArray(l)?n:n[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,n,a){let r=xx(t);if(r!=null){let s=r.inputsToSave||[],i=r.outputsToSave||[],o;r.saveAllInputs?(A(Array.isArray(n),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(n).map(u=>n[u])):o=s.map(u=>n[u]);let l=a.filter((u,p)=>i[p]);return o.concat(l)}return[]}makeTensor(t,n,a,r){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");a=a||"float32",r=r||this.backend;let s=t;a==="string"&&Jr(t[0])&&(s=t.map(l=>nd(l)));let i=r.write(s,n,a),o=new Ce(n,a,i,this.nextTensorId());if(this.trackTensor(o,r),a==="string"){let l=this.state.tensorInfo.get(i),u=zS(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return o}makeTensorFromDataId(t,n,a,r){a=a||"float32";let s={dataId:t,shape:n,dtype:a};return this.makeTensorFromTensorInfo(s,r)}makeTensorFromTensorInfo(t,n){let{dataId:a,shape:r,dtype:s}=t,i=new Ce(r,s,a,this.nextTensorId());return this.trackTensor(i,n),i}makeVariable(t,n=!0,a,r){a=a||this.nextVariableId().toString(),r!=null&&r!==t.dtype&&(t=t.cast(r));let s=new os(t,n,a,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(t,n){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let a=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(a=t.size*Uh(t.dtype)),this.state.numBytes+=a,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:n||this.backend,dtype:t.dtype,shape:t.shape,bytes:a})),t instanceof os||this.track(t)}incRef(t,n){this.trackTensor(t,n),this.backend.incRef(t.dataId)}removeDataId(t,n){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===n&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let n=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=n.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let a=t.size*Uh(t.dtype);this.state.numBytes-=a}n.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,n.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let n=this.state.registeredVariables[t];this.disposeVariable(n)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let n=this.state.numBytes,a=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(r=>r.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-n,this.state.activeProfile.newTensors=this.state.numTensors-a;for(let r of this.state.activeProfile.kernels)r.kernelTimeMs=await r.kernelTimeMs,r.extraInfo=await r.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,n,a,r,s,i){let o={id:this.state.nextTapeNodeId++,kernelName:t,inputs:n,outputs:a,saved:s},l=xx(t);l!=null&&(r=l.gradFunc),r!=null&&(o.gradient=u=>(u=u.map((p,d)=>{if(p==null){let c=a[d],h=xm(c.size,c.dtype);return this.makeTensor(h,c.shape,c.dtype)}return p}),r(u.length>1?u:u[0],s,i))),this.state.activeTape.push(o)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let n={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(n.name=t),this.state.scopeStack.push(n),this.state.activeScope=n}endScope(t){let n=Ev(t),a=new Set(n.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===r.id&&this.track(s)})}gradients(t,n,a,r=!1){if(A(n.length>0,()=>"gradients() received an empty list of xs."),a!=null&&a.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${a.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));A(s instanceof Ce,()=>"The result y returned by f() must be a tensor.");let i=_M(this.state.activeTape,n,s);if(!r&&i.length===0&&n.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 o={};o[s.id]=a==null?WM(s.shape):a,AM(o,i,u=>this.tidy(u),BM);let l=n.map(u=>o[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let p of u.saved)p.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(t){return A(ss(t),()=>"The f passed in customGrad(f) must be a function."),(...n)=>{A(n.every(o=>o instanceof Ce),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let a,r={};n.forEach((o,l)=>{r[l]=o});let s=(o,l)=>(a=t(...n,l),A(a.value instanceof Ce,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(ss(a.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),a.value),i=(o,l)=>{let u=a.gradFunc(o,l),p=Array.isArray(u)?u:[u];A(p.length===n.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(p.every(c=>c instanceof Ce),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let d={};return p.forEach((c,h)=>{d[h]=()=>c}),d};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:r})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,n){return this.state.tensorInfo.get(t).backend.readToGPU(t,n)}async time(t){let n=gc(),a=await this.backend.time(t);return a.wallMs=gc()-n,a}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Yk;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};_v.nextTensorId=0;_v.nextVariableId=0;function WM(e){let t=Sv(ot(e),"float32");return P.makeTensor(t,e,"float32")}function aN(){let e=GS();if(e._tfengine==null){let t=new US(e);e._tfengine=new _v(t)}return lM(e._tfengine.ENV),RM(()=>e._tfengine),e._tfengine}var P=aN();function BM(e,t){let n={a:e,b:t};return P.runKernel(xs,n)}var ad={};_e(ad,{isBrowser:()=>rN,isMobile:()=>GM,mockIsMobile:()=>UM});function VM(){return typeof navigator!="undefined"&&navigator!=null}var Cx;function UM(e){Cx=e}function GM(e){if(Cx!==void 0)return Cx;if(e||VM()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function rN(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var zn=G();zn.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.")});zn.registerFlag("IS_BROWSER",()=>rN());zn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");zn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));zn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));zn.registerFlag("PROD",()=>!1);zn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>zn.getBool("DEBUG"));zn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);zn.registerFlag("IS_TEST",()=>!1);zn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>zn.getBool("DEBUG"));zn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);zn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);zn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(en(e))return t==="string"?[]:[e.length];if(QS(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(eN(e))return[e.buffer.size/(t==null?4:Uh(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||en(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&sN(e,a,[]),a}function sN(e,t,n){if(n=n||[],!Array.isArray(e)&&!en(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(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),Zk(a,r,t,n),e==null||!en(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=lr(e,r);!en(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Rm(e,r):is(e,[],!0);return P.makeTensor(i,s,r)}function bc(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 Av="__op";function L(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+Av;let r=(...s)=>{P.startScope(n);try{let i=a(...s);return vm(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 HM(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");Sn(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(wm,r)}var Er=L({complex_:HM});function Is(e,t,n,a){if(a==null)a=$c(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(eN(e)||QS(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return P.backend.createTensorFromGPUData(e,t||n,a)}if(!en(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){na(t);let r=ot(t),s=ot(n);A(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!en(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Rm(e,a):is(e,[],!0),P.makeTensor(e,t,a)}function bn(e,t,n){let a=lr(e,n);return Is(e,t,a,n)}var li={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Fr=class iN{static join(t){return new iN(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(a=>en(a)?a.buffer:a),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let n=0;for(let a=0;a=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function n(r){return t=r.end?1:0}if(n(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let a=qM(this.shards,n);return a===-1?-1:(this.previousShardIndex=a,this.previousShardIndex)}};function qM(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}function jM(){G().set("PROD",!0)}function KM(){G().set("DEBUG",!0)}function XM(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Fv(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}OM(Fv);function YM(){P.disposeVariables()}function Ta(){return P}function Kh(){return P.memory()}function ZM(e){return P.profile(e)}function O(e,t){return P.tidy(e,t)}function Ee(e){Ev(e).forEach(t=>t.dispose())}function Ht(e){return P.keep(e)}function JM(e){return P.time(e)}function QM(e){return P.setBackend(e)}function eO(){return P.ready()}function oN(){return P.backendName}function tO(e){P.removeBackend(e)}function nO(e){return P.findBackend(e)}function aO(e){return P.findBackendFactory(e)}function Om(e,t,n=1){return P.registerBackend(e,t,n)}function $v(){return P.backend}function rO(e,t){G().setPlatform(e,t)}var ls=4;async function sO(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,b)=>g+b.length,0)+ls*c.length,m=new Uint8Array(h),f=0;for(let g=0;gn.slice(r+o,r+l));a[s.name]=uN(s,n.slice(r,r+i)),r+=i}return a}function iO(e,t){let n=ot(e.shape),a;if("quantization"in e){let r=e.quantization;a=li[r.dtype]}else if(e.dtype==="string"){let r=0;for(let s=0;s(r=await Jk(a,r,p),r.slice(u,p)));r=await Jk(a,r,i);let o=r.slice(0,i);r=r.slice(i);let l=uN(s,o);if(n[s.name]=l,oN()==="webgpu"){let u=$v();"uploadToGPU"in u&&ot(l.shape)>=G().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&u.uploadToGPU(l.dataId)}}return n}function lO(e){if(e===null)throw new Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,n=[];e.forEach(s=>{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 Dv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function Qk(e){return Dv?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function uO(e){if(Dv)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{let a=n<<13,r=0;for(;!(a&8388608);)r-=8388608,a<<=1;return a&=-8388609,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 hO(){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 mO(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function fO(){let e=dO(),t=hO(),n=mO();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 ga=class La{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return La.instance==null&&(La.instance=new La),La.instance}static registerSaveRouter(t){La.getInstance().saveRouters.push(t)}static registerLoadRouter(t){La.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return La.getHandlers(t,"save")}static getLoadHandlers(t,n){return La.getHandlers(t,"load",n)}static getHandlers(t,n,a){let r=[];return(n==="load"?La.getInstance().loadRouters:La.getInstance().saveRouters).forEach(s=>{let i=s(t,a);i!==null&&r.push(i)}),r}},gO=e=>ga.registerSaveRouter(e),bO=e=>ga.registerLoadRouter(e),yO=e=>ga.getSaveHandlers(e),xO=(e,t)=>ga.getLoadHandlers(e,t),_x="tensorflowjs",Ax=1,ei="models_store",Qr="model_info_store";function hN(){if(!G().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 Fx(e){let t=e.result;t.createObjectStore(ei,{keyPath:"modelPath"}),t.createObjectStore(Qr,{keyPath:"modelPath"})}var ui=class{constructor(e){if(this.indexedDB=hN(),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(_x,Ax);r.onupgradeneeded=()=>Fx(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ei,"readonly"),o=i.objectStore(ei).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{t.weightData=Fr.join(t.weightData);let i=rd(t),o=s.transaction(Qr,"readwrite"),l=o.objectStore(Qr),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(ei,"readwrite");let d=p.objectStore(ei),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(Qr);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ui.URL_SCHEME="indexeddb://";var mN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ui.URL_SCHEME)?vO(e.slice(ui.URL_SCHEME.length)):null;ga.registerSaveRouter(mN);ga.registerLoadRouter(mN);function vO(e){return new ui(e)}function wO(e){return e.startsWith(ui.URL_SCHEME)?e.slice(ui.URL_SCHEME.length):e}var kO=class{constructor(){this.indexedDB=hN()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(_x,Ax);n.onupgradeneeded=()=>Fx(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=wO(e),new Promise((t,n)=>{let a=this.indexedDB.open(_x,Ax);a.onupgradeneeded=()=>Fx(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),p=()=>{l=r.transaction(ei,"readwrite");let d=l.objectStore(ei).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),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)})}},Nr="/",Nl="tensorflowjs_models",fN="info",IO="model_topology",SO="weight_specs",NO="weight_data",TO="model_metadata";function gN(e){return{info:[Nl,e,fN].join(Nr),topology:[Nl,e,IO].join(Nr),weightSpecs:[Nl,e,SO].join(Nr),weightData:[Nl,e,NO].join(Nr),modelMetadata:[Nl,e,TO].join(Nr)}}function bN(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function CO(e){let t=e.split(Nr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Nr)}function EO(e){return e.startsWith(pi.URL_SCHEME)?e.slice(pi.URL_SCHEME.length):e}var pi=class{constructor(e){if(!G().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=gN(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=rd(e),r=Fr.join(e.weightData);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,uO(r));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:a}}catch(s){throw bN(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${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),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=pO(s),t}};pi.URL_SCHEME="localstorage://";var yN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pi.URL_SCHEME)?_O(e.slice(pi.URL_SCHEME.length)):null;ga.registerSaveRouter(yN);ga.registerLoadRouter(yN);function _O(e){return new pi(e)}var AO=class{constructor(){A(G().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=Nl+Nr,n=Nr+fN;for(let a=0;a"scheme must not be undefined or null."),t.endsWith(_l)&&(t=t.slice(0,t.indexOf(_l))),A(t.length>0,()=>"scheme must not be an empty string.");let a=jr.getInstance();A(a.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),a.managers[t]=n}static getManager(t){let n=jr.getInstance().managers[t];if(n==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return n}static getSchemes(){return Object.keys(jr.getInstance().managers)}};function Rh(e){if(e.indexOf(_l)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${us.getSchemes().join(",")}`);return{scheme:e.split(_l)[0],path:e.split(_l)[1]}}async function xN(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=ga.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=ga.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Rh(e).scheme,l=Rh(e).path,u=o===Rh(e).scheme,p=await r.load();n&&u&&await us.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await us.getManager(o).removeModel(l),d.modelArtifactsInfo}async function FO(){let e=us.getSchemes(),t={};for(let n of e){let a=await us.getManager(n).listModels();for(let r in a){let s=n+_l+r;t[s]=a[r]}}return t}async function $O(e){let t=Rh(e);return us.getManager(t.scheme).removeModel(t.path)}async function DO(e,t){return xN(e,t,!1)}async function RO(e,t){return xN(e,t,!0)}var MO=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}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)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!G().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(e){return XS(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new MO);try{us.registerManager(pi.URL_SCHEME,new AO)}catch(e){}try{us.registerManager(ui.URL_SCHEME,new kO)}catch(e){}}var OO={importFetch:()=>CR()},ix,PO=class{constructor(){this.util=ER(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(ix==null&&(ix=OO.importFetch()),ix(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new PO);function Oe(e,t="float32",n){return t=t||"float32",na(e),new Wt(e,t,n)}function LO(e,t){let n=E(e,"x","cast");if(!LS(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(Mi,a,r)}var re=L({cast_:LO});function zO(e){let t={x:E(e,"x","clone","string_or_numeric")};return P.runKernel(eo,t)}var sr=L({clone_:zO});function Mv(e,t=!1){console.log(e.toString(t))}aN();var WO={buffer:Oe,cast:re,clone:sr,print:Mv};MM(WO);function BO(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(xs,r)}var X=L({add_:BO});function VO(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(Zi,r)}var Pm=L({floorDiv_:VO});function UO(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Pm(n,a);let r={a:n,b:a},s={};return P.runKernel(Hi,r,s)}var he=L({div_:UO});function GO(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(bo,r)}var z=L({mul_:GO});function HO(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return P.runKernel(Oc,n)}else{let n={x:t};return P.runKernel(Yl,n)}}var Lt=L({abs_:HO});function qO(e){let t={x:E(e,"x","acos")};return P.runKernel(Ni,t)}var Ov=L({acos_:qO});function jO(e){let t={x:E(e,"x","acosh")};return P.runKernel(Ti,t)}var Pv=L({acosh_:jO});function KO(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(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(!Ar(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return P.runKernel(Ci,a)}var vN=L({addN_:KO});function XO(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return P.runKernel(Zl,a,r)}var Lm=L({all_:XO});function YO(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return P.runKernel(Jl,a,r)}var yc=L({any_:YO});function ZO(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return P.runKernel(Ql,n,a)}var ci=L({argMax_:ZO});function JO(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return P.runKernel(eu,n,a)}var Lv=L({argMin_:JO});function QO(e){let t={x:E(e,"x","asin")};return P.runKernel(Ei,t)}var zv=L({asin_:QO});function eP(e){let t={x:E(e,"x","asinh")};return P.runKernel(_i,t)}var Wv=L({asinh_:eP});function tP(e){let t={x:E(e,"x","atan")};return P.runKernel(Ai,t)}var Bv=L({atan_:tP});function nP(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel($i,r)}var Vv=L({atan2_:nP});function aP(e){let t={x:E(e,"x","atanh")};return P.runKernel(Fi,t)}var Uv=L({atanh_:aP});function rP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=IN(r);return sd(e,o,n,s,a,null,null,l)}function wN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=xc(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 sd(e,u,n,a,r,s,!1,i)}function sP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=$x(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return kN(e,p,n,a,r,!1,d,s)}function sd(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=xc(n),[b,y]=xc(a),x=Al(c,b),v=Al(h,y),{padInfo:I,outHeight:N,outWidth:C}=lP(r,u,p,f,g,x,v,s,o),_=i?m*d:m,F;return o==="channelsFirst"?F=[l,_,N,C]:o==="channelsLast"&&(F=[l,N,C,_]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:N,outWidth:C,outChannels:_,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function kN(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[b,y,x]=$x(n),[v,I,N]=$x(a),C=Al(h,v),_=Al(m,I),F=Al(f,N),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=uP(r,u,p,d,b,y,x,C,_,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:_,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:I,dilationWidth:N,inShape:e,outShape:U,filterShape:t}}function iP(e,t,n,a,r){a==null&&(a=Gv(e,t,n));let s=e[0],i=e[1],o=vc((s-t+2*a)/n+1,r),l=vc((i-t+2*a)/n+1,r);return[o,l]}function oP(e,t,n,a,r,s){r==null&&(r=Gv(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=vc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function Gv(e,t,n,a=1){let r=Al(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function xc(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function $x(e){return typeof e=="number"?[e,e,e]:e}function Al(e,t){return t<=1?e:e+(e-1)*(t-1)}function lP(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=iP([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),b=h-g;u={top:m,bottom:f,left:g,right:b,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=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:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=vc((t-s+c+h)/a+1,o),d=vc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function uP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=oP([t,n,a,1],[o,l,u],1,[r,s,i],e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,v=Math.floor(g/2),I=g-v,N=Math.floor(b/2),C=b-N;d={top:v,bottom:I,left:N,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function vc(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 ps(e){let[t,n,a]=xc(e);return t===1&&n===1&&a===1}function cr(e,t){return ps(e)||ps(t)}function di(e){return xc(e).every(t=>t>0)}function IN(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Nn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A($l(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A($l(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function pP(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return P.runKernel(Ru,n,a)}var W=L({reshape_:pP});function cP(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(cr(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=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Nn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(Di,u,p);return d=re(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:cP});function dP(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Nn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(tu,u,p);return d=re(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Hv=L({avgPool3d_:dP});function hP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=bc(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 sr(n[0]);let a=n,r={axis:t};return P.runKernel(su,a,r)}var et=L({concat_:hP});function mP(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return P.runKernel(Ri,i,o)}var $e=L({matMul_:mP});function fP(e){let t={x:E(e,"x","sigmoid","float32")};return P.runKernel(Mo,t)}var ha=L({sigmoid_:fP});function gP(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return P.runKernel(Bu,r,s)}var Ve=L({slice_:gP});function bP(e){let t={x:E(e,"x","tanh","float32")};return P.runKernel(Uo,t)}var hi=L({tanh_:bP});function yP(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=et([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ve(m,[0,0],b),x=Ve(m,[0,g],b),v=Ve(m,[0,g*2],b),I=Ve(m,[0,g*3],b),N=X(z(ha(y),hi(x)),z(p,ha(X(i,v)))),C=z(hi(N),ha(I));return[N,C]}var SN=L({basicLSTMCell_:yP});function xP(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(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(nu,s,i)}var id=L({batchToSpaceND_:xP});function vP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function wP(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:vP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=P.runKernel(Ji,d,c);return W(h,i.shape)}var Ss=L({batchNorm_:wP});function kP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Ss(i,o,l,p,u,s)}var qv=L({batchNorm2d_:kP});function IP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Ss(i,o,l,p,u,s)}var jv=L({batchNorm3d_:IP});function SP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Ss(i,o,l,p,u,s)}var Kv=L({batchNorm4d_:SP});function NP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(au,s,i)}var Xv=L({bincount_:NP});function TP(e,t){let n=E(e,"x","bitwiseAnd"),a=E(t,"y","bitwiseAnd");if(!Ar(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return P.runKernel(ru,r)}var NN=L({bitwiseAnd_:TP});function CP(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return P.runKernel(Mc,r)}var TN=L({broadcastArgs_:CP});function EP(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(na(t),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 sr(n);let i={x:n},o={reps:s};return P.runKernel(ws,i,o)}var ni=L({broadcastTo_:EP});function _P(e){let t={x:E(e,"x","ceil","float32")};return P.runKernel(Oi,t)}var Yv=L({ceil_:_P});function yn(e,t,n){na(e),n=n||$c(t);let a={shape:e,value:t,dtype:n};return P.runKernel(zc,{},a)}function AP(e,t,n){let a=E(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return yn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return P.runKernel(vs,r,s)}var an=L({clipByValue_:AP});function FP(e){return et(e,0)}var Zv=L({concat1d_:FP});function $P(e,t){return et(e,t)}var Jv=L({concat2d_:$P});function DP(e,t){return et(e,t)}var Qv=L({concat3d_:DP});function RP(e,t){return et(e,t)}var ew=L({concat4d_:RP});function MP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`),Nn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(di(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(Pi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:MP});function OP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.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}.`),Nn("conv1d",a,i),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(cr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(di(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv1D: Stride should be larger than 0."),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var zm=L({conv1d_:OP});function PP(e,t,n,a,r,s="NHWC",i){A(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=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Nn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=P.runKernel(Li,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var tw=L({conv2DBackpropInput_:PP});function LP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return tw(n,i,o,a,r,"NHWC",s)}var Wm=L({conv2dTranspose_:LP});function zP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(cr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`),A(di(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(di(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=P.runKernel(zi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var nw=L({conv3d_:zP});function WP(e,t,n,a,r){A(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=W(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];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=P.runKernel(ou,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var CN=L({conv3DBackpropInput_:WP});function BP(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return CN(n,s,i,a,r)}var aw=L({conv3dTranspose_:BP});function VP(e){let t={x:E(e,"x","cos","float32")};return P.runKernel(Wi,t)}var od=L({cos_:VP});function UP(e){let t={x:E(e,"x","cosh","float32")};return P.runKernel(Bi,t)}var Bm=L({cosh_:UP});function GP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(lu,r,s)}var wc=L({cumprod_:GP});function HP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(Vi,r,s)}var Vm=L({cumsum_:HP});function qP(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(Pc,i,o)}var Xh=L({denseBincount_:qP});function jP(e,t,n="NHWC"){let a=E(e,"x","depthToSpace","float32"),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];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function ec(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||Sv(t,this.size),this.strides=Xl(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 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;aqh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),za().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=za().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>qh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await za().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),za().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Sl.print(this,e)}clone(){return this.throwIfDisposed(),Sl.clone(this)}toString(e=!1){let t=this.dataSync();return DM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Sl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),za().makeVariable(this,e,t,n)}};Object.defineProperty(Ce,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Cv("Tensor",()=>Ce)}Q();var os=class extends Ce{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Ar(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);za().disposeTensor(this),this.dataId=e.dataId,za().incRef(this,null)}dispose(){za().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(os,Symbol.hasInstance,{value:e=>e instanceof Ce&&e.assign!=null&&e.assign instanceof Function});var Wa={};_e(Wa,{assertTypesMatch:()=>tN,getTensorsInContainer:()=>_v,isTensorInList:()=>WM,makeTypesMatch:()=>_t});var kx;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(kx||(kx={}));var Ix;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Ix||(Ix={}));var Sx;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Sx||(Sx={}));var Nx;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Nx||(Nx={}));var Tx;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Tx||(Tx={}));var zM={float32:Nx,int32:Ix,bool:Sx,complex64:Tx};function fa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return zM[e][t]}function Mm(e){return fa(e,"int32")}function QS(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function eN(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=fa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function tN(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function WM(e,t){return t.some(n=>n.id===e.id)}function _v(e){let t=[];return nN(e,t,new Set),t}function nN(e,t,n){if(e==null)return;if(e instanceof Ce){t.push(e);return}if(!BM(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),nN(s,t,n))}}function BM(e){return Array.isArray(e)||typeof e=="object"}function ix(e){return e.kernelName!=null}var Yk=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()}},Av=class Cx{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Yk}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let n=0;n{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){jh(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let n=this.registryFactory[t];if(n==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let a=n.factory();if(a&&!(a instanceof Fc)&&typeof a.then=="function"){let r=++this.pendingBackendInitId,s=a.then(i=>r(rthis.registryFactory[n].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let n=0;nthis.startScope(a),()=>this.endScope(r),()=>(r=n(),r instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(t,n,a){t();try{let r=a();return n(),r}catch(r){throw n(),r}}nextTensorId(){return Cx.nextTensorId++}nextVariableId(){return Cx.nextVariableId++}clone(t){let n=P.runKernel(eo,{x:t}),a={x:t},r=i=>({x:()=>{let o="float32",l={x:i},u={dtype:o};return P.runKernel(Mi,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,a,[n],r,s,{}),n}runKernel(t,n,a){if(this.backendName==null&&this.backend,fc(t,this.backendName)==null)throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:n,attrs:a})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,n,a){let r=this.backend.numDataIds(),s=0;a.forEach(l=>{s+=l.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=r-n-s-i;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${t}'`)}runKernelFunc(t){let n,a=[],r=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let o;this.backendName==null&&this.backend;let l,u=ix(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ix(t)){let{kernelName:m,inputs:f,attrs:g}=t;this.backendName==null&&this.backend;let b=fc(m,this.backendName);A(b!=null,()=>`Cannot find registered kernel '${m}' for backend '${this.backendName}'`),o=()=>{let y=this.backend.numDataIds();l=b.kernelFunc({inputs:f,attrs:g,backend:this.backend});let x=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(m,y,x);let v=x.map(I=>I.rank!=null?I:this.makeTensorFromTensorInfo(I));if(r){let I=this.getTensorsForGradient(m,f,v);a=this.saveTensorsForBackwardMode(I)}return v}}else{let{forwardFunc:m}=t,f=g=>{r&&(a=g.map(b=>this.keep(this.clone(b))))};o=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>m(this.backend,f));let b=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,b),b}}let{inputs:p,attrs:d}=t,c=ix(t)?null:t.backwardsFunc,h;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?n=o():(h=this.profiler.profileKernel(u,p,()=>o()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(h),n=h.outputs)}),r&&this.addTapeNode(u,p,n,c,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(p).map(m=>p[m]!=null?p[m].shape:null),outputShapes:n.map(m=>m.shape),kernelTimeMs:h.timeMs,extraInfo:h.extraInfo}),Array.isArray(l)?n:n[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,n,a){let r=vx(t);if(r!=null){let s=r.inputsToSave||[],i=r.outputsToSave||[],o;r.saveAllInputs?(A(Array.isArray(n),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(n).map(u=>n[u])):o=s.map(u=>n[u]);let l=a.filter((u,p)=>i[p]);return o.concat(l)}return[]}makeTensor(t,n,a,r){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");a=a||"float32",r=r||this.backend;let s=t;a==="string"&&Jr(t[0])&&(s=t.map(l=>nd(l)));let i=r.write(s,n,a),o=new Ce(n,a,i,this.nextTensorId());if(this.trackTensor(o,r),a==="string"){let l=this.state.tensorInfo.get(i),u=zS(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return o}makeTensorFromDataId(t,n,a,r){a=a||"float32";let s={dataId:t,shape:n,dtype:a};return this.makeTensorFromTensorInfo(s,r)}makeTensorFromTensorInfo(t,n){let{dataId:a,shape:r,dtype:s}=t,i=new Ce(r,s,a,this.nextTensorId());return this.trackTensor(i,n),i}makeVariable(t,n=!0,a,r){a=a||this.nextVariableId().toString(),r!=null&&r!==t.dtype&&(t=t.cast(r));let s=new os(t,n,a,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(t,n){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let a=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(a=t.size*Uh(t.dtype)),this.state.numBytes+=a,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:n||this.backend,dtype:t.dtype,shape:t.shape,bytes:a})),t instanceof os||this.track(t)}incRef(t,n){this.trackTensor(t,n),this.backend.incRef(t.dataId)}removeDataId(t,n){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===n&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let n=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=n.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let a=t.size*Uh(t.dtype);this.state.numBytes-=a}n.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,n.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let n=this.state.registeredVariables[t];this.disposeVariable(n)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let n=this.state.numBytes,a=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(r=>r.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-n,this.state.activeProfile.newTensors=this.state.numTensors-a;for(let r of this.state.activeProfile.kernels)r.kernelTimeMs=await r.kernelTimeMs,r.extraInfo=await r.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,n,a,r,s,i){let o={id:this.state.nextTapeNodeId++,kernelName:t,inputs:n,outputs:a,saved:s},l=vx(t);l!=null&&(r=l.gradFunc),r!=null&&(o.gradient=u=>(u=u.map((p,d)=>{if(p==null){let c=a[d],h=xm(c.size,c.dtype);return this.makeTensor(h,c.shape,c.dtype)}return p}),r(u.length>1?u:u[0],s,i))),this.state.activeTape.push(o)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let n={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(n.name=t),this.state.scopeStack.push(n),this.state.activeScope=n}endScope(t){let n=_v(t),a=new Set(n.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===r.id&&this.track(s)})}gradients(t,n,a,r=!1){if(A(n.length>0,()=>"gradients() received an empty list of xs."),a!=null&&a.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${a.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));A(s instanceof Ce,()=>"The result y returned by f() must be a tensor.");let i=FM(this.state.activeTape,n,s);if(!r&&i.length===0&&n.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 o={};o[s.id]=a==null?VM(s.shape):a,$M(o,i,u=>this.tidy(u),UM);let l=n.map(u=>o[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let p of u.saved)p.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(t){return A(ss(t),()=>"The f passed in customGrad(f) must be a function."),(...n)=>{A(n.every(o=>o instanceof Ce),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let a,r={};n.forEach((o,l)=>{r[l]=o});let s=(o,l)=>(a=t(...n,l),A(a.value instanceof Ce,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(ss(a.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),a.value),i=(o,l)=>{let u=a.gradFunc(o,l),p=Array.isArray(u)?u:[u];A(p.length===n.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(p.every(c=>c instanceof Ce),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let d={};return p.forEach((c,h)=>{d[h]=()=>c}),d};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:r})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,n){return this.state.tensorInfo.get(t).backend.readToGPU(t,n)}async time(t){let n=gc(),a=await this.backend.time(t);return a.wallMs=gc()-n,a}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Yk;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Av.nextTensorId=0;Av.nextVariableId=0;function VM(e){let t=Nv(ot(e),"float32");return P.makeTensor(t,e,"float32")}function aN(){let e=GS();if(e._tfengine==null){let t=new US(e);e._tfengine=new Av(t)}return pM(e._tfengine.ENV),OM(()=>e._tfengine),e._tfengine}var P=aN();function UM(e,t){let n={a:e,b:t};return P.runKernel(vs,n)}var ad={};_e(ad,{isBrowser:()=>rN,isMobile:()=>jM,mockIsMobile:()=>HM});function GM(){return typeof navigator!="undefined"&&navigator!=null}var Ex;function HM(e){Ex=e}function jM(e){if(Ex!==void 0)return Ex;if(e||GM()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function rN(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Wn=G();Wn.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.")});Wn.registerFlag("IS_BROWSER",()=>rN());Wn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Wn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Wn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Wn.registerFlag("PROD",()=>!1);Wn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Wn.getBool("DEBUG"));Wn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Wn.registerFlag("IS_TEST",()=>!1);Wn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Wn.getBool("DEBUG"));Wn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Wn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Wn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(en(e))return t==="string"?[]:[e.length];if(QS(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(eN(e))return[e.buffer.size/(t==null?4:Uh(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||en(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&sN(e,a,[]),a}function sN(e,t,n){if(n=n||[],!Array.isArray(e)&&!en(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(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),Zk(a,r,t,n),e==null||!en(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=lr(e,r);!en(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Rm(e,r):is(e,[],!0);return P.makeTensor(i,s,r)}function bc(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 Fv="__op";function L(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+Fv;let r=(...s)=>{P.startScope(n);try{let i=a(...s);return vm(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 qM(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");Nn(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(wm,r)}var _r=L({complex_:qM});function Ss(e,t,n,a){if(a==null)a=$c(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(eN(e)||QS(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return P.backend.createTensorFromGPUData(e,t||n,a)}if(!en(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){na(t);let r=ot(t),s=ot(n);A(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!en(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Rm(e,a):is(e,[],!0),P.makeTensor(e,t,a)}function bn(e,t,n){let a=lr(e,n);return Ss(e,t,a,n)}var ui={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Fr=class iN{static join(t){return new iN(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(a=>en(a)?a.buffer:a),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let n=0;for(let a=0;a=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function n(r){return t=r.end?1:0}if(n(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let a=KM(this.shards,n);return a===-1?-1:(this.previousShardIndex=a,this.previousShardIndex)}};function KM(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}function XM(){G().set("PROD",!0)}function YM(){G().set("DEBUG",!0)}function ZM(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function $v(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}LM($v);function JM(){P.disposeVariables()}function Ta(){return P}function Kh(){return P.memory()}function QM(e){return P.profile(e)}function O(e,t){return P.tidy(e,t)}function Ee(e){_v(e).forEach(t=>t.dispose())}function Ht(e){return P.keep(e)}function eO(e){return P.time(e)}function tO(e){return P.setBackend(e)}function nO(){return P.ready()}function oN(){return P.backendName}function aO(e){P.removeBackend(e)}function rO(e){return P.findBackend(e)}function sO(e){return P.findBackendFactory(e)}function Om(e,t,n=1){return P.registerBackend(e,t,n)}function Dv(){return P.backend}function iO(e,t){G().setPlatform(e,t)}var ls=4;async function oO(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,b)=>g+b.length,0)+ls*c.length,m=new Uint8Array(h),f=0;for(let g=0;gn.slice(r+o,r+l));a[s.name]=uN(s,n.slice(r,r+i)),r+=i}return a}function lO(e,t){let n=ot(e.shape),a;if("quantization"in e){let r=e.quantization;a=ui[r.dtype]}else if(e.dtype==="string"){let r=0;for(let s=0;s(r=await Jk(a,r,p),r.slice(u,p)));r=await Jk(a,r,i);let o=r.slice(0,i);r=r.slice(i);let l=uN(s,o);if(n[s.name]=l,oN()==="webgpu"){let u=Dv();"uploadToGPU"in u&&ot(l.shape)>=G().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&u.uploadToGPU(l.dataId)}}return n}function pO(e){if(e===null)throw new Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,n=[];e.forEach(s=>{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 Rv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function Qk(e){return Rv?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function cO(e){if(Rv)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{let a=n<<13,r=0;for(;!(a&8388608);)r-=8388608,a<<=1;return a&=-8388609,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 fO(){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 gO(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function bO(){let e=mO(),t=fO(),n=gO();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 ga=class La{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return La.instance==null&&(La.instance=new La),La.instance}static registerSaveRouter(t){La.getInstance().saveRouters.push(t)}static registerLoadRouter(t){La.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return La.getHandlers(t,"save")}static getLoadHandlers(t,n){return La.getHandlers(t,"load",n)}static getHandlers(t,n,a){let r=[];return(n==="load"?La.getInstance().loadRouters:La.getInstance().saveRouters).forEach(s=>{let i=s(t,a);i!==null&&r.push(i)}),r}},yO=e=>ga.registerSaveRouter(e),xO=e=>ga.registerLoadRouter(e),vO=e=>ga.getSaveHandlers(e),wO=(e,t)=>ga.getLoadHandlers(e,t),Ax="tensorflowjs",Fx=1,ti="models_store",Qr="model_info_store";function hN(){if(!G().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 $x(e){let t=e.result;t.createObjectStore(ti,{keyPath:"modelPath"}),t.createObjectStore(Qr,{keyPath:"modelPath"})}var pi=class{constructor(e){if(this.indexedDB=hN(),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(Ax,Fx);r.onupgradeneeded=()=>$x(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ti,"readonly"),o=i.objectStore(ti).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{t.weightData=Fr.join(t.weightData);let i=rd(t),o=s.transaction(Qr,"readwrite"),l=o.objectStore(Qr),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(ti,"readwrite");let d=p.objectStore(ti),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(Qr);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};pi.URL_SCHEME="indexeddb://";var mN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pi.URL_SCHEME)?kO(e.slice(pi.URL_SCHEME.length)):null;ga.registerSaveRouter(mN);ga.registerLoadRouter(mN);function kO(e){return new pi(e)}function IO(e){return e.startsWith(pi.URL_SCHEME)?e.slice(pi.URL_SCHEME.length):e}var SO=class{constructor(){this.indexedDB=hN()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Ax,Fx);n.onupgradeneeded=()=>$x(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=IO(e),new Promise((t,n)=>{let a=this.indexedDB.open(Ax,Fx);a.onupgradeneeded=()=>$x(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),p=()=>{l=r.transaction(ti,"readwrite");let d=l.objectStore(ti).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),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)})}},Tr="/",Nl="tensorflowjs_models",fN="info",NO="model_topology",TO="weight_specs",CO="weight_data",EO="model_metadata";function gN(e){return{info:[Nl,e,fN].join(Tr),topology:[Nl,e,NO].join(Tr),weightSpecs:[Nl,e,TO].join(Tr),weightData:[Nl,e,CO].join(Tr),modelMetadata:[Nl,e,EO].join(Tr)}}function bN(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function _O(e){let t=e.split(Tr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Tr)}function AO(e){return e.startsWith(ci.URL_SCHEME)?e.slice(ci.URL_SCHEME.length):e}var ci=class{constructor(e){if(!G().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=gN(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=rd(e),r=Fr.join(e.weightData);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,cO(r));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:a}}catch(s){throw bN(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${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),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=dO(s),t}};ci.URL_SCHEME="localstorage://";var yN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ci.URL_SCHEME)?FO(e.slice(ci.URL_SCHEME.length)):null;ga.registerSaveRouter(yN);ga.registerLoadRouter(yN);function FO(e){return new ci(e)}var $O=class{constructor(){A(G().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=Nl+Tr,n=Tr+fN;for(let a=0;a"scheme must not be undefined or null."),t.endsWith(_l)&&(t=t.slice(0,t.indexOf(_l))),A(t.length>0,()=>"scheme must not be an empty string.");let a=qr.getInstance();A(a.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),a.managers[t]=n}static getManager(t){let n=qr.getInstance().managers[t];if(n==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return n}static getSchemes(){return Object.keys(qr.getInstance().managers)}};function Rh(e){if(e.indexOf(_l)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${us.getSchemes().join(",")}`);return{scheme:e.split(_l)[0],path:e.split(_l)[1]}}async function xN(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=ga.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=ga.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Rh(e).scheme,l=Rh(e).path,u=o===Rh(e).scheme,p=await r.load();n&&u&&await us.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await us.getManager(o).removeModel(l),d.modelArtifactsInfo}async function DO(){let e=us.getSchemes(),t={};for(let n of e){let a=await us.getManager(n).listModels();for(let r in a){let s=n+_l+r;t[s]=a[r]}}return t}async function RO(e){let t=Rh(e);return us.getManager(t.scheme).removeModel(t.path)}async function MO(e,t){return xN(e,t,!1)}async function OO(e,t){return xN(e,t,!0)}var PO=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}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)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!G().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(e){return XS(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new PO);try{us.registerManager(ci.URL_SCHEME,new $O)}catch(e){}try{us.registerManager(pi.URL_SCHEME,new SO)}catch(e){}}var LO={importFetch:()=>_R()},ox,zO=class{constructor(){this.util=AR(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(ox==null&&(ox=LO.importFetch()),ox(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new zO);function Oe(e,t="float32",n){return t=t||"float32",na(e),new Wt(e,t,n)}function WO(e,t){let n=E(e,"x","cast");if(!LS(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(Mi,a,r)}var re=L({cast_:WO});function BO(e){let t={x:E(e,"x","clone","string_or_numeric")};return P.runKernel(eo,t)}var sr=L({clone_:BO});function Ov(e,t=!1){console.log(e.toString(t))}aN();var VO={buffer:Oe,cast:re,clone:sr,print:Ov};PM(VO);function UO(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(vs,r)}var X=L({add_:UO});function GO(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(Zi,r)}var Pm=L({floorDiv_:GO});function HO(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Pm(n,a);let r={a:n,b:a},s={};return P.runKernel(Hi,r,s)}var he=L({div_:HO});function jO(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(bo,r)}var z=L({mul_:jO});function qO(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return P.runKernel(Oc,n)}else{let n={x:t};return P.runKernel(Yl,n)}}var Lt=L({abs_:qO});function KO(e){let t={x:E(e,"x","acos")};return P.runKernel(Ni,t)}var Pv=L({acos_:KO});function XO(e){let t={x:E(e,"x","acosh")};return P.runKernel(Ti,t)}var Lv=L({acosh_:XO});function YO(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(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(!Ar(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return P.runKernel(Ci,a)}var vN=L({addN_:YO});function ZO(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return P.runKernel(Zl,a,r)}var Lm=L({all_:ZO});function JO(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return P.runKernel(Jl,a,r)}var yc=L({any_:JO});function QO(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return P.runKernel(Ql,n,a)}var di=L({argMax_:QO});function eP(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return P.runKernel(eu,n,a)}var zv=L({argMin_:eP});function tP(e){let t={x:E(e,"x","asin")};return P.runKernel(Ei,t)}var Wv=L({asin_:tP});function nP(e){let t={x:E(e,"x","asinh")};return P.runKernel(_i,t)}var Bv=L({asinh_:nP});function aP(e){let t={x:E(e,"x","atan")};return P.runKernel(Ai,t)}var Vv=L({atan_:aP});function rP(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel($i,r)}var Uv=L({atan2_:rP});function sP(e){let t={x:E(e,"x","atanh")};return P.runKernel(Fi,t)}var Gv=L({atanh_:sP});function iP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=IN(r);return sd(e,o,n,s,a,null,null,l)}function wN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=xc(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 sd(e,u,n,a,r,s,!1,i)}function oP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Dx(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return kN(e,p,n,a,r,!1,d,s)}function sd(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=xc(n),[b,y]=xc(a),x=Al(c,b),v=Al(h,y),{padInfo:I,outHeight:N,outWidth:C}=pP(r,u,p,f,g,x,v,s,o),_=i?m*d:m,F;return o==="channelsFirst"?F=[l,_,N,C]:o==="channelsLast"&&(F=[l,N,C,_]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:N,outWidth:C,outChannels:_,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function kN(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[b,y,x]=Dx(n),[v,I,N]=Dx(a),C=Al(h,v),_=Al(m,I),F=Al(f,N),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=cP(r,u,p,d,b,y,x,C,_,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:_,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:I,dilationWidth:N,inShape:e,outShape:U,filterShape:t}}function lP(e,t,n,a,r){a==null&&(a=Hv(e,t,n));let s=e[0],i=e[1],o=vc((s-t+2*a)/n+1,r),l=vc((i-t+2*a)/n+1,r);return[o,l]}function uP(e,t,n,a,r,s){r==null&&(r=Hv(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=vc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function Hv(e,t,n,a=1){let r=Al(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function xc(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Dx(e){return typeof e=="number"?[e,e,e]:e}function Al(e,t){return t<=1?e:e+(e-1)*(t-1)}function pP(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=lP([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),b=h-g;u={top:m,bottom:f,left:g,right:b,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=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:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=vc((t-s+c+h)/a+1,o),d=vc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function cP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=uP([t,n,a,1],[o,l,u],1,[r,s,i],e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,v=Math.floor(g/2),I=g-v,N=Math.floor(b/2),C=b-N;d={top:v,bottom:I,left:N,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function vc(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 ps(e){let[t,n,a]=xc(e);return t===1&&n===1&&a===1}function dr(e,t){return ps(e)||ps(t)}function hi(e){return xc(e).every(t=>t>0)}function IN(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Tn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A($l(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A($l(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function dP(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return P.runKernel(Ru,n,a)}var W=L({reshape_:dP});function hP(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(dr(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=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Tn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(Di,u,p);return d=re(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:hP});function mP(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(tu,u,p);return d=re(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var jv=L({avgPool3d_:mP});function fP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=bc(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 sr(n[0]);let a=n,r={axis:t};return P.runKernel(su,a,r)}var et=L({concat_:fP});function gP(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return P.runKernel(Ri,i,o)}var $e=L({matMul_:gP});function bP(e){let t={x:E(e,"x","sigmoid","float32")};return P.runKernel(Mo,t)}var ha=L({sigmoid_:bP});function yP(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return P.runKernel(Bu,r,s)}var Ve=L({slice_:yP});function xP(e){let t={x:E(e,"x","tanh","float32")};return P.runKernel(Uo,t)}var cs=L({tanh_:xP});function vP(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=et([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ve(m,[0,0],b),x=Ve(m,[0,g],b),v=Ve(m,[0,g*2],b),I=Ve(m,[0,g*3],b),N=X(z(ha(y),cs(x)),z(p,ha(X(i,v)))),C=z(cs(N),ha(I));return[N,C]}var SN=L({basicLSTMCell_:vP});function wP(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(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(nu,s,i)}var id=L({batchToSpaceND_:wP});function kP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function IP(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:kP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=P.runKernel(Ji,d,c);return W(h,i.shape)}var Ns=L({batchNorm_:IP});function SP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Ns(i,o,l,p,u,s)}var qv=L({batchNorm2d_:SP});function NP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Ns(i,o,l,p,u,s)}var Kv=L({batchNorm3d_:NP});function TP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Ns(i,o,l,p,u,s)}var Xv=L({batchNorm4d_:TP});function CP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(au,s,i)}var Yv=L({bincount_:CP});function EP(e,t){let n=E(e,"x","bitwiseAnd"),a=E(t,"y","bitwiseAnd");if(!Ar(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return P.runKernel(ru,r)}var NN=L({bitwiseAnd_:EP});function _P(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return P.runKernel(Mc,r)}var TN=L({broadcastArgs_:_P});function AP(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(na(t),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 sr(n);let i={x:n},o={reps:s};return P.runKernel(ks,i,o)}var ai=L({broadcastTo_:AP});function FP(e){let t={x:E(e,"x","ceil","float32")};return P.runKernel(Oi,t)}var Zv=L({ceil_:FP});function yn(e,t,n){na(e),n=n||$c(t);let a={shape:e,value:t,dtype:n};return P.runKernel(zc,{},a)}function $P(e,t,n){let a=E(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return yn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return P.runKernel(ws,r,s)}var an=L({clipByValue_:$P});function DP(e){return et(e,0)}var Jv=L({concat1d_:DP});function RP(e,t){return et(e,t)}var Qv=L({concat2d_:RP});function MP(e,t){return et(e,t)}var ew=L({concat3d_:MP});function OP(e,t){return et(e,t)}var tw=L({concat4d_:OP});function PP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`),Tn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(dr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(hi(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(hi(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(Pi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:PP});function LP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.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}.`),Tn("conv1d",a,i),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(dr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(hi(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(hi(n),()=>"Error in conv1D: Stride should be larger than 0."),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var zm=L({conv1d_:LP});function zP(e,t,n,a,r,s="NHWC",i){A(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=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Tn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=P.runKernel(Li,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var nw=L({conv2DBackpropInput_:zP});function WP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return nw(n,i,o,a,r,"NHWC",s)}var Wm=L({conv2dTranspose_:WP});function BP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(dr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`),A(hi(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(hi(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=P.runKernel(zi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var aw=L({conv3d_:BP});function VP(e,t,n,a,r){A(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=W(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];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=P.runKernel(ou,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var CN=L({conv3DBackpropInput_:VP});function UP(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return CN(n,s,i,a,r)}var rw=L({conv3dTranspose_:UP});function GP(e){let t={x:E(e,"x","cos","float32")};return P.runKernel(Wi,t)}var od=L({cos_:GP});function HP(e){let t={x:E(e,"x","cosh","float32")};return P.runKernel(Bi,t)}var Bm=L({cosh_:HP});function jP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(lu,r,s)}var wc=L({cumprod_:jP});function qP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(Vi,r,s)}var Vm=L({cumsum_:qP});function KP(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(Pc,i,o)}var Xh=L({denseBincount_:KP});function XP(e,t,n="NHWC"){let a=E(e,"x","depthToSpace","float32"),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];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),A(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(pu,o,l)}var rw=L({depthToSpace_:jP});function KP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Nn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(Ui,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ns=L({depthwiseConv2d_:KP});function XP(e){let t={x:E(e,"x","diag")};return P.runKernel(Lc,t)}var EN=L({diag_:XP});function YP(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=P.runKernel(Gi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var sw=L({dilation2d_:YP}),Ju={};_e(Ju,{assertAndGetBroadcastShape:()=>ct,getBroadcastDims:()=>_N,getReductionAxes:()=>Bt});function _N(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Bt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ct(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=$e(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var ow=L({dot_:t3});function n3(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return P.runKernel(Tm,n,a)}var Ys=L({einsum_:n3});function a3(e){let t={x:E(e,"x","elu","float32")};return P.runKernel(qi,t)}var Qu=L({elu_:a3});function r3(e,t){let n=E(e,"x","ensureShape","string_or_numeric");if(!RS(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var AN=L({ensureShape_:r3});function s3(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=re(t,"float32"));let n={x:t};return P.runKernel(ji,n)}var lw=L({erf_:s3});function uw(e,t){for(let n=0;ne[s]);return[n,r]}function mi(e,t){let n=t.map(a=>1);return FN(e,n,t)}function i3(e,t,n){A(uw(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function DN(e,t){if(uw(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function pw(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function o3(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return P.runKernel(hu,a,r)}var Gt=L({expandDims_:b3});function y3(e){let t={x:E(e,"x","expm1")};return P.runKernel(Xi,t)}var dw=L({expm1_:y3});function x3(e,t){let n=E(e,"x","tile","string_or_numeric");A(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(ws,a,r)}var Mn=L({tile_:x3});function v3(e,t,n,a="float32"){t==null&&(t=e);let r=Oe([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}.`),A($l(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=P.runKernel(oo,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var gw=L({localResponseNormalization_:$3});function D3(e){let t={x:E(e,"x","log","float32")};return P.runKernel(so,t)}var Qn=L({log_:D3});function R3(e){let t={x:E(e,"x","log1p")};return P.runKernel(io,t)}var pd=L({log1p_:R3});function M3(e){return A(ss(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(a),[a],r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Gm(i),i[0]})}}function O3(e){return A(ss(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=bc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(...a),a,r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gm(i),i})}}function P3(e){return A(ss(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ce,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=P.gradients(()=>e(t),[t],n);return Gm(a),{grad:a[0],value:r}}}function L3(e){return A(ss(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ce),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=P.gradients(()=>e(...t),t,n);return n!=null&&Sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gm(a.grads),a}}function ON(e,t){A(ss(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof os),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in P.registeredVariables)t.push(P.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() 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);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function ur(e){return P.customGrad(e)}function Gm(e){if(e.filter(t=>t==null).length>0)throw new Error(`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 z3(e){let t={x:E(e,"x","neg")};return P.runKernel(Cu,t)}var yt=L({neg_:z3});function W3(e){let t={x:E(e,"x","softplus")};return P.runKernel(Oo,t)}var Go=L({softplus_:W3});function B3(e){let t=E(e,"x","logSigmoid");return ur(n=>({value:yt(Go(yt(n))),gradFunc:a=>z(a,ha(yt(n)))}))(t)}var bw=L({logSigmoid_:B3});function V3(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(Bo,r)}var pe=L({sub_:V3});function U3(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return ur((a,r)=>{let s=ma(a,t,!0),i=pe(a,s),o=pe(re(i,"float32"),Qn(fe(dn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=dn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var Hm=L({logSoftmax_:U3});function G3(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=Aa(t,a.shape),s=ma(a,r,!0),i=pe(a,s),o=dn(i),l=fe(o,r),u=Qn(l),p=X(W(s,u.shape),u);if(n){let d=mi(p.shape,r);return W(p,d)}return p}var cd=L({logSumExp_:G3});function H3(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(wu,r)}var _a=L({logicalAnd_:H3});function q3(e){let t={x:E(e,"x","logicalNot","bool")};return P.runKernel(ku,t)}var dd=L({logicalNot_:q3});function j3(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Iu,r)}var qm=L({logicalOr_:j3});function K3(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return ct(n.shape,a.shape),_a(qm(e,t),dd(_a(e,t)))}var yw=L({logicalXor_:K3}),vh=2147483648;function X3(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(ot(l.shape)>=vh)throw new Error(`values tensor size must less than ${vh}`);if(o.shape[1]>=vh)throw new Error(`trailing dim_size must less than ${vh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return P.runKernel(zu,u,p)}var jm=L({searchSorted_:X3});function PN(e,t){return jm(e,t,"left")}function Y3(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(cr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Nn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(po,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:Y3});function Z3(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(Nu,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var xw=L({maxPool3d_:Z3});function J3(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=P.runKernel(Vc,s,i);return{result:o[0],indexes:o[1]}}var LN=L({maxPoolWithArgmax_:J3});function Q3(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(uo,r)}var dr=L({maximum_:Q3});function eL(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return P.runKernel(co,a,r)}var Ct=L({mean_:eL});function It(e,t="float32"){if(na(e),t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Er(a,r)}let n=xm(ot(e),t);return P.makeTensor(n,e,t)}function On(e,t="float32"){if(na(e),t==="complex64"){let a=On(e,"float32"),r=It(e,"float32");return Er(a,r)}let n=Sv(ot(e),t);return P.makeTensor(n,e,t)}function zN(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=E(e,"x","meshgrid",e instanceof Ce?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof Ce?t.dtype:"float32"),s=ot(a.shape),i=ot(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(On([i,1],a.dtype),a),$e(r,On([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,On([1,i],a.dtype)),$e(On([s,1],r.dtype),r)])}function tL(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(mo,r)}var cs=L({minimum_:tL});function nL(e,t,n){A(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");A(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."),A(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(fo,i,s)}var vw=L({mirrorPad_:nL});function aL(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(go,r)}var ww=L({mod_:aL});function rL(e,t=null,n=!1){e=E(e,"x","moments");let a=Aa(t,e.shape),r=Ct(e,a,n),s=r.shape;n||(s=mi(r.shape,a));let i=pt(pe(re(e,"float32"),W(r,s))),o=Ct(i,a,n);return{mean:r,variance:o}}var hd=L({moments_:rL});function sL(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=bc(n,"c","multiRNNCell"),i=bc(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=P.runKernel(Tu,o,l);return i===1?W(u,[u.size]):u}var BN=L({multinomial_:iL});function oL(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Eu,r)}var fi=L({notEqual_:oL});function lL(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:E(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return P.runKernel(yo,s,i)}var Ll=L({oneHot_:lL});function uL(e){let t={x:E(e,"x","onesLike")};return P.runKernel($u,t)}var ea=L({onesLike_:uL});function pL(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return $e(r,s)}var VN=L({outerProduct_:pL});function cL(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 P.runKernel(xo,s,r)}var xa=L({pad_:cL});function dL(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),xa(e,[t],n)}var UN=L({pad1d_:dL});function hL(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),xa(e,t,n)}var GN=L({pad2d_:hL});function mL(e,t,n=0){return A(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."),xa(e,t,n)}var HN=L({pad3d_:mL});function fL(e,t,n=0){return A(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."),xa(e,t,n)}var qN=L({pad4d_:fL});function gL(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(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(Vu,r,s)}var md=L({spaceToBatchND_:gL});function bL(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(cr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=wN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=xL([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=yL([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:md(l,d,m),y=(n==="avg"?()=>ya(b,t,s,g,i):()=>Dt(b,t,s,g,i))(),x=h?y:id(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function yL(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function xL(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 kw=L({pool_:bL});function vL(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return P.runKernel(wo,r)}var fd=L({prelu_:vL});function wL(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=re(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(ko,r,s)}var Iw=L({prod_:wL});function kL(e,t,n,a){let r=e.map((p,d)=>E(p,`tensors${d}`,"raggedGather","int32")),s=E(t,"paramsDenseValues","raggedGather"),i=E(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=P.runKernel(Am,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var jN=L({raggedGather_:kL});function IL(e,t,n){let a=E(e,"starts","raggedRange"),r=E(t,"limits","raggedRange",a.dtype),s=E(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=P.runKernel(Fm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var KN=L({raggedRange_:IL});function SL(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return P.runKernel($m,u,p)}var XN=L({raggedTensorToTensor_:SL});function NL(e,t,n){na(e);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;sJN,createVideoElement:()=>DL,encodeStrings:()=>QN,expectArrayBuffersEqual:()=>$L,expectArraysClose:()=>CL,expectArraysEqual:()=>_L,expectNumbersClose:()=>AL,expectPromiseToFail:()=>EL,expectValuesInRange:()=>FL,play:()=>RL,testEpsilon:()=>Nw});var TL=.001,JN=.1;function CL(e,t,n){return n==null&&(n=Nw()),Dx(e,t,(a,r)=>Tw(a,r,n))}function Nw(){return P.backend.floatPrecision()===32?TL:JN}function Dx(e,t,n){let a=!0;if((en(e)||en(t))&&(a=!1),en(e)&&en(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=lr(e),o=lr(t);if(!Ar(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=en(e)?e:is(e),s=en(t)?t:is(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. + ${a.shape}`),A(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(pu,o,l)}var sw=L({depthToSpace_:XP});function YP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Tn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(Ui,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ts=L({depthwiseConv2d_:YP});function ZP(e){let t={x:E(e,"x","diag")};return P.runKernel(Lc,t)}var EN=L({diag_:ZP});function JP(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=P.runKernel(Gi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var iw=L({dilation2d_:JP}),Ju={};_e(Ju,{assertAndGetBroadcastShape:()=>ct,getBroadcastDims:()=>_N,getReductionAxes:()=>Bt});function _N(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Bt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ct(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=$e(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var lw=L({dot_:a3});function r3(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return P.runKernel(Tm,n,a)}var Zs=L({einsum_:r3});function s3(e){let t={x:E(e,"x","elu","float32")};return P.runKernel(ji,t)}var Qu=L({elu_:s3});function i3(e,t){let n=E(e,"x","ensureShape","string_or_numeric");if(!RS(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var AN=L({ensureShape_:i3});function o3(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=re(t,"float32"));let n={x:t};return P.runKernel(qi,n)}var Um=L({erf_:o3});function uw(e,t){for(let n=0;ne[s]);return[n,r]}function mi(e,t){let n=t.map(a=>1);return FN(e,n,t)}function l3(e,t,n){A(uw(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function DN(e,t){if(uw(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function pw(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function u3(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return P.runKernel(hu,a,r)}var Gt=L({expandDims_:x3});function v3(e){let t={x:E(e,"x","expm1")};return P.runKernel(Xi,t)}var dw=L({expm1_:v3});function w3(e,t){let n=E(e,"x","tile","string_or_numeric");A(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(ks,a,r)}var On=L({tile_:w3});function k3(e,t,n,a="float32"){t==null&&(t=e);let r=Oe([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}.`),A($l(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=P.runKernel(oo,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var gw=L({localResponseNormalization_:R3});function M3(e){let t={x:E(e,"x","log","float32")};return P.runKernel(so,t)}var Qn=L({log_:M3});function O3(e){let t={x:E(e,"x","log1p")};return P.runKernel(io,t)}var pd=L({log1p_:O3});function P3(e){return A(ss(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(a),[a],r);return r!=null&&Nn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Hm(i),i[0]})}}function L3(e){return A(ss(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=bc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(...a),a,r);return r!=null&&Nn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Hm(i),i})}}function z3(e){return A(ss(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ce,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=P.gradients(()=>e(t),[t],n);return Hm(a),{grad:a[0],value:r}}}function W3(e){return A(ss(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ce),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=P.gradients(()=>e(...t),t,n);return n!=null&&Nn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Hm(a.grads),a}}function ON(e,t){A(ss(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof os),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in P.registeredVariables)t.push(P.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() 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);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function pr(e){return P.customGrad(e)}function Hm(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 B3(e){let t={x:E(e,"x","neg")};return P.runKernel(Cu,t)}var yt=L({neg_:B3});function V3(e){let t={x:E(e,"x","softplus")};return P.runKernel(Oo,t)}var Go=L({softplus_:V3});function U3(e){let t=E(e,"x","logSigmoid");return pr(n=>({value:yt(Go(yt(n))),gradFunc:a=>z(a,ha(yt(n)))}))(t)}var bw=L({logSigmoid_:U3});function G3(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(Bo,r)}var pe=L({sub_:G3});function H3(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 pr((a,r)=>{let s=ma(a,t,!0),i=pe(a,s),o=pe(re(i,"float32"),Qn(fe(dn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=dn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var jm=L({logSoftmax_:H3});function j3(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=Aa(t,a.shape),s=ma(a,r,!0),i=pe(a,s),o=dn(i),l=fe(o,r),u=Qn(l),p=X(W(s,u.shape),u);if(n){let d=mi(p.shape,r);return W(p,d)}return p}var cd=L({logSumExp_:j3});function q3(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(wu,r)}var _a=L({logicalAnd_:q3});function K3(e){let t={x:E(e,"x","logicalNot","bool")};return P.runKernel(ku,t)}var dd=L({logicalNot_:K3});function X3(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Iu,r)}var qm=L({logicalOr_:X3});function Y3(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return ct(n.shape,a.shape),_a(qm(e,t),dd(_a(e,t)))}var yw=L({logicalXor_:Y3}),vh=2147483648;function Z3(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(ot(l.shape)>=vh)throw new Error(`values tensor size must less than ${vh}`);if(o.shape[1]>=vh)throw new Error(`trailing dim_size must less than ${vh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return P.runKernel(zu,u,p)}var Km=L({searchSorted_:Z3});function PN(e,t){return Km(e,t,"left")}function J3(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(dr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Tn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(po,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:J3});function Q3(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(Nu,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var xw=L({maxPool3d_:Q3});function eL(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=P.runKernel(Vc,s,i);return{result:o[0],indexes:o[1]}}var LN=L({maxPoolWithArgmax_:eL});function tL(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(uo,r)}var hr=L({maximum_:tL});function nL(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return P.runKernel(co,a,r)}var Ct=L({mean_:nL});function It(e,t="float32"){if(na(e),t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return _r(a,r)}let n=xm(ot(e),t);return P.makeTensor(n,e,t)}function Pn(e,t="float32"){if(na(e),t==="complex64"){let a=Pn(e,"float32"),r=It(e,"float32");return _r(a,r)}let n=Nv(ot(e),t);return P.makeTensor(n,e,t)}function zN(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=E(e,"x","meshgrid",e instanceof Ce?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof Ce?t.dtype:"float32"),s=ot(a.shape),i=ot(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(Pn([i,1],a.dtype),a),$e(r,Pn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,Pn([1,i],a.dtype)),$e(Pn([s,1],r.dtype),r)])}function aL(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(mo,r)}var ds=L({minimum_:aL});function rL(e,t,n){A(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");A(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."),A(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(fo,i,s)}var vw=L({mirrorPad_:rL});function sL(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(go,r)}var ww=L({mod_:sL});function iL(e,t=null,n=!1){e=E(e,"x","moments");let a=Aa(t,e.shape),r=Ct(e,a,n),s=r.shape;n||(s=mi(r.shape,a));let i=pt(pe(re(e,"float32"),W(r,s))),o=Ct(i,a,n);return{mean:r,variance:o}}var hd=L({moments_:iL});function oL(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=bc(n,"c","multiRNNCell"),i=bc(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=P.runKernel(Tu,o,l);return i===1?W(u,[u.size]):u}var BN=L({multinomial_:lL});function uL(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Eu,r)}var fi=L({notEqual_:uL});function pL(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:E(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return P.runKernel(yo,s,i)}var Ll=L({oneHot_:pL});function cL(e){let t={x:E(e,"x","onesLike")};return P.runKernel($u,t)}var ea=L({onesLike_:cL});function dL(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return $e(r,s)}var VN=L({outerProduct_:dL});function hL(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 P.runKernel(xo,s,r)}var xa=L({pad_:hL});function mL(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),xa(e,[t],n)}var UN=L({pad1d_:mL});function fL(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),xa(e,t,n)}var GN=L({pad2d_:fL});function gL(e,t,n=0){return A(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."),xa(e,t,n)}var HN=L({pad3d_:gL});function bL(e,t,n=0){return A(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."),xa(e,t,n)}var jN=L({pad4d_:bL});function yL(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(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(Vu,r,s)}var md=L({spaceToBatchND_:yL});function xL(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(dr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=wN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=wL([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=vL([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:md(l,d,m),y=(n==="avg"?()=>ya(b,t,s,g,i):()=>Dt(b,t,s,g,i))(),x=h?y:id(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function vL(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function wL(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 kw=L({pool_:xL});function kL(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return P.runKernel(wo,r)}var fd=L({prelu_:kL});function IL(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=re(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(ko,r,s)}var Iw=L({prod_:IL});function SL(e,t,n,a){let r=e.map((p,d)=>E(p,`tensors${d}`,"raggedGather","int32")),s=E(t,"paramsDenseValues","raggedGather"),i=E(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=P.runKernel(Am,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var qN=L({raggedGather_:SL});function NL(e,t,n){let a=E(e,"starts","raggedRange"),r=E(t,"limits","raggedRange",a.dtype),s=E(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=P.runKernel(Fm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var KN=L({raggedRange_:NL});function TL(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return P.runKernel($m,u,p)}var XN=L({raggedTensorToTensor_:TL});function CL(e,t,n){na(e);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;sJN,createVideoElement:()=>ML,encodeStrings:()=>QN,expectArrayBuffersEqual:()=>RL,expectArraysClose:()=>_L,expectArraysEqual:()=>FL,expectNumbersClose:()=>$L,expectPromiseToFail:()=>AL,expectValuesInRange:()=>DL,play:()=>OL,testEpsilon:()=>Nw});var EL=.001,JN=.1;function _L(e,t,n){return n==null&&(n=Nw()),Rx(e,t,(a,r)=>Tw(a,r,n))}function Nw(){return P.backend.floatPrecision()===32?EL:JN}function Rx(e,t,n){let a=!0;if((en(e)||en(t))&&(a=!1),en(e)&&en(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=lr(e),o=lr(t);if(!Ar(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=en(e)?e:is(e),s=en(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()),typeof expect!="undefined"&&expect().nothing()}function _L(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Jr(e)||Jr(e[0])||Jr(t)||Jr(t[0])?Dx(e,n,(a,r)=>a==r):Dx(e,t,(a,r)=>Tw(a,r,0))}function AL(e,t,n){if(n==null&&(n=Nw()),!Tw(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Tw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function FL(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function $L(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function RL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var Cw=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=Sw.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(s>=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},ML=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Sw.alea(r.toString()),this.randn=new Cw(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),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=Sw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function PL(e,t,n=1,a="float32",r){if(na(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new ML(t,n,a,r),i=Oe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ba(t,0)}var aT=L({reverse1d_:jL});function KL(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ba(n,t)}var rT=L({reverse2d_:KL});function XL(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ba(n,t)}var sT=L({reverse3d_:XL});function YL(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ba(n,t)}var iT=L({reverse4d_:YL});function ZL(e){let t={x:E(e,"x","round")};return P.runKernel(_o,t)}var Ym=L({round_:ZL});function JL(e){let t={x:E(e,"x","rsqrt","float32")};return P.runKernel(Ao,t)}var Zm=L({rsqrt_:JL});function QL(e){let t={x:E(e,"x","selu")};return P.runKernel(Fo,t)}var Jm=L({selu_:QL});function ez(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(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");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.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 c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=Ns(p,l,a,r,i,s),f=$t(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Es=L({separableConv2d_:ez});async function tz(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(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 p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Ve(a,[t],[n])}var gd=L({slice1d_:sz});function iz(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var tf=L({slice2d_:iz});function oz(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var Ho=L({slice3d_:oz});function lz(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var Wl=L({slice4d_:lz});function uz(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 P.runKernel(zo,a,r)}var ja=L({softmax_:uz});function pz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Cm,t)}var bd=L({fft_:pz});function cz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Em,t)}var Bl=L({ifft_:cz});function dz(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=Bl(r)}else{let r=[n,2*(t-1)],s=W(zl(e),[n,t]),i=W(ld(e),[n,t]),o=ba(Ve(s,[0,1],[n,t-2]),1),l=z(ba(Ve(i,[0,1],[n,t-2]),1),ve(-1)),u=et([s,o],1),p=et([i,l],1),d=W(Er(u,p),[r[0],r[1]]);a=Bl(d)}if(a=zl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var nf=L({irfft_:dz});function hz(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return P.runKernel(Uu,a,r)}var Pn=L({split_:hz});function mz(e,t){A(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=Ve(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=et([e,It(m)],e.shape.length-1),n=t}else r=e;let s=je(r),i=W(Er(r,s),[a,n]),o=bd(i),l=Math.floor(n/2)+1,u=zl(o),p=ld(o),d=Pn(u,[l,n-l],u.shape.length-1),c=Pn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Er(d[0],c[0]),h)}var yd=L({rfft_:mz});function fz(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=_t(n,a),ct(n.shape,a.shape);let r={a:n,b:a},s={};return P.runKernel(Wo,r,s)}var af=L({squaredDifference_:fz});function gz(e,t){let n=E(e,"x","squeeze","string_or_numeric");return W(n,MS(n.shape,t).newShape)}var _s=L({squeeze_:gz});function bz(e,t=0){let n=bc(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return P.runKernel(Du,a,r)}var At=L({stack_:bz});function yz(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return P.runKernel(ks,n,a)}var qo=L({step_:yz});function xz(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return P.runKernel(qu,u,p)}var Aw=L({stridedSlice_:xz});function vz(e){let t={x:E(e,"x","tan","float32")};return P.runKernel(Vo,t)}var Fw=L({tan_:vz});function qe(e,t){Si(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Is(e,null,n,t)}function Ea(e,t,n){if(Si(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=lr(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 Is(e,t,a,n)}function xd(e,t,n){if(Si(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=lr(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 Is(e,t,a,n)}function Fa(e,t,n){if(Si(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=lr(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 Is(e,t,a,n)}function lT(e,t,n){if(Si(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=lr(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 Is(e,t,a,n)}function uT(e,t,n){if(Si(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=lr(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,Is(e,t,a,n)}var rf={};_e(rf,{calculateShapes:()=>pT,validateInput:()=>sf,validateUpdateShape:()=>$w});function $w(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 d=r;d= 0 but got ${t}`);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(ju,s,i);return{values:o,indices:l}}var Dw=L({topk_:kz});function Iz(e,t=0,n=1,a,r){if(na(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Cw(t,n,a,!0,r),i=Oe(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(Jc,a,r);return{values:s,indices:i}}var Rw=L({unique_:Sz});function Nz(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A($l(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return P.runKernel(Qc,s,i)}var lf=L({unsortedSegmentSum_:Nz});function Tz(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(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(Xu,a,r)}var dt=L({unstack_:Tz});function dT(e,t){return jm(e,t,"right")}function Mw(e,t=!0,n,a){return P.makeVariable(e,t,n,a)}function hT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Sn(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;fo).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?O(()=>{let i=zl(a),o=ld(a);return i=P.runKernel(Tr,{x:i},s),o=P.runKernel(Tr,{x:o},s),n&&(o=yt(o)),Er(i,o)}):P.runKernel(Tr,r,s)}var De=L({transpose_:_z});function Az(e,t,n,a,r=!0){let s=E(e,"v","movingAverage"),i=E(t,"x","movingAverage"),o=E(n,"decay","movingAverage");tN(s,i),A(Ar(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=ve(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=he(p,pe(l,_r(o,d)))}return X(s,p)}var fT=L({movingAverage_:Az});function Fz(e,t,n){na(n);let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");sf(r,a,n);let s={indices:a,updates:r},i={shape:n};return P.runKernel(Pu,s,i)}var gT=L({scatterND_:Fz});function $z(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 Dz(e,t,n,a=0){na(n);let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);$z(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return P.runKernel(Hu,o,l)}var bT=L({sparseToDense_:Dz});function Rz(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return P.runKernel(gu,a)}var yT=L({gatherND_:Rz});function Mz(e,t){if(t==null)return e.shape.slice();if(Ar(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.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ce?r.clone():r;let s=Mz(r,n),i=1-t,o=he(tp(X(Cs(s,0,1,"float32",a),i)),i);return z(r,o)}var Pw=L({dropout_:Oz});function Lw(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function uf(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(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}`),Sn(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];A(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],p=OS("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fWz,depthwiseConv2d:()=>Gz,matMul:()=>qz});function Lz(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Nn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return P.runKernel(km,d,c)}var zw=L({conv2DBackpropFilter_:Lz});function pf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,qo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function cf(e,t){let n=t,a=Bt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function df(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return Qu(e);if(t==="relu6")return Xm(e);if(t==="prelu")return fd(e,n);if(t==="leakyrelu")return ud(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var hf=(e,t)=>!(e>0)||t==="linear";function zz({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:p}){if(l=l||"linear",hf(P.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let N=$t(e,t,n,a,r,s,i);return o!=null&&(N=X(N,o)),df(N,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Nn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=sd(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=E(o,"bias","fused conv2d"),[b]=_t(b,d),r==="NHWC"?ct(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;if(u!=null){let N=u.shape;if(A(N.length<=1||N.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${N.length}.`),N.length===1)A(N[0]===1||N[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the number of output channels (${g.outChannels}).`);else if(N.length===3)try{ct(N,g.outShape)}catch(C){let _=`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(_)}y=E(u,"prelu weights","fused conv2d")}let x=(N,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[_,F,D,$]=C,S=pf(N,D,l);A(ps(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=tw(F.shape,S,_,n,a),B=zw(F,S,_.shape,n,a),U=[M,B];if($!=null){let H=cf($,S);U.push(H)}return U},v={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((N,C,_)=>{let F=P.runKernel(ii,v,I);return _([C,N,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):ur((N,C,_,F)=>{let D=P.runKernel(ii,v,I);return F([C,N,D,_]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var Wz=L({fusedConv2d_:zz});function Bz(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return P.runKernel(Im,u,p)}var vT=L({depthwiseConv2dNativeBackpropFilter_:Bz});function Vz(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=P.runKernel(Sm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var wT=L({depthwiseConv2dNativeBackpropInput_:Vz});function Uz({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:p}){if(hf(P.state.gradientDepth,l)===!1){let I=Ns(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),df(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(cr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Nn("fused depthwiseConv2d",a,i);let f=sd(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=_t(g,d),ct(f.outShape,g.shape));let b;u!=null&&(b=E(u,"prelu weights","fused depthwiseConv2d"));let y=(I,N)=>{A(ps(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,_,F,D]=N,$=pf(I,F,l),S=wT(_.shape,$,C,n,a,s,i),M=vT(_,$,C.shape,n,a,s,i);if(D!=null){let B=cf(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((I,N,C)=>{let _=P.runKernel(oi,x,v);return C([N,I,_]),m&&(_=W(_,[_.shape[1],_.shape[2],_.shape[3]])),{value:_,gradFunc:y}})(h,c):ur((I,N,C,_)=>{let F=P.runKernel(oi,x,v);return _([N,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var Gz=L({fusedDepthwiseConv2d_:Uz});function Hz({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(hf(P.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),df(D,s,i,o)}let l=E(e,"a","fused matMul"),u=E(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=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),b=ot(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let y=ct(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),v=a?W(u,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=_t(I,l),ct(y,I.shape));let N;i!=null&&(N=E(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=pf(W(D,B.shape),B,s),j,K;if(!n&&!a?(j=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(j=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(j=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(j=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=cf(U,H);return[j,K,Z]}else return[j,K]},_={a:x,b:v,bias:I,preluActivationWeights:N},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ur((D,$,S)=>{let M=P.runKernel(si,_,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,v):ur((D,$,S,M)=>{let B=P.runKernel(si,_,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,v,I)}var qz=L({fusedMatMul_:Hz});function jz(e){return uf(e,.54,.46)}var Kz=L({hammingWindow_:jz});function Xz(e){return uf(e,.5,.5)}var kT=L({hannWindow_:Xz});function Yz(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ve(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return P.runKernel(uu,p,d)}var eW=L({cropAndResize_:Qz});function tW(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return P.runKernel(mu,n,{})}var nW=L({flipLeftRight_:tW});function aW(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Mn(t,r)}var rW=L({grayscaleToRGB_:aW});function sW(e){let t=E(e,"image","RGBToGrayscale"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),A(a===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${a}.`);let r=t.dtype,s=re(t,"float32"),i=qe([.2989,.587,.114]),o;switch(t.rank){case 2:o=Ys("ij,j->i",s,i);break;case 3:o=Ys("ijk,k->ij",s,i);break;case 4:o=Ys("ijkl,l->ijk",s,i);break;case 5:o=Ys("ijklm,m->ijkl",s,i);break;case 6:o=Ys("ijklmn,n->ijklm",s,i);break;default:throw new Error("Not a valid tensor rank.")}return o=Gt(o,-1),re(o,r)}var iW=L({rgbToGrayscale_:sW});function oW(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(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(Zu,s,i)}var lW=L({rotateWithOffset_:oW});function ap(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),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function uW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=ap(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(_u,{boxes:s,scores:i},l)}var pW=L({nonMaxSuppression_:uW});function cW(e,t,n){let a=dW(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function dW(e,t,n){return mW(e,t,n||hW)}function hW(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 ST(e,t,n,a,r){return Ww(e,t,n,a,r,0)}function NT(e,t,n,a,r,s){return Ww(e,t,n,a,r,0,!1,s,!0)}function TT(e,t,n,a,r,s){return Ww(e,t,n,a,r,s,!0)}function Ww(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(tI);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let N=fW(e,y,d[I]);if(N>=a){v=!0;break}if(g.score=g.score*gW(a,p,N),g.score<=r)break}g.suppressBeginIndex=d.length,v||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&cW(u,g,tI))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function fW(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]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function gW(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function tI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function bW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=ap(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],p=l[1],{selectedIndices:d}=ST(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),qe(d,"int32")}var yW=bW;function xW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=ap(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=P.runKernel(Fu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var vW=L({nonMaxSuppressionWithScore_:xW});async function wW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=ap(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()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=TT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:qe(c,"int32"),selectedScores:qe(h)}}var kW=wW;function IW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=ap(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=P.runKernel(Au,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var SW=L({nonMaxSuppressionPadded_:IW});async function NW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=ap(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=NT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:qe(m,"int32"),validOutputs:ve(f,"int32")}}var TW=NW;function CW(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(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=W(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(To,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var CT=L({resizeBilinear_:CW});function EW(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(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=W(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(No,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var ET=L({resizeNearestNeighbor_:EW});function _W(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(qe([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=Pn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=Xv(re(Ym(h),"int32"),bn([]),256);u=AW(f,l)}let m=n?Ts(h,u):Tn(h,u);return re(z(m,255),"int32")}function AW(e,t){let n=qe([-1]),a=qe([0]),r=qe([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(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"),A(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(Ku,l,u)}var DW=L({transform_:$W});function RW(e,t,n){let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=E(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=nn(Pl(t,0),s,cs(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=E(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=nn(Pl(n,0),i,cs(n,i)));let u=W(gi(0,s,1,"int32"),[-1,1]),p=gi(0,i,1,"int32"),d=pe(u,p),c=_a(Ts(d,o),$r(d,yt(l))),h=It([s,i],a.dtype);return W(At(dt(W(a,[-1,s,i])).map(m=>nn(c,m,h))),r)}var MW=L({bandPart_:RW});function OW(e){let t;if(Array.isArray(e)){t=!1,A(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=Pn(e,e.shape[0],0).map(r=>_s(r,[0]));A(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 nI(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=dt(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=nI(l,t);r.push(u),s.push(p)});let i=W(At(r,0),e.shape),o=W(At(s,0),e.shape);return[i,o]}}function nI(e,t=!1){return P.tidy(()=>{A(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=Um(n),s=sr(e),i=Ea([[1]],[1,1]),o=sr(i),l=n>=a?a:n;for(let u=0;u{let h=Ve(s,[u,u],[n-u,1]),m=ep(h),f=Ve(s,[u,u],[1,1]),g=nn(Tn(f,0),Ea([[-1]]),Ea([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=sr(i):o=et([i,Ve(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),v=Ve(s,[u,0],[n-u,a]),I=z(x,o),N=De(o);if(u===0)s=pe(v,$e(I,$e(N,v)));else{let F=pe(v,$e(I,$e(N,v)));s=et([Ve(s,[0,0],[u,a]),F],0)}let C=De(I),_=Ve(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(_,$e($e(_,o),C));else{let F=pe(_,$e($e(_,o),C));r=et([Ve(r,[0,0],[n,u]),F],1)}return[o,s,r]}),Ee([p,d,c])}return!t&&n>a&&(r=Ve(r,[0,0],[n,a]),s=Ve(s,[0,0],[a,a])),[r,s]})}var zW=L({qr_:LW}),wn;(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"})(wn||(wn={}));function WW(e,t,n=wn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===wn.NONE)return s;if(n===wn.SUM)return fe(s);if(n===wn.MEAN){if(r==null)return Ct(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,ve(i)):o}}if(n===wn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ve(a.size));{let i=z(r,On(a.shape)),o=re(fe(fi(i,ve(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Dr=L({computeWeightedLoss_:WW});function BW(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),Sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Dr(o,i,a)}var VW=L({absoluteDifference_:BW});function UW(e,t,n,a,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),Sn(s.shape,i.shape,"Error in cosineDistance: ");let l=ve(1),u=pe(l,fe(z(s,i),n,!0));return Dr(u,o,r)}var GW=L({cosineDistance_:UW});function HW(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),Sn(r.shape,s.shape,"Error in hingeLoss: ");let o=ve(1);r=pe(z(ve(2),r),o);let l=Ke(pe(o,z(r,s)));return Dr(l,i,a)}var qW=L({hingeLoss_:HW});function jW(e,t,n,a=1,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),Sn(s.shape,i.shape,"Error in huberLoss: ");let l=ve(a),u=Lt(pe(i,s)),p=cs(u,l),d=pe(u,p),c=X(z(ve(.5),pt(p)),z(l,d));return Dr(c,o,r)}var KW=L({huberLoss_:jW});function XW(e,t,n,a=1e-7,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),Sn(s.shape,i.shape,"Error in logLoss: ");let l=ve(1),u=ve(a),p=yt(z(s,Qn(X(i,u)))),d=z(pe(l,s),Qn(X(pe(l,i),u))),c=pe(p,d);return Dr(c,o,r)}var YW=L({logLoss_:XW});function ZW(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),Sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=af(r,s);return Dr(o,i,a)}var JW=L({meanSquaredError_:ZW});function QW(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");Sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=pd(dn(yt(Lt(a))));return X(pe(r,s),i)}function eB(e,t,n,a=0,r=wn.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")),Sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=QW(s,i);return Dr(l,o,r)}var tB=L({sigmoidCrossEntropy_:eB});function nB(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 ur((a,r,s)=>{let i=cd(r,[n],!0),o=pe(re(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=mi(u.shape,[n]);return[z(W(u,h),pe(re(d,"float32"),dn(c))),z(W(u,h),pe(dn(c),re(d,"float32")))]}}})(e,t)}function aB(e,t,n,a=0,r=wn.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")),Sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=nB(s,i);return Dr(l,o,r)}var rB=L({softmaxCrossEntropy_:aB});function sB(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape - ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=P.runKernel(Gc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var iB=L({sparseFillEmptyRows_:sB});function oB(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape - ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=P.runKernel(Gu,i);return{outputIndices:o[0],outputShape:o[1]}}var lB=L({sparseReshape_:oB});function uB(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function AL(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function FL(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Jr(e)||Jr(e[0])||Jr(t)||Jr(t[0])?Rx(e,n,(a,r)=>a==r):Rx(e,t,(a,r)=>Tw(a,r,0))}function $L(e,t,n){if(n==null&&(n=Nw()),!Tw(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Tw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function DL(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function RL(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function OL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var Cw=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=Sw.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(s>=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},PL=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Sw.alea(r.toString()),this.randn=new Cw(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),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=Sw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function zL(e,t,n=1,a="float32",r){if(na(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new PL(t,n,a,r),i=Oe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ba(t,0)}var aT=L({reverse1d_:XL});function YL(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ba(n,t)}var rT=L({reverse2d_:YL});function ZL(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ba(n,t)}var sT=L({reverse3d_:ZL});function JL(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ba(n,t)}var iT=L({reverse4d_:JL});function QL(e){let t={x:E(e,"x","round")};return P.runKernel(_o,t)}var Zm=L({round_:QL});function ez(e){let t={x:E(e,"x","rsqrt","float32")};return P.runKernel(Ao,t)}var Jm=L({rsqrt_:ez});function tz(e){let t={x:E(e,"x","selu")};return P.runKernel(Fo,t)}var Qm=L({selu_:tz});function nz(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(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");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.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 c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=Ts(p,l,a,r,i,s),f=$t(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var _s=L({separableConv2d_:nz});async function az(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(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 p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Ve(a,[t],[n])}var gd=L({slice1d_:oz});function lz(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var nf=L({slice2d_:lz});function uz(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var Ho=L({slice3d_:uz});function pz(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var Wl=L({slice4d_:pz});function cz(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 P.runKernel(zo,a,r)}var qa=L({softmax_:cz});function dz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Cm,t)}var bd=L({fft_:dz});function hz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Em,t)}var Bl=L({ifft_:hz});function mz(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=Bl(r)}else{let r=[n,2*(t-1)],s=W(zl(e),[n,t]),i=W(ld(e),[n,t]),o=ba(Ve(s,[0,1],[n,t-2]),1),l=z(ba(Ve(i,[0,1],[n,t-2]),1),xe(-1)),u=et([s,o],1),p=et([i,l],1),d=W(_r(u,p),[r[0],r[1]]);a=Bl(d)}if(a=zl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var af=L({irfft_:mz});function fz(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return P.runKernel(Uu,a,r)}var Ln=L({split_:fz});function gz(e,t){A(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=Ve(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=et([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(_r(r,s),[a,n]),o=bd(i),l=Math.floor(n/2)+1,u=zl(o),p=ld(o),d=Ln(u,[l,n-l],u.shape.length-1),c=Ln(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(_r(d[0],c[0]),h)}var yd=L({rfft_:gz});function bz(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=_t(n,a),ct(n.shape,a.shape);let r={a:n,b:a},s={};return P.runKernel(Wo,r,s)}var rf=L({squaredDifference_:bz});function yz(e,t){let n=E(e,"x","squeeze","string_or_numeric");return W(n,MS(n.shape,t).newShape)}var As=L({squeeze_:yz});function xz(e,t=0){let n=bc(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return P.runKernel(Du,a,r)}var At=L({stack_:xz});function vz(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return P.runKernel(Is,n,a)}var jo=L({step_:vz});function wz(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return P.runKernel(ju,u,p)}var Aw=L({stridedSlice_:wz});function kz(e){let t={x:E(e,"x","tan","float32")};return P.runKernel(Vo,t)}var Fw=L({tan_:kz});function je(e,t){Si(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Ss(e,null,n,t)}function Ea(e,t,n){if(Si(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=lr(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 Ss(e,t,a,n)}function xd(e,t,n){if(Si(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=lr(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 Ss(e,t,a,n)}function Fa(e,t,n){if(Si(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=lr(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 Ss(e,t,a,n)}function lT(e,t,n){if(Si(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=lr(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 Ss(e,t,a,n)}function uT(e,t,n){if(Si(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=lr(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,Ss(e,t,a,n)}var sf={};_e(sf,{calculateShapes:()=>pT,validateInput:()=>of,validateUpdateShape:()=>$w});function $w(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 d=r;d= 0 but got ${t}`);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(qu,s,i);return{values:o,indices:l}}var Dw=L({topk_:Sz});function Nz(e,t=0,n=1,a,r){if(na(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Cw(t,n,a,!0,r),i=Oe(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(Jc,a,r);return{values:s,indices:i}}var Rw=L({unique_:Tz});function Cz(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A($l(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return P.runKernel(Qc,s,i)}var uf=L({unsortedSegmentSum_:Cz});function Ez(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(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(Xu,a,r)}var dt=L({unstack_:Ez});function dT(e,t){return Km(e,t,"right")}function Mw(e,t=!0,n,a){return P.makeVariable(e,t,n,a)}function hT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Nn(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;fo).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?O(()=>{let i=zl(a),o=ld(a);return i=P.runKernel(Cr,{x:i},s),o=P.runKernel(Cr,{x:o},s),n&&(o=yt(o)),_r(i,o)}):P.runKernel(Cr,r,s)}var De=L({transpose_:Fz});function $z(e,t,n,a,r=!0){let s=E(e,"v","movingAverage"),i=E(t,"x","movingAverage"),o=E(n,"decay","movingAverage");tN(s,i),A(Ar(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=he(p,pe(l,ur(o,d)))}return X(s,p)}var fT=L({movingAverage_:$z});function Dz(e,t,n){na(n);let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");of(r,a,n);let s={indices:a,updates:r},i={shape:n};return P.runKernel(Pu,s,i)}var gT=L({scatterND_:Dz});function Rz(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 Mz(e,t,n,a=0){na(n);let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);Rz(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return P.runKernel(Hu,o,l)}var bT=L({sparseToDense_:Mz});function Oz(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return P.runKernel(gu,a)}var yT=L({gatherND_:Oz});function Pz(e,t){if(t==null)return e.shape.slice();if(Ar(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.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ce?r.clone():r;let s=Pz(r,n),i=1-t,o=he(tp(X(Es(s,0,1,"float32",a),i)),i);return z(r,o)}var Pw=L({dropout_:Lz});function Lw(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function pf(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(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}`),Nn(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];A(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],p=OS("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fVz,depthwiseConv2d:()=>jz,matMul:()=>Kz});function Wz(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Tn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return P.runKernel(km,d,c)}var zw=L({conv2DBackpropFilter_:Wz});function cf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,jo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function df(e,t){let n=t,a=Bt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function hf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return Qu(e);if(t==="relu6")return Ym(e);if(t==="prelu")return fd(e,n);if(t==="leakyrelu")return ud(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var mf=(e,t)=>!(e>0)||t==="linear";function Bz({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:p}){if(l=l||"linear",mf(P.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let N=$t(e,t,n,a,r,s,i);return o!=null&&(N=X(N,o)),hf(N,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Tn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(dr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=sd(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=E(o,"bias","fused conv2d"),[b]=_t(b,d),r==="NHWC"?ct(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;if(u!=null){let N=u.shape;if(A(N.length<=1||N.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${N.length}.`),N.length===1)A(N[0]===1||N[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the number of output channels (${g.outChannels}).`);else if(N.length===3)try{ct(N,g.outShape)}catch(C){let _=`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(_)}y=E(u,"prelu weights","fused conv2d")}let x=(N,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[_,F,D,$]=C,S=cf(N,D,l);A(ps(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=nw(F.shape,S,_,n,a),B=zw(F,S,_.shape,n,a),U=[M,B];if($!=null){let H=df($,S);U.push(H)}return U},v={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?pr((N,C,_)=>{let F=P.runKernel(oi,v,I);return _([C,N,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):pr((N,C,_,F)=>{let D=P.runKernel(oi,v,I);return F([C,N,D,_]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var Vz=L({fusedConv2d_:Bz});function Uz(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return P.runKernel(Im,u,p)}var vT=L({depthwiseConv2dNativeBackpropFilter_:Uz});function Gz(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=P.runKernel(Sm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var wT=L({depthwiseConv2dNativeBackpropInput_:Gz});function Hz({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:p}){if(mf(P.state.gradientDepth,l)===!1){let I=Ts(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),hf(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(dr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Tn("fused depthwiseConv2d",a,i);let f=sd(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=_t(g,d),ct(f.outShape,g.shape));let b;u!=null&&(b=E(u,"prelu weights","fused depthwiseConv2d"));let y=(I,N)=>{A(ps(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,_,F,D]=N,$=cf(I,F,l),S=wT(_.shape,$,C,n,a,s,i),M=vT(_,$,C.shape,n,a,s,i);if(D!=null){let B=df(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?pr((I,N,C)=>{let _=P.runKernel(li,x,v);return C([N,I,_]),m&&(_=W(_,[_.shape[1],_.shape[2],_.shape[3]])),{value:_,gradFunc:y}})(h,c):pr((I,N,C,_)=>{let F=P.runKernel(li,x,v);return _([N,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var jz=L({fusedDepthwiseConv2d_:Hz});function qz({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(mf(P.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),hf(D,s,i,o)}let l=E(e,"a","fused matMul"),u=E(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=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),b=ot(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let y=ct(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),v=a?W(u,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=_t(I,l),ct(y,I.shape));let N;i!=null&&(N=E(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=cf(W(D,B.shape),B,s),q,K;if(!n&&!a?(q=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(q=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(q=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(q=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=df(U,H);return[q,K,Z]}else return[q,K]},_={a:x,b:v,bias:I,preluActivationWeights:N},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?pr((D,$,S)=>{let M=P.runKernel(ii,_,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,v):pr((D,$,S,M)=>{let B=P.runKernel(ii,_,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,v,I)}var Kz=L({fusedMatMul_:qz});function Xz(e){return pf(e,.54,.46)}var Yz=L({hammingWindow_:Xz});function Zz(e){return pf(e,.5,.5)}var kT=L({hannWindow_:Zz});function Jz(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ve(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return P.runKernel(uu,p,d)}var nW=L({cropAndResize_:tW});function aW(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return P.runKernel(mu,n,{})}var rW=L({flipLeftRight_:aW});function sW(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,On(t,r)}var iW=L({grayscaleToRGB_:sW});function oW(e){let t=E(e,"image","RGBToGrayscale"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),A(a===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${a}.`);let r=t.dtype,s=re(t,"float32"),i=je([.2989,.587,.114]),o;switch(t.rank){case 2:o=Zs("ij,j->i",s,i);break;case 3:o=Zs("ijk,k->ij",s,i);break;case 4:o=Zs("ijkl,l->ijk",s,i);break;case 5:o=Zs("ijklm,m->ijkl",s,i);break;case 6:o=Zs("ijklmn,n->ijklm",s,i);break;default:throw new Error("Not a valid tensor rank.")}return o=Gt(o,-1),re(o,r)}var lW=L({rgbToGrayscale_:oW});function uW(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(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(Zu,s,i)}var pW=L({rotateWithOffset_:uW});function ap(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),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function cW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=ap(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(_u,{boxes:s,scores:i},l)}var dW=L({nonMaxSuppression_:cW});function hW(e,t,n){let a=mW(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function mW(e,t,n){return gW(e,t,n||fW)}function fW(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 ST(e,t,n,a,r){return Ww(e,t,n,a,r,0)}function NT(e,t,n,a,r,s){return Ww(e,t,n,a,r,0,!1,s,!0)}function TT(e,t,n,a,r,s){return Ww(e,t,n,a,r,s,!0)}function Ww(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(tI);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let N=bW(e,y,d[I]);if(N>=a){v=!0;break}if(g.score=g.score*yW(a,p,N),g.score<=r)break}g.suppressBeginIndex=d.length,v||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&hW(u,g,tI))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function bW(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]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function yW(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function tI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function xW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=ap(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],p=l[1],{selectedIndices:d}=ST(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),je(d,"int32")}var vW=xW;function wW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=ap(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=P.runKernel(Fu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var kW=L({nonMaxSuppressionWithScore_:wW});async function IW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=ap(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()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=TT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(c,"int32"),selectedScores:je(h)}}var SW=IW;function NW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=ap(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=P.runKernel(Au,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var TW=L({nonMaxSuppressionPadded_:NW});async function CW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=ap(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=NT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(m,"int32"),validOutputs:xe(f,"int32")}}var EW=CW;function _W(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(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=W(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(To,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var CT=L({resizeBilinear_:_W});function AW(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(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=W(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(No,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var ET=L({resizeNearestNeighbor_:AW});function FW(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(je([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=Ln(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=Yv(re(Zm(h),"int32"),bn([]),256);u=$W(f,l)}let m=n?Cs(h,u):Cn(h,u);return re(z(m,255),"int32")}function $W(e,t){let n=je([-1]),a=je([0]),r=je([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(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"),A(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(Ku,l,u)}var MW=L({transform_:RW});function OW(e,t,n){let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=E(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=nn(Pl(t,0),s,ds(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=E(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=nn(Pl(n,0),i,ds(n,i)));let u=W(gi(0,s,1,"int32"),[-1,1]),p=gi(0,i,1,"int32"),d=pe(u,p),c=_a(Cs(d,o),$r(d,yt(l))),h=It([s,i],a.dtype);return W(At(dt(W(a,[-1,s,i])).map(m=>nn(c,m,h))),r)}var PW=L({bandPart_:OW});function LW(e){let t;if(Array.isArray(e)){t=!1,A(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=Ln(e,e.shape[0],0).map(r=>As(r,[0]));A(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 nI(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=dt(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=nI(l,t);r.push(u),s.push(p)});let i=W(At(r,0),e.shape),o=W(At(s,0),e.shape);return[i,o]}}function nI(e,t=!1){return P.tidy(()=>{A(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=Gm(n),s=sr(e),i=Ea([[1]],[1,1]),o=sr(i),l=n>=a?a:n;for(let u=0;u{let h=Ve(s,[u,u],[n-u,1]),m=ep(h),f=Ve(s,[u,u],[1,1]),g=nn(Cn(f,0),Ea([[-1]]),Ea([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=sr(i):o=et([i,Ve(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),v=Ve(s,[u,0],[n-u,a]),I=z(x,o),N=De(o);if(u===0)s=pe(v,$e(I,$e(N,v)));else{let F=pe(v,$e(I,$e(N,v)));s=et([Ve(s,[0,0],[u,a]),F],0)}let C=De(I),_=Ve(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(_,$e($e(_,o),C));else{let F=pe(_,$e($e(_,o),C));r=et([Ve(r,[0,0],[n,u]),F],1)}return[o,s,r]}),Ee([p,d,c])}return!t&&n>a&&(r=Ve(r,[0,0],[n,a]),s=Ve(s,[0,0],[a,a])),[r,s]})}var BW=L({qr_:WW}),kn;(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"})(kn||(kn={}));function VW(e,t,n=kn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===kn.NONE)return s;if(n===kn.SUM)return fe(s);if(n===kn.MEAN){if(r==null)return Ct(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,xe(i)):o}}if(n===kn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),xe(a.size));{let i=z(r,Pn(a.shape)),o=re(fe(fi(i,xe(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Dr=L({computeWeightedLoss_:VW});function UW(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),Nn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Dr(o,i,a)}var GW=L({absoluteDifference_:UW});function HW(e,t,n,a,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),Nn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return Dr(u,o,r)}var jW=L({cosineDistance_:HW});function qW(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),Nn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Ke(pe(o,z(r,s)));return Dr(l,i,a)}var KW=L({hingeLoss_:qW});function XW(e,t,n,a=1,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),Nn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=ds(u,l),d=pe(u,p),c=X(z(xe(.5),pt(p)),z(l,d));return Dr(c,o,r)}var YW=L({huberLoss_:XW});function ZW(e,t,n,a=1e-7,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),Nn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=yt(z(s,Qn(X(i,u)))),d=z(pe(l,s),Qn(X(pe(l,i),u))),c=pe(p,d);return Dr(c,o,r)}var JW=L({logLoss_:ZW});function QW(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),Nn(r.shape,s.shape,"Error in meanSquaredError: ");let o=rf(r,s);return Dr(o,i,a)}var eB=L({meanSquaredError_:QW});function tB(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");Nn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=pd(dn(yt(Lt(a))));return X(pe(r,s),i)}function nB(e,t,n,a=0,r=kn.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")),Nn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=tB(s,i);return Dr(l,o,r)}var aB=L({sigmoidCrossEntropy_:nB});function rB(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 pr((a,r,s)=>{let i=cd(r,[n],!0),o=pe(re(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=mi(u.shape,[n]);return[z(W(u,h),pe(re(d,"float32"),dn(c))),z(W(u,h),pe(dn(c),re(d,"float32")))]}}})(e,t)}function sB(e,t,n,a=0,r=kn.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")),Nn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=rB(s,i);return Dr(l,o,r)}var iB=L({softmaxCrossEntropy_:sB});function oB(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=P.runKernel(Gc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var lB=L({sparseFillEmptyRows_:oB});function uB(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape + ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=P.runKernel(Gu,i);return{outputIndices:o[0],outputShape:o[1]}}var pB=L({sparseReshape_:uB});function cB(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(Hc,i)}var pB=L({sparseSegmentMean_:uB});function cB(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(Hc,i)}var dB=L({sparseSegmentMean_:cB});function hB(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(qc,i)}var dB=L({sparseSegmentSum_:cB});function hB(e,t,n,a,r,s,i,o){let l=E(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=E(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=P.runKernel(Xc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var mB=L({stringNGrams_:hB});function fB(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=P.runKernel(Yc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var gB=L({stringSplit_:fB});function bB(e,t){let n=E(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return P.runKernel(Zc,r,a)}var yB=L({stringToHashBucketFast_:bB});function xB(e,t,n,a=!0){let r=E(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return P.runKernel(Kc,{x:r},s)}var vB=L({staticRegexReplace_:xB}),_T={fft:bd,ifft:Bl,rfft:yd,irfft:nf},AT={hammingWindow:Kz,hannWindow:kT,frame:IT,stft:Jz},Zn={flipLeftRight:nW,grayscaleToRGB:rW,resizeNearestNeighbor:ET,resizeBilinear:CT,rgbToGrayscale:iW,rotateWithOffset:lW,cropAndResize:eW,nonMaxSuppression:pW,nonMaxSuppressionAsync:yW,nonMaxSuppressionWithScore:vW,nonMaxSuppressionWithScoreAsync:kW,nonMaxSuppressionPadded:SW,nonMaxSuppressionPaddedAsync:TW,threshold:FW,transform:DW},Bw={bandPart:MW,gramSchmidt:PW,qr:zW},FT={absoluteDifference:VW,computeWeightedLoss:Dr,cosineDistance:GW,hingeLoss:qW,huberLoss:KW,logLoss:YW,meanSquaredError:JW,sigmoidCrossEntropy:tB,softmaxCrossEntropy:rB},$T={sparseFillEmptyRows:iB,sparseReshape:lB,sparseSegmentMean:pB,sparseSegmentSum:dB},DT={stringNGrams:mB,stringSplit:gB,stringToHashBucketFast:yB,staticRegexReplace:vB},ne={};_e(ne,{Serializable:()=>RT,SerializationMap:()=>MT,getRegisteredName:()=>kB,registerClass:()=>OT});var wB=new Map,Rx=new Map,RT=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},MT=class Tl{constructor(){this.classNameMap={}}static getMap(){return Tl.instance==null&&(Tl.instance=new Tl),Tl.instance}static register(t){Tl.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function OT(e,t,n){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof t=="undefined"&&(t="Custom"),typeof n=="undefined"&&(n=e.className);let a=n,r=t+">"+a;return MT.register(e),wB.set(r,e),Rx.set(e,r),e}function kB(e){return Rx.has(e)?Rx.get(e):e.className}var Rr=class extends RT{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Ee(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return ON(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ve(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() 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(Rr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Vw=class extends Rr{static get className(){return"Adadelta"}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:O(()=>je(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:O(()=>je(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;O(()=>{let l=X(z(i,this.rho),z(pt(s),1-this.rho)),u=z(he(cn(X(o,this.epsilon)),cn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(pt(u),1-this.rho));i.assign(l),o.assign(p);let d=X(z(u,-this.learningRate),a);a.assign(d)})}),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)}},Uw=class extends Rr{static get className(){return"Adagrad"}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];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:O(()=>yn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;O(()=>{let i=X(s,pt(r));s.assign(i);let o=X(z(he(r,cn(X(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)}},Gw=class extends Rr{static get className(){return"Adam"}constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],O(()=>{this.accBeta1=ve(t).variable(),this.accBeta2=ve(n).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=pe(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:O(()=>je(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:O(()=>je(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(z(p,this.beta2),z(pt(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=X(z(he(h,X(cn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(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),O(()=>{this.accBeta1.assign(_r(this.beta1,this.iterations_+1)),this.accBeta2.assign(_r(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)}},Hw=class extends Rr{static get className(){return"Adamax"}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=[],O(()=>{this.iteration=ve(0).variable(),this.accBeta1=ve(t).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,X(z(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:je(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:je(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=dr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(z(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)}},mf=class extends Rr{static get className(){return"SGD"}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];O(()=>{let s=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(ve(-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)}},qw=class extends mf{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ve(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:O(()=>je(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&O(()=>{let i,o=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(z(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)}},jw=class extends Rr{static get className(){return"RMSProp"}constructor(e,t=.9,n=0,a=null,r=!1){if(super(),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:O(()=>je(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:O(()=>je(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:O(()=>je(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;O(()=>{let l=X(z(i,this.decay),z(pt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),cn(pe(l,X(pt(p),this.epsilon)))),c=X(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=X(z(i,this.decay),z(pt(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),cn(X(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),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)}},IB=[Vw,Uw,Gw,Hw,qw,jw,mf];function SB(){for(let e of IB)OT(e)}var qt={};_e(qt,{CompositeArrayBuffer:()=>Fr,browserFiles:()=>FB,browserHTTPRequest:()=>PB,concatenateArrayBuffers:()=>cO,copyModel:()=>DO,decodeWeights:()=>lN,decodeWeightsStream:()=>pN,encodeWeights:()=>sO,fromMemory:()=>zB,fromMemorySync:()=>BT,getLoadHandlers:()=>xO,getModelArtifactsForJSON:()=>Rv,getModelArtifactsForJSONSync:()=>dN,getModelArtifactsInfoForJSON:()=>rd,getSaveHandlers:()=>yO,getWeightSpecs:()=>Ex,http:()=>Xw,isHTTPScheme:()=>Ox,listModels:()=>FO,loadWeights:()=>DB,moveModel:()=>RO,registerLoadRouter:()=>bO,registerSaveRouter:()=>gO,removeModel:()=>$O,weightsLoaderFactory:()=>LT,withSaveHandler:()=>WB,withSaveHandlerSync:()=>BB});var NB="model",TB=".json",CB=".weights.bin";function aI(e){return new Promise(t=>setTimeout(t)).then(e)}var Yh=class Mx{constructor(t){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Mx.URL_SCHEME)&&(t=t.slice(Mx.URL_SCHEME.length)),(t==null||t.length===0)&&(t=NB),this.modelJsonFileName=t+TB,this.weightDataFileName=t+CB}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let n=Fr.join(t.weightData),a=window.URL.createObjectURL(new Blob([n],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let r=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],s=cN(t,r),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),o=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(o.download=this.modelJsonFileName,o.href=i,await aI(()=>o.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let l=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;l.download=this.weightDataFileName,l.href=a,await aI(()=>l.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:rd(t)}}}};Yh.URL_SCHEME="downloads://";var EB=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Rv(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,s])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>eI(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=eI(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},_B=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Yh.URL_SCHEME)?AB(e.slice(Yh.URL_SCHEME.length)):null;ga.registerSaveRouter(_B);function AB(e="model"){return new Yh(e)}function FB(e){return new EB(e)}function rI(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 p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(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(e.map(s))}async function PT(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,a=e.map(s=>n(s,t.requestInit,{isBinary:!0})),r=(t.onProgress==null?await Promise.all(a):await rI(a,t.onProgress,0,.5)).map(s=>s.arrayBuffer());return t.onProgress==null?await Promise.all(r):await rI(r,t.onProgress,.5,1)}function $B(e,t){var n;let a=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,r=0,s;return(n=t.onProgress)===null||n===void 0||n.call(t,0),new ReadableStream({pull:async i=>{for(var o;rPT(r,{requestInit:a}))(e,t,n)}function LT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=li[b]*ot(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((v,I)=>{v===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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 p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=new Fr(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=lN(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var RB="application/octet-stream",MB="application/json",Kw=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=G().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`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||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=cN(e,n);if(t.body.append("model.json",new Blob([JSON.stringify(a)],{type:MB}),"model.json"),e.weightData!=null){let s=Fr.join(e.weightData);t.body.append("model.weights.bin",new Blob([s],{type:RB}),"model.weights.bin")}let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:rd(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async loadModelJSON(){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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return Rv(e,t=>this.loadWeights(t))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),n=Ex(e.weightsManifest),a=()=>$B(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:n,getWeightStream:a})}async getWeightUrls(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=OB(t),r=this.weightPathPrefix||n,s=[],i=[];for(let o of e)for(let l of o.paths)this.weightUrlConverter!=null?i.push(this.weightUrlConverter(l)):s.push(r+l+a);return this.weightUrlConverter&&s.push(...await Promise.all(i)),s}async loadWeights(e){let t=await this.getWeightUrls(e),n=Ex(e),a=await PT(t,this.loadOptions);return[n,a]}};Kw.URL_SCHEME_REGEX=/^https?:\/\//;function OB(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ox(e){return e.match(Kw.URL_SCHEME_REGEX)!=null}var zT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ox(a)):n=Ox(e),n)return Xw(e,t)}return null};ga.registerSaveRouter(zT);ga.registerLoadRouter(zT);function Xw(e,t){return new Kw(e,t)}function PB(e,t){return Xw(e,t)}var ox=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},WT=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},LB=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function zB(e,t,n,a){let r=arguments;return new LB(BT(...r))}function BT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new ox(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 ox({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 ox({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function WB(e){return new WT(e)}function BB(e){return new WT(e)}var VT={};_e(VT,{confusionMatrix:()=>UB});function VB(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(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.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Ll(re(a,"int32"),n),i=Ll(re(r,"int32"),n),o=De(s),l=$e(o,i);return re(l,"int32")}var UB=L({confusionMatrix_:VB}),jo={};_e(jo,{draw:()=>ZB,fromPixels:()=>JB,fromPixelsAsync:()=>KB,toPixels:()=>YB});var Hs,sI=!1;function UT(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(fc(Hh,P.backendName)!=null){let c={pixels:e},h={numChannels:t};return P.runKernel(Hh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Hs==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Hs=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Hs=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Hs.canvas.width=l,Hs.canvas.height=u,Hs.drawImage(e,0,0,l,u),p=Hs.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}function XB(e){let t=(e==null?void 0:e.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function YB(e,t){let n=E(e,"img","toPixels");if(!(e instanceof Ce)){let u=n;n=re(u,"int32"),u.dispose()}GT(n);let[a,r]=n.shape.slice(0,2),s=n.rank===2?1:n.shape[2],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?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){sI||fc(Nm,P.backendName)!=null&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),sI=!0),t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}function ZB(e,t,n){let a=E(e,"img","draw");if(!(e instanceof Ce)){let i=a;a=re(i,"int32"),i.dispose()}GT(a),XB(n==null?void 0:n.imageOptions);let r={image:a},s={canvas:t,options:n};P.runKernel(Nm,r,s)}var JB=L({fromPixels_:UT}),Yw={};_e(Yw,{prepareAndValidate:()=>HT});function HT(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 d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Kt={};_e(Kt,{assertParamsValid:()=>e4,computeFlatOffset:()=>s4,computeOutShape:()=>n4,getNormalizedAxes:()=>a4,isSliceContinous:()=>r4,maskToAxes:()=>t4,parseSliceParams:()=>e2,sliceInfo:()=>i4,startForAxis:()=>JT,startIndicesWithElidedDims:()=>XT,stopForAxis:()=>QT,stopIndicesWithElidedDims:()=>YT,stridesForAxis:()=>ZT,stridesWithElidedDims:()=>qT});var Px=-2,QB=-1;function e4(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),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 t4(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function n4(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=XT(i,h,m,a,e),d=YT(o,h,m,r,e),c=qT(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=jT(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=jT(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=hc(0,i,l-1),i}function QT(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=hc(0,i,l):i=hc(-1,i,l-1),i}function r4(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 s4(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{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:(A(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 i4(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&i&i-1)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let y=0;y0?0:-1,c.strides[y]>0?v:v-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=v)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=iI(c.begin[y],0,c.strides[y],v,I,N),c.end[y]=iI(c.end[y],1,c.strides[y],v,I,N);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===v;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let _,F=!1;if(c.beginValid&&c.endValid?(_=c.end[y]-c.begin[y],F=!0):x?(_=1,F=!0):C&&v>=0&&(c.strides[y]<0?_=-v:_=v,F=!0),F){let D;_===0||_<0!=c.strides[y]<0?D=0:D=Math.trunc(_/c.strides[y])+(_%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Px&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Px),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function o4(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var l4="4.16.0",t2=class{static sgd(e){return new mf(e)}static momentum(e,t,n=!1){return new qw(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new jw(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Gw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Vw(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Hw(e,t,n,a,r)}static adagrad(e,t=.1){return new Uw(e,t)}},Ks=t2,u4=typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e();function Zw(){return new Promise(e=>u4(()=>e()))}var T={};_e(T,{ERF_A1:()=>S4,ERF_A2:()=>N4,ERF_A3:()=>T4,ERF_A4:()=>C4,ERF_A5:()=>E4,ERF_P:()=>I4,PARALLELIZE_THRESHOLD:()=>Jw,RowPartitionType:()=>er,SELU_SCALE:()=>a2,SELU_SCALEALPHA:()=>n2,applyActivation:()=>df,assertAndGetBroadcastShape:()=>ct,assertAxesAreInnerMostDims:()=>i3,assertParamsConsistent:()=>p4,assignToTypedArray:()=>R4,axesAreInnerMostDims:()=>uw,calculateShapes:()=>pT,checkEinsumDimSizes:()=>W4,checkPadOnDimRoundingMode:()=>Nn,combineLocations:()=>FN,combineRaggedTensorToTensorShapes:()=>d4,complexWithEvenIndex:()=>F4,complexWithOddIndex:()=>$4,computeConv2DInfo:()=>sd,computeConv3DInfo:()=>kN,computeDefaultPad:()=>Gv,computeDilation2DInfo:()=>rP,computeOptimalWindowSize:()=>g4,computeOutAndReduceShapes:()=>$N,computeOutShape:()=>c4,computePool2DInfo:()=>wN,computePool3DInfo:()=>sP,convertConv2DDataFormat:()=>IN,decodeEinsumEquation:()=>L4,eitherStridesOrDilationsAreOne:()=>cr,expandShapeToKeepDim:()=>mi,exponent:()=>O4,exponents:()=>M4,fromStringArrayToUint8:()=>oV,fromUint8ToStringArray:()=>iV,getAxesPermutation:()=>DN,getBroadcastDims:()=>_N,getComplexWithIndex:()=>D4,getEinsumComputePath:()=>B4,getEinsumPermutation:()=>z4,getFusedBiasGradient:()=>cf,getFusedDyActivation:()=>pf,getImageCenter:()=>b4,getInnerMostAxes:()=>o3,getPermuted:()=>x4,getRaggedRank:()=>m4,getReductionAxes:()=>Bt,getReshaped:()=>y4,getReshapedPermuted:()=>v4,getRowPartitionTypesHelper:()=>h4,getSliceBeginCoords:()=>w4,getSliceSize:()=>k4,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>H4,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>q4,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>j4,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>Y4,getSparseReshapeInputOutputMismatchErrorMessage:()=>J4,getSparseReshapeInputOutputMultipleErrorMessage:()=>Z4,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>K4,getSparseReshapeNegativeOutputDimErrorMessage:()=>X4,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>nV,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>Q4,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>eV,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>tV,getUndoAxesPermutation:()=>pw,isIdentityPermutation:()=>V4,log:()=>mM,mergeRealAndImagArrays:()=>_4,prepareAndValidate:()=>HT,prepareSplitSize:()=>G4,segment_util:()=>r2,shouldFuse:()=>hf,slice_util:()=>Kt,splitRealAndImagArrays:()=>A4,stridesOrDilationsArePositive:()=>di,tupleValuesAreOne:()=>ps,upcastType:()=>fa,validateDefaultValueShape:()=>f4,validateInput:()=>sf,validateUpdateShape:()=>$w,warn:()=>Zr});function p4(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(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 c4(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function h4(e){let t={FIRST_DIM_SIZE:er.FIRST_DIM_SIZE,VALUE_ROWIDS:er.VALUE_ROWIDS,ROW_LENGTHS:er.ROW_LENGTHS,ROW_SPLITS:er.ROW_SPLITS,ROW_LIMITS:er.ROW_LIMITS,ROW_STARTS:er.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function m4(e){return e.length===0?0:e[0]===er.FIRST_DIM_SIZE?e.length-1:e.length}function f4(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Jw=30;function g4(e){return e<=Jw?e:Gh(e,Math.floor(Math.sqrt(e)))}function b4(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function y4(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function v4(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,oI=",",lI="...";function L4(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(P4,"").length)/lx.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${lx}").`);let[a,r]=e.split(lx);A(a.indexOf(lI)===-1,()=>`The ellipsis notation ("${lI}") is not supported yet.`);let s=a.split(oI),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function W4(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function B4(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function U4(e,t){let n=[];for(let a=0;a"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);A(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}A(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}function H4(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function q4(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function j4(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function K4(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function X4(e,t){return`size ${e} must be non-negative, not ${t}`}function Y4(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function Z4(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a SparseTensor with ${n} - dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function J4(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function Q4(){return"segment ids must be >= 0"}function eV(){return"segment ids are not increasing"}function tV(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function nV(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var r2={};_e(r2,{collectGatherOpShapeInfo:()=>sV,computeOutShape:()=>rV,segOpComputeOptimalWindowSize:()=>aV});function aV(e,t){let n=!1,a;for(e<=Jw?(a=e,n=!0):a=Gh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Gh(e,a+1);return a}function rV(e,t,n){let a=[],r=e.length;for(let s=0;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(njh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function oV(e){return e.map(t=>nd(t))}var hr={};_e(hr,{nonMaxSuppressionV3Impl:()=>ST,nonMaxSuppressionV4Impl:()=>NT,nonMaxSuppressionV5Impl:()=>TT,whereImpl:()=>hT});SB();var s2={kernelName:Yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,qo(re(n,"float32"),-1))}}},lV={kernelName:Ni,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pt(re(n,"float32")),r=cn(pe(ve(1),a));return yt(he(e,r))}}}},uV={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=cn(pe(pt(re(n,"float32")),1));return he(e,a)}}}},pV={kernelName:xs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},cV={kernelName:Ci,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},dV={kernelName:Ql,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},hV={kernelName:eu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},mV={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,cn(pe(ve(1),pt(re(n,"float32")))))}}},fV={kernelName:_i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=cn(X(ve(1),pt(re(n,"float32"))));return he(e,a)}}}},gV={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=X(pt(n),pt(a)),i=z(e,he(a,s)),o=Bt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(pt(n),pt(a)),i=yt(z(e,he(n,s))),o=Bt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},bV={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(pt(re(n,"float32")),1))}}},yV={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ve(1),pt(re(n,"float32"))))}}};function xV(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.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}.`),Nn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=P.runKernel(Rc,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var vV=L({avgPool3dGrad_:xV}),wV={kernelName:tu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>vV(e,a,r,s,i,o)}}};function kV(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(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=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(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(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=P.runKernel(Dc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var IV=L({avgPoolGrad_:kV}),SV={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>IV(e,a,r,s,i)}}},NV={kernelName:Ri,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},TV={kernelName:nu,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>md(e,a,r)}}},CV={kernelName:HS,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:()=>fe(e,o,!0)}}},EV={kernelName:Mi,gradFunc:e=>({x:()=>e.clone()})},_V={kernelName:Oi,gradFunc:e=>({x:()=>je(e)})},AV={kernelName:vs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>nn(_a($r(a,r),Ts(a,s)),e,je(e))}}},FV={kernelName:Oc,inputsToSave:["x"],gradFunc:s2.gradFunc},$V={kernelName:su,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Aa(r,t[0].shape)[0],i=a.map(o=>o[s]);return Pn(e,i,s).map(o=>()=>o)}},DV={kernelName:Pi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ps(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>tw(a.shape,e,r,i,o,l),filter:()=>zw(a,e,r.shape,i,o,l)}}},RV={kernelName:Li,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>$t(e,r,s,i,o,1,l),filter:()=>zw(e,a,r.shape,s,i,o,l)}}};function MV(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(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(iu,o,l)}var OV=L({conv3DBackpropFilter_:MV}),PV={kernelName:zi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ps(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:()=>CN(i.shape,e,o,r,s),filter:()=>OV(i,e,o.shape,r,s)}}},LV={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(Qm(re(n,"float32"))),e)}}},zV={kernelName:Bi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(ef(re(n,"float32")),e)}}},WV={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=DN([r],a.rank),l=Vm(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},BV={kernelName:Ui,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ps(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;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(cr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Nn("depthwiseConv2d",s,i),{x:()=>wT(l.shape,e,u,r,s,o,i),filter:()=>vT(l,e,u.shape,r,s,o,i)}}},VV={kernelName:Gi,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(Dl,s,n),filter:()=>P.runKernel(Rl,i,n)}}},UV={kernelName:qi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>P.runKernel(cu,a)}}},GV={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(dn(yt(pt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},HV={kernelName:Ki,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},qV={kernelName:hu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},jV={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,dn(n))}}},KV={kernelName:Yi,gradFunc:e=>({x:()=>je(e)})},XV={kernelName:Zi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},YV={kernelName:Ji,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ve(1):o,u=Bt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Mn(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,ve(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},ZV={kernelName:fu,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s,batchDims:i}=n,o=Aa(s,a.shape)[0],l=(u,p,d)=>()=>{let c=u.shape,h=p.size,m=c.slice(0,o),f=m.length,g=c.slice(s,c.length).slice(1),b=g.length,y=uI(0,f),x=uI(f+1,f+1+b),v=pI([m,[h],g]),I=W(d,v),N=W(p,[h]),C=pI([[f],y,x]),_=De(I,C),F=lf(_,N,u.shape[o]),D=pw(C);return F=De(F,D),F};if(i===1){let u=a.shape[0],p=a.split(u,0);return{x:()=>At(p.map((d,c)=>l(d,r.slice(c,1),e.slice(c,1))())).reshape(a.shape),indices:()=>r}}else return{x:l(a,r,e),indices:()=>r}}};function uI(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>je(n),b:()=>je(a)}}},QV={kernelName:eo,gradFunc:e=>({x:()=>re(e,"float32")})},eU={kernelName:to,gradFunc:e=>({x:()=>je(e)})},tU={kernelName:no,gradFunc:e=>({x:()=>je(e)})},nU={kernelName:ao,gradFunc:e=>({x:()=>je(e)})},aU={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Tn(a,0);return{x:()=>nn(s,e,z(e,r))}}},rU={kernelName:io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},sU={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,re(n,"float32"))}}},iU={kernelName:jS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=dn(a);return pe(e,z(fe(e,r,!0),s))}}}};function oU(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(Su,o,l)}var lU=L({localResponseNormalizationBackprop_:oU}),uU={kernelName:oo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>lU(a,r,e,s,i,o,l)}}};function i2(e,t,n,a){return t.rankz(e,re(Jn(n,t),e.dtype))}}var cI={kernelName:lo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Aa(r,s.shape),l=i2(e,i,s,o);return{x:()=>l.x()}}},pU={kernelName:uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re($r(n,a),"float32")),b:()=>z(e,re(Pl(n,a),"float32"))}}};function cU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Nn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=P.runKernel(Bc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var dU=L({maxPool3dGrad_:cU}),hU={kernelName:Nu,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>dU(e,a,r,s,i,o,l)}}};function mU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Nn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return P.runKernel(Wc,p,d)}var fU=L({maxPoolGrad_:mU}),gU={kernelName:po,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>fU(e,a,r,s,i,o)}}},bU={kernelName:co,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Aa(r,a.shape),i=$N(a.shape,s)[1],o=ot(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,On(a.shape,"float32")),o)}}}},yU={kernelName:ho,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Aa(r,s.shape),l=i2(e,i,s,o);return{x:()=>l.x()}}},xU={kernelName:mo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re(Ts(n,a),"float32")),b:()=>z(e,re(Tn(n,a),"float32"))}}},vU={kernelName:fo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},wU={kernelName:go,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=Bt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(tp(he(n,a)))),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},kU={kernelName:bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=z(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},IU={kernelName:Cu,gradFunc:e=>({x:()=>yt(e)})},SU={kernelName:yo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},NU={kernelName:$u,gradFunc:e=>({x:()=>je(e)})},TU={kernelName:Du,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},dI={kernelName:xo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},CU={kernelName:vo,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ct(s.shape,i.shape);return{a:()=>{let l=re(i,"float32"),u=z(e,z(l,_r(s,pe(l,ve(1))))),p=Bt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Tn(s,0),u=nn(l,Qn(s),je(s)),p=z(e,z(r,u)),d=Bt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},EU={kernelName:wo,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Tn(n,0);return{x:()=>nn(r,e,z(e,a)),alpha:()=>{let s=nn(r,je(e),z(e,n)),i=Bt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function _U(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=wc(e,n,!0,!1),i=wc(e,n,!0,!0),o=z(s,i);return z(r,o)}function AU(e,t,n){let a=e.shape.length,r=a-n.length,s=T.getAxesPermutation(n,a),i=e;s!=null&&(i=De(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=_U(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=T.getUndoAxesPermutation(s);p=De(p,d)}return p}var FU={kernelName:ko,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>AU(a,e,s)}}},$U={kernelName:Hi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},DU={kernelName:Io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(pt(n)))}}},RU={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Ts(n,6),qo(n));return{x:()=>z(e,re(a,"float32"))}}},MU={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,re(qo(n),"float32"))}}},OU={kernelName:Ru,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},PU={kernelName:To,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Ou,r,n)}}},LU={kernelName:No,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Mu,r,n)}}},zU={kernelName:Eo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Aa(a,e.shape);return{x:()=>ba(e,r)}}},WU={kernelName:_o,gradFunc:e=>({x:()=>je(e)})},BU={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(_r(n,1.5),2)))}}},VU={kernelName:Wu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>re(je(n),"float32"),t:()=>z(e,re(n,e.dtype)),e:()=>z(e,re(dd(n),e.dtype))}}},UU={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Tn(n,ve(0)),r=ve(n2),s=ve(a2),i=z(e,s),o=z(z(e,r),dn(re(n,"float32")));return nn(a,i,o)}}}},GU={kernelName:Mo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ve(1),n)))}}},HU={kernelName:Ro,gradFunc:e=>({x:()=>je(e)})},qU={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(od(re(n,"float32")),e)}}},jU={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Bm(re(n,"float32")),e)}}},KU={kernelName:Bu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=e2(a,r,s),u=[];for(let p=0;pxa(e,u)}}},XU={kernelName:zo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},YU={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ha(n))}}},hI={kernelName:Vu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>id(e,a,r)}}},mI={kernelName:Uu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>et(e,a)}}},ZU={kernelName:Po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(cn(re(n,"float32")),2))}}},JU={kernelName:jc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(re(n,"float32"),2))}}},QU={kernelName:Wo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ve(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},eG={kernelName:ks,gradFunc:e=>({x:()=>je(e)})},tG={kernelName:Bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},nG={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Aa(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,On(a.shape,"float32"));return{x:()=>o}}},aG={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pt(od(n)))}}},rG={kernelName:Uo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ve(1),pt(n)),e)}}},sG={kernelName:ws,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=je(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=pw(r);return{x:()=>De(e,s)}}},oG={kernelName:Xu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>At(e,r)}}},lG={kernelName:Qc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>uG(e,n)}}};function uG(e,t){let n=dr(t,je(t)),a=np(e,n),r=$r(t,ve(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>je(e)})},cG=[s2,lV,uV,pV,cV,dV,hV,mV,fV,gV,bV,yV,wV,SV,NV,TV,CV,EV,_V,AV,FV,$V,RV,DV,PV,LV,zV,WV,BV,VV,$U,UV,GV,HV,qV,jV,XV,KV,YV,ZV,JV,QV,eU,tU,nU,aU,rU,sU,iU,uU,cI,cI,pU,hU,gU,bU,yU,xU,vU,wU,kU,IU,SU,NU,TU,dI,dI,CU,EU,FU,DU,RU,MU,OU,PU,LU,zU,WU,BU,VU,UU,GU,HU,qU,jU,KU,XU,YU,hI,hI,mI,mI,ZU,QU,JU,eG,tG,nG,aG,rG,sG,iG,oG,lG,pG];for(let e of cG)KS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Ov(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Pv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Lm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),yc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ci(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),Lv(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),zv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Wv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Bv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Vv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Uv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ya(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),id(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),Ss(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ni(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),Yv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),an(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ce&&(e=[e]),et([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),zm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Wm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),$t(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),od(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Bm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),wc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Vm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),rw(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ns(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),sw(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),iw(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),ow(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Qu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),Jn(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),lw(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),cw(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),dn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Gt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),dw(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),bd(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),tp(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Pm(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),np(this,e,t,n)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),$r(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Tn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),Bl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),nf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),hw(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),mw(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),fw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),ud(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ts(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Pl(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),gw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),bw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Hm(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),cd(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),Qn(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),pd(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),_a(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),dd(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),qm(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),yw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ma(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),dr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Ct(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),Ol(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),cs(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),vw(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),ww(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),ep(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),fi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Ll(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),ea(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),xa(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),kw(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),_r(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),fd(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),Iw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Ew(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),Xm(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),CT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),ET(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ba(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),yd(this)};Q().prototype.round=function(){return this.throwIfDisposed(),Ym(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),Zm(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),Jm(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Es(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ha(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),_w(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),Qm(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),ef(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ve(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),ja(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),Go(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),md(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),Pn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),cn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),pt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),af(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),_s(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ce?[this,e]:[this,...e];return At(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),qo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Aw(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Fw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),hi(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Mn(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),re(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),re(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),re(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Dw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Rw(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),lf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),nn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),je(this)};var Xr=class o2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,o2.prototype)}},ar=class l2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,l2.prototype)}},V=class u2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,u2.prototype)}},ze=class p2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,p2.prototype)}},dG=class c2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,c2.prototype)}},d2=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Sa={};function Qw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Lx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Lx(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:Lx(a))}}}function vd(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 Sa)i=Sa[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(jc,i)}var mB=L({sparseSegmentSum_:hB});function fB(e,t,n,a,r,s,i,o){let l=E(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=E(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=P.runKernel(Xc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var gB=L({stringNGrams_:fB});function bB(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=P.runKernel(Yc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var yB=L({stringSplit_:bB});function xB(e,t){let n=E(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return P.runKernel(Zc,r,a)}var vB=L({stringToHashBucketFast_:xB});function wB(e,t,n,a=!0){let r=E(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return P.runKernel(Kc,{x:r},s)}var kB=L({staticRegexReplace_:wB}),_T={fft:bd,ifft:Bl,rfft:yd,irfft:af},AT={hammingWindow:Yz,hannWindow:kT,frame:IT,stft:eW},Zn={flipLeftRight:rW,grayscaleToRGB:iW,resizeNearestNeighbor:ET,resizeBilinear:CT,rgbToGrayscale:lW,rotateWithOffset:pW,cropAndResize:nW,nonMaxSuppression:dW,nonMaxSuppressionAsync:vW,nonMaxSuppressionWithScore:kW,nonMaxSuppressionWithScoreAsync:SW,nonMaxSuppressionPadded:TW,nonMaxSuppressionPaddedAsync:EW,threshold:DW,transform:MW},Bw={bandPart:PW,gramSchmidt:zW,qr:BW},FT={absoluteDifference:GW,computeWeightedLoss:Dr,cosineDistance:jW,hingeLoss:KW,huberLoss:YW,logLoss:JW,meanSquaredError:eB,sigmoidCrossEntropy:aB,softmaxCrossEntropy:iB},$T={sparseFillEmptyRows:lB,sparseReshape:pB,sparseSegmentMean:dB,sparseSegmentSum:mB},DT={stringNGrams:gB,stringSplit:yB,stringToHashBucketFast:vB,staticRegexReplace:kB},ne={};_e(ne,{Serializable:()=>RT,SerializationMap:()=>MT,getRegisteredName:()=>SB,registerClass:()=>OT});var IB=new Map,Mx=new Map,RT=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},MT=class Tl{constructor(){this.classNameMap={}}static getMap(){return Tl.instance==null&&(Tl.instance=new Tl),Tl.instance}static register(t){Tl.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function OT(e,t,n){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof t=="undefined"&&(t="Custom"),typeof n=="undefined"&&(n=e.className);let a=n,r=t+">"+a;return MT.register(e),IB.set(r,e),Mx.set(e,r),e}function SB(e){return Mx.has(e)?Mx.get(e):e.className}var Rr=class extends RT{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Ee(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return ON(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(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(Rr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Vw=class extends Rr{static get className(){return"Adadelta"}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:O(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:O(()=>qe(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;O(()=>{let l=X(z(i,this.rho),z(pt(s),1-this.rho)),u=z(he(rn(X(o,this.epsilon)),rn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(pt(u),1-this.rho));i.assign(l),o.assign(p);let d=X(z(u,-this.learningRate),a);a.assign(d)})}),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)}},Uw=class extends Rr{static get className(){return"Adagrad"}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];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:O(()=>yn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;O(()=>{let i=X(s,pt(r));s.assign(i);let o=X(z(he(r,rn(X(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)}},Gw=class extends Rr{static get className(){return"Adam"}constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],O(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=pe(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:O(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:O(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(z(p,this.beta2),z(pt(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=X(z(he(h,X(rn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(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),O(()=>{this.accBeta1.assign(ur(this.beta1,this.iterations_+1)),this.accBeta2.assign(ur(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)}},Hw=class extends Rr{static get className(){return"Adamax"}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=[],O(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,X(z(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:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=hr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(z(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)}},ff=class extends Rr{static get className(){return"SGD"}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];O(()=>{let s=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(xe(-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)}},jw=class extends ff{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&O(()=>{let i,o=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(z(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)}},qw=class extends Rr{static get className(){return"RMSProp"}constructor(e,t=.9,n=0,a=null,r=!1){if(super(),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:O(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:O(()=>qe(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;O(()=>{let l=X(z(i,this.decay),z(pt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),rn(pe(l,X(pt(p),this.epsilon)))),c=X(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=X(z(i,this.decay),z(pt(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),rn(X(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),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)}},NB=[Vw,Uw,Gw,Hw,jw,qw,ff];function TB(){for(let e of NB)OT(e)}var jt={};_e(jt,{CompositeArrayBuffer:()=>Fr,browserFiles:()=>DB,browserHTTPRequest:()=>zB,concatenateArrayBuffers:()=>hO,copyModel:()=>MO,decodeWeights:()=>lN,decodeWeightsStream:()=>pN,encodeWeights:()=>oO,fromMemory:()=>BB,fromMemorySync:()=>BT,getLoadHandlers:()=>wO,getModelArtifactsForJSON:()=>Mv,getModelArtifactsForJSONSync:()=>dN,getModelArtifactsInfoForJSON:()=>rd,getSaveHandlers:()=>vO,getWeightSpecs:()=>_x,http:()=>Xw,isHTTPScheme:()=>Px,listModels:()=>DO,loadWeights:()=>MB,moveModel:()=>OO,registerLoadRouter:()=>xO,registerSaveRouter:()=>yO,removeModel:()=>RO,weightsLoaderFactory:()=>LT,withSaveHandler:()=>VB,withSaveHandlerSync:()=>UB});var CB="model",EB=".json",_B=".weights.bin";function aI(e){return new Promise(t=>setTimeout(t)).then(e)}var Yh=class Ox{constructor(t){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Ox.URL_SCHEME)&&(t=t.slice(Ox.URL_SCHEME.length)),(t==null||t.length===0)&&(t=CB),this.modelJsonFileName=t+EB,this.weightDataFileName=t+_B}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let n=Fr.join(t.weightData),a=window.URL.createObjectURL(new Blob([n],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let r=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],s=cN(t,r),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),o=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(o.download=this.modelJsonFileName,o.href=i,await aI(()=>o.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let l=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;l.download=this.weightDataFileName,l.href=a,await aI(()=>l.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:rd(t)}}}};Yh.URL_SCHEME="downloads://";var AB=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Mv(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,s])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>eI(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=eI(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},FB=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Yh.URL_SCHEME)?$B(e.slice(Yh.URL_SCHEME.length)):null;ga.registerSaveRouter(FB);function $B(e="model"){return new Yh(e)}function DB(e){return new AB(e)}function rI(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 p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(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(e.map(s))}async function PT(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,a=e.map(s=>n(s,t.requestInit,{isBinary:!0})),r=(t.onProgress==null?await Promise.all(a):await rI(a,t.onProgress,0,.5)).map(s=>s.arrayBuffer());return t.onProgress==null?await Promise.all(r):await rI(r,t.onProgress,.5,1)}function RB(e,t){var n;let a=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,r=0,s;return(n=t.onProgress)===null||n===void 0||n.call(t,0),new ReadableStream({pull:async i=>{for(var o;rPT(r,{requestInit:a}))(e,t,n)}function LT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=ui[b]*ot(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((v,I)=>{v===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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 p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=new Fr(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=lN(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var OB="application/octet-stream",PB="application/json",Kw=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=G().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`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||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=cN(e,n);if(t.body.append("model.json",new Blob([JSON.stringify(a)],{type:PB}),"model.json"),e.weightData!=null){let s=Fr.join(e.weightData);t.body.append("model.weights.bin",new Blob([s],{type:OB}),"model.weights.bin")}let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:rd(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async loadModelJSON(){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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return Mv(e,t=>this.loadWeights(t))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),n=_x(e.weightsManifest),a=()=>RB(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:n,getWeightStream:a})}async getWeightUrls(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=LB(t),r=this.weightPathPrefix||n,s=[],i=[];for(let o of e)for(let l of o.paths)this.weightUrlConverter!=null?i.push(this.weightUrlConverter(l)):s.push(r+l+a);return this.weightUrlConverter&&s.push(...await Promise.all(i)),s}async loadWeights(e){let t=await this.getWeightUrls(e),n=_x(e),a=await PT(t,this.loadOptions);return[n,a]}};Kw.URL_SCHEME_REGEX=/^https?:\/\//;function LB(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Px(e){return e.match(Kw.URL_SCHEME_REGEX)!=null}var zT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Px(a)):n=Px(e),n)return Xw(e,t)}return null};ga.registerSaveRouter(zT);ga.registerLoadRouter(zT);function Xw(e,t){return new Kw(e,t)}function zB(e,t){return Xw(e,t)}var lx=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},WT=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},WB=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function BB(e,t,n,a){let r=arguments;return new WB(BT(...r))}function BT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new lx(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 lx({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 lx({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function VB(e){return new WT(e)}function UB(e){return new WT(e)}var VT={};_e(VT,{confusionMatrix:()=>HB});function GB(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(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.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Ll(re(a,"int32"),n),i=Ll(re(r,"int32"),n),o=De(s),l=$e(o,i);return re(l,"int32")}var HB=L({confusionMatrix_:GB}),qo={};_e(qo,{draw:()=>QB,fromPixels:()=>e4,fromPixelsAsync:()=>YB,toPixels:()=>JB});var js,sI=!1;function UT(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(fc(Hh,P.backendName)!=null){let c={pixels:e},h={numChannels:t};return P.runKernel(Hh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(js==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")js=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else js=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});js.canvas.width=l,js.canvas.height=u,js.drawImage(e,0,0,l,u),p=js.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}function ZB(e){let t=(e==null?void 0:e.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function JB(e,t){let n=E(e,"img","toPixels");if(!(e instanceof Ce)){let u=n;n=re(u,"int32"),u.dispose()}GT(n);let[a,r]=n.shape.slice(0,2),s=n.rank===2?1:n.shape[2],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?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){sI||fc(Nm,P.backendName)!=null&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),sI=!0),t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}function QB(e,t,n){let a=E(e,"img","draw");if(!(e instanceof Ce)){let i=a;a=re(i,"int32"),i.dispose()}GT(a),ZB(n==null?void 0:n.imageOptions);let r={image:a},s={canvas:t,options:n};P.runKernel(Nm,r,s)}var e4=L({fromPixels_:UT}),Yw={};_e(Yw,{prepareAndValidate:()=>HT});function HT(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 d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Kt={};_e(Kt,{assertParamsValid:()=>n4,computeFlatOffset:()=>o4,computeOutShape:()=>r4,getNormalizedAxes:()=>s4,isSliceContinous:()=>i4,maskToAxes:()=>a4,parseSliceParams:()=>e2,sliceInfo:()=>l4,startForAxis:()=>JT,startIndicesWithElidedDims:()=>XT,stopForAxis:()=>QT,stopIndicesWithElidedDims:()=>YT,stridesForAxis:()=>ZT,stridesWithElidedDims:()=>jT});var Lx=-2,t4=-1;function n4(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),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 a4(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function r4(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=XT(i,h,m,a,e),d=YT(o,h,m,r,e),c=jT(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=qT(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=qT(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=hc(0,i,l-1),i}function QT(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=hc(0,i,l):i=hc(-1,i,l-1),i}function i4(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 o4(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{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:(A(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 l4(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&i&i-1)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let y=0;y0?0:-1,c.strides[y]>0?v:v-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=v)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=iI(c.begin[y],0,c.strides[y],v,I,N),c.end[y]=iI(c.end[y],1,c.strides[y],v,I,N);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===v;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let _,F=!1;if(c.beginValid&&c.endValid?(_=c.end[y]-c.begin[y],F=!0):x?(_=1,F=!0):C&&v>=0&&(c.strides[y]<0?_=-v:_=v,F=!0),F){let D;_===0||_<0!=c.strides[y]<0?D=0:D=Math.trunc(_/c.strides[y])+(_%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Lx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Lx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function u4(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var p4="4.21.0",t2=class{static sgd(e){return new ff(e)}static momentum(e,t,n=!1){return new jw(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new qw(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Gw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Vw(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Hw(e,t,n,a,r)}static adagrad(e,t=.1){return new Uw(e,t)}},Xs=t2,c4=typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e();function Zw(){return new Promise(e=>c4(()=>e()))}var T={};_e(T,{ERF_A1:()=>T4,ERF_A2:()=>C4,ERF_A3:()=>E4,ERF_A4:()=>_4,ERF_A5:()=>A4,ERF_P:()=>N4,PARALLELIZE_THRESHOLD:()=>Jw,RowPartitionType:()=>er,SELU_SCALE:()=>a2,SELU_SCALEALPHA:()=>n2,applyActivation:()=>hf,assertAndGetBroadcastShape:()=>ct,assertAxesAreInnerMostDims:()=>l3,assertParamsConsistent:()=>d4,assignToTypedArray:()=>O4,axesAreInnerMostDims:()=>uw,calculateShapes:()=>pT,checkEinsumDimSizes:()=>V4,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>FN,combineRaggedTensorToTensorShapes:()=>m4,complexWithEvenIndex:()=>D4,complexWithOddIndex:()=>R4,computeConv2DInfo:()=>sd,computeConv3DInfo:()=>kN,computeDefaultPad:()=>Hv,computeDilation2DInfo:()=>iP,computeOptimalWindowSize:()=>y4,computeOutAndReduceShapes:()=>$N,computeOutShape:()=>h4,computePool2DInfo:()=>wN,computePool3DInfo:()=>oP,convertConv2DDataFormat:()=>IN,decodeEinsumEquation:()=>W4,eitherStridesOrDilationsAreOne:()=>dr,expandShapeToKeepDim:()=>mi,exponent:()=>L4,exponents:()=>P4,fromStringArrayToUint8:()=>uV,fromUint8ToStringArray:()=>lV,getAxesPermutation:()=>DN,getBroadcastDims:()=>_N,getComplexWithIndex:()=>M4,getEinsumComputePath:()=>U4,getEinsumPermutation:()=>B4,getFusedBiasGradient:()=>df,getFusedDyActivation:()=>cf,getImageCenter:()=>x4,getInnerMostAxes:()=>u3,getPermuted:()=>w4,getRaggedRank:()=>g4,getReductionAxes:()=>Bt,getReshaped:()=>v4,getReshapedPermuted:()=>k4,getRowPartitionTypesHelper:()=>f4,getSliceBeginCoords:()=>I4,getSliceSize:()=>S4,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>q4,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>K4,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>X4,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>J4,getSparseReshapeInputOutputMismatchErrorMessage:()=>eV,getSparseReshapeInputOutputMultipleErrorMessage:()=>Q4,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>Y4,getSparseReshapeNegativeOutputDimErrorMessage:()=>Z4,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>rV,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>tV,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>nV,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>aV,getUndoAxesPermutation:()=>pw,isIdentityPermutation:()=>G4,log:()=>gM,mergeRealAndImagArrays:()=>F4,prepareAndValidate:()=>HT,prepareSplitSize:()=>j4,segment_util:()=>r2,shouldFuse:()=>mf,slice_util:()=>Kt,splitRealAndImagArrays:()=>$4,stridesOrDilationsArePositive:()=>hi,tupleValuesAreOne:()=>ps,upcastType:()=>fa,validateDefaultValueShape:()=>b4,validateInput:()=>of,validateUpdateShape:()=>$w,warn:()=>Zr});function d4(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(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 h4(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function f4(e){let t={FIRST_DIM_SIZE:er.FIRST_DIM_SIZE,VALUE_ROWIDS:er.VALUE_ROWIDS,ROW_LENGTHS:er.ROW_LENGTHS,ROW_SPLITS:er.ROW_SPLITS,ROW_LIMITS:er.ROW_LIMITS,ROW_STARTS:er.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function g4(e){return e.length===0?0:e[0]===er.FIRST_DIM_SIZE?e.length-1:e.length}function b4(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Jw=30;function y4(e){return e<=Jw?e:Gh(e,Math.floor(Math.sqrt(e)))}function x4(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function v4(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function k4(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,oI=",",lI="...";function W4(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(z4,"").length)/ux.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${ux}").`);let[a,r]=e.split(ux);A(a.indexOf(lI)===-1,()=>`The ellipsis notation ("${lI}") is not supported yet.`);let s=a.split(oI),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function V4(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function U4(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function H4(e,t){let n=[];for(let a=0;a"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);A(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}A(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}function q4(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function K4(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function X4(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function Y4(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function Z4(e,t){return`size ${e} must be non-negative, not ${t}`}function J4(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function Q4(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a SparseTensor with ${n} + dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function eV(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function tV(){return"segment ids must be >= 0"}function nV(){return"segment ids are not increasing"}function aV(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function rV(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var r2={};_e(r2,{collectGatherOpShapeInfo:()=>oV,computeOutShape:()=>iV,segOpComputeOptimalWindowSize:()=>sV});function sV(e,t){let n=!1,a;for(e<=Jw?(a=e,n=!0):a=Gh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Gh(e,a+1);return a}function iV(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(nqh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function uV(e){return e.map(t=>nd(t))}var mr={};_e(mr,{nonMaxSuppressionV3Impl:()=>ST,nonMaxSuppressionV4Impl:()=>NT,nonMaxSuppressionV5Impl:()=>TT,whereImpl:()=>hT});TB();var s2={kernelName:Yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,jo(re(n,"float32"),-1))}}},pV={kernelName:Ni,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pt(re(n,"float32")),r=rn(pe(xe(1),a));return yt(he(e,r))}}}},cV={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=rn(pe(pt(re(n,"float32")),1));return he(e,a)}}}},dV={kernelName:vs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},hV={kernelName:Ci,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},mV={kernelName:Ql,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},fV={kernelName:eu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},gV={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,rn(pe(xe(1),pt(re(n,"float32")))))}}},bV={kernelName:_i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=rn(X(xe(1),pt(re(n,"float32"))));return he(e,a)}}}},yV={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=X(pt(n),pt(a)),i=z(e,he(a,s)),o=Bt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(pt(n),pt(a)),i=yt(z(e,he(n,s))),o=Bt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},xV={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(pt(re(n,"float32")),1))}}},vV={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(xe(1),pt(re(n,"float32"))))}}};function wV(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.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}.`),Tn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=P.runKernel(Rc,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var kV=L({avgPool3dGrad_:wV}),IV={kernelName:tu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>kV(e,a,r,s,i,o)}}};function SV(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(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=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(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(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=P.runKernel(Dc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var NV=L({avgPoolGrad_:SV}),TV={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>NV(e,a,r,s,i)}}},CV={kernelName:Ri,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},EV={kernelName:nu,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>md(e,a,r)}}},_V={kernelName:HS,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:()=>fe(e,o,!0)}}},AV={kernelName:Mi,gradFunc:e=>({x:()=>e.clone()})},FV={kernelName:Oi,gradFunc:e=>({x:()=>qe(e)})},$V={kernelName:ws,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>nn(_a($r(a,r),Cs(a,s)),e,qe(e))}}},DV={kernelName:Oc,inputsToSave:["x"],gradFunc:s2.gradFunc},RV={kernelName:su,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Aa(r,t[0].shape)[0],i=a.map(o=>o[s]);return Ln(e,i,s).map(o=>()=>o)}},MV={kernelName:Pi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ps(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>nw(a.shape,e,r,i,o,l),filter:()=>zw(a,e,r.shape,i,o,l)}}},OV={kernelName:Li,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>$t(e,r,s,i,o,1,l),filter:()=>zw(e,a,r.shape,s,i,o,l)}}};function PV(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(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(iu,o,l)}var LV=L({conv3DBackpropFilter_:PV}),zV={kernelName:zi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ps(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:()=>CN(i.shape,e,o,r,s),filter:()=>LV(i,e,o.shape,r,s)}}},WV={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(ef(re(n,"float32"))),e)}}},BV={kernelName:Bi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(tf(re(n,"float32")),e)}}},VV={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=DN([r],a.rank),l=Vm(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},UV={kernelName:Ui,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ps(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;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(dr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Tn("depthwiseConv2d",s,i),{x:()=>wT(l.shape,e,u,r,s,o,i),filter:()=>vT(l,e,u.shape,r,s,o,i)}}},GV={kernelName:Gi,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(Dl,s,n),filter:()=>P.runKernel(Rl,i,n)}}},HV={kernelName:ji,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>P.runKernel(cu,a)}}},jV={kernelName:qi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(dn(yt(pt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},qV={kernelName:Ki,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},KV={kernelName:hu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},XV={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,dn(n))}}},YV={kernelName:Yi,gradFunc:e=>({x:()=>qe(e)})},ZV={kernelName:Zi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},JV={kernelName:Ji,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Bt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,On(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},QV={kernelName:fu,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s,batchDims:i}=n,o=Aa(s,a.shape)[0],l=(u,p,d)=>()=>{let c=u.shape,h=p.size,m=c.slice(0,o),f=m.length,g=c.slice(s,c.length).slice(1),b=g.length,y=uI(0,f),x=uI(f+1,f+1+b),v=pI([m,[h],g]),I=W(d,v),N=W(p,[h]),C=pI([[f],y,x]),_=De(I,C),F=uf(_,N,u.shape[o]),D=pw(C);return F=De(F,D),F};if(i===1){let u=a.shape[0],p=a.split(u,0);return{x:()=>At(p.map((d,c)=>l(d,r.slice(c,1),e.slice(c,1))())).reshape(a.shape),indices:()=>r}}else return{x:l(a,r,e),indices:()=>r}}};function uI(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},tU={kernelName:eo,gradFunc:e=>({x:()=>re(e,"float32")})},nU={kernelName:to,gradFunc:e=>({x:()=>qe(e)})},aU={kernelName:no,gradFunc:e=>({x:()=>qe(e)})},rU={kernelName:ao,gradFunc:e=>({x:()=>qe(e)})},sU={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>nn(s,e,z(e,r))}}},iU={kernelName:io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},oU={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,re(n,"float32"))}}},lU={kernelName:qS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=dn(a);return pe(e,z(fe(e,r,!0),s))}}}};function uU(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(Su,o,l)}var pU=L({localResponseNormalizationBackprop_:uU}),cU={kernelName:oo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>pU(a,r,e,s,i,o,l)}}};function i2(e,t,n,a){return t.rankz(e,re(Jn(n,t),e.dtype))}}var cI={kernelName:lo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Aa(r,s.shape),l=i2(e,i,s,o);return{x:()=>l.x()}}},dU={kernelName:uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re($r(n,a),"float32")),b:()=>z(e,re(Pl(n,a),"float32"))}}};function hU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Tn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=P.runKernel(Bc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var mU=L({maxPool3dGrad_:hU}),fU={kernelName:Nu,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>mU(e,a,r,s,i,o,l)}}};function gU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Tn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return P.runKernel(Wc,p,d)}var bU=L({maxPoolGrad_:gU}),yU={kernelName:po,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>bU(e,a,r,s,i,o)}}},xU={kernelName:co,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Aa(r,a.shape),i=$N(a.shape,s)[1],o=ot(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Pn(a.shape,"float32")),o)}}}},vU={kernelName:ho,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Aa(r,s.shape),l=i2(e,i,s,o);return{x:()=>l.x()}}},wU={kernelName:mo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re(Cs(n,a),"float32")),b:()=>z(e,re(Cn(n,a),"float32"))}}},kU={kernelName:fo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},IU={kernelName:go,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=Bt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(tp(he(n,a)))),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},SU={kernelName:bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=z(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},NU={kernelName:Cu,gradFunc:e=>({x:()=>yt(e)})},TU={kernelName:yo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},CU={kernelName:$u,gradFunc:e=>({x:()=>qe(e)})},EU={kernelName:Du,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},dI={kernelName:xo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},_U={kernelName:vo,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ct(s.shape,i.shape);return{a:()=>{let l=re(i,"float32"),u=z(e,z(l,ur(s,pe(l,xe(1))))),p=Bt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=nn(l,Qn(s),qe(s)),p=z(e,z(r,u)),d=Bt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},AU={kernelName:wo,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>nn(r,e,z(e,a)),alpha:()=>{let s=nn(r,qe(e),z(e,n)),i=Bt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function FU(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=wc(e,n,!0,!1),i=wc(e,n,!0,!0),o=z(s,i);return z(r,o)}function $U(e,t,n){let a=e.shape.length,r=a-n.length,s=T.getAxesPermutation(n,a),i=e;s!=null&&(i=De(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=FU(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=T.getUndoAxesPermutation(s);p=De(p,d)}return p}var DU={kernelName:ko,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>$U(a,e,s)}}},RU={kernelName:Hi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},MU={kernelName:Io,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(pt(n)))}}},OU={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Cs(n,6),jo(n));return{x:()=>z(e,re(a,"float32"))}}},PU={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,re(jo(n),"float32"))}}},LU={kernelName:Ru,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},zU={kernelName:To,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Ou,r,n)}}},WU={kernelName:No,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Mu,r,n)}}},BU={kernelName:Eo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Aa(a,e.shape);return{x:()=>ba(e,r)}}},VU={kernelName:_o,gradFunc:e=>({x:()=>qe(e)})},UU={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(ur(n,1.5),2)))}}},GU={kernelName:Wu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>re(qe(n),"float32"),t:()=>z(e,re(n,e.dtype)),e:()=>z(e,re(dd(n),e.dtype))}}},HU={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,xe(0)),r=xe(n2),s=xe(a2),i=z(e,s),o=z(z(e,r),dn(re(n,"float32")));return nn(a,i,o)}}}},jU={kernelName:Mo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},qU={kernelName:Ro,gradFunc:e=>({x:()=>qe(e)})},KU={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(od(re(n,"float32")),e)}}},XU={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Bm(re(n,"float32")),e)}}},YU={kernelName:Bu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=e2(a,r,s),u=[];for(let p=0;pxa(e,u)}}},ZU={kernelName:zo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},JU={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ha(n))}}},hI={kernelName:Vu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>id(e,a,r)}}},mI={kernelName:Uu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>et(e,a)}}},QU={kernelName:Po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(rn(re(n,"float32")),2))}}},eG={kernelName:qc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(re(n,"float32"),2))}}},tG={kernelName:Wo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},nG={kernelName:Is,gradFunc:e=>({x:()=>qe(e)})},aG={kernelName:Bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},rG={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Aa(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Pn(a.shape,"float32"));return{x:()=>o}}},sG={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pt(od(n)))}}},iG={kernelName:Uo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),pt(n)),e)}}},oG={kernelName:ks,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=pw(r);return{x:()=>De(e,s)}}},uG={kernelName:Xu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>At(e,r)}}},pG={kernelName:Qc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>cG(e,n)}}};function cG(e,t){let n=hr(t,qe(t)),a=np(e,n),r=$r(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},hG=[s2,pV,cV,dV,hV,mV,fV,gV,bV,yV,xV,vV,IV,TV,CV,EV,_V,AV,FV,$V,DV,RV,OV,MV,zV,WV,BV,VV,UV,GV,RU,HV,jV,qV,KV,XV,ZV,YV,JV,QV,eU,tU,nU,aU,rU,sU,iU,oU,lU,cU,cI,cI,dU,fU,yU,xU,vU,wU,kU,IU,SU,NU,TU,CU,EU,dI,dI,_U,AU,DU,MU,OU,PU,LU,zU,WU,BU,VU,UU,GU,HU,jU,qU,KU,XU,YU,ZU,JU,hI,hI,mI,mI,QU,tG,eG,nG,aG,rG,sG,iG,oG,lG,uG,pG,dG];for(let e of hG)KS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Pv(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Lv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Lm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),yc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),di(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),zv(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),Wv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Bv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Vv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Uv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Gv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ya(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),id(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),Ns(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ai(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),Zv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),an(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ce&&(e=[e]),et([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),zm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Wm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),$t(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),od(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Bm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),wc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Vm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),sw(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ts(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),iw(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),ow(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),lw(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Qu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),Jn(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),Um(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),cw(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),dn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Gt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),dw(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),bd(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),tp(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Pm(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),np(this,e,t,n)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),$r(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Cn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),Bl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),af(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),hw(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),mw(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),fw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),ud(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Cs(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Pl(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),gw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),bw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),jm(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),cd(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),Qn(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),pd(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),_a(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),dd(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),qm(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),yw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ma(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),hr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Ct(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),Ol(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),ds(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),vw(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),ww(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),ep(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),fi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Ll(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),ea(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),xa(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),kw(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),ur(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),fd(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),Iw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Ew(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),Ym(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),CT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),ET(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ba(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),yd(this)};Q().prototype.round=function(){return this.throwIfDisposed(),Zm(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),Jm(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),Qm(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),_s(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ha(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),_w(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),ef(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),tf(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ve(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),qa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),Go(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),md(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),Ln(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),rn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),pt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),rf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),As(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ce?[this,e]:[this,...e];return At(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),jo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Aw(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Fw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),cs(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),On(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),re(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),re(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),re(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Dw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Rw(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),uf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),nn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Xr=class o2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,o2.prototype)}},ar=class l2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,l2.prototype)}},V=class u2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,u2.prototype)}},ze=class p2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,p2.prototype)}},mG=class c2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,c2.prototype)}},d2=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Sa={};function Qw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function zx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>zx(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:zx(a))}}}function vd(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 Sa)i=Sa[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 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 Sa?[o,l]=Sa.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 u={};for(let h of Object.keys(Sa))u[h]=Sa[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Sa);for(let h of Object.keys(n))Sa[h]=n[h];Lx(s.config);let c=l(o,s.config,n,r);return Sa=Object.assign({},d),c}else{let u=Object.assign({},Sa);for(let d of Object.keys(n))Sa[d]=n[d];let p=new o(s.config);return Sa=Object.assign({},u),p}}}function hG(e,t){return et?1:0}function wh(e,t){return-1*hG(e,t)}function as(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function mG(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Ko(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function e0(e,t,n=0,a=1/0){return tr(n>=0),tr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function tn(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>tn(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${h2(e)}.`)}function h2(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>h2(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function fG(e,t,n){let a=n!=null?n():w.now(),r;return(...s)=>{let i=n!=null?n():w.now();return i-a0){let n=`${e}_${t}`;return kl.set(n,1),n}else return e}var SG=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function x2(e){return!!e.match(SG)}function NG(e){return e===parseInt(e.toString(),10)}function rs(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function Ua(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=wd(e,1);return zx(n,[1,t,1])})}function CG(e){let t=[rs(e.shape)];return W(e,t)}function EG(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],rs(e.shape,1)];return W(e,t)}function ri(e,t,n){return O(()=>{switch(e.rank){case 1:return gd(e,t,n);case 2:return tf(e,[t,0],[n,e.shape[1]]);case 3:return Ho(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Wl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ve(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ve(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 px(e,t,n){return O(()=>{switch(e.rank){case 1:return gd(e,t,n);case 2:return tf(e,[0,t],[e.shape[0],n]);case 3:return Ho(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Wl(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 Ih(e,t,n,a){return O(()=>{switch(e.rank){case 1:return gd(e,t,n);case 2:switch(a){case 1:return ri(e,t,n);case 2:return px(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 ri(e,t,n);case 2:return Ho(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return px(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 ri(e,t,n);case 2:return Wl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Wl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return px(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 t0(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),et(e,t)}function bI(e,t){switch(e.rank){case 1:return Zv([e,t]);case 2:return Jv([e,t],0);case 3:return Qv([e,t],0);case 4:return ew([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function zx(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 Mn(e,t)}function gf(e,t=0,n=1,a,r){return Km(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new ze(`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 ze(`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)return Vl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Wx(e.rank,a,Ga()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(c,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=W(De(t,p),[l,-1]);let d=[...r,...u];return W(Vl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Wx(e.rank,a,Ga()):null,activation:n}),d)}}function v2(e,t,n){return O(()=>(Array.isArray(t)?t=qe(t,"int32"):t=re(t,"int32"),np(e,t,n)))}function kd(e){return z(e,e)}function Wx(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?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Ka(e,t,n){return O(()=>(n==null&&(n=Ga()),Rt(n),X(e,Wx(e.rank,t,n))))}function _G(e,t=1){if(t!==1)throw new ze(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Qu(e)}function AG(e){return O(()=>he(e,X(Lt(e),1)))}function w2(e,t,n,a){return O(()=>Pw(e,t,n,a))}function FG(e){return O(()=>{let t=X(.5,z(.2,e));return an(t,0,1)})}function Id(e,t,n=!1){return n?e():t()}var $G=["fanIn","fanOut","fanAvg"],DG=["normal","uniform","truncatedNormal"];function RG(e){Ko($G,"FanMode",e)}function MG(e){Ko(DG,"Distribution",e)}var $a=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},n0=class extends $a{apply(e,t){return It(e,t)}};n0.className="Zeros";ne.registerClass(n0);var bf=class extends $a{apply(e,t){return On(e,t)}};bf.className="Ones";ne.registerClass(bf);var a0=class extends $a{constructor(e){if(super(),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 O(()=>z(ve(this.value),On(e,t)))}getConfig(){return{value:this.value}}};a0.className="Constant";ne.registerClass(a0);var r0=class extends $a{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 Cs(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};r0.className="RandomUniform";ne.registerClass(r0);var s0=class extends $a{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 ze(`randomNormal does not support dType ${t}.`);return gf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};s0.className="RandomNormal";ne.registerClass(s0);var i0=class extends $a{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 ze(`truncatedNormal does not support dType ${t}.`);return of(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};i0.className="TruncatedNormal";ne.registerClass(i0);var o0=class extends $a{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return O(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Um(e[0]))})}getConfig(){return{gain:this.gain}}};o0.className="Identity";ne.registerClass(o0);function OG(e,t="channelsLast"){let n,a;if(Rt(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 Wn=class extends $a{constructor(e){if(super(),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,RG(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,MG(this.distribution),this.seed=e.seed}apply(e,t){let n=OG(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 ze(`${this.getClassName()} does not support dType ${t}.`);return of(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Cs(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Wn.className="VarianceScaling";ne.registerClass(Wn);var yf=class extends Wn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};yf.className="GlorotUniform";ne.registerClass(yf);var xf=class extends Wn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};xf.className="GlorotNormal";ne.registerClass(xf);var vf=class extends Wn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};vf.className="HeNormal";ne.registerClass(vf);var wf=class extends Wn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};wf.className="HeUniform";ne.registerClass(wf);var kf=class extends Wn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};kf.className="LeCunNormal";ne.registerClass(kf);var If=class extends Wn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};If.className="LeCunUniform";ne.registerClass(If);var l0=class extends $a{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return O(()=>{if(e.length<2)throw new ze("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=w.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=gf(s,0,1,t,this.seed),o=Bw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var vI="Variable",k2=class{constructor(e,t="float32",n=vI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=f2(),n=n==null?vI:n,this.originalName=b2(n),this.name=y2(this.originalName),this.trainable_=a,this.constraint=r,this.val=Mw(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),PG(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 PG(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Vx(e){return e.map(t=>t.read())}function u0(e){e.forEach(t=>{t[0].write(t[1])})}var zt=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||{}}},Ha=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=f2(),s!=null&&(this.originalName=b2(s),this.name=y2(this.originalName)),this.rank=t.length}},LG=0,Sf=class{constructor(e,t){this.callArgs=t,this.id=LG++,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}}},zG=0,We=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=zG++,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=kr(n)+"_"+ff(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 ar(`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 Rn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Rn(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 Rn(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 Rn(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){let t=it(e);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=it(this.inputSpec);if(t.length!==n.length)throw new V(`Layer ${this.name} expects ${n.length} inputs, but it received ${t.length} input tensors. Input received: ${e}`);for(let a=0;as.maxNDim)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?o[u]:o[o.length+u];if(p!=null&&[p,null].indexOf(d)===-1)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${p} but got shape ${o}.`)}}if(s.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of it(e))s.push(i.shape);this.build(Rn(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);this.supportsMasking&&this.setMaskMetadata(e,s);let i=it(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=Rn(o),this.activityRegularizer!=null)throw new ze("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=WG(e),i=this.computeOutputShape(s),o,l=BG(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ha(l,u,this,it(e),t,this.name,p)):o=new Ha(l,i,this,it(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new ze("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 ar(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Jh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Vx(e?this.trainableWeights:this.weights)}setWeights(e){O(()=>{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=Vx(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?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=it(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}setMaskMetadata(e,t,n){if(!this.supportsMasking)return;let a=this.computeMask(e,n),r=it(t),s=it(a);if(r.length!==s.length)throw new Error(`${this.name} outputs ${r.length} tensors but ${r.length} masks for those tensors`);for(let i=0;ie.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 WG(e){e=it(e);let t=[];for(let n of e)t.push(n.shape);return Rn(t)}function BG(e){return"float32"}function I2(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;sm.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=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Qh.get(p),c;if(d==null){let m=qG(i,t);d=m.sorted,c=m.recipientCounts,Qh.put(p,d),em.put(p,c)}c={},r||Object.assign(c,em.get(p));let h=new Cl(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=wI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=wI(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:jG(a)}}function jG(e){let t={};for(let n in e)t[n]=e[n].size;return t}function wI(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 KG(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,HG);var T2={};_e(T2,{maxNorm:()=>YG,minMaxNorm:()=>QG,nonNeg:()=>JG,unitNorm:()=>ZG});function p0(e,t){return O(()=>cn(fe(z(e,e),t,!0)))}var Sd=class extends ne.Serializable{getConfig(){return{}}},c0=class extends Sd{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 O(()=>{let t=p0(e,this.axis),n=an(t,0,this.maxValue);return z(e,he(n,X(jt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};c0.className="MaxNorm";ne.registerClass(c0);var d0=class extends Sd{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return O(()=>he(e,X(jt(),p0(e,this.axis))))}getConfig(){return{axis:this.axis}}};d0.className="UnitNorm";ne.registerClass(d0);var h0=class extends Sd{apply(e){return Ke(e)}};h0.className="NonNeg";ne.registerClass(h0);var m0=class extends Sd{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 O(()=>{let t=p0(e,this.axis),n=X(z(this.rate,an(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(jt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};m0.className="MinMaxNorm";ne.registerClass(m0);var kI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return Qw(e)}function II(e,t={}){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(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 Sd?e:II(e)}function YG(e){return new c0(e)}function ZG(e){return new d0(e)}function JG(){return new h0}function QG(e){return new m0(e)}var C2={};_e(C2,{constant:()=>nH,glorotNormal:()=>uH,glorotUniform:()=>lH,heNormal:()=>pH,heUniform:()=>cH,identity:()=>iH,leCunNormal:()=>dH,leCunUniform:()=>hH,ones:()=>tH,orthogonal:()=>mH,randomNormal:()=>rH,randomUniform:()=>aH,truncatedNormal:()=>sH,varianceScaling:()=>oH,zeros:()=>eH});function eH(){return new n0}function tH(){return new bf}function nH(e){return new a0(e)}function aH(e){return new r0(e)}function rH(e){return new s0(e)}function sH(e){return new i0(e)}function iH(e){return new o0(e)}function oH(e){return new Wn(e)}function lH(e){return new yf(e)}function uH(e){return new xf(e)}function pH(e){return new vf(e)}function cH(e){return new wf(e)}function dH(e){return new kf(e)}function hH(e){return new If(e)}function mH(e){return new l0(e)}var E2={};_e(E2,{Layer:()=>We,RNN:()=>Mr,RNNCell:()=>Td,activation:()=>G6,add:()=>Q6,alphaDropout:()=>Oq,average:()=>eq,averagePooling1d:()=>T1,averagePooling2d:()=>C1,averagePooling3d:()=>E1,avgPool1d:()=>uq,avgPool2d:()=>cq,avgPool3d:()=>hq,avgPooling1d:()=>pq,avgPooling2d:()=>dq,avgPooling3d:()=>mq,batchNormalization:()=>iq,bidirectional:()=>Eq,categoryEncoding:()=>Bq,centerCrop:()=>zq,concatenate:()=>tq,conv1d:()=>M6,conv2d:()=>O6,conv2dTranspose:()=>P6,conv3d:()=>L6,conv3dTranspose:()=>z6,convLstm2d:()=>Sq,convLstm2dCell:()=>Nq,cropping2D:()=>B6,dense:()=>H6,depthwiseConv2d:()=>U6,dot:()=>sq,dropout:()=>q6,elu:()=>_6,embedding:()=>J6,flatten:()=>K6,gaussianDropout:()=>Mq,gaussianNoise:()=>Rq,globalAveragePooling1d:()=>fq,globalAveragePooling2d:()=>gq,globalMaxPool1d:()=>Aq,globalMaxPool2d:()=>Fq,globalMaxPooling1d:()=>EC,globalMaxPooling2d:()=>_C,gru:()=>yq,gruCell:()=>xq,input:()=>q2,inputLayer:()=>E6,layerNormalization:()=>oq,leakyReLU:()=>F6,lstm:()=>vq,lstmCell:()=>wq,masking:()=>Pq,maxPool1d:()=>$q,maxPool2d:()=>Dq,maxPooling1d:()=>AC,maxPooling2d:()=>FC,maxPooling3d:()=>bq,maximum:()=>nq,minimum:()=>aq,multiply:()=>rq,permute:()=>Z6,prelu:()=>$6,randomWidth:()=>Vq,reLU:()=>A6,repeatVector:()=>X6,rescaling:()=>Lq,reshape:()=>Y6,resizing:()=>Wq,rnn:()=>Tq,separableConv2d:()=>W6,simpleRNN:()=>kq,simpleRNNCell:()=>Iq,softmax:()=>D6,spatialDropout1d:()=>j6,stackedRNNCells:()=>Cq,thresholdedReLU:()=>R6,timeDistributed:()=>_q,upSampling2d:()=>V6,zeroPadding2d:()=>lq});async function Kr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sX(this.totals[a],z(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:O(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Ht(t[n])}))}},F2=class extends Gl{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 $2(n,t))}var f0=class Ja{constructor(){}static registerCallbackConstructor(t,n){w.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),Ja.checkForDuplicate(n),Ja.constructors[t]==null&&(Ja.constructors[t]=[]),Ja.constructors[t].push(n)}static checkForDuplicate(t){for(let n in Ja.constructors)Ja.constructors[+n].forEach(a=>{if(a===t)throw new V("Duplicate callback constructor.")})}static clear(){Ja.constructors={}}static createCallbacks(t){let n=[];for(let a in Ja.constructors){let r=+a;t>=r&&n.push(...Ja.constructors[r])}return n.map(a=>new a)}};f0.constructors={};function R2(e,t,n,a,r,s,i,o,l){let u=new F2,p=[new gH,...f0.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new A2(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ba(e,t={},n=!1){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function tm(e,t){return O(()=>{e.dtype!=="float32"&&(e=re(e,"float32"));let n=fe(kd(e),t,!0),a=yn(n.shape,jt()),r=cn(dr(n,a));return he(e,r)})}function Xo(e,t){return O(()=>Ct(kd(pe(t,e)),-1))}function Nf(e,t){return O(()=>Ct(Lt(pe(t,e)),-1))}function sp(e,t){return O(()=>{let n=pe(e,t),a=an(Lt(e),jt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Ct(r,-1))})}function bH(e,t){return O(()=>{let n=an(t,jt(),Number.MAX_VALUE),a=Qn(X(1,n)),r=an(e,jt(),Number.MAX_VALUE),s=Qn(X(1,r));return Ct(kd(pe(a,s)),-1)})}function yH(e,t){return O(()=>{let n=dr(0,pe(1,z(e,t)));return Ct(kd(n),-1)})}function xH(e,t){return O(()=>{let n=dr(0,pe(1,z(e,t)));return Ct(n,-1)})}function vH(e,t){return O(()=>{let n=fe(z(e,t),-1),a=ma(z(pe(1,e),t),-1);return dr(0,X(1,pe(a,n)))})}function wH(e,t){return O(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,Go(z(-2,a))),n);return Ct(r,-1)})}function kc(e,t,n=!1){return O(()=>{if(n)t=ja(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=an(t,jt(),1-jt()),yt(fe(z(re(e,"float32"),Qn(t)),t.shape.length-1))})}function nm(e,t,n=!1){return O(()=>{let a=re(tp(CG(e)),"int32");t=an(t,jt(),1-jt());let r=t.shape,s=W(Ll(a,r[r.length-1]),r);return kc(s,t,n)})}function kH(e,t){if(!w.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 O(()=>{let n=Ke(t),a=yt(Lt(t));return X(pe(n,z(t,e)),pd(dn(a)))})}function Tf(e,t){return O(()=>{let n;return n=an(t,jt(),1-jt()),n=Qn(he(n,pe(1,n))),Ct(kH(e,n),-1)})}function IH(e,t){return O(()=>{let n=an(e,jt(),1),a=an(t,jt(),1);return fe(z(e,Qn(he(n,a))),-1)})}function SH(e,t){return O(()=>{let n=Qn(X(jt(),t));return Ct(pe(t,z(e,n)),-1)})}function g0(e,t){return O(()=>{let n=tm(e,-1),a=tm(t,-1),r=z(n,a);return yt(fe(r,-1))})}var am={meanSquaredError:Xo,meanAbsoluteError:Nf,meanAbsolutePercentageError:sp,meanSquaredLogarithmicError:bH,squaredHinge:yH,hinge:xH,categoricalHinge:vH,logcosh:wH,categoricalCrossentropy:kc,sparseCategoricalCrossentropy:nm,binaryCrossentropy:Tf,kullbackLeiblerDivergence:IH,poisson:SH,cosineProximity:g0};function cx(e){if(typeof e=="string"){if(e in am)return am[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 b0(e,t){return O(()=>{let n=z(.5,ea(t)),a=ir(Tn(t,n),e.dtype);return Ct(Jn(e,a),-1)})}function y0(e,t){return O(()=>ir(Jn(ci(e,-1),ci(t,-1)),"float32"))}function M2(e,t){return O(()=>re(fe(_a(Jn(e,1),Jn(t,1))),"float32"))}function NH(e,t){return O(()=>re(fe(_a(Jn(e,1),Jn(t,0))),"float32"))}function TH(e,t){return O(()=>re(fe(_a(Jn(e,0),Jn(t,1))),"float32"))}function O2(e,t){return O(()=>{let n=M2(e,t),a=TH(e,t),r=X(n,a);return re(nn(Tn(r,0),he(n,r),0),"float32")})}function CH(e,t){return O(()=>{let n=M2(e,t),a=NH(e,t),r=X(n,a);return re(nn(Tn(r,0),he(n,r),0),"float32")})}function P2(e,t){return Tf(e,t)}function L2(e,t){return e.rank===t.rank&&(e=_s(e,[e.rank-1])),t=ci(t,-1),t.dtype!==e.dtype&&(t=re(t,e.dtype)),re(Jn(e,t),"float32")}var EH=Xo,_H=Xo,AH=Nf,FH=Nf,$H=sp,DH=sp,x0=kc,RH=g0,z2=nm,rm={binaryAccuracy:b0,categoricalAccuracy:y0,precision:O2,categoricalCrossentropy:x0,sparseCategoricalCrossentropy:z2,mse:EH,MSE:_H,mae:AH,MAE:FH,mape:$H,MAPE:DH,cosine:RH};function MH(e){if(typeof e=="string"&&e in rm)return rm[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Sh(e){if(tr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(am))if(am[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(rm))if(rm[n]===e){t=n;break}return t!==void 0?t:e.name}}function OH(e){let t={Adagrad:()=>Ks.adagrad(.01),Adadelta:()=>Ks.adadelta(1,.95,jt()),Adam:()=>Ks.adam(.001,.9,.999,jt()),Adamax:()=>Ks.adamax(.002,.9,.999,jt(),0),RMSProp:()=>Ks.rmsprop(.001,.9,0,jt()),SGD:()=>Ks.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}`)}function NI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Ux(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>1048576&&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 <= 1048576.`)}}function Ux(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"||!Ux(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Ux(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function PH(e,t,n,a=console.log){let r=zH(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),sm(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||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 WH(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];sm(o,t,n)}function BH(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;c{let t=Object.keys(e);if(t.length===0)return!1;let n=t[0].split("/");return!isNaN(parseInt(n[n.length-1],10))},UH=class Qa extends We{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let y=this.getClassName().toLowerCase();this.name=ff(y)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],as(this.inputs).length!==this.inputs.length)throw new V(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(y=>y.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 x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;this.outputLayers.push(x),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(I)}for(let y of this.inputs){let x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;tr(v===0,"input layer has >1 nodes"),tr(I===0,"input layer has >1 tensors"),this.inputLayers.push(x),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(I)}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 n={},a={},r={},s={},i={},o=[],l=(y,x,v,I,N,C)=>{(I==null||N==null||C==null)&&(I=y.sourceLayer,N=y.nodeIndex,C=y.tensorIndex);let _=I.inboundNodes[N];if(v.indexOf(_)!==-1)throw new ar(`The tensor ${y.name} at layer "${I.name}" is part of a cycle.`);if(x.indexOf(_)!==-1)return;this.containerNodes.add(Qa.nodeKey(I,N)),I.id in i||(i[I.id]=Object.keys(i).length),v.indexOf(_)===-1&&v.push(_);let F=_.inboundLayers.length;for(let D=0;D=0;)v.splice(v.indexOf(_),1);o.push(_)},u=[],p=[];for(let y of this.outputs)l(y,u,p);let d=o.slice().reverse();for(let y of d){a[y.id]=y,y.id in n||(n[y.id]=0);let x=n[y.id],v=r[y.outboundLayer.id]==null?0:r[y.outboundLayer.id];x=Math.max(x,v),r[y.outboundLayer.id]=x,s[y.outboundLayer.id]=y.outboundLayer,n[y.id]=x;for(let I=0;IparseInt(y,10)).sort(wh);this.layers=[];for(let y of m){let x=h[y];x.sort((v,I)=>{let N=i[v.id],C=i[I.id];return NC?1:0});for(let v of x)v instanceof Qa&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=h,m=Object.keys(c).map(y=>parseInt(y,10)).sort(wh);let f=this.inputs.slice(),g=[];for(let y of m)for(let x of c[y]){let v=x.outboundLayer;if(v!=null){for(let I of x.inputTensors)if(f.indexOf(I)===-1)throw new ar(`Graph disconnected: cannot obtain value for tensor ${I} at layer "${v.name}". The following previous layers were accessed without issue: ${g}`);for(let I of x.outputTensors)f.push(I);g.push(v.name)}}this.nodesByDepth=c;let b=this.layers.map(y=>y.name);for(let y of b){let x=b.filter(v=>v===y).length;if(x!==1)throw new ar(`The name "${y}" is used ${x} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(b))}this.outboundNodes=[],this.inboundNodes=[],new Sf({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let n of this.layers)t.numDisposedVariables+=n.dispose().numDisposedVariables;for(let n of this.internalContainerRefs)t.numDisposedVariables+=n.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(n=>{n._trainableWeights.forEach(a=>a.trainable=t)}),this.trainable_=t}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 t=[];for(let n of this.layers)t=t.concat(n.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let n of this.layers)t.push(...n.nonTrainableWeights);if(!this.trainable){let n=[];for(let a of this.layers)n.push(...a.trainableWeights);return n.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,n=!0){let a={},r=0,s=VH(t);s&&this.parseWeights(t);for(let o of this.layers)for(let[l,u]of o.weights.entries()){let p=s?`${u.name.split("/").slice(0,-1).join("/")+"/"}${l}`:u.originalName;if(a[p]!=null)throw new V(`Duplicate weight name: ${p}`);a[p]=u,r++}let i=[];for(let o in t){let l=o;if(a[o]==null){let u=o.split("/");l=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(a[l]!=null)i.push([a[l],t[o]]);else if(n)throw new V(`Provided weight data has no target variable: ${o}`);delete a[l]}if(n){let o=[];for(let l in a)o.push(l);if(o.length>0)throw new V(`${o.length} of ${r} weights are not set: ${o}`)}u0(i)}parseWeights(t){for(let n in Object.keys(t)){let a=n.split("/"),r=["vars","layer_checkpoint_dependencies"],s=a.map(i=>i.startsWith("_")?i.slice(1):i).filter(i=>!r.includes(i)).join("/");s!==n&&(t[s]=t[n],delete t[n])}}updatedConfig(){let t=this.getConfig(),n={};return n.className=this.getClassName(),n.config=t,n.kerasVersion=`tfjs-layers ${v0}`,n.backend="TensorFlow.js",n}toJSON(t,n=!0){let a=Gx(this.updatedConfig());return n?JSON.stringify(a):a}call(t,n){return O(()=>{t=it(t);let a=new Cl;for(let r=0;r{t=it(t);let a;return n==null?a=bi(null,t.length):a=it(n),this.runInternalGraph(t,a)[1]})}computeOutputShape(t){let n=Zh(t);if(n.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let a={};for(let o=0;oparseInt(o,10)).sort(wh);if(r.length>1)for(let o of r){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer;if(this.inputLayers.map(f=>f.id).indexOf(p.id)!==-1)continue;let d=[];for(let f=0;fparseInt(l,10)).sort(wh);for(let l of r){let u=this.nodesByDepth[l];for(let p of u){let d=p.outboundLayer,c=p.inputTensors,h=p.outputTensors,m=new Array;for(let f of c)f.id in a&&m.push(a[f.id]);if(m.length===c.length){let f={},g,b,y,x;if(p.callArgs!=null&&(f=p.callArgs),m.length===1){let[v,I]=m[0];f.mask==null&&(f.mask=I),y=it(d.call(v,f)),x=it(d.computeMask(v,I)),g=[v],b=[I]}else g=m.map(v=>v[0]),b=m.map(v=>v[1]),f.mask==null&&(f.mask=b),y=it(d.call(g,f)),x=it(d.computeMask(g,b));if(d.activityRegularizer)throw new ze("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let t=[];for(let n of this.layers)for(let a=0;a0){let f=[];for(let g=0;g0&&g.apply(Rn(y),x)}function u(g){let b=g.name,y=Ba(g,n.customObjects!=null?n.customObjects:{});y.setFastWeightInitDuringBuild(r),s[b]=y,g.inboundNodes.forEach(x=>{if(!(x instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${x}`);o(y,x)})}let p=n.name,d=n.layers;for(let g of d)u(g);for(;!mG(i);)for(let g of d){let b=s[g.name];if(b.name in i){let y=i[b.name];delete i[b.name];for(let x of y)l(b,x)}}let c=[],h=[],m=n.inputLayers;for(let g of m){let b=g[0],y=g[1],x=g[2];tr(b in s);let v=s[b].inboundNodes[y].outputTensors;c.push(v[x])}let f=n.outputLayers;for(let g of f){let b=g[0],y=g[1],x=g[2];tr(b in s);let v=s[b].inboundNodes[y].outputTensors;h.push(v[x])}return new t({inputs:c,outputs:h,name:p})}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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){O(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function GH(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 B2(e,t){return GH(e,t,"classWeight")}async function V2(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=O(()=>{if(e.shape.length===1)return sr(e);if(e.shape.length===2){if(e.shape[1]>1)return ci(e,1);if(e.shape[1]===1)return W(e,[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 HH(e,t){return z(e,t)}var qH=32;function U2(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=TI("input",e.inputNames,n),i=TI("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 TI(e,t,n){if(n instanceof Ce)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 V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function jH(e){if(e.length===3)throw new ze("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function KH(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(CI(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=jH(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 p=D2(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=R2(p,d,n.epochs,null,null,XH(t,n),null,r,u);c.setModel(e),e.history=h,await c.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;CI(n.validationData)?v=it(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=it(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?qH:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new ze("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=YH(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=U2(e,u.value),c=p.concat(d),h=O(()=>r(c));if(Ee(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&Ee(b)}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 Xp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>ri(a,t,n-t)):ri(e,t,n-t)}function Hx(e,t){return O(()=>e==null?null:Array.isArray(e)?e.map(n=>Hx(n,t)):v2(e,t.dtype==="int32"?t:re(t,"int32")))}function hx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function G2(e){let t=[];e instanceof Ce&&(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 Ce)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 JH(e){return e instanceof Ce}function qx(e){return Array.isArray(e)}function EI(e){return!JH(e)&&!qx(e)}function _I(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(qx(e)&&e.length>0)i=!0;else if(EI(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(EI(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(qx(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=G2(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function QH(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&&!w.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 e6(e,t,n){let a=[Xo,Tf,kc];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 n6="layers-model",Cr=class extends UH{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).");PH(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=OH(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Rr))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(cx(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=>cx(s))}else{let s=cx(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=t6(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])};ai("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Tf?["accuracy","acc"].indexOf(c)!==-1?p=b0:["crossentropy","ce"].indexOf(c)!==-1&&(p=P2):this.lossFunctions[s]===nm?["accuracy","acc"].indexOf(c)!==-1?p=L2:["crossentropy","ce"].indexOf(c)!==-1&&(p=z2):["accuracy","acc"].indexOf(c)!==-1?p=y0:["crossentropy","ce"].indexOf(c)!==-1&&(p=x0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=MH(c),u=l+Sh(c);let h;ai(u,()=>{h=d}),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;dx(a);let r=this.standardizeUserDataXY(e,t,!0,a);try{let s=r[0].concat(r[1]);this.makeTestFunction();let i=this.testFunction,o=this.testLoop(i,s,a,n.verbose,n.steps);return Rn(o)}finally{Pa(r[0],e),Pa(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),ZH(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 Cl;if(e instanceof Ce&&(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 O(()=>{let a=this.checkNumSamples(e);if(n)throw new ze("Verbose predictLoop() is not implemented yet.");let r=hx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Xp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return Rn(s.map(i=>et(i,0)))})}predict(e,t={}){let n=G2(e);AI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return dx(a),this.predictLoop(n,a)}finally{Pa(n,e)}}predictOnBatch(e){AI(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 ar("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=B2(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new ze("Verbose mode is not implemented yet.");if(r!=null)throw new ze("steps mode in testLoop() is not implemented yet");{let o=hx(s,n),l=qe(Ua(0,s));for(let u=0;u1){let s=fI(e.slice(0,n),a);r+=`_${s}`}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 l=[];for(let c=0;c1&&c{d=X(d,c)}),d},o=this.collectedTrainableWeights.map(l=>l.read());return[this.optimizer_.minimize(i,!0,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>O(()=>{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;l0){if(m=!0,n.validationData.length===2)o=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new ze("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; ${n.validationData} is invalid.`);let N=await this.standardizeUserData(o,l,null,null,!0,c);u=N[0],p=N[1],f=u.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;let N=Math.floor(a[0].shape[0]*(1-n.validationSplit)),C=a[0].shape[0];u=Xp(a,N,C),s=a,a=Xp(a,0,N),p=Xp(r,N,C),i=r,r=Xp(r,0,N),f=u.concat(p)}else n.validationSteps!=null&&(m=!0);let g=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let b=this.makeTrainFunction(),y=this.getDedupedMetricsNames(),x,v;m?(this.makeTestFunction(),x=this.testFunction,v=y.slice().concat(y.map(N=>"val_"+N))):(x=null,f=[],v=y.slice());let I=D2(n.callbacks,n.yieldEvery);return await this.fitLoop(b,g,y,c,n.epochs,n.verbose,I,x,f,n.shuffle,v,n.initialEpoch,null,null)}finally{this.isTraining=!1,Pa(a,e),Pa(r,t),Pa(s,e),Pa(i,t),Pa(u,o),Pa(p,l),d!=null&&Ee(d)}}async fitLoop(e,t,n,a,r,s,i,o,l,u,p,d,c,h){a==null&&(a=32),r==null&&(r=1),u==null&&(u=!0),d==null&&(d=0);let m=!1;if(o!=null&&l!=null&&(m=!0),h!=null&&(m=!0,c==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let f=this.checkNumSamples(t,a,c,"steps_per_epoch"),g;f!=null&&(g=Ua(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=R2(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=N[C][0],D=N[C][1],$=ri(I,F,D-F);_.batch=C,_.size=D-F;let S=Hx(t,$),M=e(S);for(let B=0;Bkr(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]=kr(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[kr(Sh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>kr(Sh(e)));{let e={};for(let t in this.metrics)e[t]=kr(Sh(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=Ic(e.optimizer_config),n=Ba(t),a;if(typeof e.loss=="string")a=Zs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Zs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Zs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Zs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Zs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let r=qt.getSaveHandlers(e);if(r.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(r.length>1)throw new V(`Found more than one (${r.length}) save handlers for URL '${e}'`);e=r[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 qt.encodeWeights(this.getNamedWeights(t)),a={modelTopology:this.toJSON(null,!1),format:n6,generatedBy:`TensorFlow.js tfjs-layers v${v0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let r="optimizer",{data:s,specs:i}=await qt.encodeWeights(await this.optimizer.getWeights(),r);n.specs.push(...i),n.data=qt.concatenateArrayBuffers([n.data,s])}return this.userDefinedMetadata!=null&&(NI(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,e.save(a)}setUserDefinedMetadata(e){NI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Cr.className="Model";ne.registerClass(Cr);var H2=class extends Cr{};H2.className="Functional";ne.registerClass(H2);async function a6(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Ic(n),r=Ba(a,t);if(e.weightsManifest!=null){let s=await qt.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 r6(e,t){if(t==null&&(t={}),typeof e=="string"){let n=qt.getLoadHandlers(e,t);if(n.length===0)n.push(qt.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 s6(e,void 0,t)}async function s6(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=Ba(Ic(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:p}=i6(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Ee(u),Ee(p.map(d=>d.tensor))}return o}function i6(e,t){let n=qt.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 Cf=class jx extends Cr{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:ff("sequential_"),t.layers!=null)for(let n of t.layers)this.add(n)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new V(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let n=t instanceof jx||t instanceof Cr,a;if(n){if(a=t,a.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(a.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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let r=S2({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(r)}if(n)this.outputs=a.outputs,this.inputs=a.inputs;else{if(t.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=I2(this.outputs[0])}this.inboundNodes=[],new Sf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:bi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(r=>r.shape),outputShapes:this.outputs[0].shape})}else{let r=t.apply(this.outputs[0]);if(Array.isArray(r))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(t),this.outputs=[r],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,n){return this.model==null&&this.build(),this.model.call(t,n)}build(t){if(Je(t),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 Cr({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(t,n,a=console.log){this.built||this.build(),super.summary(t,n,a)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,n,a={}){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.evaluate(t,n,a)}async evaluateDataset(t,n){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,n)}predict(t,n={}){return this.model==null&&this.build(),this.model.predict(t,n)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,n,a={}){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.fit(t,n,a)}async fitDataset(t,n){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.fitDataset(t,n)}async trainOnBatch(t,n){return this.model.trainOnBatch(t,n)}static fromConfig(t,n,a={},r=!1){let s,i={};if(n instanceof Array){if(n[0].className==null||n[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");s=n}else w.assert(n.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=n.layers,delete n.layers,i=n;let o=new t(i);if(!(o instanceof jx))throw new ze(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(let l of s){let u=Ba(l,void 0,r);r&&u.setFastWeightInitDuringBuild(!0),o.add(u)}return o}set stopTraining(t){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}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 t=[];for(let n of this.layers){let a={};a.className=n.getClassName(),a.config=n.getConfig(),t.push(a)}return{name:this.name,layers:t}}};Cf.className="Sequential";ne.registerClass(Cf);function o6(e){return new Cr(e)}function l6(e){return new Cf(e)}function q2(e){return S2(e)}function u6(e,t){f0.registerCallbackConstructor(e,t)}var Vn=class extends ne.Serializable{getConfig(){return{}}},j2=class extends Vn{apply(e,t=1){return _G(e,t)}};j2.className="elu";ne.registerClass(j2);var K2=class extends Vn{apply(e){return Jm(e)}};K2.className="selu";ne.registerClass(K2);var X2=class extends Vn{apply(e){return Ke(e)}};X2.className="relu";ne.registerClass(X2);var Y2=class extends Vn{apply(e){return O(()=>cs(6,Ke(e)))}};Y2.className="relu6";ne.registerClass(Y2);var Z2=class extends Vn{apply(e){return e}};Z2.className="linear";ne.registerClass(Z2);var J2=class extends Vn{apply(e){return ha(e)}};J2.className="sigmoid";ne.registerClass(J2);var Q2=class extends Vn{apply(e){return FG(e)}};Q2.className="hardSigmoid";ne.registerClass(Q2);var eC=class extends Vn{apply(e){return Go(e)}};eC.className="softplus";ne.registerClass(eC);var tC=class extends Vn{apply(e){return AG(e)}};tC.className="softsign";ne.registerClass(tC);var nC=class extends Vn{apply(e){return hi(e)}};nC.className="tanh";ne.registerClass(nC);var w0=class extends Vn{apply(e,t=-1){return ja(e,t)}};w0.className="softmax";ne.registerClass(w0);var aC=class extends Vn{apply(e,t=-1){return Hm(e,t)}};aC.className="logSoftmax";ne.registerClass(aC);var rC=class extends Vn{apply(e,t=1){return O(()=>z(ha(z(e,t)),e))}};rC.className="swish";ne.registerClass(rC);var sC=class extends Vn{apply(e){return O(()=>z(e,hi(Go(e))))}};sC.className="mish";ne.registerClass(sC);function hs(e){return e.getClassName()}function mx(e,t={}){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ms(e){if(e==null){let t={};return t.className="linear",t.config={},mx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},mx(t)}else return e instanceof Vn?e:mx(e)}function k0(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 iC=class extends ne.Serializable{},Nd=class extends iC{constructor(e){super(),k0(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 O(()=>{let t=It([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,kd(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Nd.className="L1L2";ne.registerClass(Nd);function p6(e){return k0(e),new Nd({l1:e!=null?e.l1:null,l2:0})}function c6(e){return k0(e),new Nd({l2:e!=null?e.l2:null,l1:0})}var FI={l1l2:"L1L2"};function ft(e){return Qw(e)}function $I(e,t={}){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Nt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in FI?FI[e]:e,config:{}};return $I(t)}else return e instanceof iC?e:$I(e)}var I0=class extends We{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Te(e);let n=Ke(e);return this.maxValue!=null&&(n=an(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};I0.className="ReLU";ne.registerClass(I0);var S0=class extends We{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=Te(e);return ud(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};S0.className="LeakyReLU";ne.registerClass(S0);var N0=class extends We{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Nt(e.alphaRegularizer),this.alphaConstraint=Yt(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=Je(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{let n=Te(e),a=t.mask;if(a!=null){let r=z(pe(On(n.shape),re(a,n.dtype)),ve(-1e9));n=X(n,r)}return this.axis instanceof Array?this.axis.length>1?dn(pe(n,cd(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(e){return e}getConfig(){let e={axis:this.axis},t=super.getConfig();return Object.assign(e,t),e}};E0.className="Softmax";ne.registerClass(E0);function Fl(e,t,n){if(typeof e=="number")return bi(e,t);if(e.length!==t)throw new V(`The ${n} argument must be an integer or tuple of ${t} integers. Received: ${e.length} elements.`);for(let a=0;a(Rt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function oC(e,t){return O(()=>(Rt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function d6(e,t,n,a=1,r="valid",s,i=1){return O(()=>{if(s==null&&(s=Ga()),Rt(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=De(e,[0,2,1])),r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=zm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ka(o,n)),o})}function DI(e,t,n,a=[1,1],r="valid",s,i,o=null){return O(()=>{if(s==null&&(s=Ga()),Rt(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=_0(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Vl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function h6(e,t,n,a=[1,1,1],r="valid",s,i){return O(()=>{if(s==null&&(s=Ga()),Rt(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=oC(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=nw(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ka(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var lC=class uC extends We{constructor(t,n){if(super(n),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",uC.verifyArgs(n),this.rank=t,tn(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ze(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Fl(n.kernelSize,t,"kernelSize"),this.strides=Fl(n.strides==null?1:n.strides,t,"strides"),this.padding=n.padding==null?"valid":n.padding,va(this.padding),this.dataFormat=n.dataFormat==null?"channelsLast":n.dataFormat,Rt(this.dataFormat),this.activation=ms(n.activation),this.useBias=n.useBias==null?!0:n.useBias,this.biasInitializer=St(n.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(n.biasConstraint),this.biasRegularizer=Nt(n.biasRegularizer),this.activityRegularizer=Nt(n.activityRegularizer),this.dilationRate=Fl(n.dilationRate==null?1:n.dilationRate,t,"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(t){if(tr("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!e0(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:hs(this.activation),useBias:this.useBias,biasInitializer:Et(this.biasInitializer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},n=super.getConfig();return Object.assign(t,n),t}},Ef=class pC extends lC{constructor(t,n){super(t,n),this.kernel=null,pC.verifyArgs(n),this.filters=n.filters,tn(this.filters,"filters"),this.kernelInitializer=St(n.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(n.kernelConstraint),this.kernelRegularizer=Nt(n.kernelRegularizer)}build(t){t=Je(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${t[n]}`);let a=t[n],r=this.kernelSize.concat([a,this.filters]);this.kernel=this.addWeight("kernel",r,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:{[n]:a}}],this.built=!0}call(t,n){return O(()=>{t=Te(t);let a,r=this.bias==null?null:this.bias.read(),s=m2(this.activation.getClassName());if(s!=null&&this.rank===2)a=DI(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)a=d6(t,this.kernel.read(),r,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)a=DI(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)a=h6(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ze("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(a=this.activation.apply(a))}return a})}computeOutputShape(t){t=Je(t);let n=[],a=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},_f=class cC extends Ef{constructor(t){super(2,t),cC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!e0(t.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(t.kernelSize)}.`)}};_f.className="Conv2D";ne.registerClass(_f);var Af=class dC extends Ef{constructor(t){super(3,t),dC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Af.className="Conv3D";ne.registerClass(Af);var A0=class extends _f{constructor(e){if(super(e),this.inputSpec=[new zt({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=Je(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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(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],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=nr(o,d,u,this.padding),m=nr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,1]));let g=Wm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(g,[0,3,1,2])),this.bias!=null&&(g=Ka(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Je(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]=nr(t[a],o,s,this.padding),t[r]=nr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};A0.className="Conv2DTranspose";ne.registerClass(A0);var F0=class extends Af{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==5)throw new V("Input should have rank 5; 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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.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,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],b=nr(l,m,d,this.padding),y=nr(u,f,c,this.padding),x=nr(p,g,h,this.padding),v=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=aw(n,this.kernel.read(),v,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(I,[0,4,1,2,3])),this.bias!==null&&(I=Ka(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=nr(t[a],u,i,this.padding),t[r]=nr(t[r],p,o,this.padding),t[s]=nr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};F0.className="Conv3DTranspose";ne.registerClass(F0);var hC=class extends Ef{constructor(e,t){if(super(e,t),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=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Nt(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Nt(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Te(e);let n;if(this.rank===1)throw new ze("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(e,[0,2,3,1])),n=Es(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=De(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=Et(this.depthwiseInitializer),e.pointwiseInitializer=Et(this.pointwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.pointwiseRegularizer=ft(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};hC.className="SeparableConv";var $0=class extends hC{constructor(e){super(2,e)}};$0.className="SeparableConv2D";ne.registerClass($0);var D0=class mC extends Ef{constructor(t){super(1,t),mC.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!e0(t.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};D0.className="Conv1D";ne.registerClass(D0);var R0=class extends We{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 O(()=>{if(e=Te(e),this.dataFormat==="channelsLast"){let n=Ih(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ih(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ih(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ih(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}};R0.className="Cropping2D";ne.registerClass(R0);var M0=class extends We{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,kG(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 O(()=>{let n=Te(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Zn.resizeNearestNeighbor(n,[r,s]):Zn.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Zn.resizeNearestNeighbor(n,[r,s]):Zn.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};M0.className="UpSampling2D";ne.registerClass(M0);function m6(e,t,n=[1,1],a="valid",r,s){return O(()=>{r==null&&(r=Ga()),Rt(r);let i=_0(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=De(i,[0,3,1,2])),i})}var O0=class extends lC{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Nt(e.depthwiseRegularizer)}build(e){if(e=Je(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 O(()=>{e=Te(e);let n=m6(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Je(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=Va(t,this.kernelSize[0],this.padding,this.strides[0]),s=Va(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=Et(this.depthwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};O0.className="DepthwiseConv2D";ne.registerClass(O0);function fC(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 gC(e,t,n,a=!1,r,s,i=!1,o=!1){return O(()=>{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(Ua(2,l));if(t=De(t,u),s!=null)throw new ze("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=re(re(r,"bool"),"float32"),r.rank===l-1&&(r=Gt(r,-1)),r=De(r,u)),a&&(t=ba(t,0),r!=null&&(r=ba(r,0)));let p=[],d,c=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let v=O(()=>{let I=f[b],N=pe(ea(I),I),C=X(z(x[0],I),z(c[0],N)),_=c.map((F,D)=>X(z(x[1][D],I),z(F,N)));return{output:C,newStates:_}});d=v.output,c=v.newStates}o&&p.push(d)}let g;return o&&(g=At(p,1)),[d,g,c]})}var Mr=class bC extends We{constructor(t){super(t);let n;if(t.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?n=new Df({cells:t.cell}):n=t.cell,n.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=n,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ua(0,t).map(n=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Bx(t)&&(t=t[0]),t=t;let n=this.cell.stateSize;Array.isArray(n)||(n=[n]);let a=n[0],r;if(this.returnSequences?r=[t[0],t[1],a]:r=[t[0],a],this.returnState){let s=[];for(let i of n)s.push([t[0],i]);return[r].concat(s)}else return r}computeMask(t,n){return O(()=>{Array.isArray(n)&&(n=n[0]);let a=this.returnSequences?n:null;if(this.returnState){let r=this.states.map(s=>null);return[a].concat(r)}else return a})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,n=[];for(let a=0;ai.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 zt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(t,n=!1){O(()=>{if(!this.stateful)throw new Xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let a=this.inputSpec[0].shape[0];if(a==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(r=>It([a,r])):this.states_=[It([a,this.cell.stateSize])];else if(t==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(r=>It([a,r])):this.states_[0]=It([a,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);n===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let r=0;rHt(r.clone()))})}apply(t,n){let a=n==null?null:n.initialState,r=n==null?null:n.constants;n==null&&(n={});let s=fC(t,a,r,this.numConstants);t=s.inputs,a=s.initialState,r=s.constants;let i=[],o=[];if(a!=null){n.initialState=a,i=i.concat(a),this.stateSpec=[];for(let l of a)this.stateSpec.push(new zt({shape:l.shape}));o=o.concat(this.stateSpec)}if(r!=null&&(n.constants=r,i=i.concat(r),this.numConstants=r.length),i[0]instanceof Ha){let l=[t].concat(i),u=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,n);return this.inputSpec=p,d}else return super.apply(t,n)}call(t,n){return O(()=>{let a=n==null?null:n.mask,r=n==null?null:n.training,s=n==null?null:n.initialState;t=Te(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new V(`RNN Layer has ${i} 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 o={training:r},l=gC((h,m)=>{let f=this.cell.call([h].concat(m),o);return[f[0],f.slice(1)]},t,s,this.goBackwards,a,null,this.unroll,this.returnSequences),u=l[0],p=l[1],d=l[2];this.stateful&&this.resetStates(d,r);let c=this.returnSequences?p:u;return this.returnState?[c].concat(d):c})}getInitialState(t){return O(()=>{let n=It(t.shape);return n=fe(n,[1,2]),n=wd(n),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(a=>a>1?zx(n,[1,a]):n):this.cell.stateSize>1?[zx(n,[1,this.cell.stateSize])]:[n]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),n={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(n.numConstants=this.numConstants);let a=this.cell.getConfig();return this.getClassName()===bC.className&&(n.cell={className:this.cell.getClassName(),config:a}),Object.assign(Object.assign(Object.assign({},a),t),n)}static fromConfig(t,n,a={}){let r=n.cell,s=Ba(r,a);return new t(Object.assign(n,{cell:s}))}};Mr.className="RNN";ne.registerClass(Mr);var Td=class extends We{},Ff=class extends Td{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,tn(this.units,"units"),this.activation=ms(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Ul([1,ds([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ul([1,ds([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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;0ea(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ea(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=or(z(e,s),this.kernel.read()):r=or(e,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),i!=null&&(n=z(n,i));let o=X(r,or(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:hs(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),recurrentInitializer:Et(this.recurrentInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),recurrentRegularizer:ft(this.recurrentRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),recurrentConstraint:Xt(this.recurrentConstraint),biasConstraint:Xt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Ff.className="SimpleRNNCell";ne.registerClass(Ff);var P0=class extends Mr{constructor(e){e.cell=new Ff(e),super(e)}call(e,t){return O(()=>{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)}};P0.className="SimpleRNN";ne.registerClass(P0);var $f=class extends Td{constructor(e){if(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",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,tn(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=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Ul([1,ds([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ul([1,ds([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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],0ea(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ea(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));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)}};L0.className="GRU";ne.registerClass(L0);var Cd=class extends Td{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,tn(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=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Ul([1,ds([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ul([1,ds([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Je(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 $a{apply(i,o){let l=r.apply([s]),u=new bf().apply([s]),p=r.apply([s*2]);return bI(bI(l,u),p)}},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 O(()=>{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],0ea(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ea(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;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)}};z0.className="LSTM";ne.registerClass(z0);var Df=class extends Td{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 O(()=>{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{ai(`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(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ba(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 Vx(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):w2(t(),n),o=()=>Id(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var f6=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 O(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){O(()=>{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(()=>It(r)):this.states_=[It(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(()=>It(r)):this.states_[0]=It(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;sHt(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],p=Va(l,a[0],r,s[0],i[0]),d=Va(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};yC.className="ConvRNN2D";var Rf=class extends Cd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,tn(this.filters,"filters"),this.kernelSize=Fl(n,2,"kernelSize"),this.kernelSize.forEach(o=>tn(o,"kernelSize")),this.strides=Fl(a||1,2,"strides"),this.strides.forEach(o=>tn(o,"strides")),this.padding=r||"valid",va(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=Fl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>tn(o,"dilationRate"))}build(e){var t;e=Je(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 $a{apply(p,d){let c=l.apply([u]),h=On([u]),m=l.apply([u*2]);return t0([c,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 O(()=>{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;0ea(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0ea(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),b=l(r,h,3),y=3,[x,v,I,N]=Pn(this.kernel.read(),i,y),[C,_,F,D]=this.useBias?Pn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,v,_,this.padding),d=this.inputConv(d,I,F,this.padding),c=this.inputConv(c,N,D,this.padding);let[$,S,M,B]=Pn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),j=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(j));return[K,K,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=f6(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=$t(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Ka(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Rf.className="ConvLSTM2DCell";ne.registerClass(Rf);var W0=class extends yC{constructor(e){let t=new Rf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};W0.className="ConvLSTM2D";ne.registerClass(W0);var Mf=class extends We{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=Te(e);if(0w2(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()}};Mf.className="Dropout";ne.registerClass(Mf);var B0=class extends Mf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};B0.className="SpatialDropout1D";ne.registerClass(B0);var V0=class extends We{constructor(e){if(super(e),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,tn(this.units,"units"),this.activation=ms(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Nt(e.kernelRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Je(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=Je(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=m2(this.activation.getClassName()),r;return a!=null?r=or(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=or(n,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:hs(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};V0.className="Dense";ne.registerClass(V0);var U0=class extends We{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Je(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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Te(e);return this.activation.apply(n)})}getConfig(){let e={activation:hs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};G0.className="Activation";ne.registerClass(G0);var H0=class extends We{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 O(()=>(e=Te(e),TG(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};H0.className="RepeatVector";ne.registerClass(H0);var q0=class extends We{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Te(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};q0.className="Reshape";ne.registerClass(q0);var j0=class extends We{constructor(e){if(super(e),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=Ua(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Je(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return De(Te(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};j0.className="Permute";ne.registerClass(j0);var K0=class extends We{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=Te(e);return yc(fi(n,this.maskValue),-1)}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=yc(fi(n,this.maskValue),-1,!0);return z(n,re(a,n.dtype))})}};K0.className="Masking";ne.registerClass(K0);var X0=class extends We{constructor(e){if(super(e),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(it(e.inputLength))}this.inputDim=e.inputDim,tn(this.inputDim,"inputDim"),this.outputDim=e.outputDim,tn(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Nt(e.embeddingsRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.embeddingsConstraint=Yt(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 O(()=>this.maskZero?(e=Te(e),fi(e,je(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=it(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=Te(e);n.dtype!=="int32"&&(n=ir(n,"int32"));let a=v2(this.embeddings.read(),W(n,[n.size]));return W(a,Je(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Et(this.embeddingsInitializer),embeddingsRegularizer:ft(this.embeddingsRegularizer),activityRegularizer:ft(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};X0.className="Embedding";ne.registerClass(X0);var Yo=class extends We{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new ze}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 O(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=ds(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ua(1,l).concat([0]);n.push(De(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],p=[u].concat(o.slice(0,o.length-1));s=W(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ua(0,i-1));s=De(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:Gt(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 O(()=>t0(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 O(()=>{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 ze("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 ze("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 O(()=>{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 p=l;p"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 ze("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)=>Yp(r,e[s].shape.length)):a=[Yp(this.axes,t.shape.length),Yp(this.axes,n.shape.length)],this.normalize&&(t=tm(t,a[0]),n=tm(n,a[1])),g6(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Yp(this.axes,e.length),Yp(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 ze("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}};n1.className="Dot";ne.registerClass(n1);var a1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return Id(()=>X(gf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};a1.className="GaussianNoise";ne.registerClass(a1);var r1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return this.rate>0&&this.rate<1?Id(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,gf(n.shape,1,a))},()=>n,t.training||!1):n})}};r1.className="GaussianDropout";ne.registerClass(r1);var s1=class extends We{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Te(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 O(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Id(()=>{let a=Te(e),r=-1.6732632423543772*1.0507009873554805,s=$r(Cs(n),this.rate);s=ir(s,"float32");let i=((1-this.rate)*(1+this.rate*r**2))**-.5,o=-i*r*this.rate,l=X(z(a,s),z(X(s,-1),r));return X(z(l,i),o)},()=>Te(e),t.training||!1)}return e})}};s1.className="AlphaDropout";ne.registerClass(s1);function Sc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=qv(e,t,n,a,r,s);else if(e.rank===3)i=jv(e,t,n,a,r,s);else if(e.rank===4)i=Kv(e,t,n,a,r,s);else throw new ze(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function b6(e,t,n,a,r=.001){return O(()=>{let s=hd(e,a),i=s.mean,o=s.variance;return[Sc(e,i,o,n,t,r),i,o]})}function y6(e,t,n,a,r=.001){return O(()=>{let s=hd(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ua(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Sc(e,u,p,c,d,r),i,o]})}function x6(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),Ua(0,e.rank-1))?b6(e,t,n,a,r):y6(e,t,n,a,r)}var i1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer)}build(e){e=Je(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 zt({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 O(()=>{let n=t.training==null?!1:t.training,a=Te(e),r=a.shape,s=r.length,i=Ua(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=bi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!w.arraysEqual(u,Ua(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Sc(a,g,b,y,x,this.epsilon)}else return Sc(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 d();let[c,h,m]=x6(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{O(()=>{let x=1-y,v=g.read(),I=z(pe(v,b),x);g.write(pe(v,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Et(this.betaInitializer),gammaInitializer:Et(this.gammaInitializer),movingMeanInitializer:Et(this.movingMeanInitializer),movingVarianceInitializer:Et(this.movingVarianceInitializer),betaRegularizer:ft(this.betaRegularizer),gammaRegularizer:ft(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};i1.className="BatchNormalization";ne.registerClass(i1);var o1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Je(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=Te(e),a=n.shape,r=a.length;return O(()=>{let{mean:s,variance:i}=hd(n,this.axis,!0),o=bi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{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=Ga()),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]],xa(e,a)})}var l1=class extends We{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ga():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 zt({ndim:4})]}computeOutputShape(e){e=Je(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 O(()=>v6(Te(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};l1.className="ZeroPadding2D";ne.registerClass(l1);function Of(e,t,n,a,r,s){return O(()=>{Rt(r),g2(s),va(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=_0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function xC(e,t,n,a,r,s){return O(()=>{Rt(r),g2(s),va(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=oC(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=xw(e,t,n,o):i=Hv(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var vC=class extends We{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(tn(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)}`);tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,va(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Je(e);let t=Va(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return O(()=>{this.invokeCallHook(e,t),e=wd(Te(e),2);let n=this.poolingFunction(Te(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return _s(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},u1=class extends vC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Of(e,t,n,a,r,"max")}};u1.className="MaxPooling1D";ne.registerClass(u1);var p1=class extends vC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Of(e,t,n,a,r,"avg")}};p1.className="AveragePooling1D";ne.registerClass(p1);var wC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),va(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},c1=class extends wC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Of(e,t,n,a,r,"max")}};c1.className="MaxPooling2D";ne.registerClass(c1);var d1=class extends wC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Of(e,t,n,a,r,"avg")}};d1.className="AveragePooling2D";ne.registerClass(d1);var kC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),va(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Je(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=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(n,this.poolSize[1],this.padding,this.strides[1]),a=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},h1=class extends kC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),xC(e,t,n,a,r,"max")}};h1.className="MaxPooling3D";ne.registerClass(h1);var m1=class extends kC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),xC(e,t,n,a,r,"avg")}};m1.className="AveragePooling3D";ne.registerClass(m1);var IC=class extends We{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ze}},f1=class extends IC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return Ct(n,1)})}};f1.className="GlobalAveragePooling1D";ne.registerClass(f1);var g1=class extends IC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return ma(n,1)})}};g1.className="GlobalMaxPooling1D";ne.registerClass(g1);var SC=class extends We{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ze}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},b1=class extends SC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?Ct(n,[1,2]):Ct(n,[2,3])})}};b1.className="GlobalAveragePooling2D";ne.registerClass(b1);var y1=class extends SC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?ma(n,[1,2]):ma(n,[2,3])})}};y1.className="GlobalMaxPooling2D";ne.registerClass(y1);var NC=class extends We{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=Ba(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},x1=class extends NC{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Je(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=Je(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 O(()=>(e=Te(e),gC((n,a)=>[Te(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};x1.className="TimeDistributed";ne.registerClass(x1);function w6(e){Ko(wG,"BidirectionalMergeMode",e)}var k6="concat",v1=class extends NC{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ba(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ba(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?k6:e.mergeMode,w6(this.mergeMode),e.weights)throw new ze("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()):Rn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=fC(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(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new ze("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ha;for(let l of s)if(l instanceof Ha!==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),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return O(()=>{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=ba(r,1));let i;return this.mergeMode==="concat"?i=t0([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(a,r)):this.mergeMode==="mul"?i=z(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){ai(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),ai(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=Ba(t.layer);if(delete t.layer,t.numConstants!=null)throw new ze("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};v1.className="Bidirectional";ne.registerClass(v1);var w1=class extends We{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>(e=Te(e),e.dtype!=="float32"&&(e=ir(e,"float32")),X(z(e,this.scale),this.offset)))}};w1.className="Rescaling";ne.registerClass(w1);var{resizeBilinear:I6,cropAndResize:S6}=Zn,k1=class extends We{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,a,r,s,i,o){return O(()=>{let l,u=!1,p=t/s,d=n/i,c=(a+t)/s,h=(r+n)/i,m=[p,d,c,h],f=[];e.rank===3?(u=!0,l=At([e])):l=e;for(let x=0;x{let r=I6(e,[t,n]);return ir(r,a)})}call(e,t){return O(()=>{let n=Te(e),a=n.dtype,r=n.shape,s=r[r.length-3],i=r[r.length-2],o=0;s!==this.height&&(o=Math.floor((s-this.height)/2));let l=0;return i!==this.width&&(l=Math.floor((i-this.width)/2),l===0&&(l=1)),o>=0&&l>=0?this.centerCrop(n,o,l,this.height,this.width,s,i,a):this.upsize(e,this.height,this.width,a)})}getConfig(){let e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};k1.className="CenterCrop";ne.registerClass(k1);function N6(e,t,n,a){let r=Te(e);if(r.dtype!=="int32"&&(r=ir(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Gt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Gt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=Xh(o,a,n,i):l=Xh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var I1=class extends We{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Je(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return O(()=>{e=Te(e),e.dtype!=="int32"&&(e=ir(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. - Received countWeights=${t.countWeights}`);n=Te(t.countWeights)}let a=ma(e),r=Ol(e),s=Tn(this.numTokens,a).bufferSync().get(0),i=$r(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return N6(e,this.outputMode,this.numTokens,n)})}};I1.className="CategoryEncoding";ne.registerClass(I1);var T6=["bilinear","nearest"],RI=new Set(T6),S1=class extends We{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(RI.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!e.cropToAspectRatio}computeOutputShape(e){e=Je(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Zn.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Zn.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...RI]} are supported`)})}};S1.className="Resizing";ne.registerClass(S1);var TC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};TC.className="RandomSeed";var CC=class extends We{constructor(e){super(e),this.randomGenerator=new TC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};CC.className="BaseRandomLayer";var C6=["bilinear","nearest"],MI=new Set(C6),N1=class extends CC{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUppert?1:0}function wh(e,t){return-1*fG(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 gG(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 Ko(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 e0(e,t,n=0,a=1/0){return tr(n>=0),tr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function tn(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>tn(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${h2(e)}.`)}function h2(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>h2(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function bG(e,t,n){let a=n!=null?n():w.now(),r;return(...s)=>{let i=n!=null?n():w.now();return i-a0){let n=`${e}_${t}`;return kl.set(n,1),n}else return e}var TG=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function x2(e){return!!e.match(TG)}function CG(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;rt&&(t=a)}return t}function Ua(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=wd(e,1);return Wx(n,[1,t,1])})}function _G(e){let t=[rs(e.shape)];return W(e,t)}function AG(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 W(e,t)}function si(e,t,n){return O(()=>{switch(e.rank){case 1:return gd(e,t,n);case 2:return nf(e,[t,0],[n,e.shape[1]]);case 3:return Ho(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Wl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ve(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ve(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 cx(e,t,n){return O(()=>{switch(e.rank){case 1:return gd(e,t,n);case 2:return nf(e,[0,t],[e.shape[0],n]);case 3:return Ho(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Wl(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 Ih(e,t,n,a){return O(()=>{switch(e.rank){case 1:return gd(e,t,n);case 2:switch(a){case 1:return si(e,t,n);case 2:return cx(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 si(e,t,n);case 2:return Ho(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return cx(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 si(e,t,n);case 2:return Wl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Wl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return cx(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 t0(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),et(e,t)}function bI(e,t){switch(e.rank){case 1:return Jv([e,t]);case 2:return Qv([e,t],0);case 3:return ew([e,t],0);case 4:return tw([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Wx(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 On(e,t)}function bf(e,t=0,n=1,a,r){return Xm(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new ze(`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 ze(`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)return Vl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Bx(e.rank,a,Ga()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(c,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=W(De(t,p),[l,-1]);let d=[...r,...u];return W(Vl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Bx(e.rank,a,Ga()):null,activation:n}),d)}}function v2(e,t,n){return O(()=>(Array.isArray(t)?t=je(t,"int32"):t=re(t,"int32"),np(e,t,n)))}function kd(e){return z(e,e)}function Bx(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?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Ka(e,t,n){return O(()=>(n==null&&(n=Ga()),Rt(n),X(e,Bx(e.rank,t,n))))}function FG(e,t=1){if(t!==1)throw new ze(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Qu(e)}function $G(e){return O(()=>he(e,X(Lt(e),1)))}function w2(e,t,n,a){return O(()=>Pw(e,t,n,a))}function DG(e){return O(()=>{let t=X(.5,z(.2,e));return an(t,0,1)})}function Id(e,t,n=!1){return n?e():t()}var RG=["fanIn","fanOut","fanAvg"],MG=["normal","uniform","truncatedNormal"];function OG(e){Ko(RG,"FanMode",e)}function PG(e){Ko(MG,"Distribution",e)}var $a=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},n0=class extends $a{apply(e,t){return It(e,t)}};n0.className="Zeros";ne.registerClass(n0);var yf=class extends $a{apply(e,t){return Pn(e,t)}};yf.className="Ones";ne.registerClass(yf);var a0=class extends $a{constructor(e){if(super(),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 O(()=>z(xe(this.value),Pn(e,t)))}getConfig(){return{value:this.value}}};a0.className="Constant";ne.registerClass(a0);var r0=class extends $a{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,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};r0.className="RandomUniform";ne.registerClass(r0);var s0=class extends $a{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 ze(`randomNormal does not support dType ${t}.`);return bf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};s0.className="RandomNormal";ne.registerClass(s0);var i0=class extends $a{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 ze(`truncatedNormal does not support dType ${t}.`);return lf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};i0.className="TruncatedNormal";ne.registerClass(i0);var o0=class extends $a{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return O(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Gm(e[0]))})}getConfig(){return{gain:this.gain}}};o0.className="Identity";ne.registerClass(o0);function LG(e,t="channelsLast"){let n,a;if(Rt(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 Bn=class extends $a{constructor(e){if(super(),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,OG(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,PG(this.distribution),this.seed=e.seed}apply(e,t){let n=LG(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 ze(`${this.getClassName()} does not support dType ${t}.`);return lf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Es(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var xf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};xf.className="GlorotUniform";ne.registerClass(xf);var vf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};vf.className="GlorotNormal";ne.registerClass(vf);var wf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};wf.className="HeNormal";ne.registerClass(wf);var kf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};kf.className="HeUniform";ne.registerClass(kf);var If=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};If.className="LeCunNormal";ne.registerClass(If);var Sf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Sf.className="LeCunUniform";ne.registerClass(Sf);var l0=class extends $a{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return O(()=>{if(e.length<2)throw new ze("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=w.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=bf(s,0,1,t,this.seed),o=Bw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var vI="Variable",k2=class{constructor(e,t="float32",n=vI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=f2(),n=n==null?vI:n,this.originalName=b2(n),this.name=y2(this.originalName),this.trainable_=a,this.constraint=r,this.val=Mw(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),zG(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 zG(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Ux(e){return e.map(t=>t.read())}function u0(e){e.forEach(t=>{t[0].write(t[1])})}var zt=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||{}}},Ha=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=f2(),s!=null&&(this.originalName=b2(s),this.name=y2(this.originalName)),this.rank=t.length}},WG=0,Nf=class{constructor(e,t){this.callArgs=t,this.id=WG++,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}}},BG=0,We=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=BG++,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)+"_"+gf(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 ar(`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 Mn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Mn(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 Mn(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 Mn(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){let t=it(e);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=it(this.inputSpec);if(t.length!==n.length)throw new V(`Layer ${this.name} expects ${n.length} inputs, but it received ${t.length} input tensors. Input received: ${e}`);for(let a=0;as.maxNDim)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?o[u]:o[o.length+u];if(p!=null&&[p,null].indexOf(d)===-1)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${p} but got shape ${o}.`)}}if(s.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of it(e))s.push(i.shape);this.build(Mn(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);this.supportsMasking&&this.setMaskMetadata(e,s);let i=it(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=Mn(o),this.activityRegularizer!=null)throw new ze("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=VG(e),i=this.computeOutputShape(s),o,l=UG(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ha(l,u,this,it(e),t,this.name,p)):o=new Ha(l,i,this,it(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new ze("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 ar(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Jh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Ux(e?this.trainableWeights:this.weights)}setWeights(e){O(()=>{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=Ux(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?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=it(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}setMaskMetadata(e,t,n){if(!this.supportsMasking)return;let a=this.computeMask(e,n),r=it(t),s=it(a);if(r.length!==s.length)throw new Error(`${this.name} outputs ${r.length} tensors but ${r.length} masks for those tensors`);for(let i=0;ie.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 VG(e){e=it(e);let t=[];for(let n of e)t.push(n.shape);return Mn(t)}function UG(e){return"float32"}function I2(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;sm.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=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Qh.get(p),c;if(d==null){let m=KG(i,t);d=m.sorted,c=m.recipientCounts,Qh.put(p,d),em.put(p,c)}c={},r||Object.assign(c,em.get(p));let h=new Cl(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=wI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=wI(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:XG(a)}}function XG(e){let t={};for(let n in e)t[n]=e[n].size;return t}function wI(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 YG(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,qG);var T2={};_e(T2,{maxNorm:()=>JG,minMaxNorm:()=>tH,nonNeg:()=>eH,unitNorm:()=>QG});function p0(e,t){return O(()=>rn(fe(z(e,e),t,!0)))}var Sd=class extends ne.Serializable{getConfig(){return{}}},c0=class extends Sd{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 O(()=>{let t=p0(e,this.axis),n=an(t,0,this.maxValue);return z(e,he(n,X(qt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};c0.className="MaxNorm";ne.registerClass(c0);var d0=class extends Sd{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return O(()=>he(e,X(qt(),p0(e,this.axis))))}getConfig(){return{axis:this.axis}}};d0.className="UnitNorm";ne.registerClass(d0);var h0=class extends Sd{apply(e){return Ke(e)}};h0.className="NonNeg";ne.registerClass(h0);var m0=class extends Sd{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 O(()=>{let t=p0(e,this.axis),n=X(z(this.rate,an(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(qt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};m0.className="MinMaxNorm";ne.registerClass(m0);var kI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return Qw(e)}function II(e,t={}){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(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 Sd?e:II(e)}function JG(e){return new c0(e)}function QG(e){return new d0(e)}function eH(){return new h0}function tH(e){return new m0(e)}var C2={};_e(C2,{constant:()=>rH,glorotNormal:()=>cH,glorotUniform:()=>pH,heNormal:()=>dH,heUniform:()=>hH,identity:()=>lH,leCunNormal:()=>mH,leCunUniform:()=>fH,ones:()=>aH,orthogonal:()=>gH,randomNormal:()=>iH,randomUniform:()=>sH,truncatedNormal:()=>oH,varianceScaling:()=>uH,zeros:()=>nH});function nH(){return new n0}function aH(){return new yf}function rH(e){return new a0(e)}function sH(e){return new r0(e)}function iH(e){return new s0(e)}function oH(e){return new i0(e)}function lH(e){return new o0(e)}function uH(e){return new Bn(e)}function pH(e){return new xf(e)}function cH(e){return new vf(e)}function dH(e){return new wf(e)}function hH(e){return new kf(e)}function mH(e){return new If(e)}function fH(e){return new Sf(e)}function gH(e){return new l0(e)}var E2={};_e(E2,{Layer:()=>We,RNN:()=>Mr,RNNCell:()=>Td,activation:()=>qj,add:()=>n6,alphaDropout:()=>z6,average:()=>a6,averagePooling1d:()=>T1,averagePooling2d:()=>C1,averagePooling3d:()=>E1,avgPool1d:()=>d6,avgPool2d:()=>m6,avgPool3d:()=>g6,avgPooling1d:()=>h6,avgPooling2d:()=>f6,avgPooling3d:()=>b6,batchNormalization:()=>u6,bidirectional:()=>F6,categoryEncoding:()=>G6,centerCrop:()=>V6,concatenate:()=>r6,conv1d:()=>Lj,conv2d:()=>zj,conv2dTranspose:()=>Wj,conv3d:()=>Bj,conv3dTranspose:()=>Vj,convLstm2d:()=>C6,convLstm2dCell:()=>E6,cropping2D:()=>Gj,dense:()=>Kj,depthwiseConv2d:()=>jj,dot:()=>l6,dropout:()=>Xj,elu:()=>$j,embedding:()=>t6,flatten:()=>Zj,gaussianDropout:()=>L6,gaussianNoise:()=>P6,globalAveragePooling1d:()=>y6,globalAveragePooling2d:()=>x6,globalMaxPool1d:()=>D6,globalMaxPool2d:()=>R6,globalMaxPooling1d:()=>AC,globalMaxPooling2d:()=>FC,gru:()=>w6,gruCell:()=>k6,input:()=>j2,inputLayer:()=>Fj,layerNormalization:()=>p6,leakyReLU:()=>Rj,lstm:()=>I6,lstmCell:()=>S6,masking:()=>W6,maxPool1d:()=>M6,maxPool2d:()=>O6,maxPooling1d:()=>$C,maxPooling2d:()=>DC,maxPooling3d:()=>v6,maximum:()=>s6,minimum:()=>i6,multiply:()=>o6,permute:()=>e6,prelu:()=>Mj,randomWidth:()=>H6,reLU:()=>Dj,repeatVector:()=>Jj,rescaling:()=>B6,reshape:()=>Qj,resizing:()=>U6,rnn:()=>_6,separableConv2d:()=>Uj,simpleRNN:()=>N6,simpleRNNCell:()=>T6,softmax:()=>Oj,spatialDropout1d:()=>Yj,stackedRNNCells:()=>A6,thresholdedReLU:()=>Pj,timeDistributed:()=>$6,upSampling2d:()=>Hj,zeroPadding2d:()=>c6});async function Kr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sX(this.totals[a],z(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:O(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Ht(t[n])}))}},F2=class extends Gl{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 $2(n,t))}var f0=class Ja{constructor(){}static registerCallbackConstructor(t,n){w.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),Ja.checkForDuplicate(n),Ja.constructors[t]==null&&(Ja.constructors[t]=[]),Ja.constructors[t].push(n)}static checkForDuplicate(t){for(let n in Ja.constructors)Ja.constructors[+n].forEach(a=>{if(a===t)throw new V("Duplicate callback constructor.")})}static clear(){Ja.constructors={}}static createCallbacks(t){let n=[];for(let a in Ja.constructors){let r=+a;t>=r&&n.push(...Ja.constructors[r])}return n.map(a=>new a)}};f0.constructors={};function R2(e,t,n,a,r,s,i,o,l){let u=new F2,p=[new yH,...f0.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new A2(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ba(e,t={},n=!1){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function tm(e,t){return O(()=>{e.dtype!=="float32"&&(e=re(e,"float32"));let n=fe(kd(e),t,!0),a=yn(n.shape,qt()),r=rn(hr(n,a));return he(e,r)})}function Xo(e,t){return O(()=>Ct(kd(pe(t,e)),-1))}function Tf(e,t){return O(()=>Ct(Lt(pe(t,e)),-1))}function sp(e,t){return O(()=>{let n=pe(e,t),a=an(Lt(e),qt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Ct(r,-1))})}function xH(e,t){return O(()=>{let n=an(t,qt(),Number.MAX_VALUE),a=Qn(X(1,n)),r=an(e,qt(),Number.MAX_VALUE),s=Qn(X(1,r));return Ct(kd(pe(a,s)),-1)})}function vH(e,t){return O(()=>{let n=hr(0,pe(1,z(e,t)));return Ct(kd(n),-1)})}function wH(e,t){return O(()=>{let n=hr(0,pe(1,z(e,t)));return Ct(n,-1)})}function kH(e,t){return O(()=>{let n=fe(z(e,t),-1),a=ma(z(pe(1,e),t),-1);return hr(0,X(1,pe(a,n)))})}function IH(e,t){return O(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,Go(z(-2,a))),n);return Ct(r,-1)})}function kc(e,t,n=!1){return O(()=>{if(n)t=qa(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=an(t,qt(),1-qt()),yt(fe(z(re(e,"float32"),Qn(t)),t.shape.length-1))})}function nm(e,t,n=!1){return O(()=>{let a=re(tp(_G(e)),"int32");t=an(t,qt(),1-qt());let r=t.shape,s=W(Ll(a,r[r.length-1]),r);return kc(s,t,n)})}function SH(e,t){if(!w.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 O(()=>{let n=Ke(t),a=yt(Lt(t));return X(pe(n,z(t,e)),pd(dn(a)))})}function Cf(e,t){return O(()=>{let n;return n=an(t,qt(),1-qt()),n=Qn(he(n,pe(1,n))),Ct(SH(e,n),-1)})}function NH(e,t){return O(()=>{let n=an(e,qt(),1),a=an(t,qt(),1);return fe(z(e,Qn(he(n,a))),-1)})}function TH(e,t){return O(()=>{let n=Qn(X(qt(),t));return Ct(pe(t,z(e,n)),-1)})}function g0(e,t){return O(()=>{let n=tm(e,-1),a=tm(t,-1),r=z(n,a);return yt(fe(r,-1))})}var am={meanSquaredError:Xo,meanAbsoluteError:Tf,meanAbsolutePercentageError:sp,meanSquaredLogarithmicError:xH,squaredHinge:vH,hinge:wH,categoricalHinge:kH,logcosh:IH,categoricalCrossentropy:kc,sparseCategoricalCrossentropy:nm,binaryCrossentropy:Cf,kullbackLeiblerDivergence:NH,poisson:TH,cosineProximity:g0};function dx(e){if(typeof e=="string"){if(e in am)return am[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 b0(e,t){return O(()=>{let n=z(.5,ea(t)),a=ir(Cn(t,n),e.dtype);return Ct(Jn(e,a),-1)})}function y0(e,t){return O(()=>ir(Jn(di(e,-1),di(t,-1)),"float32"))}function M2(e,t){return O(()=>re(fe(_a(Jn(e,1),Jn(t,1))),"float32"))}function CH(e,t){return O(()=>re(fe(_a(Jn(e,1),Jn(t,0))),"float32"))}function EH(e,t){return O(()=>re(fe(_a(Jn(e,0),Jn(t,1))),"float32"))}function O2(e,t){return O(()=>{let n=M2(e,t),a=EH(e,t),r=X(n,a);return re(nn(Cn(r,0),he(n,r),0),"float32")})}function _H(e,t){return O(()=>{let n=M2(e,t),a=CH(e,t),r=X(n,a);return re(nn(Cn(r,0),he(n,r),0),"float32")})}function P2(e,t){return Cf(e,t)}function L2(e,t){return e.rank===t.rank&&(e=As(e,[e.rank-1])),t=di(t,-1),t.dtype!==e.dtype&&(t=re(t,e.dtype)),re(Jn(e,t),"float32")}function AH(e,t){return O(()=>{let n=e.sub(t).square().sum(),a=e.sub(e.mean()).square().sum();return xe(1).sub(n.div(a))})}var FH=Xo,$H=Xo,DH=Tf,RH=Tf,MH=sp,OH=sp,x0=kc,PH=g0,z2=nm,rm={binaryAccuracy:b0,categoricalAccuracy:y0,precision:O2,categoricalCrossentropy:x0,sparseCategoricalCrossentropy:z2,mse:FH,MSE:$H,mae:DH,MAE:RH,mape:MH,MAPE:OH,cosine:PH};function LH(e){if(typeof e=="string"&&e in rm)return rm[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Sh(e){if(tr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(am))if(am[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(rm))if(rm[n]===e){t=n;break}return t!==void 0?t:e.name}}function zH(e){let t={Adagrad:()=>Xs.adagrad(.01),Adadelta:()=>Xs.adadelta(1,.95,qt()),Adam:()=>Xs.adam(.001,.9,.999,qt()),Adamax:()=>Xs.adamax(.002,.9,.999,qt(),0),RMSProp:()=>Xs.rmsprop(.001,.9,0,qt()),SGD:()=>Xs.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}`)}function NI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Gx(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>1048576&&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 <= 1048576.`)}}function Gx(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"||!Gx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Gx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function WH(e,t,n,a=console.log){let r=VH(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),sm(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||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 UH(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];sm(o,t,n)}function GH(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;c{let t=Object.keys(e);if(t.length===0)return!1;let n=t[0].split("/");return!isNaN(parseInt(n[n.length-1],10))},jH=class Qa extends We{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let y=this.getClassName().toLowerCase();this.name=gf(y)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],as(this.inputs).length!==this.inputs.length)throw new V(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(y=>y.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 x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;this.outputLayers.push(x),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(I)}for(let y of this.inputs){let x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;tr(v===0,"input layer has >1 nodes"),tr(I===0,"input layer has >1 tensors"),this.inputLayers.push(x),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(I)}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 n={},a={},r={},s={},i={},o=[],l=(y,x,v,I,N,C)=>{(I==null||N==null||C==null)&&(I=y.sourceLayer,N=y.nodeIndex,C=y.tensorIndex);let _=I.inboundNodes[N];if(v.indexOf(_)!==-1)throw new ar(`The tensor ${y.name} at layer "${I.name}" is part of a cycle.`);if(x.indexOf(_)!==-1)return;this.containerNodes.add(Qa.nodeKey(I,N)),I.id in i||(i[I.id]=Object.keys(i).length),v.indexOf(_)===-1&&v.push(_);let F=_.inboundLayers.length;for(let D=0;D=0;)v.splice(v.indexOf(_),1);o.push(_)},u=[],p=[];for(let y of this.outputs)l(y,u,p);let d=o.slice().reverse();for(let y of d){a[y.id]=y,y.id in n||(n[y.id]=0);let x=n[y.id],v=r[y.outboundLayer.id]==null?0:r[y.outboundLayer.id];x=Math.max(x,v),r[y.outboundLayer.id]=x,s[y.outboundLayer.id]=y.outboundLayer,n[y.id]=x;for(let I=0;IparseInt(y,10)).sort(wh);this.layers=[];for(let y of m){let x=h[y];x.sort((v,I)=>{let N=i[v.id],C=i[I.id];return NC?1:0});for(let v of x)v instanceof Qa&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=h,m=Object.keys(c).map(y=>parseInt(y,10)).sort(wh);let f=this.inputs.slice(),g=[];for(let y of m)for(let x of c[y]){let v=x.outboundLayer;if(v!=null){for(let I of x.inputTensors)if(f.indexOf(I)===-1)throw new ar(`Graph disconnected: cannot obtain value for tensor ${I} at layer "${v.name}". The following previous layers were accessed without issue: ${g}`);for(let I of x.outputTensors)f.push(I);g.push(v.name)}}this.nodesByDepth=c;let b=this.layers.map(y=>y.name);for(let y of b){let x=b.filter(v=>v===y).length;if(x!==1)throw new ar(`The name "${y}" is used ${x} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(b))}this.outboundNodes=[],this.inboundNodes=[],new Nf({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let n of this.layers)t.numDisposedVariables+=n.dispose().numDisposedVariables;for(let n of this.internalContainerRefs)t.numDisposedVariables+=n.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(n=>{n._trainableWeights.forEach(a=>a.trainable=t)}),this.trainable_=t}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 t=[];for(let n of this.layers)t=t.concat(n.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let n of this.layers)t.push(...n.nonTrainableWeights);if(!this.trainable){let n=[];for(let a of this.layers)n.push(...a.trainableWeights);return n.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,n=!0){let a={},r=0,s=HH(t);s&&this.parseWeights(t);for(let o of this.layers)for(let[l,u]of o.weights.entries()){let p=s?`${u.name.split("/").slice(0,-1).join("/")+"/"}${l}`:u.originalName;if(a[p]!=null)throw new V(`Duplicate weight name: ${p}`);a[p]=u,r++}let i=[];for(let o in t){let l=o;if(a[o]==null){let u=o.split("/");l=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(a[l]!=null)i.push([a[l],t[o]]);else if(n)throw new V(`Provided weight data has no target variable: ${o}`);delete a[l]}if(n){let o=[];for(let l in a)o.push(l);if(o.length>0)throw new V(`${o.length} of ${r} weights are not set: ${o}`)}u0(i)}parseWeights(t){for(let n in Object.keys(t)){let a=n.split("/"),r=["vars","layer_checkpoint_dependencies"],s=a.map(i=>i.startsWith("_")?i.slice(1):i).filter(i=>!r.includes(i)).join("/");s!==n&&(t[s]=t[n],delete t[n])}}updatedConfig(){let t=this.getConfig(),n={};return n.className=this.getClassName(),n.config=t,n.kerasVersion=`tfjs-layers ${v0}`,n.backend="TensorFlow.js",n}toJSON(t,n=!0){let a=Hx(this.updatedConfig());return n?JSON.stringify(a):a}call(t,n){return O(()=>{t=it(t);let a=new Cl;for(let r=0;r{t=it(t);let a;return n==null?a=bi(null,t.length):a=it(n),this.runInternalGraph(t,a)[1]})}computeOutputShape(t){let n=Zh(t);if(n.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let a={};for(let o=0;oparseInt(o,10)).sort(wh);if(r.length>1)for(let o of r){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer;if(this.inputLayers.map(f=>f.id).indexOf(p.id)!==-1)continue;let d=[];for(let f=0;fparseInt(l,10)).sort(wh);for(let l of r){let u=this.nodesByDepth[l];for(let p of u){let d=p.outboundLayer,c=p.inputTensors,h=p.outputTensors,m=new Array;for(let f of c)f.id in a&&m.push(a[f.id]);if(m.length===c.length){let f={},g,b,y,x;if(p.callArgs!=null&&(f=p.callArgs),m.length===1){let[v,I]=m[0];f.mask==null&&(f.mask=I),y=it(d.call(v,f)),x=it(d.computeMask(v,I)),g=[v],b=[I]}else g=m.map(v=>v[0]),b=m.map(v=>v[1]),f.mask==null&&(f.mask=b),y=it(d.call(g,f)),x=it(d.computeMask(g,b));if(d.activityRegularizer)throw new ze("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let t=[];for(let n of this.layers)for(let a=0;a0){let f=[];for(let g=0;g0&&g.apply(Mn(y),x)}function u(g){let b=g.name,y=Ba(g,n.customObjects!=null?n.customObjects:{});y.setFastWeightInitDuringBuild(r),s[b]=y,g.inboundNodes.forEach(x=>{if(!(x instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${x}`);o(y,x)})}let p=n.name,d=n.layers;for(let g of d)u(g);for(;!gG(i);)for(let g of d){let b=s[g.name];if(b.name in i){let y=i[b.name];delete i[b.name];for(let x of y)l(b,x)}}let c=[],h=[],m=n.inputLayers;for(let g of m){let b=g[0],y=g[1],x=g[2];tr(b in s);let v=s[b].inboundNodes[y].outputTensors;c.push(v[x])}let f=n.outputLayers;for(let g of f){let b=g[0],y=g[1],x=g[2];tr(b in s);let v=s[b].inboundNodes[y].outputTensors;h.push(v[x])}return new t({inputs:c,outputs:h,name:p})}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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){O(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function qH(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 B2(e,t){return qH(e,t,"classWeight")}async function V2(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=O(()=>{if(e.shape.length===1)return sr(e);if(e.shape.length===2){if(e.shape[1]>1)return di(e,1);if(e.shape[1]===1)return W(e,[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])}),je(i,"float32")}else return null}function KH(e,t){return z(e,t)}var XH=32;function U2(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=TI("input",e.inputNames,n),i=TI("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 TI(e,t,n){if(n instanceof Ce)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 V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function YH(e){if(e.length===3)throw new ze("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function ZH(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(CI(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=YH(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 p=D2(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=R2(p,d,n.epochs,null,null,JH(t,n),null,r,u);c.setModel(e),e.history=h,await c.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;CI(n.validationData)?v=it(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=it(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?XH:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new ze("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=QH(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=U2(e,u.value),c=p.concat(d),h=O(()=>r(c));if(Ee(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&Ee(b)}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 Xp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>si(a,t,n-t)):si(e,t,n-t)}function jx(e,t){return O(()=>e==null?null:Array.isArray(e)?e.map(n=>jx(n,t)):v2(e,t.dtype==="int32"?t:re(t,"int32")))}function mx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function G2(e){let t=[];e instanceof Ce&&(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 Ce)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 tj(e){return e instanceof Ce}function qx(e){return Array.isArray(e)}function EI(e){return!tj(e)&&!qx(e)}function _I(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(qx(e)&&e.length>0)i=!0;else if(EI(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(EI(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(qx(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=G2(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function nj(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&&!w.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 aj(e,t,n){let a=[Xo,Cf,kc];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 sj="layers-model",Er=class extends jH{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).");WH(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=zH(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Rr))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(dx(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=>dx(s))}else{let s=dx(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=rj(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,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Cf?["accuracy","acc"].indexOf(c)!==-1?p=b0:["crossentropy","ce"].indexOf(c)!==-1&&(p=P2):this.lossFunctions[s]===nm?["accuracy","acc"].indexOf(c)!==-1?p=L2:["crossentropy","ce"].indexOf(c)!==-1&&(p=z2):["accuracy","acc"].indexOf(c)!==-1?p=y0:["crossentropy","ce"].indexOf(c)!==-1&&(p=x0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=LH(c),u=l+Sh(c);let h;ri(u,()=>{h=d}),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;hx(a);let r=this.standardizeUserDataXY(e,t,!0,a);try{let s=r[0].concat(r[1]);this.makeTestFunction();let i=this.testFunction,o=this.testLoop(i,s,a,n.verbose,n.steps);return Mn(o)}finally{Pa(r[0],e),Pa(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),ej(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 Cl;if(e instanceof Ce&&(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 O(()=>{let a=this.checkNumSamples(e);if(n)throw new ze("Verbose predictLoop() is not implemented yet.");let r=mx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Xp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return Mn(s.map(i=>et(i,0)))})}predict(e,t={}){let n=G2(e);AI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return hx(a),this.predictLoop(n,a)}finally{Pa(n,e)}}predictOnBatch(e){AI(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 ar("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=B2(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new ze("Verbose mode is not implemented yet.");if(r!=null)throw new ze("steps mode in testLoop() is not implemented yet");{let o=mx(s,n),l=je(Ua(0,s));for(let u=0;u1){let s=fI(e.slice(0,n),a);r+=`_${s}`}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 l=[];for(let c=0;c1&&c{d=X(d,c)}),d},o=this.collectedTrainableWeights.map(l=>l.read());return[this.optimizer_.minimize(i,!0,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>O(()=>{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;l0){if(m=!0,n.validationData.length===2)o=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new ze("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; ${n.validationData} is invalid.`);let N=await this.standardizeUserData(o,l,null,null,!0,c);u=N[0],p=N[1],f=u.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;let N=Math.floor(a[0].shape[0]*(1-n.validationSplit)),C=a[0].shape[0];u=Xp(a,N,C),s=a,a=Xp(a,0,N),p=Xp(r,N,C),i=r,r=Xp(r,0,N),f=u.concat(p)}else n.validationSteps!=null&&(m=!0);let g=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let b=this.makeTrainFunction(),y=this.getDedupedMetricsNames(),x,v;m?(this.makeTestFunction(),x=this.testFunction,v=y.slice().concat(y.map(N=>"val_"+N))):(x=null,f=[],v=y.slice());let I=D2(n.callbacks,n.yieldEvery);return await this.fitLoop(b,g,y,c,n.epochs,n.verbose,I,x,f,n.shuffle,v,n.initialEpoch,null,null)}finally{this.isTraining=!1,Pa(a,e),Pa(r,t),Pa(s,e),Pa(i,t),Pa(u,o),Pa(p,l),d!=null&&Ee(d)}}async fitLoop(e,t,n,a,r,s,i,o,l,u,p,d,c,h){a==null&&(a=32),r==null&&(r=1),u==null&&(u=!0),d==null&&(d=0);let m=!1;if(o!=null&&l!=null&&(m=!0),h!=null&&(m=!0,c==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let f=this.checkNumSamples(t,a,c,"steps_per_epoch"),g;f!=null&&(g=Ua(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=R2(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=N[C][0],D=N[C][1],$=si(I,F,D-F);_.batch=C,_.size=D-F;let S=jx(t,$),M=e(S);for(let B=0;BIr(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(Sh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Ir(Sh(e)));{let e={};for(let t in this.metrics)e[t]=Ir(Sh(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=Ic(e.optimizer_config),n=Ba(t),a;if(typeof e.loss=="string")a=Js(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Js(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Js(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Js(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Js(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let r=jt.getSaveHandlers(e);if(r.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(r.length>1)throw new V(`Found more than one (${r.length}) save handlers for URL '${e}'`);e=r[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={modelTopology:this.toJSON(null,!1),format:sj,generatedBy:`TensorFlow.js tfjs-layers v${v0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let r="optimizer",{data:s,specs:i}=await jt.encodeWeights(await this.optimizer.getWeights(),r);n.specs.push(...i),n.data=jt.concatenateArrayBuffers([n.data,s])}return this.userDefinedMetadata!=null&&(NI(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,e.save(a)}setUserDefinedMetadata(e){NI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";ne.registerClass(Er);var H2=class extends Er{};H2.className="Functional";ne.registerClass(H2);async function ij(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Ic(n),r=Ba(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 oj(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 lj(e,void 0,t)}async function lj(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=Ba(Ic(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:p}=uj(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Ee(u),Ee(p.map(d=>d.tensor))}return o}function uj(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 Ef=class Kx extends Er{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:gf("sequential_"),t.layers!=null)for(let n of t.layers)this.add(n)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new V(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let n=t instanceof Kx||t instanceof Er,a;if(n){if(a=t,a.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(a.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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let r=S2({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(r)}if(n)this.outputs=a.outputs,this.inputs=a.inputs;else{if(t.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=I2(this.outputs[0])}this.inboundNodes=[],new Nf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:bi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(r=>r.shape),outputShapes:this.outputs[0].shape})}else{let r=t.apply(this.outputs[0]);if(Array.isArray(r))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(t),this.outputs=[r],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,n){return this.model==null&&this.build(),this.model.call(t,n)}build(t){if(Je(t),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 Er({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(t,n,a=console.log){this.built||this.build(),super.summary(t,n,a)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,n,a={}){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.evaluate(t,n,a)}async evaluateDataset(t,n){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,n)}predict(t,n={}){return this.model==null&&this.build(),this.model.predict(t,n)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,n,a={}){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.fit(t,n,a)}async fitDataset(t,n){if(!this.built)throw new ar("The model needs to be compiled before being used.");return this.model.fitDataset(t,n)}async trainOnBatch(t,n){return this.model.trainOnBatch(t,n)}static fromConfig(t,n,a={},r=!1){let s,i={};if(n instanceof Array){if(n[0].className==null||n[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");s=n}else w.assert(n.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=n.layers,delete n.layers,i=n;let o=new t(i);if(!(o instanceof Kx))throw new ze(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(let l of s){let u=Ba(l,void 0,r);r&&u.setFastWeightInitDuringBuild(!0),o.add(u)}return o}set stopTraining(t){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}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 t=[];for(let n of this.layers){let a={};a.className=n.getClassName(),a.config=n.getConfig(),t.push(a)}return{name:this.name,layers:t}}};Ef.className="Sequential";ne.registerClass(Ef);function pj(e){return new Er(e)}function cj(e){return new Ef(e)}function j2(e){return S2(e)}function dj(e,t){f0.registerCallbackConstructor(e,t)}var xn=class extends ne.Serializable{getConfig(){return{}}},q2=class extends xn{apply(e,t=1){return FG(e,t)}};q2.className="elu";ne.registerClass(q2);var K2=class extends xn{apply(e){return Qm(e)}};K2.className="selu";ne.registerClass(K2);var X2=class extends xn{apply(e){return Ke(e)}};X2.className="relu";ne.registerClass(X2);var Y2=class extends xn{apply(e){return O(()=>ds(6,Ke(e)))}};Y2.className="relu6";ne.registerClass(Y2);var Z2=class extends xn{apply(e){return e}};Z2.className="linear";ne.registerClass(Z2);var J2=class extends xn{apply(e){return ha(e)}};J2.className="sigmoid";ne.registerClass(J2);var Q2=class extends xn{apply(e){return DG(e)}};Q2.className="hardSigmoid";ne.registerClass(Q2);var eC=class extends xn{apply(e){return Go(e)}};eC.className="softplus";ne.registerClass(eC);var tC=class extends xn{apply(e){return $G(e)}};tC.className="softsign";ne.registerClass(tC);var nC=class extends xn{apply(e){return cs(e)}};nC.className="tanh";ne.registerClass(nC);var w0=class extends xn{apply(e,t=-1){return qa(e,t)}};w0.className="softmax";ne.registerClass(w0);var aC=class extends xn{apply(e,t=-1){return jm(e,t)}};aC.className="logSoftmax";ne.registerClass(aC);var rC=class extends xn{apply(e){return O(()=>O(()=>{let t=Math.sqrt(2),n=z(.5,X(1,Um(he(e,t))));return z(e,n)}))}};rC.className="gelu";ne.registerClass(rC);var sC=class extends xn{apply(e){return O(()=>z(.5,z(e,X(1,cs(z(rn(he(2,Math.PI)),X(e,z(.044715,ur(e,3)))))))))}};sC.className="gelu_new";ne.registerClass(sC);var iC=class extends xn{apply(e){return O(()=>z(e,cs(Go(e))))}};iC.className="mish";ne.registerClass(iC);var oC=class extends xn{apply(e,t=1){return O(()=>z(ha(z(e,t)),e))}};oC.className="swish";ne.registerClass(oC);function ms(e){return e.getClassName()}function fx(e,t={}){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function fs(e){if(e==null){let t={};return t.className="linear",t.config={},fx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},fx(t)}else return e instanceof xn?e:fx(e)}function k0(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 lC=class extends ne.Serializable{},Nd=class extends lC{constructor(e){super(),k0(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 O(()=>{let t=It([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,kd(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Nd.className="L1L2";ne.registerClass(Nd);function hj(e){return k0(e),new Nd({l1:e!=null?e.l1:null,l2:0})}function mj(e){return k0(e),new Nd({l2:e!=null?e.l2:null,l1:0})}var FI={l1l2:"L1L2"};function ft(e){return Qw(e)}function $I(e,t={}){return vd(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Nt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in FI?FI[e]:e,config:{}};return $I(t)}else return e instanceof lC?e:$I(e)}var I0=class extends We{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Te(e);let n=Ke(e);return this.maxValue!=null&&(n=an(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};I0.className="ReLU";ne.registerClass(I0);var S0=class extends We{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=Te(e);return ud(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};S0.className="LeakyReLU";ne.registerClass(S0);var N0=class extends We{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Nt(e.alphaRegularizer),this.alphaConstraint=Yt(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=Je(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{let n=Te(e),a=t.mask;if(a!=null){let r=z(pe(Pn(n.shape),re(a,n.dtype)),xe(-1e9));n=X(n,r)}return this.axis instanceof Array?this.axis.length>1?dn(pe(n,cd(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(e){return e}getConfig(){let e={axis:this.axis},t=super.getConfig();return Object.assign(e,t),e}};E0.className="Softmax";ne.registerClass(E0);function Fl(e,t,n){if(typeof e=="number")return bi(e,t);if(e.length!==t)throw new V(`The ${n} argument must be an integer or tuple of ${t} integers. Received: ${e.length} elements.`);for(let a=0;a(Rt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function uC(e,t){return O(()=>(Rt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function fj(e,t,n,a=1,r="valid",s,i=1){return O(()=>{if(s==null&&(s=Ga()),Rt(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 ${n.shape.length} instead`);if(s==="channelsFirst"&&(e=De(e,[0,2,1])),r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=zm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ka(o,n)),o})}function DI(e,t,n,a=[1,1],r="valid",s,i,o=null){return O(()=>{if(s==null&&(s=Ga()),Rt(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=_0(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Vl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function gj(e,t,n,a=[1,1,1],r="valid",s,i){return O(()=>{if(s==null&&(s=Ga()),Rt(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=uC(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=aw(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ka(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var pC=class cC extends We{constructor(t,n){if(super(n),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",cC.verifyArgs(n),this.rank=t,tn(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ze(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Fl(n.kernelSize,t,"kernelSize"),this.strides=Fl(n.strides==null?1:n.strides,t,"strides"),this.padding=n.padding==null?"valid":n.padding,va(this.padding),this.dataFormat=n.dataFormat==null?"channelsLast":n.dataFormat,Rt(this.dataFormat),this.activation=fs(n.activation),this.useBias=n.useBias==null?!0:n.useBias,this.biasInitializer=St(n.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(n.biasConstraint),this.biasRegularizer=Nt(n.biasRegularizer),this.activityRegularizer=Nt(n.activityRegularizer),this.dilationRate=Fl(n.dilationRate==null?1:n.dilationRate,t,"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(t){if(tr("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!e0(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:ms(this.activation),useBias:this.useBias,biasInitializer:Et(this.biasInitializer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},n=super.getConfig();return Object.assign(t,n),t}},_f=class dC extends pC{constructor(t,n){super(t,n),this.kernel=null,dC.verifyArgs(n),this.filters=n.filters,tn(this.filters,"filters"),this.kernelInitializer=St(n.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(n.kernelConstraint),this.kernelRegularizer=Nt(n.kernelRegularizer)}build(t){t=Je(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${t[n]}`);let a=t[n],r=this.kernelSize.concat([a,this.filters]);this.kernel=this.addWeight("kernel",r,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:{[n]:a}}],this.built=!0}call(t,n){return O(()=>{t=Te(t);let a,r=this.bias==null?null:this.bias.read(),s=m2(this.activation.getClassName());if(s!=null&&this.rank===2)a=DI(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)a=fj(t,this.kernel.read(),r,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)a=DI(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)a=gj(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ze("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(a=this.activation.apply(a))}return a})}computeOutputShape(t){t=Je(t);let n=[],a=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},Af=class hC extends _f{constructor(t){super(2,t),hC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!e0(t.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(t.kernelSize)}.`)}};Af.className="Conv2D";ne.registerClass(Af);var Ff=class mC extends _f{constructor(t){super(3,t),mC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Ff.className="Conv3D";ne.registerClass(Ff);var A0=class extends Af{constructor(e){if(super(e),this.inputSpec=[new zt({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=Je(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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(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],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=nr(o,d,u,this.padding),m=nr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,1]));let g=Wm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(g,[0,3,1,2])),this.bias!=null&&(g=Ka(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Je(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]=nr(t[a],o,s,this.padding),t[r]=nr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};A0.className="Conv2DTranspose";ne.registerClass(A0);var F0=class extends Ff{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==5)throw new V("Input should have rank 5; 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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.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,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],b=nr(l,m,d,this.padding),y=nr(u,f,c,this.padding),x=nr(p,g,h,this.padding),v=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=rw(n,this.kernel.read(),v,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(I,[0,4,1,2,3])),this.bias!==null&&(I=Ka(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=nr(t[a],u,i,this.padding),t[r]=nr(t[r],p,o,this.padding),t[s]=nr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};F0.className="Conv3DTranspose";ne.registerClass(F0);var fC=class extends _f{constructor(e,t){if(super(e,t),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=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Nt(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Nt(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Te(e);let n;if(this.rank===1)throw new ze("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(e,[0,2,3,1])),n=_s(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=De(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=Et(this.depthwiseInitializer),e.pointwiseInitializer=Et(this.pointwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.pointwiseRegularizer=ft(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};fC.className="SeparableConv";var $0=class extends fC{constructor(e){super(2,e)}};$0.className="SeparableConv2D";ne.registerClass($0);var D0=class gC extends _f{constructor(t){super(1,t),gC.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!e0(t.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};D0.className="Conv1D";ne.registerClass(D0);var R0=class extends We{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 O(()=>{if(e=Te(e),this.dataFormat==="channelsLast"){let n=Ih(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ih(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ih(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ih(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}};R0.className="Cropping2D";ne.registerClass(R0);var M0=class extends We{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,SG(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 O(()=>{let n=Te(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Zn.resizeNearestNeighbor(n,[r,s]):Zn.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Zn.resizeNearestNeighbor(n,[r,s]):Zn.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};M0.className="UpSampling2D";ne.registerClass(M0);function bj(e,t,n=[1,1],a="valid",r,s){return O(()=>{r==null&&(r=Ga()),Rt(r);let i=_0(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=Ts(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}var O0=class extends pC{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Nt(e.depthwiseRegularizer)}build(e){if(e=Je(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 O(()=>{e=Te(e);let n=bj(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Je(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=Va(t,this.kernelSize[0],this.padding,this.strides[0]),s=Va(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=Et(this.depthwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};O0.className="DepthwiseConv2D";ne.registerClass(O0);function bC(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 yC(e,t,n,a=!1,r,s,i=!1,o=!1){return O(()=>{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(Ua(2,l));if(t=De(t,u),s!=null)throw new ze("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=re(re(r,"bool"),"float32"),r.rank===l-1&&(r=Gt(r,-1)),r=De(r,u)),a&&(t=ba(t,0),r!=null&&(r=ba(r,0)));let p=[],d,c=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let v=O(()=>{let I=f[b],N=pe(ea(I),I),C=X(z(x[0],I),z(c[0],N)),_=c.map((F,D)=>X(z(x[1][D],I),z(F,N)));return{output:C,newStates:_}});d=v.output,c=v.newStates}o&&p.push(d)}let g;return o&&(g=At(p,1)),[d,g,c]})}var Mr=class xC extends We{constructor(t){super(t);let n;if(t.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?n=new Rf({cells:t.cell}):n=t.cell,n.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=n,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ua(0,t).map(n=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Vx(t)&&(t=t[0]),t=t;let n=this.cell.stateSize;Array.isArray(n)||(n=[n]);let a=n[0],r;if(this.returnSequences?r=[t[0],t[1],a]:r=[t[0],a],this.returnState){let s=[];for(let i of n)s.push([t[0],i]);return[r].concat(s)}else return r}computeMask(t,n){return O(()=>{Array.isArray(n)&&(n=n[0]);let a=this.returnSequences?n:null;if(this.returnState){let r=this.states.map(s=>null);return[a].concat(r)}else return a})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,n=[];for(let a=0;ai.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 zt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(t,n=!1){O(()=>{if(!this.stateful)throw new Xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let a=this.inputSpec[0].shape[0];if(a==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(r=>It([a,r])):this.states_=[It([a,this.cell.stateSize])];else if(t==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(r=>It([a,r])):this.states_[0]=It([a,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);n===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let r=0;rHt(r.clone()))})}apply(t,n){let a=n==null?null:n.initialState,r=n==null?null:n.constants;n==null&&(n={});let s=bC(t,a,r,this.numConstants);t=s.inputs,a=s.initialState,r=s.constants;let i=[],o=[];if(a!=null){n.initialState=a,i=i.concat(a),this.stateSpec=[];for(let l of a)this.stateSpec.push(new zt({shape:l.shape}));o=o.concat(this.stateSpec)}if(r!=null&&(n.constants=r,i=i.concat(r),this.numConstants=r.length),i[0]instanceof Ha){let l=[t].concat(i),u=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,n);return this.inputSpec=p,d}else return super.apply(t,n)}call(t,n){return O(()=>{let a=n==null?null:n.mask,r=n==null?null:n.training,s=n==null?null:n.initialState;t=Te(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new V(`RNN Layer has ${i} 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 o={training:r},l=yC((h,m)=>{let f=this.cell.call([h].concat(m),o);return[f[0],f.slice(1)]},t,s,this.goBackwards,a,null,this.unroll,this.returnSequences),u=l[0],p=l[1],d=l[2];this.stateful&&this.resetStates(d,r);let c=this.returnSequences?p:u;return this.returnState?[c].concat(d):c})}getInitialState(t){return O(()=>{let n=It(t.shape);return n=fe(n,[1,2]),n=wd(n),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(a=>a>1?Wx(n,[1,a]):n):this.cell.stateSize>1?[Wx(n,[1,this.cell.stateSize])]:[n]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),n={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(n.numConstants=this.numConstants);let a=this.cell.getConfig();return this.getClassName()===xC.className&&(n.cell={className:this.cell.getClassName(),config:a}),Object.assign(Object.assign(Object.assign({},a),t),n)}static fromConfig(t,n,a={}){let r=n.cell,s=Ba(r,a);return new t(Object.assign(n,{cell:s}))}};Mr.className="RNN";ne.registerClass(Mr);var Td=class extends We{},$f=class extends Td{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,tn(this.units,"units"),this.activation=fs(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Ul([1,hs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ul([1,hs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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;0ea(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ea(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=or(z(e,s),this.kernel.read()):r=or(e,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),i!=null&&(n=z(n,i));let o=X(r,or(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:ms(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),recurrentInitializer:Et(this.recurrentInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),recurrentRegularizer:ft(this.recurrentRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),recurrentConstraint:Xt(this.recurrentConstraint),biasConstraint:Xt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};$f.className="SimpleRNNCell";ne.registerClass($f);var P0=class extends Mr{constructor(e){e.cell=new $f(e),super(e)}call(e,t){return O(()=>{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)}};P0.className="SimpleRNN";ne.registerClass(P0);var Df=class extends Td{constructor(e){if(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",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,tn(this.units,"units"),this.activation=fs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=fs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Ul([1,hs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ul([1,hs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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],0ea(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ea(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));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)}};L0.className="GRU";ne.registerClass(L0);var Cd=class extends Td{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,tn(this.units,"units"),this.activation=fs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=fs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Ul([1,hs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ul([1,hs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Je(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 $a{apply(i,o){let l=r.apply([s]),u=new yf().apply([s]),p=r.apply([s*2]);return bI(bI(l,u),p)}},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 O(()=>{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],0ea(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ea(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;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)}};z0.className="LSTM";ne.registerClass(z0);var Rf=class extends Td{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 O(()=>{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(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ba(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 Ux(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):w2(t(),n),o=()=>Id(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var yj=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 O(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){O(()=>{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(()=>It(r)):this.states_=[It(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(()=>It(r)):this.states_[0]=It(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;sHt(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],p=Va(l,a[0],r,s[0],i[0]),d=Va(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};vC.className="ConvRNN2D";var Mf=class extends Cd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,tn(this.filters,"filters"),this.kernelSize=Fl(n,2,"kernelSize"),this.kernelSize.forEach(o=>tn(o,"kernelSize")),this.strides=Fl(a||1,2,"strides"),this.strides.forEach(o=>tn(o,"strides")),this.padding=r||"valid",va(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=Fl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>tn(o,"dilationRate"))}build(e){var t;e=Je(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 $a{apply(p,d){let c=l.apply([u]),h=Pn([u]),m=l.apply([u*2]);return t0([c,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 O(()=>{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;0ea(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0ea(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),b=l(r,h,3),y=3,[x,v,I,N]=Ln(this.kernel.read(),i,y),[C,_,F,D]=this.useBias?Ln(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,v,_,this.padding),d=this.inputConv(d,I,F,this.padding),c=this.inputConv(c,N,D,this.padding);let[$,S,M,B]=Ln(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),q=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=yj(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=$t(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Ka(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Mf.className="ConvLSTM2DCell";ne.registerClass(Mf);var W0=class extends vC{constructor(e){let t=new Mf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};W0.className="ConvLSTM2D";ne.registerClass(W0);var Of=class extends We{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=Te(e);if(0w2(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()}};Of.className="Dropout";ne.registerClass(Of);var B0=class extends Of{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};B0.className="SpatialDropout1D";ne.registerClass(B0);var V0=class extends We{constructor(e){if(super(e),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,tn(this.units,"units"),this.activation=fs(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Nt(e.kernelRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Je(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=Je(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=m2(this.activation.getClassName()),r;return a!=null?r=or(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=or(n,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ms(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};V0.className="Dense";ne.registerClass(V0);var U0=class extends We{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Je(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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Te(e);return this.activation.apply(n)})}getConfig(){let e={activation:ms(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};G0.className="Activation";ne.registerClass(G0);var H0=class extends We{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 O(()=>(e=Te(e),EG(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};H0.className="RepeatVector";ne.registerClass(H0);var j0=class extends We{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Te(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};j0.className="Reshape";ne.registerClass(j0);var q0=class extends We{constructor(e){if(super(e),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=Ua(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Je(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return De(Te(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};q0.className="Permute";ne.registerClass(q0);var K0=class extends We{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=Te(e);return yc(fi(n,this.maskValue),-1)}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=yc(fi(n,this.maskValue),-1,!0);return z(n,re(a,n.dtype))})}};K0.className="Masking";ne.registerClass(K0);var X0=class extends We{constructor(e){if(super(e),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(it(e.inputLength))}this.inputDim=e.inputDim,tn(this.inputDim,"inputDim"),this.outputDim=e.outputDim,tn(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Nt(e.embeddingsRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.embeddingsConstraint=Yt(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 O(()=>this.maskZero?(e=Te(e),fi(e,qe(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=it(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=Te(e);n.dtype!=="int32"&&(n=ir(n,"int32"));let a=v2(this.embeddings.read(),W(n,[n.size]));return W(a,Je(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Et(this.embeddingsInitializer),embeddingsRegularizer:ft(this.embeddingsRegularizer),activityRegularizer:ft(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};X0.className="Embedding";ne.registerClass(X0);var Yo=class extends We{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new ze}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 O(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=hs(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ua(1,l).concat([0]);n.push(De(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],p=[u].concat(o.slice(0,o.length-1));s=W(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ua(0,i-1));s=De(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:Gt(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 O(()=>t0(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 O(()=>{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 ze("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 ze("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 O(()=>{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 p=l;p"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 ze("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)=>Yp(r,e[s].shape.length)):a=[Yp(this.axes,t.shape.length),Yp(this.axes,n.shape.length)],this.normalize&&(t=tm(t,a[0]),n=tm(n,a[1])),xj(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Yp(this.axes,e.length),Yp(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 ze("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}};n1.className="Dot";ne.registerClass(n1);var a1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return Id(()=>X(bf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};a1.className="GaussianNoise";ne.registerClass(a1);var r1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return this.rate>0&&this.rate<1?Id(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,bf(n.shape,1,a))},()=>n,t.training||!1):n})}};r1.className="GaussianDropout";ne.registerClass(r1);var s1=class extends We{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Te(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 O(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Id(()=>{let a=Te(e),r=-1.6732632423543772*1.0507009873554805,s=$r(Es(n),this.rate);s=ir(s,"float32");let i=((1-this.rate)*(1+this.rate*r**2))**-.5,o=-i*r*this.rate,l=X(z(a,s),z(X(s,-1),r));return X(z(l,i),o)},()=>Te(e),t.training||!1)}return e})}};s1.className="AlphaDropout";ne.registerClass(s1);function Sc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=qv(e,t,n,a,r,s);else if(e.rank===3)i=Kv(e,t,n,a,r,s);else if(e.rank===4)i=Xv(e,t,n,a,r,s);else throw new ze(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function vj(e,t,n,a,r=.001){return O(()=>{let s=hd(e,a),i=s.mean,o=s.variance;return[Sc(e,i,o,n,t,r),i,o]})}function wj(e,t,n,a,r=.001){return O(()=>{let s=hd(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ua(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Sc(e,u,p,c,d,r),i,o]})}function kj(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),Ua(0,e.rank-1))?vj(e,t,n,a,r):wj(e,t,n,a,r)}var i1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer)}build(e){e=Je(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 zt({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 O(()=>{let n=t.training==null?!1:t.training,a=Te(e),r=a.shape,s=r.length,i=Ua(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=bi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!w.arraysEqual(u,Ua(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Sc(a,g,b,y,x,this.epsilon)}else return Sc(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 d();let[c,h,m]=kj(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{O(()=>{let x=1-y,v=g.read(),I=z(pe(v,b),x);g.write(pe(v,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Et(this.betaInitializer),gammaInitializer:Et(this.gammaInitializer),movingMeanInitializer:Et(this.movingMeanInitializer),movingVarianceInitializer:Et(this.movingVarianceInitializer),betaRegularizer:ft(this.betaRegularizer),gammaRegularizer:ft(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};i1.className="BatchNormalization";ne.registerClass(i1);var o1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Je(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=Te(e),a=n.shape,r=a.length;return O(()=>{let{mean:s,variance:i}=hd(n,this.axis,!0),o=bi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{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=Ga()),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]],xa(e,a)})}var l1=class extends We{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ga():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 zt({ndim:4})]}computeOutputShape(e){e=Je(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 O(()=>Ij(Te(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};l1.className="ZeroPadding2D";ne.registerClass(l1);function Pf(e,t,n,a,r,s){return O(()=>{Rt(r),g2(s),va(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=_0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function wC(e,t,n,a,r,s){return O(()=>{Rt(r),g2(s),va(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=uC(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=xw(e,t,n,o):i=jv(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var kC=class extends We{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(tn(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)}`);tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,va(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Je(e);let t=Va(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return O(()=>{this.invokeCallHook(e,t),e=wd(Te(e),2);let n=this.poolingFunction(Te(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return As(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},u1=class extends kC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Pf(e,t,n,a,r,"max")}};u1.className="MaxPooling1D";ne.registerClass(u1);var p1=class extends kC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Pf(e,t,n,a,r,"avg")}};p1.className="AveragePooling1D";ne.registerClass(p1);var IC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),va(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},c1=class extends IC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Pf(e,t,n,a,r,"max")}};c1.className="MaxPooling2D";ne.registerClass(c1);var d1=class extends IC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),Pf(e,t,n,a,r,"avg")}};d1.className="AveragePooling2D";ne.registerClass(d1);var SC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),va(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Je(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=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(n,this.poolSize[1],this.padding,this.strides[1]),a=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},h1=class extends SC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),wC(e,t,n,a,r,"max")}};h1.className="MaxPooling3D";ne.registerClass(h1);var m1=class extends SC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),wC(e,t,n,a,r,"avg")}};m1.className="AveragePooling3D";ne.registerClass(m1);var NC=class extends We{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ze}},f1=class extends NC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return Ct(n,1)})}};f1.className="GlobalAveragePooling1D";ne.registerClass(f1);var g1=class extends NC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return ma(n,1)})}};g1.className="GlobalMaxPooling1D";ne.registerClass(g1);var TC=class extends We{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ze}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},b1=class extends TC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?Ct(n,[1,2]):Ct(n,[2,3])})}};b1.className="GlobalAveragePooling2D";ne.registerClass(b1);var y1=class extends TC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?ma(n,[1,2]):ma(n,[2,3])})}};y1.className="GlobalMaxPooling2D";ne.registerClass(y1);var CC=class extends We{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=Ba(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},x1=class extends CC{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Je(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=Je(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 O(()=>(e=Te(e),yC((n,a)=>[Te(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};x1.className="TimeDistributed";ne.registerClass(x1);function Sj(e){Ko(IG,"BidirectionalMergeMode",e)}var Nj="concat",v1=class extends CC{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ba(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ba(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?Nj:e.mergeMode,Sj(this.mergeMode),e.weights)throw new ze("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()):Mn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=bC(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(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new ze("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ha;for(let l of s)if(l instanceof Ha!==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),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return O(()=>{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=ba(r,1));let i;return this.mergeMode==="concat"?i=t0([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(a,r)):this.mergeMode==="mul"?i=z(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=Ba(t.layer);if(delete t.layer,t.numConstants!=null)throw new ze("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};v1.className="Bidirectional";ne.registerClass(v1);var w1=class extends We{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>(e=Te(e),e.dtype!=="float32"&&(e=ir(e,"float32")),X(z(e,this.scale),this.offset)))}};w1.className="Rescaling";ne.registerClass(w1);var{resizeBilinear:Tj,cropAndResize:Cj}=Zn,k1=class extends We{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,a,r,s,i,o){return O(()=>{let l,u=!1,p=t/s,d=n/i,c=(a+t)/s,h=(r+n)/i,m=[p,d,c,h],f=[];e.rank===3?(u=!0,l=At([e])):l=e;for(let x=0;x{let r=Tj(e,[t,n]);return ir(r,a)})}call(e,t){return O(()=>{let n=Te(e),a=n.dtype,r=n.shape,s=r[r.length-3],i=r[r.length-2],o=0;s!==this.height&&(o=Math.floor((s-this.height)/2));let l=0;return i!==this.width&&(l=Math.floor((i-this.width)/2),l===0&&(l=1)),o>=0&&l>=0?this.centerCrop(n,o,l,this.height,this.width,s,i,a):this.upsize(e,this.height,this.width,a)})}getConfig(){let e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};k1.className="CenterCrop";ne.registerClass(k1);function Ej(e,t,n,a){let r=Te(e);if(r.dtype!=="int32"&&(r=ir(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Gt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Gt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=Xh(o,a,n,i):l=Xh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var I1=class extends We{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Je(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return O(()=>{e=Te(e),e.dtype!=="int32"&&(e=ir(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. + Received countWeights=${t.countWeights}`);n=Te(t.countWeights)}let a=ma(e),r=Ol(e),s=Cn(this.numTokens,a).bufferSync().get(0),i=$r(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return Ej(e,this.outputMode,this.numTokens,n)})}};I1.className="CategoryEncoding";ne.registerClass(I1);var _j=["bilinear","nearest"],RI=new Set(_j),S1=class extends We{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(RI.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!e.cropToAspectRatio}computeOutputShape(e){e=Je(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Zn.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Zn.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...RI]} are supported`)})}};S1.className="Resizing";ne.registerClass(S1);var EC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};EC.className="RandomSeed";var _C=class extends We{constructor(e){super(e),this.randomGenerator=new EC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};_C.className="BaseRandomLayer";var Aj=["bilinear","nearest"],MI=new Set(Aj),N1=class extends _C{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=Te(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=Cs([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return Zn.resizeBilinear(e,s);case"nearest":return Zn.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} - but only ${[...MI]} are supported`)}})}};N1.className="RandomWidth";ne.registerClass(N1);function E6(e){return new rp(e)}function _6(e){return new T0(e)}function A6(e){return new I0(e)}function F6(e){return new S0(e)}function $6(e){return new N0(e)}function D6(e){return new E0(e)}function R6(e){return new C0(e)}function M6(e){return new D0(e)}function O6(e){return new _f(e)}function P6(e){return new A0(e)}function L6(e){return new Af(e)}function z6(e){return new F0(e)}function W6(e){return new $0(e)}function B6(e){return new R0(e)}function V6(e){return new M0(e)}function U6(e){return new O0(e)}function G6(e){return new G0(e)}function H6(e){return new V0(e)}function q6(e){return new Mf(e)}function j6(e){return new B0(e)}function K6(e){return new U0(e)}function X6(e){return new H0(e)}function Y6(e){return new q0(e)}function Z6(e){return new j0(e)}function J6(e){return new X0(e)}function Q6(e){return new Y0(e)}function eq(e){return new J0(e)}function tq(e){return new t1(e)}function nq(e){return new Q0(e)}function aq(e){return new e1(e)}function rq(e){return new Z0(e)}function sq(e){return new n1(e)}function iq(e){return new i1(e)}function oq(e){return new o1(e)}function lq(e){return new l1(e)}function T1(e){return new p1(e)}function uq(e){return T1(e)}function pq(e){return T1(e)}function C1(e){return new d1(e)}function cq(e){return C1(e)}function dq(e){return C1(e)}function E1(e){return new m1(e)}function hq(e){return E1(e)}function mq(e){return E1(e)}function fq(e){return new f1(e)}function gq(e){return new b1(e)}function EC(e){return new g1(e)}function _C(e){return new y1(e)}function AC(e){return new u1(e)}function FC(e){return new c1(e)}function bq(e){return new h1(e)}function yq(e){return new L0(e)}function xq(e){return new $f(e)}function vq(e){return new z0(e)}function wq(e){return new Cd(e)}function kq(e){return new P0(e)}function Iq(e){return new Ff(e)}function Sq(e){return new W0(e)}function Nq(e){return new Rf(e)}function Tq(e){return new Mr(e)}function Cq(e){return new Df(e)}function Eq(e){return new v1(e)}function _q(e){return new x1(e)}var Aq=EC,Fq=_C,$q=AC,Dq=FC;function Rq(e){return new a1(e)}function Mq(e){return new r1(e)}function Oq(e){return new s1(e)}function Pq(e){return new K0(e)}function Lq(e){return new w1(e)}function zq(e){return new k1(e)}function Wq(e){return new S1(e)}function Bq(e){return new I1(e)}function Vq(e){return new N1(e)}var $C={};_e($C,{MAPE:()=>Qq,MSE:()=>nj,binaryAccuracy:()=>Uq,binaryCrossentropy:()=>Gq,categoricalAccuracy:()=>qq,categoricalCrossentropy:()=>jq,cosineProximity:()=>Yq,mape:()=>ej,meanAbsoluteError:()=>Zq,meanAbsolutePercentageError:()=>Jq,meanSquaredError:()=>tj,mse:()=>aj,precision:()=>Kq,recall:()=>Xq,sparseCategoricalAccuracy:()=>Hq});function Uq(e,t){return b0(e,t)}function Gq(e,t){return P2(e,t)}function Hq(e,t){return L2(e,t)}function qq(e,t){return y0(e,t)}function jq(e,t){return x0(e,t)}function Kq(e,t){return O2(e,t)}function Xq(e,t){return CH(e,t)}function Yq(e,t){return g0(e,t)}function Zq(e,t){return Nf(e,t)}function Jq(e,t){return sp(e,t)}function Qq(e,t){return sp(e,t)}function ej(e,t){return sp(e,t)}function tj(e,t){return Xo(e,t)}function nj(e,t){return Xo(e,t)}function aj(e,t){return Xo(e,t)}var DC={};_e(DC,{modelFromJSON:()=>a6});var RC={};_e(RC,{l1:()=>sj,l1l2:()=>rj,l2:()=>ij});function rj(e){return new Nd(e)}function sj(e){return p6(e)}function ij(e){return c6(e)}var MC=class extends Gl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Cr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Nh(e,t){return et}var OC=class extends MC{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new ze("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Nh:this.mode==="max"?this.monitorFunc=OI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=OI:this.monitorFunc=Nh,this.monitorFunc===Nh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Nh?1/0:-1/0}async onEpochEnd(e,t){await Kr(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 oj(e){return new OC(e)}var lj={earlyStopping:oj},uj=G();uj.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var jn;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(jn||(jn={}));var PI;(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={}))})(PI||(PI={}));var _1={};function pj(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};_1[e]=n}function PC(e){return _1[e]}function cj(e){delete _1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return un(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>un(h,n,a,r))}let p=un(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:w.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function un(e,t,n,a){let[r,s]=Xn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[im(r,o)]);return i!==void 0?t[im(r,i)][s]:void 0}function LI(e,t,n){return t[im(e,n.currentContextId)]}function Ir(e,t){let[n,a,r]=Xn(e,t);return[im(n,t&&t.currentContextId),a,r]}function im(e,t){return t?`${e}-${t}`:e}function Xn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Mh(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:sr(e)}var LC={};_e(LC,{json:()=>dj});var dj=[{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}]}],zC={};_e(zC,{json:()=>hj});var hj=[{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:"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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],WC={};_e(WC,{json:()=>mj});var mj=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],BC={};_e(BC,{json:()=>fj});var fj=[{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",defaultValue:.2}]},{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"}]}],VC={};_e(VC,{json:()=>gj});var gj=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],UC={};_e(UC,{json:()=>bj});var bj=[{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}]}],GC={};_e(GC,{json:()=>yj});var yj=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],HC={};_e(HC,{json:()=>xj});var xj=[{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"}]}],qC={};_e(qC,{json:()=>vj});var vj=[{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"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],jC={};_e(jC,{json:()=>wj});var wj=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],KC={};_e(KC,{json:()=>kj});var kj=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],XC={};_e(XC,{json:()=>Ij});var Ij=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],YC={};_e(YC,{json:()=>Sj});var Sj=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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"}]}],ZC={};_e(ZC,{json:()=>Nj});var Nj=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",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"}]},{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"}]}],JC={};_e(JC,{json:()=>Tj});var Tj=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],QC={};_e(QC,{json:()=>Cj});var Cj=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],eE={};_e(eE,{json:()=>Ej});var Ej=[{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}]}],tE={};_e(tE,{json:()=>_j});var _j=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],nE={};_e(nE,{json:()=>Aj});var Aj=[{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:"EnsureShape",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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],zI=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[LC,zC,WC,BC,VC,UC,GC,HC,qC,jC,KC,XC,YC,ZC,JC,QC,eE,tE,nE],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={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,b)=>{let[y,,x]=Ir(g),v=i[y];if(v.outputs!=null){let I=v.outputs.indexOf(x);if(I!==-1){let N=`${y}:${I}`;f.inputNames[b]=N}}f.inputs.push(v),v.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=Ir(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=Ir(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=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:c};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=PC(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.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};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=tv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=tv(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=ev(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=ev(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=av(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=av(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Qx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Qx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=nv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=nv(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=Jx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=WI(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=WI(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,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=Ir(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:A1(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=Ir(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Ir(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});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 Fj(e){let t=G().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 aE(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):Fj(e);return t?n:n.toLowerCase()}function Kx(e,t,n,a=!1){let r=e[t];return r!=null?aE(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 A1(e){switch(typeof e=="string"&&(e=jn[e]),e){case jn.DT_FLOAT:case jn.DT_HALF:return"float32";case jn.DT_INT32:case jn.DT_INT64:case jn.DT_INT8:case jn.DT_UINT8:return"int32";case jn.DT_BOOL:return"bool";case jn.DT_DOUBLE:return"float32";case jn.DT_STRING:return"string";case jn.DT_COMPLEX64:case jn.DT_COMPLEX128:return"complex64";default:return null}}function WI(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?A1(a.type):n}function Jx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>A1(r)):n}function rE(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Qx(e,t,n){let a=e[t];return a&&a.shape?rE(a.shape):n}function ev(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 tv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>aE(s,a)):n}function nv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>rE(r)):n}function av(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var $j=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 un(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return un(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 Qx(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 ev(this.node.rawAttrs,e,t);if(n.list.s!=null)return tv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return nv(this.node.rawAttrs,e,t);if(n.list.b!=null)return av(this.node.rawAttrs,e,t);if(n.list.type!=null)return Jx(this.node.rawAttrs,e,t)}return t}},sn={};_e(sn,{OP_SCOPE_SUFFIX:()=>Av,abs:()=>Lt,acos:()=>Ov,acosh:()=>Pv,add:()=>X,addN:()=>vN,all:()=>Lm,any:()=>yc,argMax:()=>ci,argMin:()=>Lv,asin:()=>zv,asinh:()=>Wv,atan:()=>Bv,atan2:()=>Vv,atanh:()=>Uv,avgPool:()=>ya,avgPool3d:()=>Hv,basicLSTMCell:()=>SN,batchNorm:()=>Ss,batchNorm2d:()=>qv,batchNorm3d:()=>jv,batchNorm4d:()=>Kv,batchToSpaceND:()=>id,bincount:()=>Xv,bitwiseAnd:()=>NN,booleanMaskAsync:()=>mT,broadcastArgs:()=>TN,broadcastTo:()=>ni,buffer:()=>Oe,cast:()=>re,ceil:()=>Yv,clipByValue:()=>an,clone:()=>sr,complex:()=>Er,concat:()=>et,concat1d:()=>Zv,concat2d:()=>Jv,concat3d:()=>Qv,concat4d:()=>ew,conv1d:()=>zm,conv2d:()=>$t,conv2dTranspose:()=>Wm,conv3d:()=>nw,conv3dTranspose:()=>aw,cos:()=>od,cosh:()=>Bm,cosineWindow:()=>uf,cumprod:()=>wc,cumsum:()=>Vm,denseBincount:()=>Xh,depthToSpace:()=>rw,depthwiseConv2d:()=>Ns,diag:()=>EN,dilation2d:()=>sw,div:()=>he,divNoNan:()=>iw,dot:()=>ow,dropout:()=>Pw,einsum:()=>Ys,elu:()=>Qu,enclosingPowerOfTwo:()=>Lw,ensureShape:()=>AN,equal:()=>Jn,erf:()=>lw,euclideanNorm:()=>cw,exp:()=>dn,expandDims:()=>Gt,expm1:()=>dw,eye:()=>Um,fft:()=>bd,fill:()=>yn,floor:()=>tp,floorDiv:()=>Pm,fused:()=>Vl,gather:()=>np,gatherND:()=>yT,greater:()=>Tn,greaterEqual:()=>$r,ifft:()=>Bl,imag:()=>ld,image:()=>Zn,inTopKAsync:()=>xT,irfft:()=>nf,isFinite:()=>hw,isInf:()=>mw,isNaN:()=>fw,leakyRelu:()=>ud,less:()=>Pl,lessEqual:()=>Ts,linalg:()=>Bw,linspace:()=>MN,localResponseNormalization:()=>gw,log:()=>Qn,log1p:()=>pd,logSigmoid:()=>bw,logSoftmax:()=>Hm,logSumExp:()=>cd,logicalAnd:()=>_a,logicalNot:()=>dd,logicalOr:()=>qm,logicalXor:()=>yw,losses:()=>FT,lowerBound:()=>PN,matMul:()=>$e,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>xw,maxPoolWithArgmax:()=>LN,maximum:()=>dr,mean:()=>Ct,meshgrid:()=>zN,min:()=>Ol,minimum:()=>cs,mirrorPad:()=>vw,mod:()=>ww,moments:()=>hd,movingAverage:()=>fT,mul:()=>z,multiRNNCell:()=>WN,multinomial:()=>BN,neg:()=>yt,norm:()=>ep,notEqual:()=>fi,oneHot:()=>Ll,ones:()=>On,onesLike:()=>ea,op:()=>L,outerProduct:()=>VN,pad:()=>xa,pad1d:()=>UN,pad2d:()=>GN,pad3d:()=>HN,pad4d:()=>qN,pool:()=>kw,pow:()=>_r,prelu:()=>fd,print:()=>Mv,prod:()=>Iw,raggedGather:()=>jN,raggedRange:()=>KN,raggedTensorToTensor:()=>XN,rand:()=>YN,randomGamma:()=>eT,randomNormal:()=>Km,randomStandardNormal:()=>tT,randomUniform:()=>Cs,randomUniformInt:()=>nT,range:()=>gi,real:()=>zl,reciprocal:()=>Ew,relu:()=>Ke,relu6:()=>Xm,reshape:()=>W,reverse:()=>ba,reverse1d:()=>aT,reverse2d:()=>rT,reverse3d:()=>sT,reverse4d:()=>iT,rfft:()=>yd,round:()=>Ym,rsqrt:()=>Zm,scalar:()=>ve,scatterND:()=>gT,searchSorted:()=>jm,selu:()=>Jm,separableConv2d:()=>Es,setdiff1dAsync:()=>oT,sigmoid:()=>ha,sign:()=>_w,signal:()=>AT,sin:()=>Qm,sinh:()=>ef,slice:()=>Ve,slice1d:()=>gd,slice2d:()=>tf,slice3d:()=>Ho,slice4d:()=>Wl,softmax:()=>ja,softplus:()=>Go,spaceToBatchND:()=>md,sparse:()=>$T,sparseToDense:()=>bT,spectral:()=>_T,split:()=>Pn,sqrt:()=>cn,square:()=>pt,squaredDifference:()=>af,squeeze:()=>_s,stack:()=>At,step:()=>qo,stridedSlice:()=>Aw,string:()=>DT,sub:()=>pe,sum:()=>fe,tan:()=>Fw,tanh:()=>hi,tensor:()=>bn,tensor1d:()=>qe,tensor2d:()=>Ea,tensor3d:()=>xd,tensor4d:()=>Fa,tensor5d:()=>lT,tensor6d:()=>uT,tensorScatterUpdate:()=>cT,tile:()=>Mn,topk:()=>Dw,transpose:()=>De,truncatedNormal:()=>of,unique:()=>Rw,unsortedSegmentSum:()=>lf,unstack:()=>dt,upperBound:()=>dT,variable:()=>Mw,where:()=>nn,whereAsync:()=>Ow,zeros:()=>It,zerosLike:()=>je});var Dj=(e,t,n,a=sn)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Rj=(e,t,n,a=sn)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(un(e.inputNames[0],t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(un(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(un(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(un(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ca(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 BI(e){return!(typeof e=="number"||e.some(t=>t<0))}function Zp(e,t,n){let a=rv(e,n),r=!BI(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=rv(s.shape,a)}),!BI(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function rv(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 Mj=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=ve(0),Ht(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}, + `);if(n)if(MI.has(n))this.interpolation=n;else throw new V(`Invalid interpolation parameter: ${n} is not implemented`)}getConfig(){let e={factor:this.factor,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e[2];return[this.imgHeight,-1,t]}call(e,t){return O(()=>{let n=Te(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=Es([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return Zn.resizeBilinear(e,s);case"nearest":return Zn.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} + but only ${[...MI]} are supported`)}})}};N1.className="RandomWidth";ne.registerClass(N1);function Fj(e){return new rp(e)}function $j(e){return new T0(e)}function Dj(e){return new I0(e)}function Rj(e){return new S0(e)}function Mj(e){return new N0(e)}function Oj(e){return new E0(e)}function Pj(e){return new C0(e)}function Lj(e){return new D0(e)}function zj(e){return new Af(e)}function Wj(e){return new A0(e)}function Bj(e){return new Ff(e)}function Vj(e){return new F0(e)}function Uj(e){return new $0(e)}function Gj(e){return new R0(e)}function Hj(e){return new M0(e)}function jj(e){return new O0(e)}function qj(e){return new G0(e)}function Kj(e){return new V0(e)}function Xj(e){return new Of(e)}function Yj(e){return new B0(e)}function Zj(e){return new U0(e)}function Jj(e){return new H0(e)}function Qj(e){return new j0(e)}function e6(e){return new q0(e)}function t6(e){return new X0(e)}function n6(e){return new Y0(e)}function a6(e){return new J0(e)}function r6(e){return new t1(e)}function s6(e){return new Q0(e)}function i6(e){return new e1(e)}function o6(e){return new Z0(e)}function l6(e){return new n1(e)}function u6(e){return new i1(e)}function p6(e){return new o1(e)}function c6(e){return new l1(e)}function T1(e){return new p1(e)}function d6(e){return T1(e)}function h6(e){return T1(e)}function C1(e){return new d1(e)}function m6(e){return C1(e)}function f6(e){return C1(e)}function E1(e){return new m1(e)}function g6(e){return E1(e)}function b6(e){return E1(e)}function y6(e){return new f1(e)}function x6(e){return new b1(e)}function AC(e){return new g1(e)}function FC(e){return new y1(e)}function $C(e){return new u1(e)}function DC(e){return new c1(e)}function v6(e){return new h1(e)}function w6(e){return new L0(e)}function k6(e){return new Df(e)}function I6(e){return new z0(e)}function S6(e){return new Cd(e)}function N6(e){return new P0(e)}function T6(e){return new $f(e)}function C6(e){return new W0(e)}function E6(e){return new Mf(e)}function _6(e){return new Mr(e)}function A6(e){return new Rf(e)}function F6(e){return new v1(e)}function $6(e){return new x1(e)}var D6=AC,R6=FC,M6=$C,O6=DC;function P6(e){return new a1(e)}function L6(e){return new r1(e)}function z6(e){return new s1(e)}function W6(e){return new K0(e)}function B6(e){return new w1(e)}function V6(e){return new k1(e)}function U6(e){return new S1(e)}function G6(e){return new I1(e)}function H6(e){return new N1(e)}var RC={};_e(RC,{MAPE:()=>nq,MSE:()=>sq,binaryAccuracy:()=>j6,binaryCrossentropy:()=>q6,categoricalAccuracy:()=>X6,categoricalCrossentropy:()=>Y6,cosineProximity:()=>Q6,mape:()=>aq,meanAbsoluteError:()=>eq,meanAbsolutePercentageError:()=>tq,meanSquaredError:()=>rq,mse:()=>iq,precision:()=>Z6,r2Score:()=>oq,recall:()=>J6,sparseCategoricalAccuracy:()=>K6});function j6(e,t){return b0(e,t)}function q6(e,t){return P2(e,t)}function K6(e,t){return L2(e,t)}function X6(e,t){return y0(e,t)}function Y6(e,t){return x0(e,t)}function Z6(e,t){return O2(e,t)}function J6(e,t){return _H(e,t)}function Q6(e,t){return g0(e,t)}function eq(e,t){return Tf(e,t)}function tq(e,t){return sp(e,t)}function nq(e,t){return sp(e,t)}function aq(e,t){return sp(e,t)}function rq(e,t){return Xo(e,t)}function sq(e,t){return Xo(e,t)}function iq(e,t){return Xo(e,t)}function oq(e,t){return AH(e,t)}var MC={};_e(MC,{modelFromJSON:()=>ij});var OC={};_e(OC,{l1:()=>uq,l1l2:()=>lq,l2:()=>pq});function lq(e){return new Nd(e)}function uq(e){return hj(e)}function pq(e){return mj(e)}var PC=class extends Gl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Er))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Nh(e,t){return et}var LC=class extends PC{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new ze("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Nh:this.mode==="max"?this.monitorFunc=OI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=OI:this.monitorFunc=Nh,this.monitorFunc===Nh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Nh?1/0:-1/0}async onEpochEnd(e,t){await Kr(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 cq(e){return new LC(e)}var dq={earlyStopping:cq},hq=G();hq.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var qn;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(qn||(qn={}));var PI;(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={}))})(PI||(PI={}));var _1={};function mq(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};_1[e]=n}function zC(e){return _1[e]}function fq(e){delete _1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return pn(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>pn(h,n,a,r))}let p=pn(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:w.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function pn(e,t,n,a){let[r,s]=Xn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[im(r,o)]);return i!==void 0?t[im(r,i)][s]:void 0}function LI(e,t,n){return t[im(e,n.currentContextId)]}function Sr(e,t){let[n,a,r]=Xn(e,t);return[im(n,t&&t.currentContextId),a,r]}function im(e,t){return t?`${e}-${t}`:e}function Xn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Mh(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 Nr(e){return e.kept?e:sr(e)}var WC={};_e(WC,{json:()=>gq});var gq=[{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}]}],BC={};_e(BC,{json:()=>bq});var bq=[{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:"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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],VC={};_e(VC,{json:()=>yq});var yq=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],UC={};_e(UC,{json:()=>xq});var xq=[{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",defaultValue:.2}]},{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"}]}],GC={};_e(GC,{json:()=>vq});var vq=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],HC={};_e(HC,{json:()=>wq});var wq=[{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}]}],jC={};_e(jC,{json:()=>kq});var kq=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],qC={};_e(qC,{json:()=>Iq});var Iq=[{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"}]}],KC={};_e(KC,{json:()=>Sq});var Sq=[{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"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],XC={};_e(XC,{json:()=>Nq});var Nq=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],YC={};_e(YC,{json:()=>Tq});var Tq=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],ZC={};_e(ZC,{json:()=>Cq});var Cq=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],JC={};_e(JC,{json:()=>Eq});var Eq=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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"}]}],QC={};_e(QC,{json:()=>_q});var _q=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",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"}]},{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"}]}],eE={};_e(eE,{json:()=>Aq});var Aq=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],tE={};_e(tE,{json:()=>Fq});var Fq=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],nE={};_e(nE,{json:()=>$q});var $q=[{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}]}],aE={};_e(aE,{json:()=>Dq});var Dq=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],rE={};_e(rE,{json:()=>Rq});var Rq=[{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:"EnsureShape",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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],zI=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[WC,BC,VC,UC,GC,HC,jC,qC,KC,XC,YC,ZC,JC,QC,eE,tE,nE,aE,rE],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={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,b)=>{let[y,,x]=Sr(g),v=i[y];if(v.outputs!=null){let I=v.outputs.indexOf(x);if(I!==-1){let N=`${y}:${I}`;f.inputNames[b]=N}}f.inputs.push(v),v.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=Sr(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=Sr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=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:c};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=zC(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.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};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=Xx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Xx(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=Zx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&r.tfDeprecatedName&&(i=Zx(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=Yx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Yx(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=Jx(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=Jx(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"func":i=WI(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=WI(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,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=Sr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:A1(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=Sr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Sr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});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 Mq(e){let t=G().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 sE(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):Mq(e);return t?n:n.toLowerCase()}function Xx(e,t,n,a=!1){let r=e[t];return r!=null?sE(r.s,a):n}function Yx(e,t,n){let a=e[t];return a?a.b:n}function Zx(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 A1(e){switch(typeof e=="string"&&(e=qn[e]),e){case qn.DT_FLOAT:case qn.DT_HALF:return"float32";case qn.DT_INT32:case qn.DT_INT64:case qn.DT_INT8:case qn.DT_UINT8:return"int32";case qn.DT_BOOL:return"bool";case qn.DT_DOUBLE:return"float32";case qn.DT_STRING:return"string";case qn.DT_COMPLEX64:case qn.DT_COMPLEX128:return"complex64";default:return null}}function WI(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Jx(e,t,n){let a=e[t];return a&&a.type?A1(a.type):n}function Qx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>A1(r)):n}function iE(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?iE(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=>sE(s,a)):n}function av(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>iE(r)):n}function rv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var Oq=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 pn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return pn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Zx(this.node.rawAttrs,e,t);if(n.s!=null)return Xx(this.node.rawAttrs,e,t);if(n.b!=null)return Yx(this.node.rawAttrs,e,t);if(n.shape!=null)return ev(this.node.rawAttrs,e,t);if(n.type!=null)return Jx(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 Qx(this.node.rawAttrs,e,t)}return t}},on={};_e(on,{OP_SCOPE_SUFFIX:()=>Fv,abs:()=>Lt,acos:()=>Pv,acosh:()=>Lv,add:()=>X,addN:()=>vN,all:()=>Lm,any:()=>yc,argMax:()=>di,argMin:()=>zv,asin:()=>Wv,asinh:()=>Bv,atan:()=>Vv,atan2:()=>Uv,atanh:()=>Gv,avgPool:()=>ya,avgPool3d:()=>jv,basicLSTMCell:()=>SN,batchNorm:()=>Ns,batchNorm2d:()=>qv,batchNorm3d:()=>Kv,batchNorm4d:()=>Xv,batchToSpaceND:()=>id,bincount:()=>Yv,bitwiseAnd:()=>NN,booleanMaskAsync:()=>mT,broadcastArgs:()=>TN,broadcastTo:()=>ai,buffer:()=>Oe,cast:()=>re,ceil:()=>Zv,clipByValue:()=>an,clone:()=>sr,complex:()=>_r,concat:()=>et,concat1d:()=>Jv,concat2d:()=>Qv,concat3d:()=>ew,concat4d:()=>tw,conv1d:()=>zm,conv2d:()=>$t,conv2dTranspose:()=>Wm,conv3d:()=>aw,conv3dTranspose:()=>rw,cos:()=>od,cosh:()=>Bm,cosineWindow:()=>pf,cumprod:()=>wc,cumsum:()=>Vm,denseBincount:()=>Xh,depthToSpace:()=>sw,depthwiseConv2d:()=>Ts,diag:()=>EN,dilation2d:()=>iw,div:()=>he,divNoNan:()=>ow,dot:()=>lw,dropout:()=>Pw,einsum:()=>Zs,elu:()=>Qu,enclosingPowerOfTwo:()=>Lw,ensureShape:()=>AN,equal:()=>Jn,erf:()=>Um,euclideanNorm:()=>cw,exp:()=>dn,expandDims:()=>Gt,expm1:()=>dw,eye:()=>Gm,fft:()=>bd,fill:()=>yn,floor:()=>tp,floorDiv:()=>Pm,fused:()=>Vl,gather:()=>np,gatherND:()=>yT,greater:()=>Cn,greaterEqual:()=>$r,ifft:()=>Bl,imag:()=>ld,image:()=>Zn,inTopKAsync:()=>xT,irfft:()=>af,isFinite:()=>hw,isInf:()=>mw,isNaN:()=>fw,leakyRelu:()=>ud,less:()=>Pl,lessEqual:()=>Cs,linalg:()=>Bw,linspace:()=>MN,localResponseNormalization:()=>gw,log:()=>Qn,log1p:()=>pd,logSigmoid:()=>bw,logSoftmax:()=>jm,logSumExp:()=>cd,logicalAnd:()=>_a,logicalNot:()=>dd,logicalOr:()=>qm,logicalXor:()=>yw,losses:()=>FT,lowerBound:()=>PN,matMul:()=>$e,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>xw,maxPoolWithArgmax:()=>LN,maximum:()=>hr,mean:()=>Ct,meshgrid:()=>zN,min:()=>Ol,minimum:()=>ds,mirrorPad:()=>vw,mod:()=>ww,moments:()=>hd,movingAverage:()=>fT,mul:()=>z,multiRNNCell:()=>WN,multinomial:()=>BN,neg:()=>yt,norm:()=>ep,notEqual:()=>fi,oneHot:()=>Ll,ones:()=>Pn,onesLike:()=>ea,op:()=>L,outerProduct:()=>VN,pad:()=>xa,pad1d:()=>UN,pad2d:()=>GN,pad3d:()=>HN,pad4d:()=>jN,pool:()=>kw,pow:()=>ur,prelu:()=>fd,print:()=>Ov,prod:()=>Iw,raggedGather:()=>qN,raggedRange:()=>KN,raggedTensorToTensor:()=>XN,rand:()=>YN,randomGamma:()=>eT,randomNormal:()=>Xm,randomStandardNormal:()=>tT,randomUniform:()=>Es,randomUniformInt:()=>nT,range:()=>gi,real:()=>zl,reciprocal:()=>Ew,relu:()=>Ke,relu6:()=>Ym,reshape:()=>W,reverse:()=>ba,reverse1d:()=>aT,reverse2d:()=>rT,reverse3d:()=>sT,reverse4d:()=>iT,rfft:()=>yd,round:()=>Zm,rsqrt:()=>Jm,scalar:()=>xe,scatterND:()=>gT,searchSorted:()=>Km,selu:()=>Qm,separableConv2d:()=>_s,setdiff1dAsync:()=>oT,sigmoid:()=>ha,sign:()=>_w,signal:()=>AT,sin:()=>ef,sinh:()=>tf,slice:()=>Ve,slice1d:()=>gd,slice2d:()=>nf,slice3d:()=>Ho,slice4d:()=>Wl,softmax:()=>qa,softplus:()=>Go,spaceToBatchND:()=>md,sparse:()=>$T,sparseToDense:()=>bT,spectral:()=>_T,split:()=>Ln,sqrt:()=>rn,square:()=>pt,squaredDifference:()=>rf,squeeze:()=>As,stack:()=>At,step:()=>jo,stridedSlice:()=>Aw,string:()=>DT,sub:()=>pe,sum:()=>fe,tan:()=>Fw,tanh:()=>cs,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Ea,tensor3d:()=>xd,tensor4d:()=>Fa,tensor5d:()=>lT,tensor6d:()=>uT,tensorScatterUpdate:()=>cT,tile:()=>On,topk:()=>Dw,transpose:()=>De,truncatedNormal:()=>lf,unique:()=>Rw,unsortedSegmentSum:()=>uf,unstack:()=>dt,upperBound:()=>dT,variable:()=>Mw,where:()=>nn,whereAsync:()=>Ow,zeros:()=>It,zerosLike:()=>qe});var Pq=(e,t,n,a=on)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Lq=(e,t,n,a=on)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(pn(e.inputNames[0],t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(pn(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(pn(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(pn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ca(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 BI(e){return!(typeof e=="number"||e.some(t=>t<0))}function Zp(e,t,n){let a=sv(e,n),r=!BI(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)}),!BI(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 zq=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=xe(0),Ht(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),Ca(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,Ht(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,dt(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=[];O(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(a!==s.dtype)throw new Error(`Invalid data types; op elements ${a}, but list elements ${s.dtype}`);Ca(n,s.shape,"TensorList shape mismatch: "),Ht(s)}),this.idTensor=ve(0),this.maxNumElements=r,Ht(this.idTensor)}copy(){return new sv([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(n=>{(t==null||!t.has(n.id))&&n.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,n,a=-1){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(a!==-1&&this.tensors.length!==a)throw new Error(`Operation expected a list with ${a} elements but got a list with ${this.tensors.length} elements.`);Ca(t,this.elementShape,"TensorList shape mismatch: ");let r=Zp(this.elementShape,this.tensors,t);return O(()=>{let s=this.tensors.map(i=>W(i,r));return At(s,0)})}popBack(t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let a=Zp(this.elementShape,this.tensors,t),r=this.tensors.pop();return r.kept=!1,Ca(r.shape,t,"TensorList shape mismatch: "),W(r,a)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Ca(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ht(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let n=new sv([],this.elementShape,this.elementDtype,this.maxNumElements);n.tensors.length=t;for(let a=0;athis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Ca(this.tensors[t].shape,n,"TensorList shape mismatch: ");let r=Zp(this.elementShape,this.tensors,n);return W(this.tensors[t],r)}setItem(t,n){if(n.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Ca(this.elementShape,n.shape,"TensorList shape mismatch: "),Ht(n),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=n}gather(t,n,a){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);Ca(this.elementShape,a,"TensorList shape mismatch: "),t=t.slice(0,this.size());let r=Zp(this.elementShape,this.tensors,a);return t.length===0?bn([],[0].concat(r)):O(()=>{let s=t.map(i=>W(this.tensors[i],r));return At(s,0)})}concat(t,n){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Ca(this.elementShape,n,"TensorList shape mismatch: ");let a=Zp(this.elementShape,this.tensors,n);return this.size()===0?bn([],[0].concat(a)):O(()=>{let r=this.tensors.map(s=>W(s,a));return et(r,0)})}};function Oj(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);Ca(r,t,"TensorList shape mismatch: ");let s=dt(e);return new Pf(s,t,a)}function Pj(e,t,n,a){return new Pf([],e,t,a)}function Lj(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 Pf([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function zj(e,t,n){let a=0,r=t.map(p=>(a+=p,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=[];O(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(a!==s.dtype)throw new Error(`Invalid data types; op elements ${a}, but list elements ${s.dtype}`);Ca(n,s.shape,"TensorList shape mismatch: "),Ht(s)}),this.idTensor=xe(0),this.maxNumElements=r,Ht(this.idTensor)}copy(){return new iv([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(n=>{(t==null||!t.has(n.id))&&n.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,n,a=-1){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(a!==-1&&this.tensors.length!==a)throw new Error(`Operation expected a list with ${a} elements but got a list with ${this.tensors.length} elements.`);Ca(t,this.elementShape,"TensorList shape mismatch: ");let r=Zp(this.elementShape,this.tensors,t);return O(()=>{let s=this.tensors.map(i=>W(i,r));return At(s,0)})}popBack(t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let a=Zp(this.elementShape,this.tensors,t),r=this.tensors.pop();return r.kept=!1,Ca(r.shape,t,"TensorList shape mismatch: "),W(r,a)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Ca(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ht(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let n=new iv([],this.elementShape,this.elementDtype,this.maxNumElements);n.tensors.length=t;for(let a=0;athis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Ca(this.tensors[t].shape,n,"TensorList shape mismatch: ");let r=Zp(this.elementShape,this.tensors,n);return W(this.tensors[t],r)}setItem(t,n){if(n.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Ca(this.elementShape,n.shape,"TensorList shape mismatch: "),Ht(n),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=n}gather(t,n,a){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);Ca(this.elementShape,a,"TensorList shape mismatch: "),t=t.slice(0,this.size());let r=Zp(this.elementShape,this.tensors,a);return t.length===0?bn([],[0].concat(r)):O(()=>{let s=t.map(i=>W(this.tensors[i],r));return At(s,0)})}concat(t,n){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Ca(this.elementShape,n,"TensorList shape mismatch: ");let a=Zp(this.elementShape,this.tensors,n);return this.size()===0?bn([],[0].concat(a)):O(()=>{let r=this.tensors.map(s=>W(s,a));return et(r,0)})}};function Wq(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);Ca(r,t,"TensorList shape mismatch: ");let s=dt(e);return new Lf(s,t,a)}function Bq(e,t,n,a){return new Lf([],e,t,a)}function Vq(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 Lf([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function Uq(e,t,n){let a=0,r=t.map(p=>(a+=p,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=rv(s,n),o=a===0?0:e.size/a,l=O(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{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(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}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=>un(r,t,n)!==void 0);if(a){let r=un(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),u=k("name",e,t,n),p=new Mj(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ve(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[ve(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=Lj(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=e.op==="TensorListReserve"?-1:i,l=Pj(a,r,i,o);return n.addTensorList(l),[l.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=Oj(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{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=zj(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ve(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function VI(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=Mh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var Bj=(e,t,n,a=sn)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=Mh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=VI(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=VI(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=Mh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=Mh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Vj=(e,t,n,a=sn)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function fx(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 Uj=async(e,t,n,a,r=sn)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=fx(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=fx(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=fx(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},Gj=(e,t,n,a=sn)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Hj=(e,t,n,a=sn)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[un(e.name,t,n)||r];case"Placeholder":return[un(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Sr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Sr(p));case"Snapshot":let s=k("x",e,t,n);return[Sr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return ve(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(),O(()=>{let a=dt(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=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new qj(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"InitializeTable":case"InitializeTableV2":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)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Kj=(e,t,n,a=sn)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Xj=(e,t,n,a=sn)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Yj=(e,t,n,a=sn)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.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:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Zj=(e,t,n,a=sn)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(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[a.batchNorm(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[a.localResponseNormalization(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[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Jj=(e,t,n,a=sn)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:r,outputDenseValues:s}=a.raggedGather(k("paramsNestedSplits",e,t,n),k("paramsDenseValues",e,t,n),k("indices",e,t,n),k("outputRaggedRank",e,t,n));return r.concat(s)}case"RaggedRange":{let{rtNestedSplits:r,rtDenseValues:s}=a.raggedRange(k("starts",e,t,n),k("limits",e,t,n),k("splits",e,t,n));return[r,s]}case"RaggedTensorToTensor":return[a.raggedTensorToTensor(k("shape",e,t,n),k("values",e,t,n),k("defaultValue",e,t,n),k("rowPartitionTensors",e,t,n),k("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Qj=(e,t,n,a=sn)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},e5=(e,t,n,a=sn)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=w.arraysEqual(u.shape,i);if(!p&&!w.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},t5=(e,t,n,a=sn)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},n5=(e,t,n,a=sn)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},a5=(e,t,n,a=sn)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},r5=(e,t,n,a=sn)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"EnsureShape":return[a.ensureShape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function UI(e,t,n,a,r=O){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>Dj(i,o,l));case"basic_math":return r(()=>Rj(i,o,l));case"control":return Wj(i,o,l);case"convolution":return r(()=>Bj(i,o,l));case"creation":return r(()=>Vj(i,o,l));case"dynamic":return Uj(i,o,l);case"evaluation":return r(()=>Gj(i,o,l));case"image":return r(()=>Kj(i,o,l));case"graph":return r(()=>Hj(i,o,l));case"logical":return r(()=>Xj(i,o,l));case"matrices":return r(()=>Yj(i,o,l));case"normalization":return r(()=>Zj(i,o,l));case"ragged":return r(()=>Jj(i,o,l));case"reduction":return r(()=>Qj(i,o,l));case"slice_join":return r(()=>e5(i,o,l));case"sparse":return r(()=>t5(i,o,l));case"spectral":return r(()=>n5(i,o,l));case"string":return r(()=>a5(i,o,l));case"transformation":return r(()=>r5(i,o,l));case"hash_table":return jj(i,o,l,a);case"custom":let u=PC(i.op);if(u&&u.customExecutor)return u.customExecutor(new $j(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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(s)?s.then(i=>[].concat(i)):[].concat(s)}var GI=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 HI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Xn(c)[0]));a=a||[];let p=new Set(a.map(c=>Xn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((Js(c)||d5(c)||h5(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&!u.has(c.name)&&!p.has(c.name)){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function s5(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Xn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=i5(m,l);return o5(f,l),f}function i5(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var Th=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function o5(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new Th(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new Th(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new Th(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new Th(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function l5(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>Js(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;ot[a].map(r=>r.id));this._weightIds=[].concat(...n),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let n=t.signatureKey||t.name;return t.defaultOutput?`${n}:${t.defaultOutput}`:n})}get functions(){return Object.keys(this._functions).reduce((t,n)=>(t[n]=this._functions[n].signature,t),{})}constructor(t,n){this.graph=t,this.parent=n,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(a=>{this._functionExecutorMap[a]=new sE(t.functions[a],this)})}getCompilationKey(t,n){let a=t.map(s=>s.name).sort(),r=n.map(s=>s.name).sort();return a.join(this.SEPARATOR)+"--"+r.join(this.SEPARATOR)}compile(t,n){let a=HI(t,n,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:s,syncInputs:i}=a;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 [${i}]`);if(r.length>0){let u=n.map(d=>d.name),p=Object.keys(t);throw new Error(`Cannot compute the outputs [${u}] from the provided inputs [${p}]. Missing the following inputs: [${r}]`)}let o=s5(this.graph,a),l=l5(o);return{orderedNodes:o,nodeLiveUntilMap:l}}cloneAndKeepTensor(t){if(t==null)return null;let n=t.clone();return Ht(n),n}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([n,a])=>[n,this.cloneTensorList(a)]))}execute(t,n){this.disposeIntermediateTensors(),t=this.mapInputs(t);let a=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n);let r=a.map(c=>this.graph.nodes[Xn(c)[0]]),s=n.map(c=>Xn(c)[0]),i=new Set(s),o=s.map(c=>this.graph.nodes[c]);o.length===0&&(o=this._outputs);let l=this.getCompilationKey(r,o),u=this.compiledMap.get(l);u==null&&(u=this.compile(t,o),this.compiledMap.set(l,u));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let p={},d={};return O(()=>{let c=new GI(this.weightMap,p,d,this.functionExecutorMap,this.parseNodeNameCache),h=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(b=>{let[y,x]=Xn(b,c),v=[];v[x]=t[b],h[y]=v,this.keepIntermediateTensors&&(this.clonedTensorsMap[y]=this.cloneTensorList(v))});let m=this.getFrozenTensorIds(h),{orderedNodes:f,nodeLiveUntilMap:g}=u;for(let b of f){if(h[b.name])continue;let y=UI(b,h,c,this._resourceManager);if(w.isPromise(y))throw new Error(`The execution of the op '${b.op}' returned a promise. Please use model.executeAsync() instead.`);h[b.name]=y,this.keepIntermediateTensors&&(this.clonedTensorsMap[b.name]=this.cloneTensorList(y)),this.checkTensorForDisposalWithNodeLiveUntilInfo(b,h,c,m,i,g.get(b.name))}return this.parent==null&&c.dispose(m),n.map(b=>un(b,h,c))})}getFrozenTensorIds(t){let n=[].concat.apply([],Object.keys(t).map(a=>t[a]).map(a=>a.map(r=>r.id)));return new Set(n)}checkTensorForDisposal(t,n,a,r,s,i,o){if(!(Js(n)||i.has(t))){for(let l of a[t])l!=null&&(o[l.id]=(o[l.id]||0)+n.children.length);for(let l of n.inputs){if(Js(l))continue;let u=LI(l.name,a,r);if(u!=null)for(let p of u){if(!p||p.kept||s.has(p.id))continue;let d=o[p.id];d===1?(p.dispose(),delete o[p.id]):d!=null&&o[p.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,n,a,r,s,i){function o(l){return Js(l)||s.has(l.name)}if(!(Js(t)||i==null))for(let l of i){if(o(l))continue;let u=LI(l.name,n,a);for(let p of u)!p||p.kept||r.has(p.id)||p.dispose()}}async executeAsync(t,n){return this._executeAsync(t,n)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let n of t)n&&!n.isDisposed&&n.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,n,a=!1,r={},s={}){this.disposeIntermediateTensors(),a||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let i=new GI(this.weightMap,r,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let o=await this.executeWithControlFlow(t,i,n,a),l=n.map(c=>un(c,o,i)),u=l.map(c=>c.id),p=Object.keys(t).map(c=>t[c].id),d=new Set([...u,...p,...this.weightIds]);return Object.values(o).forEach(c=>{c.forEach(h=>{h&&!h.isDisposed&&!d.has(h.id)&&h.dispose()})}),this.parent==null&&i.dispose(d),l}async executeFunctionAsync(t,n,a){let r=t.reduce((s,i,o)=>(s[this.inputs[o].name]=i,s),{});return this._executeAsync(r,this.outputNodes,!0,n,a)}async executeWithControlFlow(t,n,a,r){let s=Object.keys(t),i=s.map(v=>this.graph.nodes[Xn(v)[0]]),o=a.map(v=>Xn(v)[0]),l=new Set(o),u=o.map(v=>this.graph.nodes[v]);u.length===0&&(u=this._outputs);let{usedNodes:p,missingInputs:d,dynamicNode:c,syncInputs:h}=HI(t,u,this.weightMap,this._initNodes),m=[...i,...this.graph.weights,...this._initNodes||[]].map(v=>({node:v,contexts:n.currentContext})),f=Object.assign({},this.weightMap);Object.keys(t).forEach(v=>{let[I,N]=Xn(v),C=[];C[N]=t[v],f[I]=C});let g={},b=this.getFrozenTensorIds(f),y={};for(;m.length>0;){let v=this.processStack(i,m,n,f,y,b,l,g,p);await Promise.all(v)}c==null&&!r&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let x=u.filter(v=>!Js(v)&&!un(v.name,f,n)).map(v=>v.name);if(x.length>0){let v="";throw c!=null&&(v=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${x}] from the provided inputs [${s}]. Consider providing the following inputs: [${d}]. ${v}`)}return f}processStack(t,n,a,r,s,i,o,l,u){let p=[];for(;n.length>0;){let d=n.pop();a.currentContext=d.contexts;let c="";if(d.node.op==="Enter"&&k("isConstant",d.node,r,a)&&([c]=Ir(d.node.name,a)),r[d.node.name]==null){let h=UI(d.node,r,a,this._resourceManager);c||([c]=Ir(d.node.name,a));let m=a.currentContext;w.isPromise(h)?p.push(h.then(f=>(r[c]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(f)),a.currentContext=m,this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u),f))):(r[c]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(h)),this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u))}else this.processChildNodes(d.node,n,a,r,s,u)}return p}processChildNodes(t,n,a,r,s,i){t.children.forEach(o=>{let[l]=Ir(o.name,a);s[l]||!i.has(o.name)||(o.op==="Merge"?o.inputNames.some(u=>!!un(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})):o.inputNames.every(u=>!!un(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(n=>n.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(n=>{let a=t[n],[r]=Xn(n),s=this.graph.nodes[r];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,o=i.length===a.shape.length&&a.shape.every((l,u)=>i[u]===-1||i[u]===l);w.assert(o,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${a.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&w.assert(a.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${a.dtype}`)})}mapInputs(t){var n,a;let r={};for(let s in t){let i=(a=(n=this._signature)===null||n===void 0?void 0:n.inputs)===null||a===void 0?void 0:a[s];i!=null?r[i.name]=t[s]:r[s]=t[s]}return r}checkInputs(t){let n=Object.keys(t).filter(a=>{let[r]=Xn(a);return this.graph.nodes[r]==null});if(n.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${n}] that are not part of graph`)}mapOutputs(t){return t.map(n=>{var a,r;let s=(r=(a=this._signature)===null||a===void 0?void 0:a.outputs)===null||r===void 0?void 0:r[n];return s!=null?s.name:n},{})}checkOutputs(t){t.forEach(n=>{let[a]=Xn(n);if(!this.graph.nodes[a])throw new Error(`The output '${n}' is not found in the graph`)})}},m5=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]}},f5="?tfjs-format=file",g5="model.json",F1=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(e,t={},n=qt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new m5}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.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]}}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=this.handler.load();return w.isPromise(e)?e.then(t=>t.getWeightStream==null?this.loadSync(t):this.loadStreaming(t)):this.loadSync(e)}loadSync(e){let t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(e.getWeightStream==null)throw new Error("Model artifacts missing streamWeights function");let t=await pN(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;let n=this.artifacts.modelTopology,a=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(a=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}if(this.signature=a,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new qI(zI.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=zI.Instance.transformGraph(e.modelInitializer);this.initializer=new qI(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.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)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof Ce?[e]:e,n={};return t.forEach((a,r)=>n[this.structuredOutputKeys[r]]=a),n}return e}predict(e,t){let n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){let n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Ce)&&!Array.isArray(e)){let r=(t=this.signature)===null||t===void 0?void 0:t.inputs;if(r!=null)for(let s in r){let i=r[s];i.resourceId!=null&&(e[s]=this.resourceIdToCapturedInput[i.resourceId])}return e}e=Array.isArray(e)?e:[e];let n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let a=0;return this.inputNodes.reduce((r,s)=>{var i,o,l;let u=(l=(o=(i=this.signature)===null||i===void 0?void 0:i.inputs)===null||o===void 0?void 0:o[s])===null||l===void 0?void 0:l.resourceId;return u!=null?r[s]=this.resourceIdToCapturedInput[u]:r[s]=e[a++],r},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,n=Object.keys(t);for(let a=0;a1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Ee(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function b5(e,t={},n=qt){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&&typeof e=="string"&&(e=x5(e));let a=new F1(e,t,n);return await a.load(),a}function y5(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=qt.getWeightSpecs(a.weightsManifest),i=qt.getModelArtifactsForJSONSync(a,s,r);t=qt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=qt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new F1(t);return n.load(),n}function x5(e){return e.endsWith("/")||(e=e+"/"),`${e}${g5}${f5}`}var v5="4.16.0",iE={};_e(iE,{CSVDataset:()=>bE,Dataset:()=>ip,FileDataSource:()=>SE,TextLineDataset:()=>gE,URLDataSource:()=>NE,array:()=>U5,csv:()=>nK,func:()=>aK,generator:()=>rK,microphone:()=>iK,version_data:()=>oK,webcam:()=>sK,zip:()=>G5});var w5=ys(bm()),k5=ys(bm());function I5(e,t){return om(e,t)}function om(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();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(Hl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=om(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function S5(e,t=lE){return oE(e,t)}function oE(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(Hl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=oE(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 lE(e){return e===null?null:Hl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function uE(e,t){let n=new Map;om(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 om(e,t,n)}function Hl(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=FS();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ce)&&!(e instanceof Promise)&&!t)}function N5(e){return e==null||T5(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ce||w.isTypedArray(e)}function T5(e){return e===null||typeof e!="object"&&typeof e!="function"}function C5(e){return I5(e,E5)}function E5(e){return e instanceof Ce?{value:e.clone(),recurse:!1}:Hl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var pE=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}},cE=class dE extends pE{constructor(){super(dE.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,n=new Array(t),a=this.length();for(let r=0;rt===!0)}rowMajorBatch(e,t=!0){return new O5(this,e,t)}columnMajorBatch(e,t=!0,n=lE){return this.rowMajorBatch(e,t).map(a=>S5(a,n))}concatenate(e,t){return new mE(hE([this,e]),t)}take(e){return e<0||e==null?this:new M5(this,e)}skip(e){return e<0||e==null?this:new R5(this,e)}prefetch(e){return new fE(this,e)}shuffle(e,t){return new V5(this,e,t)}serial(){return new D5(this)}},F5=class extends rn{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:C5(e),done:!1}}},$5=class extends rn{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}}},D5=class extends rn{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()}},R5=class extends rn{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()}},O5=class extends rn{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}}},P5=class extends rn{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)}}},L5=class extends rn{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},z5=class extends rn{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}}}},jI=class extends rn{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=Wa.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},D1=class extends rn{constructor(){super(),this.outputQueue=new cE,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}}},W5=class extends D1{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return!0}},mE=class extends rn{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}},es;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(es||(es={}));var B5=class extends rn{constructor(e,t=es.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 rn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await uE(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case es.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case es.SHORTEST:return{value:null,done:!0};case es.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},fE=class extends rn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new pE(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()}},V5=class extends fE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=k5.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}}},ip=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===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Kn(async()=>(await n.iterator()).columnMajorBatch(e,t,H5),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Kn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Kn(async()=>(await t.iterator()).filter(a=>O(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Kn(async()=>(await t.iterator()).map(n=>O(()=>e(n))),this.size)}mapAsync(e){let t=this;return Kn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Kn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Kn(async()=>{let a=$1(async()=>({value:await t.iterator(),done:!1}));return _5(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(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=w5.alea(t||w.now().toString());return Kn(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,Kn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};ip.MAX_BUFFER_SIZE=1e4;function Kn(e,t=null){return new class extends ip{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function U5(e){return Kn(async()=>hE(e),e.length)}function G5(e){if(!Hl(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 uE(e,a=>{if(a instanceof ip)return{value:a.iterator(),recurse:!1};if(Hl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return A5(n,es.SHORTEST)},t)}function H5(e){if(e===null)return null;let t=e[0];return N5(t)?{value:q5(e),recurse:!1}:{value:null,recurse:!0}}function q5(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ce?At(e):bn(e)}var gE=class extends ip{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))}},Ch='"',Jp=Symbol("out"),KI=Symbol("field"),Eh=Symbol("quote"),gx=Symbol("quoteafterquote"),XI=Symbol("quoteinquote"),bE=class extends ip{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&w.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(w.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new gE(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(w.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(n))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let n=new yE(t);return await n.start(),n}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(a){throw new Error(`Error thrown while initializing video stream: ${a.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 n=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,n.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 t,n,a=await this.getAudioData();if(this.includeSpectrogram){let r=this.flattenQueue(a.freqDataQueue);t=this.getTensorFromAudioDataArray(r,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let r=this.flattenQueue(a.timeDataQueue);n=this.getTensorFromAudioDataArray(r,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:n},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],n=[],a=0;return new Promise(r=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:t,timeDataQueue:n}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),n.push(this.timeData.slice())),++a===this.numFrames&&(clearInterval(s),r({freqDataQueue:t,timeDataQueue:n}))},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(t){let n=t[0].length,a=new Float32Array(t.length*n);return t.forEach((r,s)=>a.set(r,s*n)),a}getTensorFromAudioDataArray(t,n){let a=new Float32Array(w.sizeFromShape(n));return a.set(t,a.length-t.length),bn(a,n)}},K5=class xE extends rn{constructor(t,n){if(super(),this.webcamVideoElement=t,this.webcamConfig=n,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 a=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,r=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-a)/2,i=(1-r)/2,o=s+a,l=r+i;this.cropBox=Ea([i,s,l,o],[1,4])}else this.cropBox=Ea([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,n={}){if(!G().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!n.resizeWidth||!n.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=n.resizeWidth,t.height=n.resizeHeight}let a=new xE(t,n);return await a.start(),a}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=jo.fromPixels(this.webcamVideoElement)}catch(n){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(n)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(n){throw new Error(`Error thrown cropping the video: ${n.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return O(()=>{let n=Gt(re(t,"float32"),0),a;a=Zn.cropAndResize(n,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let r=a.shape;return W(a,r.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.")}},vE=class{},wE=class extends rn{split(e){return new X5(this,e)}},X5=class extends wE{constructor(e,t){super(),this.upstream=e,this.impl=new Y5(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Y5=class extends D1{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}},Z5=class extends rn{decodeUTF8(){return new J5(this)}},J5=class extends wE{constructor(e){super(),this.upstream=e,this.impl=new Q5(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Q5=class extends D1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=FS();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},kE=class extends Z5{constructor(e,t={}){super(),this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(G().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 eK(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=tK(e));let s=await(n||w.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new kE(i,t)}else throw new Error(s.statusText)}var tK=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 IE(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var SE=class extends vE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(IE(this.input)&&G().get("IS_NODE")){let e=kv();this.input=e.readFileSync(this.input.slice(7))}return new kE(this.input,this.options)}},NE=class extends vE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return IE(this.url)?new SE(this.url,this.fileOptions).iterator():eK(this.url,this.fileOptions)}};function nK(e,t={}){return new bE(new NE(e),t)}function aK(e){let t=$1(e);return Kn(async()=>t)}function rK(e){return Kn(async()=>{let t=await e();return $1(()=>t.next())})}async function sK(e,t){return K5.create(e,t)}async function iK(e){return j5.create(e)}var oK="4.16.0";function ge(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 lK=hr.whereImpl,R1=class TE extends Fc{nextDataId(){return TE.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ym(this,Ta())}write(t,n,a){this.firstUse&&(this.firstUse=!1,G().get("IS_NODE")&&T.warn(` + ${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=O(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{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(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Nr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Nr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>pn(r,t,n)!==void 0);if(a){let r=pn(a,t,n);return[Nr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Nr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Nr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Nr(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),u=k("name",e,t,n),p=new zq(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(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[xe(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=Vq(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=e.op==="TensorListReserve"?-1:i,l=Bq(a,r,i,o);return n.addTensorList(l),[l.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=Wq(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{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=Uq(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function VI(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=Mh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var Hq=(e,t,n,a=on)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=Mh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=VI(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=VI(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=Mh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=Mh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},jq=(e,t,n,a=on)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function gx(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 qq=async(e,t,n,a,r=on)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=gx(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=gx(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=gx(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},Kq=(e,t,n,a=on)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Xq=(e,t,n,a=on)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[pn(e.name,t,n)||r];case"Placeholder":return[pn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Nr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Nr(p));case"Snapshot":let s=k("x",e,t,n);return[Nr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(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(),O(()=>{let a=dt(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=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new Yq(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"InitializeTable":case"InitializeTableV2":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)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Jq=(e,t,n,a=on)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Qq=(e,t,n,a=on)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},e5=(e,t,n,a=on)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.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:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},t5=(e,t,n,a=on)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(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[a.batchNorm(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[a.localResponseNormalization(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[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},n5=(e,t,n,a=on)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:r,outputDenseValues:s}=a.raggedGather(k("paramsNestedSplits",e,t,n),k("paramsDenseValues",e,t,n),k("indices",e,t,n),k("outputRaggedRank",e,t,n));return r.concat(s)}case"RaggedRange":{let{rtNestedSplits:r,rtDenseValues:s}=a.raggedRange(k("starts",e,t,n),k("limits",e,t,n),k("splits",e,t,n));return[r,s]}case"RaggedTensorToTensor":return[a.raggedTensorToTensor(k("shape",e,t,n),k("values",e,t,n),k("defaultValue",e,t,n),k("rowPartitionTensors",e,t,n),k("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},a5=(e,t,n,a=on)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},r5=(e,t,n,a=on)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=w.arraysEqual(u.shape,i);if(!p&&!w.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},s5=(e,t,n,a=on)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i5=(e,t,n,a=on)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},o5=(e,t,n,a=on)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},l5=(e,t,n,a=on)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"EnsureShape":return[a.ensureShape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function UI(e,t,n,a,r=O){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>Pq(i,o,l));case"basic_math":return r(()=>Lq(i,o,l));case"control":return Gq(i,o,l);case"convolution":return r(()=>Hq(i,o,l));case"creation":return r(()=>jq(i,o,l));case"dynamic":return qq(i,o,l);case"evaluation":return r(()=>Kq(i,o,l));case"image":return r(()=>Jq(i,o,l));case"graph":return r(()=>Xq(i,o,l));case"logical":return r(()=>Qq(i,o,l));case"matrices":return r(()=>e5(i,o,l));case"normalization":return r(()=>t5(i,o,l));case"ragged":return r(()=>n5(i,o,l));case"reduction":return r(()=>a5(i,o,l));case"slice_join":return r(()=>r5(i,o,l));case"sparse":return r(()=>s5(i,o,l));case"spectral":return r(()=>i5(i,o,l));case"string":return r(()=>o5(i,o,l));case"transformation":return r(()=>l5(i,o,l));case"hash_table":return Zq(i,o,l,a);case"custom":let u=zC(i.op);if(u&&u.customExecutor)return u.customExecutor(new Oq(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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(s)?s.then(i=>[].concat(i)):[].concat(s)}var GI=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 HI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Xn(c)[0]));a=a||[];let p=new Set(a.map(c=>Xn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((Qs(c)||g5(c)||b5(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&!u.has(c.name)&&!p.has(c.name)){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function u5(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Xn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=p5(m,l);return c5(f,l),f}function p5(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var Th=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function c5(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new Th(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new Th(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new Th(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new Th(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function d5(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>Qs(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;ot[a].map(r=>r.id));this._weightIds=[].concat(...n),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let n=t.signatureKey||t.name;return t.defaultOutput?`${n}:${t.defaultOutput}`:n})}get functions(){return Object.keys(this._functions).reduce((t,n)=>(t[n]=this._functions[n].signature,t),{})}constructor(t,n){this.graph=t,this.parent=n,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(a=>{this._functionExecutorMap[a]=new oE(t.functions[a],this)})}getCompilationKey(t,n){let a=t.map(s=>s.name).sort(),r=n.map(s=>s.name).sort();return a.join(this.SEPARATOR)+"--"+r.join(this.SEPARATOR)}compile(t,n){let a=HI(t,n,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:s,syncInputs:i}=a;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 [${i}]`);if(r.length>0){let u=n.map(d=>d.name),p=Object.keys(t);throw new Error(`Cannot compute the outputs [${u}] from the provided inputs [${p}]. Missing the following inputs: [${r}]`)}let o=u5(this.graph,a),l=d5(o);return{orderedNodes:o,nodeLiveUntilMap:l}}cloneAndKeepTensor(t){if(t==null)return null;let n=t.clone();return Ht(n),n}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([n,a])=>[n,this.cloneTensorList(a)]))}execute(t,n){this.disposeIntermediateTensors(),t=this.mapInputs(t);let a=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n);let r=a.map(c=>this.graph.nodes[Xn(c)[0]]),s=n.map(c=>Xn(c)[0]),i=new Set(s),o=s.map(c=>this.graph.nodes[c]);o.length===0&&(o=this._outputs);let l=this.getCompilationKey(r,o),u=this.compiledMap.get(l);u==null&&(u=this.compile(t,o),this.compiledMap.set(l,u));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let p={},d={};return O(()=>{let c=new GI(this.weightMap,p,d,this.functionExecutorMap,this.parseNodeNameCache),h=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(b=>{let[y,x]=Xn(b,c),v=[];v[x]=t[b],h[y]=v,this.keepIntermediateTensors&&(this.clonedTensorsMap[y]=this.cloneTensorList(v))});let m=this.getFrozenTensorIds(h),{orderedNodes:f,nodeLiveUntilMap:g}=u;for(let b of f){if(h[b.name])continue;let y=UI(b,h,c,this._resourceManager);if(w.isPromise(y))throw new Error(`The execution of the op '${b.op}' returned a promise. Please use model.executeAsync() instead.`);h[b.name]=y,this.keepIntermediateTensors&&(this.clonedTensorsMap[b.name]=this.cloneTensorList(y)),this.checkTensorForDisposalWithNodeLiveUntilInfo(b,h,c,m,i,g.get(b.name))}return this.parent==null&&c.dispose(m),n.map(b=>pn(b,h,c))})}getFrozenTensorIds(t){let n=[].concat.apply([],Object.keys(t).map(a=>t[a]).map(a=>a.map(r=>r.id)));return new Set(n)}checkTensorForDisposal(t,n,a,r,s,i,o){if(!(Qs(n)||i.has(t))){for(let l of a[t])l!=null&&(o[l.id]=(o[l.id]||0)+n.children.length);for(let l of n.inputs){if(Qs(l))continue;let u=LI(l.name,a,r);if(u!=null)for(let p of u){if(!p||p.kept||s.has(p.id))continue;let d=o[p.id];d===1?(p.dispose(),delete o[p.id]):d!=null&&o[p.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,n,a,r,s,i){function o(l){return Qs(l)||s.has(l.name)}if(!(Qs(t)||i==null))for(let l of i){if(o(l))continue;let u=LI(l.name,n,a);for(let p of u)!p||p.kept||r.has(p.id)||p.dispose()}}async executeAsync(t,n){return this._executeAsync(t,n)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let n of t)n&&!n.isDisposed&&n.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,n,a=!1,r={},s={}){this.disposeIntermediateTensors(),a||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let i=new GI(this.weightMap,r,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let o=await this.executeWithControlFlow(t,i,n,a),l=n.map(c=>pn(c,o,i)),u=l.map(c=>c.id),p=Object.keys(t).map(c=>t[c].id),d=new Set([...u,...p,...this.weightIds]);return Object.values(o).forEach(c=>{c.forEach(h=>{h&&!h.isDisposed&&!d.has(h.id)&&h.dispose()})}),this.parent==null&&i.dispose(d),l}async executeFunctionAsync(t,n,a){let r=t.reduce((s,i,o)=>(s[this.inputs[o].name]=i,s),{});return this._executeAsync(r,this.outputNodes,!0,n,a)}async executeWithControlFlow(t,n,a,r){let s=Object.keys(t),i=s.map(v=>this.graph.nodes[Xn(v)[0]]),o=a.map(v=>Xn(v)[0]),l=new Set(o),u=o.map(v=>this.graph.nodes[v]);u.length===0&&(u=this._outputs);let{usedNodes:p,missingInputs:d,dynamicNode:c,syncInputs:h}=HI(t,u,this.weightMap,this._initNodes),m=[...i,...this.graph.weights,...this._initNodes||[]].map(v=>({node:v,contexts:n.currentContext})),f=Object.assign({},this.weightMap);Object.keys(t).forEach(v=>{let[I,N]=Xn(v),C=[];C[N]=t[v],f[I]=C});let g={},b=this.getFrozenTensorIds(f),y={};for(;m.length>0;){let v=this.processStack(i,m,n,f,y,b,l,g,p);await Promise.all(v)}c==null&&!r&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let x=u.filter(v=>!Qs(v)&&!pn(v.name,f,n)).map(v=>v.name);if(x.length>0){let v="";throw c!=null&&(v=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${x}] from the provided inputs [${s}]. Consider providing the following inputs: [${d}]. ${v}`)}return f}processStack(t,n,a,r,s,i,o,l,u){let p=[];for(;n.length>0;){let d=n.pop();a.currentContext=d.contexts;let c="";if(d.node.op==="Enter"&&k("isConstant",d.node,r,a)&&([c]=Sr(d.node.name,a)),r[d.node.name]==null){let h=UI(d.node,r,a,this._resourceManager);c||([c]=Sr(d.node.name,a));let m=a.currentContext;w.isPromise(h)?p.push(h.then(f=>(r[c]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(f)),a.currentContext=m,this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u),f))):(r[c]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(h)),this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u))}else this.processChildNodes(d.node,n,a,r,s,u)}return p}processChildNodes(t,n,a,r,s,i){t.children.forEach(o=>{let[l]=Sr(o.name,a);s[l]||!i.has(o.name)||(o.op==="Merge"?o.inputNames.some(u=>!!pn(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})):o.inputNames.every(u=>!!pn(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(n=>n.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(n=>{let a=t[n],[r]=Xn(n),s=this.graph.nodes[r];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,o=i.length===a.shape.length&&a.shape.every((l,u)=>i[u]===-1||i[u]===l);w.assert(o,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${a.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&w.assert(a.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${a.dtype}`)})}mapInputs(t){var n,a;let r={};for(let s in t){let i=(a=(n=this._signature)===null||n===void 0?void 0:n.inputs)===null||a===void 0?void 0:a[s];i!=null?r[i.name]=t[s]:r[s]=t[s]}return r}checkInputs(t){let n=Object.keys(t).filter(a=>{let[r]=Xn(a);return this.graph.nodes[r]==null});if(n.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${n}] that are not part of graph`)}mapOutputs(t){return t.map(n=>{var a,r;let s=(r=(a=this._signature)===null||a===void 0?void 0:a.outputs)===null||r===void 0?void 0:r[n];return s!=null?s.name:n},{})}checkOutputs(t){t.forEach(n=>{let[a]=Xn(n);if(!this.graph.nodes[a])throw new Error(`The output '${n}' is not found in the graph`)})}},y5=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]}},x5="?tfjs-format=file",v5="model.json",F1=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(e,t={},n=jt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new y5}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.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]}}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=this.handler.load();return w.isPromise(e)?e.then(t=>t.getWeightStream==null?this.loadSync(t):this.loadStreaming(t)):this.loadSync(e)}loadSync(e){let t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(e.getWeightStream==null)throw new Error("Model artifacts missing streamWeights function");let t=await pN(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;let n=this.artifacts.modelTopology,a=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(a=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}if(this.signature=a,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new jI(zI.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=zI.Instance.transformGraph(e.modelInitializer);this.initializer=new jI(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.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)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof Ce?[e]:e,n={};return t.forEach((a,r)=>n[this.structuredOutputKeys[r]]=a),n}return e}predict(e,t){let n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){let n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Ce)&&!Array.isArray(e)){let r=(t=this.signature)===null||t===void 0?void 0:t.inputs;if(r!=null)for(let s in r){let i=r[s];i.resourceId!=null&&(e[s]=this.resourceIdToCapturedInput[i.resourceId])}return e}e=Array.isArray(e)?e:[e];let n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let a=0;return this.inputNodes.reduce((r,s)=>{var i,o,l;let u=(l=(o=(i=this.signature)===null||i===void 0?void 0:i.inputs)===null||o===void 0?void 0:o[s])===null||l===void 0?void 0:l.resourceId;return u!=null?r[s]=this.resourceIdToCapturedInput[u]:r[s]=e[a++],r},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,n=Object.keys(t);for(let a=0;a1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Ee(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function w5(e,t={},n=jt){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&&typeof e=="string"&&(e=I5(e));let a=new F1(e,t,n);return await a.load(),a}function k5(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=jt.getWeightSpecs(a.weightsManifest),i=jt.getModelArtifactsForJSONSync(a,s,r);t=jt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=jt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new F1(t);return n.load(),n}function I5(e){return e.endsWith("/")||(e=e+"/"),`${e}${v5}${x5}`}var S5="4.21.0",lE={};_e(lE,{CSVDataset:()=>xE,Dataset:()=>ip,FileDataSource:()=>TE,TextLineDataset:()=>yE,URLDataSource:()=>CE,array:()=>q5,csv:()=>i8,func:()=>o8,generator:()=>l8,microphone:()=>p8,version_data:()=>c8,webcam:()=>u8,zip:()=>K5});var N5=xs(bm()),T5=xs(bm());function C5(e,t){return om(e,t)}function om(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();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(Hl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=om(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function E5(e,t=pE){return uE(e,t)}function uE(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(Hl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=uE(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 pE(e){return e===null?null:Hl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function cE(e,t){let n=new Map;om(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 om(e,t,n)}function Hl(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=FS();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ce)&&!(e instanceof Promise)&&!t)}function _5(e){return e==null||A5(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ce||w.isTypedArray(e)}function A5(e){return e===null||typeof e!="object"&&typeof e!="function"}function F5(e){return C5(e,$5)}function $5(e){return e instanceof Ce?{value:e.clone(),recurse:!1}:Hl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var dE=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}},hE=class mE extends dE{constructor(){super(mE.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,n=new Array(t),a=this.length();for(let r=0;rt===!0)}rowMajorBatch(e,t=!0){return new W5(this,e,t)}columnMajorBatch(e,t=!0,n=pE){return this.rowMajorBatch(e,t).map(a=>E5(a,n))}concatenate(e,t){return new gE(fE([this,e]),t)}take(e){return e<0||e==null?this:new z5(this,e)}skip(e){return e<0||e==null?this:new L5(this,e)}prefetch(e){return new bE(this,e)}shuffle(e,t){return new j5(this,e,t)}serial(){return new P5(this)}},M5=class extends sn{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:F5(e),done:!1}}},O5=class extends sn{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}}},P5=class extends sn{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()}},L5=class extends sn{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()}},W5=class extends sn{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}}},B5=class extends sn{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)}}},V5=class extends sn{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},U5=class extends sn{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}}}},qI=class extends sn{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=Wa.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},D1=class extends sn{constructor(){super(),this.outputQueue=new hE,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}}},G5=class extends D1{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return!0}},gE=class extends sn{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}},es;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(es||(es={}));var H5=class extends sn{constructor(e,t=es.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 sn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await cE(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case es.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case es.SHORTEST:return{value:null,done:!0};case es.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},bE=class extends sn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new dE(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()}},j5=class extends bE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=T5.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}}},ip=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===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Kn(async()=>(await n.iterator()).columnMajorBatch(e,t,X5),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Kn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Kn(async()=>(await t.iterator()).filter(a=>O(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Kn(async()=>(await t.iterator()).map(n=>O(()=>e(n))),this.size)}mapAsync(e){let t=this;return Kn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Kn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Kn(async()=>{let a=$1(async()=>({value:await t.iterator(),done:!1}));return D5(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=N5.alea(t||w.now().toString());return Kn(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,Kn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};ip.MAX_BUFFER_SIZE=1e4;function Kn(e,t=null){return new class extends ip{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function q5(e){return Kn(async()=>fE(e),e.length)}function K5(e){if(!Hl(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 cE(e,a=>{if(a instanceof ip)return{value:a.iterator(),recurse:!1};if(Hl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return R5(n,es.SHORTEST)},t)}function X5(e){if(e===null)return null;let t=e[0];return _5(t)?{value:Y5(e),recurse:!1}:{value:null,recurse:!0}}function Y5(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ce?At(e):bn(e)}var yE=class extends ip{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))}},Ch='"',Jp=Symbol("out"),KI=Symbol("field"),Eh=Symbol("quote"),bx=Symbol("quoteafterquote"),XI=Symbol("quoteinquote"),xE=class extends ip{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&w.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(w.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new yE(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(w.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(n))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let n=new vE(t);return await n.start(),n}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(a){throw new Error(`Error thrown while initializing video stream: ${a.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 n=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,n.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 t,n,a=await this.getAudioData();if(this.includeSpectrogram){let r=this.flattenQueue(a.freqDataQueue);t=this.getTensorFromAudioDataArray(r,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let r=this.flattenQueue(a.timeDataQueue);n=this.getTensorFromAudioDataArray(r,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:n},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],n=[],a=0;return new Promise(r=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:t,timeDataQueue:n}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),n.push(this.timeData.slice())),++a===this.numFrames&&(clearInterval(s),r({freqDataQueue:t,timeDataQueue:n}))},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(t){let n=t[0].length,a=new Float32Array(t.length*n);return t.forEach((r,s)=>a.set(r,s*n)),a}getTensorFromAudioDataArray(t,n){let a=new Float32Array(w.sizeFromShape(n));return a.set(t,a.length-t.length),bn(a,n)}},J5=class wE extends sn{constructor(t,n){if(super(),this.webcamVideoElement=t,this.webcamConfig=n,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=je([0],"int32"),this.webcamConfig.centerCrop){let a=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,r=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-a)/2,i=(1-r)/2,o=s+a,l=r+i;this.cropBox=Ea([i,s,l,o],[1,4])}else this.cropBox=Ea([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,n={}){if(!G().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!n.resizeWidth||!n.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=n.resizeWidth,t.height=n.resizeHeight}let a=new wE(t,n);return await a.start(),a}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=qo.fromPixels(this.webcamVideoElement)}catch(n){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(n)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(n){throw new Error(`Error thrown cropping the video: ${n.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return O(()=>{let n=Gt(re(t,"float32"),0),a;a=Zn.cropAndResize(n,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let r=a.shape;return W(a,r.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.")}},kE=class{},IE=class extends sn{split(e){return new Q5(this,e)}},Q5=class extends IE{constructor(e,t){super(),this.upstream=e,this.impl=new e8(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},e8=class extends D1{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}},t8=class extends sn{decodeUTF8(){return new n8(this)}},n8=class extends IE{constructor(e){super(),this.upstream=e,this.impl=new a8(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},a8=class extends D1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=FS();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},SE=class extends t8{constructor(e,t={}){super(),this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(G().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 r8(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=s8(e));let s=await(n||w.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new SE(i,t)}else throw new Error(s.statusText)}var s8=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 NE(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var TE=class extends kE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(NE(this.input)&&G().get("IS_NODE")){let e=Iv();this.input=e.readFileSync(this.input.slice(7))}return new SE(this.input,this.options)}},CE=class extends kE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return NE(this.url)?new TE(this.url,this.fileOptions).iterator():r8(this.url,this.fileOptions)}};function i8(e,t={}){return new xE(new CE(e),t)}function o8(e){let t=$1(e);return Kn(async()=>t)}function l8(e){return Kn(async()=>{let t=await e();return $1(()=>t.next())})}async function u8(e,t){return J5.create(e,t)}async function p8(e){return Z5.create(e)}var c8="4.21.0";function ge(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 d8=mr.whereImpl,R1=class EE extends Fc{nextDataId(){return EE.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ym(this,Ta())}write(t,n,a){this.firstUse&&(this.firstUse=!1,G().get("IS_NODE")&&T.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let r={id:this.nextDataId()};return this.data.set(r,{values:t,dtype:a,refCount:1}),r}makeTensorInfo(t,n,a){let r;if(n==="string"&&a!=null&&a.length>0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return{dataId:r,shape:t,dtype:n}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let n=this.data.get(t);n.refCount++}decRef(t){if(this.data.has(t)){let n=this.data.get(t);n.refCount--}}move(t,n,a,r,s){this.data.set(t,{values:n,dtype:r,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:n,complexTensorInfos:a}=this.data.get(t);if(n==="complex64"){let r=this.readSync(a.real.dataId),s=this.readSync(a.imag.dataId);return T.mergeRealAndImagArrays(r,s)}return w.convertBackendValuesAndArrayBuffer(this.data.get(t).values,n)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Oe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(t.shape,t.dtype,n)}makeOutput(t,n,a){return Ta().makeTensorFromTensorInfo(this.makeTensorInfo(n,a,t),this)}disposeData(t,n=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!n&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:a}=this.data.get(t);a!=null&&(this.disposeData(a.real.dataId,!0),this.disposeData(a.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let n=w.now();return t(),{kernelMs:w.now()-n}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){ge([t],"where");let n=this.readSync(t.dataId);return lK(t.shape,n)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};R1.nextDataId=0;var M1={};_e(M1,{addImpl:()=>_E,bincountImpl:()=>P1,bincountReduceImpl:()=>AE,bitwiseAndImpl:()=>FE,castImpl:()=>EE,ceilImpl:()=>$E,concatImpl:()=>L1,equalImpl:()=>DE,expImpl:()=>ME,expm1Impl:()=>PE,floorDivImpl:()=>zE,floorImpl:()=>LE,gatherNdImpl:()=>WE,gatherV2Impl:()=>BE,greaterEqualImpl:()=>UE,greaterImpl:()=>VE,lessEqualImpl:()=>HE,lessImpl:()=>GE,linSpaceImpl:()=>qE,logImpl:()=>jE,maxImpl:()=>KE,maximumImpl:()=>XE,minimumImpl:()=>YE,multiplyImpl:()=>z1,negImpl:()=>ZE,notEqualImpl:()=>JE,prodImpl:()=>QE,raggedGatherImpl:()=>e_,raggedRangeImpl:()=>t_,raggedTensorToTensorImpl:()=>n_,rangeImpl:()=>B1,rsqrtImpl:()=>a_,scatterImpl:()=>ti,sigmoidImpl:()=>o8,simpleAbsImpl:()=>CE,sliceImpl:()=>um,sparseFillEmptyRowsImpl:()=>s_,sparseReshapeImpl:()=>i_,sparseSegmentReductionImpl:()=>V1,sqrtImpl:()=>p8,squaredDifferenceImpl:()=>o_,staticRegexReplaceImpl:()=>l_,stridedSliceImpl:()=>u_,stringNGramsImpl:()=>U1,stringSplitImpl:()=>G1,stringToHashBucketFastImpl:()=>H1,subImpl:()=>p_,tileImpl:()=>c_,topKImpl:()=>h_,transposeImpl:()=>W1,uniqueImpl:()=>j1});function CE(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=CE(r),n.makeOutput(a,t.shape,t.dtype)},pK={kernelName:Yl,backendName:"cpu",kernelFunc:uK};function Mt(e){return(t,n,a,r,s)=>{let i=T.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),u=w.sizeFromShape(i),p=w.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=T.getBroadcastDims(t,i),g=T.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[C]=0);let v=w.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let N=w.locToIndex(I,c,m);p[b]=e(a[v],r[N])}return[p,i]}}function Yn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var cK={kernelName:wm,backendName:"cpu",kernelFunc:Yn};function lm(e,t,n="float32"){if(n==="complex64"){let r=lm(e,t,"float32"),s=lm(e,t,"float32");return Yn({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function pr(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 dK={kernelName:eo,backendName:"cpu",kernelFunc:pr};function yi(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 hK={kernelName:Dm,backendName:"cpu",kernelFunc:yi};function EE(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=w.toTypedArray([0],n),[s,i]=Mt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function gs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return pr({inputs:{x:r},backend:n});let p=lm(n,r.shape,r.dtype),d=gs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Yn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=yi({inputs:{input:r},backend:n}),d=gs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!w.hasEncodingLoss(r.dtype,s)){let p=pr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=EE(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var mK={kernelName:Mi,backendName:"cpu",kernelFunc:gs};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?T.fromUint8ToStringArray(u):u,c=i.dtype==="string"?T.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=gs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=gs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,v=l.data.get(y.dataId).values,[I,N,C]=n(i.shape,o.shape,h,m,x,v),_=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",N),D=Yn({inputs:{real:_,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(_),l.disposeIntermediateTensorInfo(F),D}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function O1(e){return(t,n,a,r,s,i)=>{let o=T.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),u=o.length,p=w.computeStrides(o),d=w.getTypedArrayFromDType("float32",l),c=w.getTypedArrayFromDType("float32",l),h=T.getBroadcastDims(t,o),m=T.getBroadcastDims(n,o),f=T.mergeRealAndImagArrays(a,r),g=T.mergeRealAndImagArrays(s,i),b=t.length,y=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let _=w.locToIndex(C,b,y),F=N.slice(-x);m.forEach(S=>F[S]=0);let D=w.locToIndex(F,x,v),$=e(f[_*2],f[_*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var _E=Mt((e,t)=>e+t),fK=O1((e,t,n,a)=>({real:e+n,imag:t+a})),ql=Zt(xs,_E,fK),gK={kernelName:xs,backendName:"cpu",kernelFunc:ql};function P1(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 AE(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Oe([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}var FE=Mt((e,t)=>e&t),bK=Zt(ru,FE),yK={kernelName:ru,backendName:"cpu",kernelFunc:bK};function mr(e){return(t,n,a)=>{let r=w.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=T.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var $E=mr(e=>Math.ceil(e)),xK=As(Oi,$E),vK={kernelName:Oi,backendName:"cpu",kernelFunc:xK};function L1(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"?T.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),RE=Zt(du,DE,null,"bool"),wK={kernelName:du,backendName:"cpu",kernelFunc:RE},ME=mr(e=>Math.exp(e)),OE=As(Ki,ME,"float32"),kK={kernelName:Ki,backendName:"cpu",kernelFunc:OE},PE=mr(e=>Math.expm1(e)),IK=As(Xi,PE),SK={kernelName:Xi,backendName:"cpu",kernelFunc:IK},LE=mr(e=>Math.floor(e)),NK=As(Yi,LE),TK={kernelName:Yi,backendName:"cpu",kernelFunc:NK},zE=Mt((e,t)=>Math.floor(e/t)),CK=Zt(Zi,zE,null,"int32"),EK={kernelName:Zi,backendName:"cpu",kernelFunc:CK};function WE(e,t,n,a,r,s,i,o,l){let u=Oe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),_K=Zt(bu,VE,null,"bool"),AK={kernelName:bu,backendName:"cpu",kernelFunc:_K},UE=Mt((e,t)=>e>=t?1:0),FK=Zt(Qi,UE,null,"bool"),$K={kernelName:Qi,backendName:"cpu",kernelFunc:FK},GE=Mt((e,t)=>ee<=t?1:0),MK=Zt(xu,HE,null,"bool"),OK={kernelName:xu,backendName:"cpu",kernelFunc:MK};function qE(e,t,n){let a=(t-e)/(n-1),r=w.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),PK=As(so,jE),LK={kernelName:so,backendName:"cpu",kernelFunc:PK};function KE(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var XE=Mt((e,t)=>Math.max(e,t)),zK=Zt(uo,XE),WK={kernelName:uo,backendName:"cpu",kernelFunc:zK},YE=Mt((e,t)=>Math.min(e,t)),BK=Zt(mo,YE),VK={kernelName:mo,backendName:"cpu",kernelFunc:BK},z1=Mt((e,t)=>e*t),UK=O1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Lf=Zt(bo,z1,UK),GK={kernelName:bo,backendName:"cpu",kernelFunc:Lf};function ZE(e,t,n){let a=w.createScalarValue(-1,n);return z1([],t,a,e,n)}function HK(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=ZE(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var qK={kernelName:Cu,backendName:"cpu",kernelFunc:HK},JE=Mt((e,t)=>e!==t?1:0),jK=Zt(Eu,JE,null,"bool"),KK={kernelName:Eu,backendName:"cpu",kernelFunc:jK};function W1(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),u=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(y)),n.makeTensorInfo(b,g,m)}var ZK={kernelName:ko,backendName:"cpu",kernelFunc:YK};function JK(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=w.indexToLoc(r,t.length,w.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function QK(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function e8(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);QK(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function YI(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&yb)v=0;else if(v=Math.ceil(Math.abs((y-b)/x)),v>ZI)throw new Error(`Requires ((limit - start) / delta) <= ${ZI}`);c[g+1]=c[g]+v}let h=c[d],m=w.getArrayFromDType(n,h),f=0;for(let g=0;ga&&(a=s)}return a}static getMaxWidthValueRowID(t){let n=t.length;if(n===0)return 0;let a=0,r=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,n,a,r){let s=t.length,i=[];for(let o=0;o0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,n,a,r){let s=t.length,i=[];if(s===0)return[];let o=0,l=t[0];if(l>=n.length)throw new Error(`Got currentValueRowId=${l}, which is not less than ${n.length}`);let u=n[l];i.push(u);for(let p=1;p=0&&(++o,o=n.length)throw new Error(`Got nextValueRowId=${d} which is not less than ${n.length}`);u=n[d]}i.push(u)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,n,a,r){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Na.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,n,a,r);case Na.ROW_SPLITS:if(s.length-1>n.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${n.length}`);return this.calculateOutputIndexRowSplit(s,n,a,r);default:throw new Error(`Unsupported partition type: ${Na[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let n=this.rowPartitionTypes[0];switch(n){case Na.FIRST_DIM_SIZE:return t[0];case Na.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Na.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Na[n]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let t=this.getFirstDimensionSize(),n=this.calculateOutputSize(t),a=new Array(this.raggedRank+1);a[a.length-1]=1;for(let i=a.length-2;i>=0;--i)a[i]=a[i+1]*n[i+1];let r=QI(n,!1),s=w.getArrayFromDType(this.valuesDType,w.sizeFromShape(r));if(a[0]*n[0]>0){let i=this.calculateFirstParentOutputIndex(t,a[0],n[0]);for(let o=1;o<=this.raggedRank;++o)i=this.calculateOutputIndex(o-1,i,a[o],n[o]);this.setOutput(this.raggedRank,i,s,r)}return[r,s]}setOutput(t,n,a,r){if(a.length===0)return;let s=this.values,i=a,o=r.slice();o=o.slice(t+1);let l=w.sizeFromShape(o),u=n.length,p=this.defaultValue;if(p.length!==l&&p.length!==1){let m=this.defaultValueShape;O(()=>{let f=W(p,m);p=ni(f,o).dataSync()})}let d=0,c=0,h=0;for(let m=0;m<=u;++m){let f=m=u){let g=a.length;f=Math.floor(g/l)}if(f>h)if(this.defaultValue.length===1)i.subarray(h*l,f*l).fill(this.defaultValue[0]),h=f;else for(;f>h;){let g=i.slice(h*l);JI(g,p,l),++h}f<0?(d=m+1,c=h):(d=m,c=h,h=c+1)}}};function JI(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function n_(e,t,n,a,r,s,i,o,l,u){return new r8(e,t,n,a,r,s,i,o,l,u).compute()}function B1(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)),s8=As(Ao,a_),i8={kernelName:Ao,backendName:"cpu",kernelFunc:s8};function ti(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Oe(n,t.dtype);let h=l instanceof Wt?l:Oe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let b=0;b1/(1+Math.exp(-e))),r_=lt(Mo,e=>1/(1+Math.exp(-e))),l8={kernelName:Mo,backendName:"cpu",kernelFunc:r_};function um(e,t,n,a,r){let s=Kt.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let d=Kt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?T.fromUint8ToStringArray(e):e,u=Oe(a,r,l),p=Oe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?T.fromStringArrayToUint8(p.values):p.values}function xi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Kt.parseSliceParams(r,s,i);Kt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=um(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var u8={kernelName:Bu,backendName:"cpu",kernelFunc:xi};function s_(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(T.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=w.getArrayFromDType(n,0),b=w.getArrayFromDType(r,0);return[g,[0,d],b,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(T.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=w.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((y,x)=>y*x,1),h=w.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,b=r[m];for(;;){let y=0;if(f=y)throw new Error(T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*u);for(let x=m;x=l[0])throw new Error(T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),c8=lt(Po,e=>Math.sqrt(e)),d8={kernelName:Po,backendName:"cpu",kernelFunc:c8},o_=Mt((e,t)=>{let n=e-t;return n*n}),h8=Zt(Wo,o_),m8={kernelName:Wo,backendName:"cpu",kernelFunc:h8},l_=mr((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),f8=As(Kc,l_),g8={kernelName:Kc,backendName:"cpu",kernelFunc:f8};function u_(e,t,n,a){let r=Oe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=w.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth;this.createNGrams(e,l,i,u,1,d)}}return[i,s]}};function U1(e,t,n,a,r,s,i,o){return new b8(n,a,r,s,i,o).compute(e,t)}function y8(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),x8=O1((e,t,n,a)=>({real:e-n,imag:t-a})),q1=Zt(Bo,p_,x8),v8={kernelName:Bo,backendName:"cpu",kernelFunc:q1};function c_(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function d_(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));d_(e,t,c,h)}let r=e[t],s=n,i=a;for(w.swap(e,n,t),nc(e[a],r)>0&&w.swap(e,n,a);s0;)i=i-1}nc(e[n],r)===0?w.swap(e,n,i):(i=i+1,w.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function h_(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=w.getTypedArrayFromDType(n,i*a),u=w.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:y,index:x}),a{for(let g=0;gnew R1,1);var m_=lt(qi,e=>e>=0?e:Math.exp(e)-1),k8={kernelName:qi,backendName:"cpu",kernelFunc:m_};function f_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function g_(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=S8(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var N8={kernelName:wo,backendName:"cpu",kernelFunc:g_},b_=lt(So,e=>Math.max(0,e)),T8={kernelName:So,backendName:"cpu",kernelFunc:b_},y_=lt(Co,e=>Math.min(Math.max(0,e),6)),C8={kernelName:Co,backendName:"cpu",kernelFunc:y_};function pm(e,t,n,a,r){if(n==="linear")return pr({inputs:{x:t},backend:e});if(n==="relu")return b_({inputs:{x:t},backend:e});if(n==="elu")return m_({inputs:{x:t},backend:e});if(n==="relu6")return y_({inputs:{x:t},backend:e});if(n==="prelu")return g_({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return f_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return r_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(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 u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var E8={kernelName:Ru,backendName:"cpu",kernelFunc:xt};function x_(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),N=xt({inputs:{x:s},backend:n,attrs:{shape:v}}),C=i?I.shape[1]:I.shape[2],_=i?I.shape[2]:I.shape[1],F=o?N.shape[1]:N.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(N.dataId).values,M=w.computeStrides(I.shape),B=w.computeStrides(N.shape),[U,H,j]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=_*F,ae=Oe([D,_,F],I.dtype),te=ae.values,se=n.blockSize;for(let ie=0;ieMath.acos(e)),D8={kernelName:Ni,backendName:"cpu",kernelFunc:$8},R8=lt(Ti,e=>Math.acosh(e)),M8={kernelName:Ti,backendName:"cpu",kernelFunc:R8};function O8(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Oe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var U8={kernelName:Ql,backendName:"cpu",kernelFunc:V8};function G8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Bn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],T.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=T.computeOutAndReduceShapes(l.shape,i),c=w.sizeFromShape(p),h=w.makeZerosTypedArray(c,"int32"),m=w.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var H8={kernelName:eu,backendName:"cpu",kernelFunc:G8},q8=lt(Ei,e=>Math.asin(e)),j8={kernelName:Ei,backendName:"cpu",kernelFunc:q8},K8=lt(_i,e=>Math.asinh(e)),X8={kernelName:_i,backendName:"cpu",kernelFunc:K8},Y8=lt(Ai,e=>Math.atan(e)),Z8={kernelName:Ai,backendName:"cpu",kernelFunc:Y8},J8=Mt((e,t)=>Math.atan2(e,t)),Q8=Zt($i,J8),eX={kernelName:$i,backendName:"cpu",kernelFunc:Q8},tX=lt(Fi,e=>Math.atanh(e)),nX={kernelName:Fi,backendName:"cpu",kernelFunc:tX};function K1(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Oe(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vj?j=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(j))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:j}}}return f}function v_(e,t,n,a,r=!1,s=!1){let i=Oe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Oe(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,N,b)}}return i}function w_(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Oe(r.outShape,n),v=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],N=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],_=r.outShape[4];for(let F=0;Fye?ye=gt:s==="avg"&&(ke+=gt,Se++),isNaN(ye))break}if(isNaN(ye))break}if(isNaN(ye))break}let Le=ue+S;v[Le]=s==="avg"?ke/Math.max(Se,1):ye}}}}return x}function aX(e,t){let n=Oe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function rX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=K1(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var sX={kernelName:Di,backendName:"cpu",kernelFunc:rX};function iX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=w_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var oX={kernelName:tu,backendName:"cpu",kernelFunc:iX};function lX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,v=p.effectiveFilterDepth,I=p.effectiveFilterHeight,N=p.effectiveFilterWidth,C=v-1-p.padInfo.front,_=N-1-p.padInfo.left,F=I-1-p.padInfo.top,D=Oe(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let se=0;se=p.outHeight||Math.floor(ie)!==ie))for(let xe=0;xe=p.outWidth||Math.floor(ue)!==ue)continue;let ye=S.get(M,te,ie,ue,B);ee+=ye}}}D.set(ee*$,M,U,H,j,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var uX={kernelName:Rc,backendName:"cpu",kernelFunc:lX};function pX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,v=b-1-p.padInfo.top,I=Oe(i.shape,"float32"),N=1/(h*m),C=n.data.get(r.dataId).values,_=Oe(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(j)!==j))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=_.get(F,j,Z,D);U+=J}}I.set(U*N,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var cX={kernelName:Dc,backendName:"cpu",kernelFunc:pX};function dX(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."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=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(p.length),g=m.length,b=h.length,y=c.length,x=d.length,v=0,I=0,N=0,C=0;for(let _=0;_=g&&(v=0),I>=x&&(I=0),N>=b&&(N=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var hX={kernelName:Ji,backendName:"cpu",kernelFunc:dX};function mX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Bn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=xi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var fX={kernelName:nu,backendName:"cpu",kernelFunc:mX};function gX(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=P1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var bX={kernelName:au,backendName:"cpu",kernelFunc:gX};function yX(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var xX={kernelName:Mc,backendName:"cpu",kernelFunc:yX},vX=lt(vs,(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 u=0;uf.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(f=>f.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>w.sizeFromShape(f.shape)>0);if(l.length===1)return pr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(v=>yi({inputs:{input:v},backend:n})),g=l.map(v=>jl({inputs:{input:v},backend:n})),b=Kl({inputs:f,backend:n,attrs:{axis:s}}),y=Kl({inputs:g,backend:n,attrs:{axis:s}}),x=Yn({inputs:{real:b,imag:y},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,w.sizeFromShape(f.shape.slice(s))];return xt({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=T.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=L1(p,o,t[0].dtype,d),h=T.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var NX={kernelName:su,backendName:"cpu",kernelFunc:Kl};function k_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",v=new Wt(c.outShape,r.dtype),I=w.computeStrides(r.shape),N=w.computeStrides(s.shape),C=I[0],_=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=v.strides[0],S=x?v.strides[1]:v.strides[2],M=x?v.strides[2]:1,B=x?1:v.strides[1],U=n.data.get(r.dataId).values,H=n.data.get(s.dataId).values,j=v.values;for(let K=0;K=c.inHeight)continue;let xe=se*N[0],ue=Z+ie*_;for(let ye=0;ye=c.inWidth)continue;let mt=xe+Le*N[1],st=ue+Ue*F,tt=mt;for(let nt=0;nt=u.inDepth)continue;let K=H*F[0],Z=$+j*_[1];for(let J=0;J=u.inHeight)continue;let ie=K+te*F[1],xe=Z+se*_[2];for(let ue=0;ue=u.inWidth)continue;let Ue=ie+Se*F[2],mt=xe+Le*u.inChannels,st=Ue;for(let tt=0;ttMath.cos(e)),LX={kernelName:Wi,backendName:"cpu",kernelFunc:PX},zX=lt(Bi,e=>Math.cosh(e)),WX={kernelName:Bi,backendName:"cpu",kernelFunc:zX};function BX(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,b=Oe([m,f,g,h],"float32"),y=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,I=w.computeStrides(r.shape),N=w.computeStrides(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(j<0||j>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let xe=0;xe1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let b=0;b`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=T.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:b,padInfo:y}=h,x=y.left,v=y.top,I=h.outChannels/h.inChannels,N=new Wt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,_=n.data.get(s.dataId).values,F=N.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+j*p[1];for(let J=0;J=h.inWidth)continue;let ie=K+te*d[1],xe=Z+se*h.inChannels,ue=ee,ye=ie;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:b,outWidth:y,padInfo:x,strideHeight:v,strideWidth:I,filterHeight:N,filterWidth:C,dilationHeight:_,dilationWidth:F,outShape:D}=T.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=w.sizeFromShape(D),S=D.length,M=w.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&ieJ&&(J=ye)}}}let ee=w.locToIndex([B,U,j,Z],S,w.computeStrides(D));M[ee]=J}}}return{dataId:l.write(w.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},sY={kernelName:Rl,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Rl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ee,J=te)}}}$[Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},iY={kernelName:Dl,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Dl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ae,J=se)}}}$[S][Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function oY(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{canvas:s,options:i}=a,{contextOptions:o,imageOptions:l}=i||{},u=(l==null?void 0:l.alpha)||1,p=(o==null?void 0:o.contextType)||"2d";if(p!=="2d")throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);let d=s.getContext(p,(o==null?void 0:o.contextAttributes)||{});if(d==null)throw new Error(`Could not get the context with ${p} type.`);let[c,h]=r.shape.slice(0,2),m=r.shape.length===2?1:r.shape[2],f=n.data.get(r.dataId).values,g=r.dtype==="float32"?255:1,b=new Uint8ClampedArray(h*c*4);for(let x=0;x1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${C}.`)}else if(r.dtype==="int32"&&(C<0||C>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${C}.`);m===1?(v[0]=C*g,v[1]=C*g,v[2]=C*g):v[N]=C*g}let I=x*4;b[I+0]=Math.round(v[0]),b[I+1]=Math.round(v[1]),b[I+2]=Math.round(v[2]),b[I+3]=Math.round(v[3])}s.width=h,s.height=c;let y=new ImageData(b,h,c);return d.putImageData(y,0,0),r}var lY={kernelName:Nm,backendName:"cpu",kernelFunc:oY};function Ed(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=gs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=pr({inputs:{x:r},backend:n});let l=o.shape.length,u=w.parseAxisParam(s,o.shape),p=T.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Bn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=T.getInnerMostAxes(d.length,l)),T.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=T.computeOutAndReduceShapes(c.shape,d),f=T.upcastType(c.dtype,"int32"),g=lm(n,h,f),b=w.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let v=0;v=0&&(c=Ed({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var cY={kernelName:Tm,backendName:"cpu",kernelFunc:pY};function dY(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([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=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var hY={kernelName:cu,backendName:"cpu",kernelFunc:dY},mY=T.ERF_P,fY=T.ERF_A1,gY=T.ERF_A2,bY=T.ERF_A3,yY=T.ERF_A4,xY=T.ERF_A5,vY=lt(ji,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+mY*n);return t*(1-((((xY*a+yY)*a+bY)*a+gY)*a+fY)*a*Math.exp(-n*n))}),wY={kernelName:ji,backendName:"cpu",kernelFunc:vY};function cm(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),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var kY={kernelName:hu,backendName:"cpu",kernelFunc:cm},IY=Mt((e,t)=>e/t),X1=Zt(Hi,IY),ov={kernelName:Hi,backendName:"cpu",kernelFunc:X1};function S_(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],p=w.sizeFromShape(u),d=w.getTypedArrayFromDType("float32",p),c=w.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&y=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=w.sizeFromShape(s.shape),h=T.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=BE(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var zY={kernelName:fu,backendName:"cpu",kernelFunc:LY};function WY(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=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=S_(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var BY={kernelName:Em,backendName:"cpu",kernelFunc:WY},VY=lt(to,e=>Number.isFinite(e)?1:0,"bool"),UY={kernelName:to,backendName:"cpu",kernelFunc:VY},GY=lt(no,e=>Math.abs(e)===1/0?1:0,"bool"),HY={kernelName:no,backendName:"cpu",kernelFunc:GY},qY=lt(ao,e=>Number.isNaN(e)?1:0,"bool"),jY={kernelName:ao,backendName:"cpu",kernelFunc:qY};function KY(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=qE(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var XY={kernelName:vu,backendName:"cpu",kernelFunc:KY},YY=lt(io,e=>Math.log1p(e)),ZY={kernelName:io,backendName:"cpu",kernelFunc:YY},JY=Mt((e,t)=>e&&t),QY=Zt(wu,JY,null,"bool"),e7={kernelName:wu,backendName:"cpu",kernelFunc:QY},t7=lt(ku,e=>e?0:1,"bool"),n7={kernelName:ku,backendName:"cpu",kernelFunc:t7},a7=Mt((e,t)=>e||t),r7=Zt(Iu,a7,null,"bool"),s7={kernelName:Iu,backendName:"cpu",kernelFunc:r7};function i7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=w.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let v=d[b];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 p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=K1(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var d7={kernelName:po,backendName:"cpu",kernelFunc:c7};function h7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=w_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var m7={kernelName:Nu,backendName:"cpu",kernelFunc:h7};function f7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=aX(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,v=p.effectiveFilterHeight,I=p.effectiveFilterWidth,N=x-1-p.padInfo.front,C=I-1-p.padInfo.left,_=v-1-p.padInfo.top,F=Oe(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let se=0;se=p.outWidth||Math.floor(ie)!==ie)continue;let xe=x*v*I-1-c.get($,ee,te,ie,S),ue=J*v*I+ae*I+se,ye=xe===ue?1:0;if(ye===0)continue;let ke=D.get($,ee,te,ie,S);Z+=ke*ye}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var g7={kernelName:Bc,backendName:"cpu",kernelFunc:f7};function b7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=T.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Oe(c.outShape,o.dtype,v_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,v=c.effectiveFilterWidth,I=v-1-c.padInfo.left,N=x-1-c.padInfo.top,C=Oe(o.shape,"float32"),_=n.data.get(r.dataId).values,F=Oe(r.shape,"float32",_);for(let D=0;D=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*v-1-m.get(D,K,J,$),ae=j*v+Z,te=ee===ae?1:0;if(te===0)continue;let se=F.get(D,K,J,$);H+=se*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var y7={kernelName:Wc,backendName:"cpu",kernelFunc:b7};function x7(e,t,n,a,r){let s=w.computeStrides(t),i=K1(e,t,n,s,r,"max"),o=v_(e,t,n,r,!0,a);return[i.values,o.values]}var v7={kernelName:Vc,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=T.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=x7(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function w7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=w.parseAxisParam(s,r.shape),l=T.computeOutAndReduceShapes(r.shape,o)[1],u=w.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=gs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=X1({inputs:{a:c,b:d},backend:n});p.push(h);let m=Ed({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var k7={kernelName:co,backendName:"cpu",kernelFunc:w7};function I7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,u=T.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Bn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=T.getInnerMostAxes(l.length,r.shape.length)),T.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=T.computeOutAndReduceShapes(p.shape,l),h=w.sizeFromShape(c),m=w.makeZerosTypedArray(w.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),b=w.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,N)=>I-l[N]);let v=w.locToIndex(x,c,h);b[y]=d[v]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var T7={kernelName:fo,backendName:"cpu",kernelFunc:N7},C7=Mt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),E7=Zt(go,C7),_7={kernelName:go,backendName:"cpu",kernelFunc:E7},A7=ys(bm());function T_(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),u=N_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=T.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=q1({inputs:{a:r,b:d},backend:n}),h=OE({inputs:{x:c},backend:n}),m=Ed({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=X1({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var F7={kernelName:zo,backendName:"cpu",kernelFunc:T_};function $7(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:T_({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=w.makeZerosTypedArray(w.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=cm({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Kl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var j7={kernelName:Du,backendName:"cpu",kernelFunc:E_};function K7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[0]),u=n.data.get(r.dataId).values,p=w.sizeFromShape(r.shape),d=r.shape.length,c=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 b=0;bv+l[I]),x=w.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var __={kernelName:xo,backendName:"cpu",kernelFunc:K7},X7=Mt((e,t)=>Math.pow(e,t)),Y7=Zt(vo,X7),Z7={kernelName:vo,backendName:"cpu",kernelFunc:Y7};function J7(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=e_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Q7={kernelName:Am,backendName:"cpu",kernelFunc:J7};function eZ(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=t_(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var tZ={kernelName:Fm,backendName:"cpu",kernelFunc:eZ};function nZ(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=n_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var aZ={kernelName:$m,backendName:"cpu",kernelFunc:nZ};function rZ(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=B1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var sZ={kernelName:Uc,backendName:"cpu",kernelFunc:rZ},iZ=lt(Io,e=>1/e),oZ={kernelName:Io,backendName:"cpu",kernelFunc:iZ};function lZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=w.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([d,u,p,m])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,v=b[0]/y[0],I=b[1]/y[1];for(let N=0;N1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],b=f[0]/g[0],y=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],v=b[1]/y[1],I=0;for(let N=0;N1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],v=b[1]/y[1],I=1/x,N=1/v,C=Math.ceil(I)*2+2,_=Math.ceil(N)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],se=ae*x,ie=Math.min(p-1,i?Math.round(se):Math.floor(se));if($===ie)for(let xe=0;xe<_;xe++){let ue=xe+K;if(ue<0||ue>=m)continue;let ye=te+ue*l[2],ke=ue*v,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[ye+Z])}}f[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var fZ={kernelName:Mu,backendName:"cpu",kernelFunc:mZ};function gZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return pr({inputs:{x:r},backend:n});let l=new Wt(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var bZ={kernelName:Eo,backendName:"cpu",kernelFunc:gZ},yZ={kernelName:Zu,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)),[u,p,d,c]=a.shape,[h,m]=T.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),vZ={kernelName:_o,backendName:"cpu",kernelFunc:xZ};function wZ(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ti(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var kZ={kernelName:Pu,backendName:"cpu",kernelFunc:wZ};function IZ(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?FZ*e:AZ*(Math.exp(e)-1)),DZ={kernelName:Fo,backendName:"cpu",kernelFunc:$Z},RZ=lt(Ro,e=>e<0?-1:e>0?1:0),MZ={kernelName:Ro,backendName:"cpu",kernelFunc:RZ},OZ=lt($o,e=>Math.sin(e)),PZ={kernelName:$o,backendName:"cpu",kernelFunc:OZ},LZ=lt(Do,e=>Math.sinh(e)),zZ={kernelName:Do,backendName:"cpu",kernelFunc:LZ},WZ=11920928955078125e-23,eS=Math.log(WZ)+2,BZ=lt(Oo,e=>{let t=e>-eS,n=e0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return{dataId:r,shape:t,dtype:n}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let n=this.data.get(t);n.refCount++}decRef(t){if(this.data.has(t)){let n=this.data.get(t);n.refCount--}}move(t,n,a,r,s){this.data.set(t,{values:n,dtype:r,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:n,complexTensorInfos:a}=this.data.get(t);if(n==="complex64"){let r=this.readSync(a.real.dataId),s=this.readSync(a.imag.dataId);return T.mergeRealAndImagArrays(r,s)}return w.convertBackendValuesAndArrayBuffer(this.data.get(t).values,n)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Oe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(t.shape,t.dtype,n)}makeOutput(t,n,a){return Ta().makeTensorFromTensorInfo(this.makeTensorInfo(n,a,t),this)}disposeData(t,n=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!n&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:a}=this.data.get(t);a!=null&&(this.disposeData(a.real.dataId,!0),this.disposeData(a.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let n=w.now();return t(),{kernelMs:w.now()-n}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){ge([t],"where");let n=this.readSync(t.dataId);return d8(t.shape,n)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};R1.nextDataId=0;var M1={};_e(M1,{addImpl:()=>FE,bincountImpl:()=>P1,bincountReduceImpl:()=>$E,bitwiseAndImpl:()=>DE,castImpl:()=>AE,ceilImpl:()=>RE,concatImpl:()=>L1,equalImpl:()=>ME,expImpl:()=>PE,expm1Impl:()=>zE,floorDivImpl:()=>BE,floorImpl:()=>WE,gatherNdImpl:()=>VE,gatherV2Impl:()=>UE,greaterEqualImpl:()=>HE,greaterImpl:()=>GE,lessEqualImpl:()=>qE,lessImpl:()=>jE,linSpaceImpl:()=>KE,logImpl:()=>XE,maxImpl:()=>YE,maximumImpl:()=>ZE,minimumImpl:()=>JE,multiplyImpl:()=>z1,negImpl:()=>QE,notEqualImpl:()=>e_,prodImpl:()=>t_,raggedGatherImpl:()=>n_,raggedRangeImpl:()=>a_,raggedTensorToTensorImpl:()=>r_,rangeImpl:()=>B1,rsqrtImpl:()=>s_,scatterImpl:()=>ni,sigmoidImpl:()=>cK,simpleAbsImpl:()=>_E,sliceImpl:()=>um,sparseFillEmptyRowsImpl:()=>o_,sparseReshapeImpl:()=>l_,sparseSegmentReductionImpl:()=>V1,sqrtImpl:()=>mK,squaredDifferenceImpl:()=>u_,staticRegexReplaceImpl:()=>p_,stridedSliceImpl:()=>c_,stringNGramsImpl:()=>U1,stringSplitImpl:()=>G1,stringToHashBucketFastImpl:()=>H1,subImpl:()=>d_,tileImpl:()=>h_,topKImpl:()=>f_,transposeImpl:()=>W1,uniqueImpl:()=>q1});function _E(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=_E(r),n.makeOutput(a,t.shape,t.dtype)},m8={kernelName:Yl,backendName:"cpu",kernelFunc:h8};function Mt(e){return(t,n,a,r,s)=>{let i=T.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),u=w.sizeFromShape(i),p=w.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=T.getBroadcastDims(t,i),g=T.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[C]=0);let v=w.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let N=w.locToIndex(I,c,m);p[b]=e(a[v],r[N])}return[p,i]}}function Yn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var f8={kernelName:wm,backendName:"cpu",kernelFunc:Yn};function lm(e,t,n="float32"){if(n==="complex64"){let r=lm(e,t,"float32"),s=lm(e,t,"float32");return Yn({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function cr(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 g8={kernelName:eo,backendName:"cpu",kernelFunc:cr};function yi(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 b8={kernelName:Dm,backendName:"cpu",kernelFunc:yi};function AE(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=w.toTypedArray([0],n),[s,i]=Mt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function bs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return cr({inputs:{x:r},backend:n});let p=lm(n,r.shape,r.dtype),d=bs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Yn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=yi({inputs:{input:r},backend:n}),d=bs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!w.hasEncodingLoss(r.dtype,s)){let p=cr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=AE(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var y8={kernelName:Mi,backendName:"cpu",kernelFunc:bs};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?T.fromUint8ToStringArray(u):u,c=i.dtype==="string"?T.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=bs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=bs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,v=l.data.get(y.dataId).values,[I,N,C]=n(i.shape,o.shape,h,m,x,v),_=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",N),D=Yn({inputs:{real:_,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(_),l.disposeIntermediateTensorInfo(F),D}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function O1(e){return(t,n,a,r,s,i)=>{let o=T.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),u=o.length,p=w.computeStrides(o),d=w.getTypedArrayFromDType("float32",l),c=w.getTypedArrayFromDType("float32",l),h=T.getBroadcastDims(t,o),m=T.getBroadcastDims(n,o),f=T.mergeRealAndImagArrays(a,r),g=T.mergeRealAndImagArrays(s,i),b=t.length,y=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let _=w.locToIndex(C,b,y),F=N.slice(-x);m.forEach(S=>F[S]=0);let D=w.locToIndex(F,x,v),$=e(f[_*2],f[_*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var FE=Mt((e,t)=>e+t),x8=O1((e,t,n,a)=>({real:e+n,imag:t+a})),jl=Zt(vs,FE,x8),v8={kernelName:vs,backendName:"cpu",kernelFunc:jl};function P1(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 $E(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Oe([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}var DE=Mt((e,t)=>e&t),w8=Zt(ru,DE),k8={kernelName:ru,backendName:"cpu",kernelFunc:w8};function fr(e){return(t,n,a)=>{let r=w.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=T.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var RE=fr(e=>Math.ceil(e)),I8=Fs(Oi,RE),S8={kernelName:Oi,backendName:"cpu",kernelFunc:I8};function L1(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"?T.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),OE=Zt(du,ME,null,"bool"),N8={kernelName:du,backendName:"cpu",kernelFunc:OE},PE=fr(e=>Math.exp(e)),LE=Fs(Ki,PE,"float32"),T8={kernelName:Ki,backendName:"cpu",kernelFunc:LE},zE=fr(e=>Math.expm1(e)),C8=Fs(Xi,zE),E8={kernelName:Xi,backendName:"cpu",kernelFunc:C8},WE=fr(e=>Math.floor(e)),_8=Fs(Yi,WE),A8={kernelName:Yi,backendName:"cpu",kernelFunc:_8},BE=Mt((e,t)=>Math.floor(e/t)),F8=Zt(Zi,BE,null,"int32"),$8={kernelName:Zi,backendName:"cpu",kernelFunc:F8};function VE(e,t,n,a,r,s,i,o,l){let u=Oe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),D8=Zt(bu,GE,null,"bool"),R8={kernelName:bu,backendName:"cpu",kernelFunc:D8},HE=Mt((e,t)=>e>=t?1:0),M8=Zt(Qi,HE,null,"bool"),O8={kernelName:Qi,backendName:"cpu",kernelFunc:M8},jE=Mt((e,t)=>ee<=t?1:0),z8=Zt(xu,qE,null,"bool"),W8={kernelName:xu,backendName:"cpu",kernelFunc:z8};function KE(e,t,n){let a=(t-e)/(n-1),r=w.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),B8=Fs(so,XE),V8={kernelName:so,backendName:"cpu",kernelFunc:B8};function YE(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var ZE=Mt((e,t)=>Math.max(e,t)),U8=Zt(uo,ZE),G8={kernelName:uo,backendName:"cpu",kernelFunc:U8},JE=Mt((e,t)=>Math.min(e,t)),H8=Zt(mo,JE),j8={kernelName:mo,backendName:"cpu",kernelFunc:H8},z1=Mt((e,t)=>e*t),q8=O1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),zf=Zt(bo,z1,q8),K8={kernelName:bo,backendName:"cpu",kernelFunc:zf};function QE(e,t,n){let a=w.createScalarValue(-1,n);return z1([],t,a,e,n)}function X8(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=QE(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var Y8={kernelName:Cu,backendName:"cpu",kernelFunc:X8},e_=Mt((e,t)=>e!==t?1:0),Z8=Zt(Eu,e_,null,"bool"),J8={kernelName:Eu,backendName:"cpu",kernelFunc:Z8};function W1(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),u=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(y)),n.makeTensorInfo(b,g,m)}var tK={kernelName:ko,backendName:"cpu",kernelFunc:eK};function nK(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=w.indexToLoc(r,t.length,w.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function aK(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function rK(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);aK(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function YI(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&yb)v=0;else if(v=Math.ceil(Math.abs((y-b)/x)),v>ZI)throw new Error(`Requires ((limit - start) / delta) <= ${ZI}`);c[g+1]=c[g]+v}let h=c[d],m=w.getArrayFromDType(n,h),f=0;for(let g=0;ga&&(a=s)}return a}static getMaxWidthValueRowID(t){let n=t.length;if(n===0)return 0;let a=0,r=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,n,a,r){let s=t.length,i=[];for(let o=0;o0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,n,a,r){let s=t.length,i=[];if(s===0)return[];let o=0,l=t[0];if(l>=n.length)throw new Error(`Got currentValueRowId=${l}, which is not less than ${n.length}`);let u=n[l];i.push(u);for(let p=1;p=0&&(++o,o=n.length)throw new Error(`Got nextValueRowId=${d} which is not less than ${n.length}`);u=n[d]}i.push(u)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,n,a,r){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Na.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,n,a,r);case Na.ROW_SPLITS:if(s.length-1>n.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${n.length}`);return this.calculateOutputIndexRowSplit(s,n,a,r);default:throw new Error(`Unsupported partition type: ${Na[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let n=this.rowPartitionTypes[0];switch(n){case Na.FIRST_DIM_SIZE:return t[0];case Na.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Na.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Na[n]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let t=this.getFirstDimensionSize(),n=this.calculateOutputSize(t),a=new Array(this.raggedRank+1);a[a.length-1]=1;for(let i=a.length-2;i>=0;--i)a[i]=a[i+1]*n[i+1];let r=QI(n,!1),s=w.getArrayFromDType(this.valuesDType,w.sizeFromShape(r));if(a[0]*n[0]>0){let i=this.calculateFirstParentOutputIndex(t,a[0],n[0]);for(let o=1;o<=this.raggedRank;++o)i=this.calculateOutputIndex(o-1,i,a[o],n[o]);this.setOutput(this.raggedRank,i,s,r)}return[r,s]}setOutput(t,n,a,r){if(a.length===0)return;let s=this.values,i=a,o=r.slice();o=o.slice(t+1);let l=w.sizeFromShape(o),u=n.length,p=this.defaultValue;if(p.length!==l&&p.length!==1){let m=this.defaultValueShape;O(()=>{let f=W(p,m);p=ai(f,o).dataSync()})}let d=0,c=0,h=0;for(let m=0;m<=u;++m){let f=m=u){let g=a.length;f=Math.floor(g/l)}if(f>h)if(this.defaultValue.length===1)i.subarray(h*l,f*l).fill(this.defaultValue[0]),h=f;else for(;f>h;){let g=i.slice(h*l);JI(g,p,l),++h}f<0?(d=m+1,c=h):(d=m,c=h,h=c+1)}}};function JI(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function r_(e,t,n,a,r,s,i,o,l,u){return new lK(e,t,n,a,r,s,i,o,l,u).compute()}function B1(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)),uK=Fs(Ao,s_),pK={kernelName:Ao,backendName:"cpu",kernelFunc:uK};function ni(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Oe(n,t.dtype);let h=l instanceof Wt?l:Oe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let b=0;b1/(1+Math.exp(-e))),i_=lt(Mo,e=>1/(1+Math.exp(-e))),dK={kernelName:Mo,backendName:"cpu",kernelFunc:i_};function um(e,t,n,a,r){let s=Kt.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let d=Kt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?T.fromUint8ToStringArray(e):e,u=Oe(a,r,l),p=Oe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?T.fromStringArrayToUint8(p.values):p.values}function xi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Kt.parseSliceParams(r,s,i);Kt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=um(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var hK={kernelName:Bu,backendName:"cpu",kernelFunc:xi};function o_(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(T.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=w.getArrayFromDType(n,0),b=w.getArrayFromDType(r,0);return[g,[0,d],b,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(T.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=w.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((y,x)=>y*x,1),h=w.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,b=r[m];for(;;){let y=0;if(f=y)throw new Error(T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*u);for(let x=m;x=l[0])throw new Error(T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),fK=lt(Po,e=>Math.sqrt(e)),gK={kernelName:Po,backendName:"cpu",kernelFunc:fK},u_=Mt((e,t)=>{let n=e-t;return n*n}),bK=Zt(Wo,u_),yK={kernelName:Wo,backendName:"cpu",kernelFunc:bK},p_=fr((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),xK=Fs(Kc,p_),vK={kernelName:Kc,backendName:"cpu",kernelFunc:xK};function c_(e,t,n,a){let r=Oe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=w.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth;this.createNGrams(e,l,i,u,1,d)}}return[i,s]}};function U1(e,t,n,a,r,s,i,o){return new wK(n,a,r,s,i,o).compute(e,t)}function kK(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),IK=O1((e,t,n,a)=>({real:e-n,imag:t-a})),j1=Zt(Bo,d_,IK),SK={kernelName:Bo,backendName:"cpu",kernelFunc:j1};function h_(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function m_(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));m_(e,t,c,h)}let r=e[t],s=n,i=a;for(w.swap(e,n,t),nc(e[a],r)>0&&w.swap(e,n,a);s0;)i=i-1}nc(e[n],r)===0?w.swap(e,n,i):(i=i+1,w.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function f_(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=w.getTypedArrayFromDType(n,i*a),u=w.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:y,index:x}),a{for(let g=0;gnew R1,1);var g_=lt(ji,e=>e>=0?e:Math.exp(e)-1),TK={kernelName:ji,backendName:"cpu",kernelFunc:g_};function b_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function y_(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=EK(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var _K={kernelName:wo,backendName:"cpu",kernelFunc:y_},x_=lt(So,e=>Math.max(0,e)),AK={kernelName:So,backendName:"cpu",kernelFunc:x_},v_=lt(Co,e=>Math.min(Math.max(0,e),6)),FK={kernelName:Co,backendName:"cpu",kernelFunc:v_};function pm(e,t,n,a,r){if(n==="linear")return cr({inputs:{x:t},backend:e});if(n==="relu")return x_({inputs:{x:t},backend:e});if(n==="elu")return g_({inputs:{x:t},backend:e});if(n==="relu6")return v_({inputs:{x:t},backend:e});if(n==="prelu")return y_({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return b_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return i_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(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 u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var $K={kernelName:Ru,backendName:"cpu",kernelFunc:xt};function w_(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),N=xt({inputs:{x:s},backend:n,attrs:{shape:v}}),C=i?I.shape[1]:I.shape[2],_=i?I.shape[2]:I.shape[1],F=o?N.shape[1]:N.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(N.dataId).values,M=w.computeStrides(I.shape),B=w.computeStrides(N.shape),[U,H,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=_*F,ae=Oe([D,_,F],I.dtype),te=ae.values,se=n.blockSize;for(let ie=0;ieMath.acos(e)),PK={kernelName:Ni,backendName:"cpu",kernelFunc:OK},LK=lt(Ti,e=>Math.acosh(e)),zK={kernelName:Ti,backendName:"cpu",kernelFunc:LK};function WK(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Oe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var qK={kernelName:Ql,backendName:"cpu",kernelFunc:jK};function KK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],T.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=T.computeOutAndReduceShapes(l.shape,i),c=w.sizeFromShape(p),h=w.makeZerosTypedArray(c,"int32"),m=w.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var XK={kernelName:eu,backendName:"cpu",kernelFunc:KK},YK=lt(Ei,e=>Math.asin(e)),ZK={kernelName:Ei,backendName:"cpu",kernelFunc:YK},JK=lt(_i,e=>Math.asinh(e)),QK={kernelName:_i,backendName:"cpu",kernelFunc:JK},eX=lt(Ai,e=>Math.atan(e)),tX={kernelName:Ai,backendName:"cpu",kernelFunc:eX},nX=Mt((e,t)=>Math.atan2(e,t)),aX=Zt($i,nX),rX={kernelName:$i,backendName:"cpu",kernelFunc:aX},sX=lt(Fi,e=>Math.atanh(e)),iX={kernelName:Fi,backendName:"cpu",kernelFunc:sX};function K1(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Oe(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vq?q=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function k_(e,t,n,a,r=!1,s=!1){let i=Oe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Oe(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,N,b)}}return i}function I_(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Oe(r.outShape,n),v=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],N=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],_=r.outShape[4];for(let F=0;Fye?ye=gt:s==="avg"&&(ke+=gt,Se++),isNaN(ye))break}if(isNaN(ye))break}if(isNaN(ye))break}let Le=ue+S;v[Le]=s==="avg"?ke/Math.max(Se,1):ye}}}}return x}function oX(e,t){let n=Oe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function lX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=cr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=K1(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var uX={kernelName:Di,backendName:"cpu",kernelFunc:lX};function pX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=I_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var cX={kernelName:tu,backendName:"cpu",kernelFunc:pX};function dX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,v=p.effectiveFilterDepth,I=p.effectiveFilterHeight,N=p.effectiveFilterWidth,C=v-1-p.padInfo.front,_=N-1-p.padInfo.left,F=I-1-p.padInfo.top,D=Oe(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let se=0;se=p.outHeight||Math.floor(ie)!==ie))for(let ve=0;ve=p.outWidth||Math.floor(ue)!==ue)continue;let ye=S.get(M,te,ie,ue,B);ee+=ye}}}D.set(ee*$,M,U,H,q,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var hX={kernelName:Rc,backendName:"cpu",kernelFunc:dX};function mX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,v=b-1-p.padInfo.top,I=Oe(i.shape,"float32"),N=1/(h*m),C=n.data.get(r.dataId).values,_=Oe(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=_.get(F,q,Z,D);U+=J}}I.set(U*N,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var fX={kernelName:Dc,backendName:"cpu",kernelFunc:mX};function gX(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."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=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(p.length),g=m.length,b=h.length,y=c.length,x=d.length,v=0,I=0,N=0,C=0;for(let _=0;_=g&&(v=0),I>=x&&(I=0),N>=b&&(N=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var bX={kernelName:Ji,backendName:"cpu",kernelFunc:gX};function yX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=xi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var xX={kernelName:nu,backendName:"cpu",kernelFunc:yX};function vX(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=P1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var wX={kernelName:au,backendName:"cpu",kernelFunc:vX};function kX(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var IX={kernelName:Mc,backendName:"cpu",kernelFunc:kX},SX=lt(ws,(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 u=0;uf.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(f=>f.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>w.sizeFromShape(f.shape)>0);if(l.length===1)return cr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(v=>yi({inputs:{input:v},backend:n})),g=l.map(v=>ql({inputs:{input:v},backend:n})),b=Kl({inputs:f,backend:n,attrs:{axis:s}}),y=Kl({inputs:g,backend:n,attrs:{axis:s}}),x=Yn({inputs:{real:b,imag:y},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,w.sizeFromShape(f.shape.slice(s))];return xt({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=T.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=L1(p,o,t[0].dtype,d),h=T.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var _X={kernelName:su,backendName:"cpu",kernelFunc:Kl};function S_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",v=new Wt(c.outShape,r.dtype),I=w.computeStrides(r.shape),N=w.computeStrides(s.shape),C=I[0],_=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=v.strides[0],S=x?v.strides[1]:v.strides[2],M=x?v.strides[2]:1,B=x?1:v.strides[1],U=n.data.get(r.dataId).values,H=n.data.get(s.dataId).values,q=v.values;for(let K=0;K=c.inHeight)continue;let ve=se*N[0],ue=Z+ie*_;for(let ye=0;ye=c.inWidth)continue;let mt=ve+Le*N[1],st=ue+Ue*F,tt=mt;for(let nt=0;nt=u.inDepth)continue;let K=H*F[0],Z=$+q*_[1];for(let J=0;J=u.inHeight)continue;let ie=K+te*F[1],ve=Z+se*_[2];for(let ue=0;ue=u.inWidth)continue;let Ue=ie+Se*F[2],mt=ve+Le*u.inChannels,st=Ue;for(let tt=0;ttMath.cos(e)),VX={kernelName:Wi,backendName:"cpu",kernelFunc:BX},UX=lt(Bi,e=>Math.cosh(e)),GX={kernelName:Bi,backendName:"cpu",kernelFunc:UX};function HX(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,b=Oe([m,f,g,h],"float32"),y=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,I=w.computeStrides(r.shape),N=w.computeStrides(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(q<0||q>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let ve=0;ve1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let b=0;b`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=T.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:b,padInfo:y}=h,x=y.left,v=y.top,I=h.outChannels/h.inChannels,N=new Wt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,_=n.data.get(s.dataId).values,F=N.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+q*p[1];for(let J=0;J=h.inWidth)continue;let ie=K+te*d[1],ve=Z+se*h.inChannels,ue=ee,ye=ie;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:b,outWidth:y,padInfo:x,strideHeight:v,strideWidth:I,filterHeight:N,filterWidth:C,dilationHeight:_,dilationWidth:F,outShape:D}=T.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=w.sizeFromShape(D),S=D.length,M=w.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&ieJ&&(J=ye)}}}let ee=w.locToIndex([B,U,q,Z],S,w.computeStrides(D));M[ee]=J}}}return{dataId:l.write(w.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},uY={kernelName:Rl,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Rl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ee,J=te)}}}$[Z][J][q]+=D[S][M][U][q]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},pY={kernelName:Dl,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${Dl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ae,J=se)}}}$[S][Z][J][q]+=D[S][M][U][q]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function cY(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{canvas:s,options:i}=a,{contextOptions:o,imageOptions:l}=i||{},u=(l==null?void 0:l.alpha)||1,p=(o==null?void 0:o.contextType)||"2d";if(p!=="2d")throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);let d=s.getContext(p,(o==null?void 0:o.contextAttributes)||{});if(d==null)throw new Error(`Could not get the context with ${p} type.`);let[c,h]=r.shape.slice(0,2),m=r.shape.length===2?1:r.shape[2],f=n.data.get(r.dataId).values,g=r.dtype==="float32"?255:1,b=new Uint8ClampedArray(h*c*4);for(let x=0;x1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${C}.`)}else if(r.dtype==="int32"&&(C<0||C>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${C}.`);m===1?(v[0]=C*g,v[1]=C*g,v[2]=C*g):v[N]=C*g}let I=x*4;b[I+0]=Math.round(v[0]),b[I+1]=Math.round(v[1]),b[I+2]=Math.round(v[2]),b[I+3]=Math.round(v[3])}s.width=h,s.height=c;let y=new ImageData(b,h,c);return d.putImageData(y,0,0),r}var dY={kernelName:Nm,backendName:"cpu",kernelFunc:cY};function Ed(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=bs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=cr({inputs:{x:r},backend:n});let l=o.shape.length,u=w.parseAxisParam(s,o.shape),p=T.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=T.getInnerMostAxes(d.length,l)),T.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=T.computeOutAndReduceShapes(c.shape,d),f=T.upcastType(c.dtype,"int32"),g=lm(n,h,f),b=w.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let v=0;v=0&&(c=Ed({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var fY={kernelName:Tm,backendName:"cpu",kernelFunc:mY};function gY(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([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=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var bY={kernelName:cu,backendName:"cpu",kernelFunc:gY},yY=T.ERF_P,xY=T.ERF_A1,vY=T.ERF_A2,wY=T.ERF_A3,kY=T.ERF_A4,IY=T.ERF_A5,SY=lt(qi,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+yY*n);return t*(1-((((IY*a+kY)*a+wY)*a+vY)*a+xY)*a*Math.exp(-n*n))}),NY={kernelName:qi,backendName:"cpu",kernelFunc:SY};function cm(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),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var TY={kernelName:hu,backendName:"cpu",kernelFunc:cm},CY=Mt((e,t)=>e/t),X1=Zt(Hi,CY),lv={kernelName:Hi,backendName:"cpu",kernelFunc:X1};function T_(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],p=w.sizeFromShape(u),d=w.getTypedArrayFromDType("float32",p),c=w.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&y=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=w.sizeFromShape(s.shape),h=T.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=UE(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var UY={kernelName:fu,backendName:"cpu",kernelFunc:VY};function GY(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=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=T_(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var HY={kernelName:Em,backendName:"cpu",kernelFunc:GY},jY=lt(to,e=>Number.isFinite(e)?1:0,"bool"),qY={kernelName:to,backendName:"cpu",kernelFunc:jY},KY=lt(no,e=>Math.abs(e)===1/0?1:0,"bool"),XY={kernelName:no,backendName:"cpu",kernelFunc:KY},YY=lt(ao,e=>Number.isNaN(e)?1:0,"bool"),ZY={kernelName:ao,backendName:"cpu",kernelFunc:YY};function JY(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=KE(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var QY={kernelName:vu,backendName:"cpu",kernelFunc:JY},e7=lt(io,e=>Math.log1p(e)),t7={kernelName:io,backendName:"cpu",kernelFunc:e7},n7=Mt((e,t)=>e&&t),a7=Zt(wu,n7,null,"bool"),r7={kernelName:wu,backendName:"cpu",kernelFunc:a7},s7=lt(ku,e=>e?0:1,"bool"),i7={kernelName:ku,backendName:"cpu",kernelFunc:s7},o7=Mt((e,t)=>e||t),l7=Zt(Iu,o7,null,"bool"),u7={kernelName:Iu,backendName:"cpu",kernelFunc:l7};function p7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=w.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let v=d[b];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 p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=cr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=K1(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var g7={kernelName:po,backendName:"cpu",kernelFunc:f7};function b7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=I_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var y7={kernelName:Nu,backendName:"cpu",kernelFunc:b7};function x7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=oX(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,v=p.effectiveFilterHeight,I=p.effectiveFilterWidth,N=x-1-p.padInfo.front,C=I-1-p.padInfo.left,_=v-1-p.padInfo.top,F=Oe(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let se=0;se=p.outWidth||Math.floor(ie)!==ie)continue;let ve=x*v*I-1-c.get($,ee,te,ie,S),ue=J*v*I+ae*I+se,ye=ve===ue?1:0;if(ye===0)continue;let ke=D.get($,ee,te,ie,S);Z+=ke*ye}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var v7={kernelName:Bc,backendName:"cpu",kernelFunc:x7};function w7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=T.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Oe(c.outShape,o.dtype,k_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,v=c.effectiveFilterWidth,I=v-1-c.padInfo.left,N=x-1-c.padInfo.top,C=Oe(o.shape,"float32"),_=n.data.get(r.dataId).values,F=Oe(r.shape,"float32",_);for(let D=0;D=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*v-1-m.get(D,K,J,$),ae=q*v+Z,te=ee===ae?1:0;if(te===0)continue;let se=F.get(D,K,J,$);H+=se*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var k7={kernelName:Wc,backendName:"cpu",kernelFunc:w7};function I7(e,t,n,a,r){let s=w.computeStrides(t),i=K1(e,t,n,s,r,"max"),o=k_(e,t,n,r,!0,a);return[i.values,o.values]}var S7={kernelName:Vc,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=T.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=I7(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function N7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=w.parseAxisParam(s,r.shape),l=T.computeOutAndReduceShapes(r.shape,o)[1],u=w.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=bs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=X1({inputs:{a:c,b:d},backend:n});p.push(h);let m=Ed({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var T7={kernelName:co,backendName:"cpu",kernelFunc:N7};function C7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,u=T.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=T.getInnerMostAxes(l.length,r.shape.length)),T.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=T.computeOutAndReduceShapes(p.shape,l),h=w.sizeFromShape(c),m=w.makeZerosTypedArray(w.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),b=w.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,N)=>I-l[N]);let v=w.locToIndex(x,c,h);b[y]=d[v]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var A7={kernelName:fo,backendName:"cpu",kernelFunc:_7},F7=Mt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),$7=Zt(go,F7),D7={kernelName:go,backendName:"cpu",kernelFunc:$7},R7=xs(bm());function E_(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),u=C_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=T.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=j1({inputs:{a:r,b:d},backend:n}),h=LE({inputs:{x:c},backend:n}),m=Ed({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=X1({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var M7={kernelName:zo,backendName:"cpu",kernelFunc:E_};function O7(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:E_({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=w.makeZerosTypedArray(w.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=cm({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Kl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var Z7={kernelName:Du,backendName:"cpu",kernelFunc:A_};function J7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[0]),u=n.data.get(r.dataId).values,p=w.sizeFromShape(r.shape),d=r.shape.length,c=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 b=0;bv+l[I]),x=w.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var F_={kernelName:xo,backendName:"cpu",kernelFunc:J7},Q7=Mt((e,t)=>Math.pow(e,t)),eZ=Zt(vo,Q7),tZ={kernelName:vo,backendName:"cpu",kernelFunc:eZ};function nZ(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=n_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var aZ={kernelName:Am,backendName:"cpu",kernelFunc:nZ};function rZ(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=a_(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var sZ={kernelName:Fm,backendName:"cpu",kernelFunc:rZ};function iZ(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=r_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var oZ={kernelName:$m,backendName:"cpu",kernelFunc:iZ};function lZ(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=B1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var uZ={kernelName:Uc,backendName:"cpu",kernelFunc:lZ},pZ=lt(Io,e=>1/e),cZ={kernelName:Io,backendName:"cpu",kernelFunc:pZ};function dZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=w.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([d,u,p,m])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,v=b[0]/y[0],I=b[1]/y[1];for(let N=0;N1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],b=f[0]/g[0],y=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],v=b[1]/y[1],I=0;for(let N=0;N1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],v=b[1]/y[1],I=1/x,N=1/v,C=Math.ceil(I)*2+2,_=Math.ceil(N)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],se=ae*x,ie=Math.min(p-1,i?Math.round(se):Math.floor(se));if($===ie)for(let ve=0;ve<_;ve++){let ue=ve+K;if(ue<0||ue>=m)continue;let ye=te+ue*l[2],ke=ue*v,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[ye+Z])}}f[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var xZ={kernelName:Mu,backendName:"cpu",kernelFunc:yZ};function vZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return cr({inputs:{x:r},backend:n});let l=new Wt(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var wZ={kernelName:Eo,backendName:"cpu",kernelFunc:vZ},kZ={kernelName:Zu,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)),[u,p,d,c]=a.shape,[h,m]=T.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),SZ={kernelName:_o,backendName:"cpu",kernelFunc:IZ};function NZ(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ni(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var TZ={kernelName:Pu,backendName:"cpu",kernelFunc:NZ};function CZ(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?MZ*e:RZ*(Math.exp(e)-1)),PZ={kernelName:Fo,backendName:"cpu",kernelFunc:OZ},LZ=lt(Ro,e=>e<0?-1:e>0?1:0),zZ={kernelName:Ro,backendName:"cpu",kernelFunc:LZ},WZ=lt($o,e=>Math.sin(e)),BZ={kernelName:$o,backendName:"cpu",kernelFunc:WZ},VZ=lt(Do,e=>Math.sinh(e)),UZ={kernelName:Do,backendName:"cpu",kernelFunc:VZ},GZ=11920928955078125e-23,eS=Math.log(GZ)+2,HZ=lt(Oo,e=>{let t=e>-eS,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var qZ={kernelName:Gc,backendName:"cpu",kernelFunc:HZ};function jZ(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape + ${i.shape}`);let o=n.data.get(a.dataId).values,l=n.data.get(r.dataId).values,u=n.data.get(s.dataId).values,p=n.data.get(i.dataId).values[0],[d,c,h,m,f]=o_(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var YZ={kernelName:Gc,backendName:"cpu",kernelFunc:XZ};function ZZ(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape - ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=i_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var KZ={kernelName:Gu,backendName:"cpu",kernelFunc:jZ};function XZ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=l_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var JZ={kernelName:Gu,backendName:"cpu",kernelFunc:ZZ};function QZ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=V1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var YZ={kernelName:Hc,backendName:"cpu",kernelFunc:XZ};function ZZ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=V1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var eJ={kernelName:Hc,backendName:"cpu",kernelFunc:QZ};function tJ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=V1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var JZ={kernelName:qc,backendName:"cpu",kernelFunc:ZZ};function QZ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),b=!!n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=w.decodeString(n.data.get(i.dataId).values[0]);f=ti(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var eJ={kernelName:Hu,backendName:"cpu",kernelFunc:QZ};function tJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=xi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var nJ={kernelName:Uu,backendName:"cpu",kernelFunc:tJ},aJ={kernelName:jc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),sJ={kernelName:ks,backendName:"cpu",kernelFunc:rJ};function iJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=xi({inputs:{x:r},backend:n,attrs:{begin:y,size:N}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let N=n.bufferSync(r),C=u_(h,N,v,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var oJ={kernelName:qu,backendName:"cpu",kernelFunc:iJ};function lJ(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=U1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var uJ={kernelName:Xc,backendName:"cpu",kernelFunc:lJ};function pJ(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=G1(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var cJ={kernelName:Yc,backendName:"cpu",kernelFunc:pJ};function dJ(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=H1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var hJ={kernelName:Zc,backendName:"cpu",kernelFunc:dJ},mJ=lt(Vo,e=>Math.tan(e)),fJ={kernelName:Vo,backendName:"cpu",kernelFunc:mJ},gJ=lt(Uo,e=>Math.tanh(e)),bJ={kernelName:Uo,backendName:"cpu",kernelFunc:gJ};function yJ(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=T.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ti(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var xJ={kernelName:Lu,backendName:"cpu",kernelFunc:yJ};function vJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=c_(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var wJ={kernelName:ws,backendName:"cpu",kernelFunc:vJ};function kJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=h_(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 IJ={kernelName:ju,backendName:"cpu",kernelFunc:kJ};function SJ(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=w.computeStrides(r.shape),y=b[0],x=b[1],v=b[2],I=w.computeStrides(g),N=I[0],C=I[1],_=I[2],F=w.getTypedArrayFromDType(r.dtype,w.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return w.clamp(0,n,t-1)}function CJ(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 w.clamp(0,n,t-1)}function EJ(e,t){return e}function _J(e,t){return w.clamp(0,e,t-1)}function ac(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var PJ={kernelName:Qc,backendName:"cpu",kernelFunc:OJ},LJ=[F8,pK,D8,M8,gK,P8,z8,B8,U8,H8,j8,X8,Z8,eX,nX,sX,oX,uX,cX,_8,hX,fX,bX,yK,xX,mK,vK,wX,cK,IX,NX,TX,EX,AX,$X,RX,OX,LX,WX,VX,GX,qX,KX,YX,ZX,QX,tY,aY,rY,sY,iY,lY,cY,k8,hY,wK,wY,kK,kY,SK,EY,_Y,FY,TK,EK,DY,MY,PY,zY,AK,$K,dK,BY,SX,UY,HY,jY,I8,RK,OK,XY,LK,ZY,e7,n7,s7,o7,u7,p7,WK,d7,m7,g7,y7,v7,k7,S7,VK,T7,_7,D7,GK,qK,O7,z7,V7,KK,G7,q7,j7,__,Z7,N8,ZK,Q7,tZ,aZ,sZ,hK,ov,oZ,T8,C8,E8,uZ,cZ,hZ,fZ,bZ,yZ,vZ,i8,kZ,CZ,_Z,DZ,l8,MZ,PZ,zZ,u8,F7,VZ,GZ,qZ,KZ,YZ,JZ,eJ,nJ,d8,aJ,m8,g8,sJ,oJ,uJ,cJ,hJ,v8,uY,fJ,bJ,xJ,wJ,IJ,NJ,XK,DJ,MJ,PJ,H7];for(let e of LJ)ed(e);var A_={};_e(A_,{assertNotComplex:()=>lp,bindCanvasToFramebuffer:()=>XJ,bindColorTextureToFramebuffer:()=>Ph,bindTextureToProgramUniformSampler:()=>q_,bindTextureUnit:()=>U_,bindVertexBufferToProgramAttribute:()=>uv,callAndCheck:()=>de,canBeRepresented:()=>$_,createFragmentShader:()=>M_,createFramebuffer:()=>V_,createProgram:()=>O_,createStaticIndexBuffer:()=>z_,createStaticVertexBuffer:()=>L_,createTexture:()=>W_,createVertexShader:()=>R_,getBatchDim:()=>vi,getExtensionOrThrow:()=>rc,getFramebufferErrorMessage:()=>j_,getMaxTexturesInShader:()=>Z_,getNumChannels:()=>jJ,getProgramUniformLocation:()=>H_,getProgramUniformLocationOrThrow:()=>G_,getRowsCols:()=>wi,getShapeAs3D:()=>ic,getTextureShapeFromLogicalShape:()=>X_,getWebGLDisjointQueryTimerVersion:()=>J_,getWebGLErrorMessage:()=>D_,getWebGLMaxTextureSize:()=>Y_,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>Q_,isDownloadFloatTextureEnabled:()=>eA,isReshapeFree:()=>Tc,isWebGLFenceEnabled:()=>tA,isWebGLVersionEnabled:()=>cv,linkProgram:()=>P_,logShaderSourceAndInfoLog:()=>J1,resetMaxTextureSize:()=>YJ,resetMaxTexturesInShader:()=>ZJ,unbindColorTextureFromFramebuffer:()=>pv,unbindTextureUnit:()=>KJ,validateFramebuffer:()=>sc,validateProgram:()=>Oh,validateTextureSize:()=>B_});var Qs={},_h={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function F_(e,t){Qs[e]=t}function qa(e,t){if(!(e in Qs)||t!=null){let a=WJ(e,t);if(a!==null)Qs[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Qs[e];return n==null||n.isContextLost()?(delete Qs[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Qs[e])}function zJ(e){if(!G().getBool("IS_SAFARI")&&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 WJ(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?zJ(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Qs[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(_h.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",_h)||n.getContext("experimental-webgl",_h):n.getContext("webgl2",_h)}var Nc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Nc||(Nc={}));var ca;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ca||(ca={}));var pn;(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"})(pn||(pn={}));function _d(e,t){return[t,e]}function BJ(e,t){return e*t}function Ah(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function op(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function VJ(e,t){let[n,a]=op(e,t);return n*a*4}function Z1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function de(e,t){let n=t();return G().getBool("DEBUG")&&UJ(e),n}function UJ(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+D_(e,t))}var GJ=596e-10,HJ=65504;function $_(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||GJe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function R_(e,t){let n=Or(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 M_(e,t){let n=Or(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw J1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var qJ=/ERROR: [0-9]+:([0-9]+):/g;function J1(e,t){let n=qJ.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.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=V1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var nJ={kernelName:jc,backendName:"cpu",kernelFunc:tJ};function aJ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),b=!!n.data.get(i.dataId).values[0];f=ni(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ni(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ni(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=w.decodeString(n.data.get(i.dataId).values[0]);f=ni(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var rJ={kernelName:Hu,backendName:"cpu",kernelFunc:aJ};function sJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=xi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var iJ={kernelName:Uu,backendName:"cpu",kernelFunc:sJ},oJ={kernelName:qc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),uJ={kernelName:Is,backendName:"cpu",kernelFunc:lJ};function pJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=xi({inputs:{x:r},backend:n,attrs:{begin:y,size:N}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let N=n.bufferSync(r),C=c_(h,N,v,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var cJ={kernelName:ju,backendName:"cpu",kernelFunc:pJ};function dJ(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=U1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var hJ={kernelName:Xc,backendName:"cpu",kernelFunc:dJ};function mJ(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=G1(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var fJ={kernelName:Yc,backendName:"cpu",kernelFunc:mJ};function gJ(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=H1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var bJ={kernelName:Zc,backendName:"cpu",kernelFunc:gJ},yJ=lt(Vo,e=>Math.tan(e)),xJ={kernelName:Vo,backendName:"cpu",kernelFunc:yJ},vJ=lt(Uo,e=>Math.tanh(e)),wJ={kernelName:Uo,backendName:"cpu",kernelFunc:vJ};function kJ(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=T.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ni(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var IJ={kernelName:Lu,backendName:"cpu",kernelFunc:kJ};function SJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=h_(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var NJ={kernelName:ks,backendName:"cpu",kernelFunc:SJ};function TJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=f_(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 CJ={kernelName:qu,backendName:"cpu",kernelFunc:TJ};function EJ(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=w.computeStrides(r.shape),y=b[0],x=b[1],v=b[2],I=w.computeStrides(g),N=I[0],C=I[1],_=I[2],F=w.getTypedArrayFromDType(r.dtype,w.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return w.clamp(0,n,t-1)}function FJ(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 w.clamp(0,n,t-1)}function $J(e,t){return e}function DJ(e,t){return w.clamp(0,e,t-1)}function ac(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var BJ={kernelName:Qc,backendName:"cpu",kernelFunc:WJ},VJ=[MK,m8,PK,zK,v8,BK,UK,HK,qK,XK,ZK,QK,tX,rX,iX,uX,cX,hX,fX,DK,bX,xX,wX,k8,IX,y8,S8,NX,f8,CX,_X,AX,$X,RX,OX,LX,WX,VX,GX,jX,KX,YX,JX,eY,tY,aY,sY,oY,lY,uY,pY,dY,fY,TK,bY,N8,NY,T8,TY,E8,$Y,DY,MY,A8,$8,PY,zY,BY,UY,R8,O8,g8,HY,EX,qY,XY,ZY,CK,L8,W8,QY,V8,t7,r7,i7,u7,c7,h7,m7,G8,g7,y7,v7,k7,S7,T7,E7,j8,A7,D7,P7,K8,Y8,W7,U7,j7,J8,K7,Y7,Z7,F_,tZ,_K,tK,aZ,sZ,oZ,uZ,b8,lv,cZ,AK,FK,$K,hZ,fZ,bZ,xZ,wZ,kZ,SZ,pK,TZ,FZ,DZ,PZ,dK,zZ,BZ,UZ,hK,M7,jZ,KZ,YZ,JZ,eJ,nJ,rJ,iJ,gK,oJ,yK,vK,uJ,cJ,hJ,fJ,bJ,SK,hY,xJ,wJ,IJ,NJ,CJ,_J,Q8,PJ,zJ,BJ,X7];for(let e of VJ)ed(e);var $_={};_e($_,{assertNotComplex:()=>lp,bindCanvasToFramebuffer:()=>QJ,bindColorTextureToFramebuffer:()=>Ph,bindTextureToProgramUniformSampler:()=>K_,bindTextureUnit:()=>H_,bindVertexBufferToProgramAttribute:()=>pv,callAndCheck:()=>de,canBeRepresented:()=>R_,createFragmentShader:()=>P_,createFramebuffer:()=>G_,createProgram:()=>L_,createStaticIndexBuffer:()=>B_,createStaticVertexBuffer:()=>W_,createTexture:()=>V_,createVertexShader:()=>O_,getBatchDim:()=>vi,getExtensionOrThrow:()=>rc,getFramebufferErrorMessage:()=>X_,getMaxTexturesInShader:()=>Q_,getNumChannels:()=>ZJ,getProgramUniformLocation:()=>q_,getProgramUniformLocationOrThrow:()=>j_,getRowsCols:()=>wi,getShapeAs3D:()=>ic,getTextureShapeFromLogicalShape:()=>Z_,getWebGLDisjointQueryTimerVersion:()=>eA,getWebGLErrorMessage:()=>M_,getWebGLMaxTextureSize:()=>J_,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>tA,isDownloadFloatTextureEnabled:()=>nA,isReshapeFree:()=>Tc,isWebGLFenceEnabled:()=>aA,isWebGLVersionEnabled:()=>dv,linkProgram:()=>z_,logShaderSourceAndInfoLog:()=>J1,resetMaxTextureSize:()=>e9,resetMaxTexturesInShader:()=>t9,unbindColorTextureFromFramebuffer:()=>cv,unbindTextureUnit:()=>JJ,validateFramebuffer:()=>sc,validateProgram:()=>Oh,validateTextureSize:()=>U_});var ei={},_h={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function D_(e,t){ei[e]=t}function ja(e,t){if(!(e in ei)||t!=null){let a=GJ(e,t);if(a!==null)ei[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=ei[e];return n==null||n.isContextLost()?(delete ei[e],ja(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),ei[e])}function UJ(e){if(!G().getBool("IS_SAFARI")&&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 GJ(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?UJ(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete ei[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(_h.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",_h)||n.getContext("experimental-webgl",_h):n.getContext("webgl2",_h)}var Nc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Nc||(Nc={}));var ca;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ca||(ca={}));var cn;(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"})(cn||(cn={}));function _d(e,t){return[t,e]}function HJ(e,t){return e*t}function Ah(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function op(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function jJ(e,t){let[n,a]=op(e,t);return n*a*4}function Z1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function de(e,t){let n=t();return G().getBool("DEBUG")&&qJ(e),n}function qJ(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+M_(e,t))}var KJ=596e-10,XJ=65504;function R_(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||KJe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function O_(e,t){let n=Or(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 P_(e,t){let n=Or(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw J1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var YJ=/ERROR: [0-9]+:([0-9]+):/g;function J1(e,t){let n=YJ.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((d,c)=>w.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;de.createProgram(),"Unable to create WebGLProgram.")}function P_(e,t){if(de(e,()=>e.linkProgram(t)),!G().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Oh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function L_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function z_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function jJ(){return G().getNumber("WEBGL_VERSION")===2?1:4}function W_(e){return Or(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function B_(e,t){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function V_(e){return Or(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function uv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function U_(e,t,n){K_(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function KJ(e,t){K_(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function G_(e,t,n){return Or(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function H_(e,t,n){return e.getUniformLocation(t,n)}function q_(e,t,n,a){de(e,()=>U_(e,t,a)),de(e,()=>e.uniform1i(n,a))}function XJ(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Ph(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function pv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function sc(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+j_(e,t))}function j_(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Or(e,t,n){let a=de(e,()=>t());if(a==null)throw new Error(n);return a}function K_(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function vi(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function wi(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function ic(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[vi(e),...wi(e)]),t}function X_(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?w.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let r=w.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=vi(e),l=2,u=2;e.length&&([l,u]=wi(e)),r=o*(l/2)*(u/2),s=w.sizeToSquarishShape(r).map(p=>p*2)}else s=w.sizeToSquarishShape(r);return s}function Fh(e){return e%2===0}function Tc(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[e.length-1],a=t[t.length-1];if(n===a||Fh(n)&&Fh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Fh(e[0])&&Fh(t[0])}var Lh,zh;function Y_(e){if(Lh==null){let t=qa(e);Lh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Lh}function YJ(){Lh=null}function ZJ(){zh=null}function Z_(e){if(zh==null){let t=qa(e);zh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,zh)}function J_(e){if(e===0)return 0;let t,n=qa(e);return da(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:da(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function da(e,t){return e.getExtension(t)!=null}function cv(e){try{if(qa(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function Q_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return dv(t)}function eA(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float")||!da(t,"WEBGL_color_buffer_float"))return!1}else{if(da(t,"EXT_color_buffer_float"))return dv(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return JJ(t,a)}return!1}return dv(t)}function dv(e){let t=Z1(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let r=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(a),r}function JJ(e,t){let n=Z1(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(r),s}function tA(e){return e!==2?!1:qa(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 be=G();be.registerFlag("HAS_WEBGL",()=>be.getNumber("WEBGL_VERSION")>0);be.registerFlag("WEBGL_VERSION",()=>cv(2)?2:cv(1)?1:0);be.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);be.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>be.get("WEBGL_VERSION")===2);be.registerFlag("WEBGL_CPU_FORWARD",()=>!0);be.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);be.registerFlag("WEBGL_PACK",()=>be.getBool("HAS_WEBGL"));be.registerFlag("WEBGL_PACK_NORMALIZATION",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CLIP",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_REDUCE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_LAZILY_UNPACK",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_CONV_IM2COL",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>Y_(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>Z_(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=be.getNumber("WEBGL_VERSION");return e===0?0:J_(e)});be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>be.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ad.isMobile());be.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>Q_(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>be.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:be.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));be.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>eA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_FENCE_API_ENABLED",()=>tA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>be.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);be.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>ad.isMobile()?1:-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);be.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);be.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);be.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);be.registerFlag("WEBGL_EXP_CONV",()=>!1);be.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>be.getBool("IS_TEST"));be.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);be.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);be.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);be.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function Cn(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function L_(e){return Or(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function z_(e,t){if(de(e,()=>e.linkProgram(t)),!G().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Oh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function W_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function B_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function ZJ(){return G().getNumber("WEBGL_VERSION")===2?1:4}function V_(e){return Or(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function U_(e,t){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function G_(e){return Or(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function pv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function H_(e,t,n){Y_(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function JJ(e,t){Y_(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function j_(e,t,n){return Or(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function q_(e,t,n){return e.getUniformLocation(t,n)}function K_(e,t,n,a){de(e,()=>H_(e,t,a)),de(e,()=>e.uniform1i(n,a))}function QJ(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Ph(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function cv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function sc(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+X_(e,t))}function X_(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 Or(e,t,n){let a=de(e,()=>t());if(a==null)throw new Error(n);return a}function Y_(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 vi(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function wi(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function ic(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[vi(e),...wi(e)]),t}function Z_(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?w.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let r=w.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=vi(e),l=2,u=2;e.length&&([l,u]=wi(e)),r=o*(l/2)*(u/2),s=w.sizeToSquarishShape(r).map(p=>p*2)}else s=w.sizeToSquarishShape(r);return s}function Fh(e){return e%2===0}function Tc(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[e.length-1],a=t[t.length-1];if(n===a||Fh(n)&&Fh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Fh(e[0])&&Fh(t[0])}var Lh,zh;function J_(e){if(Lh==null){let t=ja(e);Lh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Lh}function e9(){Lh=null}function t9(){zh=null}function Q_(e){if(zh==null){let t=ja(e);zh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,zh)}function eA(e){if(e===0)return 0;let t,n=ja(e);return da(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:da(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function da(e,t){return e.getExtension(t)!=null}function dv(e){try{if(ja(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function tA(e){if(e===0)return!1;let t=ja(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return hv(t)}function nA(e){if(e===0)return!1;let t=ja(e);if(e===1){if(!da(t,"OES_texture_float")||!da(t,"WEBGL_color_buffer_float"))return!1}else{if(da(t,"EXT_color_buffer_float"))return hv(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return n9(t,a)}return!1}return hv(t)}function hv(e){let t=Z1(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let r=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(a),r}function n9(e,t){let n=Z1(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(r),s}function aA(e){return e!==2?!1:ja(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 be=G();be.registerFlag("HAS_WEBGL",()=>be.getNumber("WEBGL_VERSION")>0);be.registerFlag("WEBGL_VERSION",()=>dv(2)?2:dv(1)?1:0);be.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);be.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>be.get("WEBGL_VERSION")===2);be.registerFlag("WEBGL_CPU_FORWARD",()=>!0);be.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);be.registerFlag("WEBGL_PACK",()=>be.getBool("HAS_WEBGL"));be.registerFlag("WEBGL_PACK_NORMALIZATION",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CLIP",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_REDUCE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_LAZILY_UNPACK",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_CONV_IM2COL",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>J_(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>Q_(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=be.getNumber("WEBGL_VERSION");return e===0?0:eA(e)});be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>be.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ad.isMobile());be.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>tA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>be.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:be.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));be.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>nA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_FENCE_API_ENABLED",()=>aA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>be.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);be.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>ad.isMobile()?1:-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);be.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);be.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);be.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);be.registerFlag("WEBGL_EXP_CONV",()=>!1);be.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>be.getBool("IS_TEST"));be.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);be.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);be.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);be.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function En(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -112,7 +112,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram 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:u}}function Zo(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 zf(e,t,n="index"){let a=w.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function QJ(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function e9(e,t,n="index"){let a=e.map((s,i)=>i),r=QJ(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function Q1(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 Zo(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 Wf(e,t,n="index"){let a=w.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function a9(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function r9(e,t,n="index"){let a=e.map((s,i)=>i),r=a9(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function Q1(e){let t=w.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } @@ -120,7 +120,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var nA=` +`}var rA=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -159,22 +159,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:aA}=T;function t9(e,t,n){let a=[];if(e.forEach(c=>{let h=w.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=tk(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` -`),s=e.map(c=>n9(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=Cn(),l=s9(o),u,p,d=l9(o);return t.isPacked?(u=a9(t.logicalShape,i,n.enableShapeUniforms),p=o9(o)):(u=r9(t.logicalShape,i,n.enableShapeUniforms),p=i9(o)),n.packedInputs&&(d+=d9),[d,l,p,r,u,s,n.userCode].join(` -`)}function up(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return S9(e,t);case 1:return T9(e,t);case 2:return E9(e,t);case 3:return A9(e,t);case 4:return $9(e,t);case 5:return D9(e);case 6:return R9(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function rA(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return I9(e);case 1:return N9(e,t);case 2:return C9(e,t);case 3:return _9(e,t);default:return F9(e,t)}}function n9(e,t,n=!1,a){let r="";n?r+=rA(e,a):r+=up(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=M9(e,t):r+=O9(e,t)),r}function a9(e,t,n){switch(e.length){case 0:return sA();case 1:return h9(e,t,n);case 2:return w9(e,t,n);case 3:return f9(e,t,n);default:return b9(e,t,n)}}function r9(e,t,n){switch(e.length){case 0:return sA();case 1:return m9(e,t,n);case 2:return k9(e,t,n);case 3:return g9(e,t,n);case 4:return y9(e,t,n);case 5:return x9(e,t);case 6:return v9(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function s9(e){return` +`,{getBroadcastDims:sA}=T;function s9(e,t,n){let a=[];if(e.forEach(c=>{let h=w.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=tk(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` +`),s=e.map(c=>i9(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=En(),l=u9(o),u,p,d=d9(o);return t.isPacked?(u=o9(t.logicalShape,i,n.enableShapeUniforms),p=c9(o)):(u=l9(t.logicalShape,i,n.enableShapeUniforms),p=p9(o)),n.packedInputs&&(d+=g9),[d,l,p,r,u,s,n.userCode].join(` +`)}function up(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return E9(e,t);case 1:return A9(e,t);case 2:return $9(e,t);case 3:return R9(e,t);case 4:return O9(e,t);case 5:return P9(e);case 6:return L9(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function iA(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return C9(e);case 1:return _9(e,t);case 2:return F9(e,t);case 3:return D9(e,t);default:return M9(e,t)}}function i9(e,t,n=!1,a){let r="";n?r+=iA(e,a):r+=up(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=z9(e,t):r+=W9(e,t)),r}function o9(e,t,n){switch(e.length){case 0:return oA();case 1:return b9(e,t,n);case 2:return N9(e,t,n);case 3:return x9(e,t,n);default:return w9(e,t,n)}}function l9(e,t,n){switch(e.length){case 0:return oA();case 1:return y9(e,t,n);case 2:return T9(e,t,n);case 3:return v9(e,t,n);case 4:return k9(e,t,n);case 5:return I9(e,t);case 6:return S9(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function u9(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function i9(e){return` + `}function p9(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function o9(e){return` + `}function c9(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function l9(e){return`${e.version} + `}function d9(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -229,10 +229,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${u9} - ${p9} - ${c9} - `}var u9=` + ${h9} + ${m9} + ${f9} + `}var h9=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -244,7 +244,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,p9=` +`,m9=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -252,7 +252,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,c9=` +`,f9=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -261,7 +261,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,d9=` +`,g9=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -272,11 +272,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function sA(){return` +`;function oA(){return` int getOutputCoords() { return 0; } - `}function h9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function b9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -305,7 +305,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function m9(e,t,n){return t[0]===1?n?` + `}function y9(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -333,7 +333,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function f9(e,t,n){if(n)return` + `}function x9(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -364,12 +364,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function g9(e,t,n){if(n)return` + `}function v9(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${zf(["r","c","d"],e)} + ${Wf(["r","c","d"],e)} return ivec3(r, c, d); } `;let a=Zo(["r","c","d"],e);return` @@ -380,7 +380,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function b9(e,t,n){if(n)return` + `}function w9(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -421,12 +421,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function y9(e,t,n){if(n)return` + `}function k9(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${zf(["r","c","d","d2"],e)} + ${Wf(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } `;let a=Zo(["r","c","d","d2"],e);return` @@ -437,7 +437,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function x9(e,t){let n=Zo(["r","c","d","d2","d3"],e);return` + `}function I9(e,t){let n=Zo(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -449,7 +449,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function v9(e,t){let n=Zo(["r","c","d","d2","d3","d4"],e);return` + `}function S9(e,t){let n=Zo(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -460,7 +460,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function w9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(w.arraysEqual(e,t))return n?` + `}function N9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(w.arraysEqual(e,t))return n?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -493,7 +493,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function k9(e,t,n){return w.arraysEqual(e,t)?n?` + `}function T9(e,t,n){return w.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -547,11 +547,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function Jo(e){return`offset${e}`}function I9(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=Cn();return` + `}function Jo(e){return`offset${e}`}function C9(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=En();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function S9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` + `}function E9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` float ${a}() { return sampleTexture(${n}, halfCR); } @@ -565,7 +565,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function N9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=Cn();if(t)return` + `}function _9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=En();if(t)return` vec4 ${a}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -578,7 +578,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function T9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function A9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { ${pp(e)} } @@ -616,7 +616,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function C9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=Cn();if(s!=null&&w.arraysEqual(n,s))return t?` + `}function F9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=En();if(s!=null&&w.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -640,7 +640,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function E9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&w.arraysEqual(n,s)){if(t)return` + `}function $9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&w.arraysEqual(n,s)){if(t)return` float ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); return sampleTexture(${a}, uv); @@ -698,12 +698,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${u}, ${p}, index); return sampleTexture(${a}, uv); } -`}function _9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];if(n[0]===1){let c=n.slice(1),h=[1,2],m=cp(e,c),f=["b","row","col"];return` - ${rA(m,t)} +`}function D9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];if(n[0]===1){let c=n.slice(1),h=[1,2],m=cp(e,c),f=["b","row","col"];return` + ${iA(m,t)} vec4 ${r}(int b, int row, int col) { return ${r}(${dp(f,h)}); } - `}let o=Cn();if(t)return` + `}let o=En();if(t)return` vec4 ${r}(int b, int row, int col) { ivec2 packedTexShape = ivec2(ceil(float(${a}TexShape[0]) / 2.0), ceil(float(${a}TexShape[1]) / 2.0)); int valuesPerRow = int(ceil(float(${a}Shape[2]) / 2.0)); @@ -718,7 +718,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${l}, ${u}, ${d}, ${p}, b, row, col); return ${o.texture2D}(${a}, uv); } - `}function A9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=n[1]*n[2],i=n[2],{newShape:o,keptDims:l}=w.squeezeShape(n),u=o;if(u.length=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` + `}function z9(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=sA(e.shapeInfo.logicalShape,t.logicalShape),l=ht(i),u=i-s,p,d=["x","y","z","w","u","v"];s===0?p="":i<2&&o.length>=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` `);let c="";i<2&&s>0?c="coords":c=e.shapeInfo.logicalShape.map((g,b)=>`coords.${d[b+u]}`).join(", ");let h="return outputValue;",m=w.sizeFromShape(e.shapeInfo.logicalShape)===1,f=w.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` @@ -977,20 +977,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function O9(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 W9(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` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=ht(l),p=aA(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` + `;let u=ht(l),p=sA(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+d]}`).join(", "),` float ${r}() { ${u} coords = getOutputCoords(); ${c} return get${a}(${m}); } - `}function ht(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 tk(e,t,n){let{newShape:a,keptDims:r}=w.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!w.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function P9(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=t9(r,i,t),l=M_(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},iA(e,t,u)))}function iA(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function nS(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{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 L9(e,t,n,a,r){t.program.enableShapeUniforms||(nS(t.inShapeInfos,n),nS([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=tk(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=w.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&w.arraysEqual(i.shape,l),b=w.sizeFromShape(i.shape)===1,y=T.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&w.arraysEqual(l,n.texData.texShape),v=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${v}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${G().getNumber("WEBGL_VERSION")}`,s}function xn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var W9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Nc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` + `}function ht(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 tk(e,t,n){let{newShape:a,keptDims:r}=w.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!w.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function B9(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=s9(r,i,t),l=P_(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},lA(e,t,u)))}function lA(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function nS(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{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 V9(e,t,n,a,r){t.program.enableShapeUniforms||(nS(t.inShapeInfos,n),nS([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=tk(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=w.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&w.arraysEqual(i.shape,l),b=w.sizeFromShape(i.shape)===1,y=T.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&w.arraysEqual(l,n.texData.texShape),v=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${v}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${G().getNumber("WEBGL_VERSION")}`,s}function vn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var G9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Nc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?zf(["r","c","d"],e):Zo(["r","c","d"],e)} + ${this.enableShapeUniforms?Wf(["r","c","d"],e):Zo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1008,9 +1008,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},B9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Nc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` + `}},H9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Nc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?zf(["r","c","d"],e):Zo(["r","c","d"],e)} + ${this.enableShapeUniforms?Wf(["r","c","d"],e):Zo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1028,24 +1028,24 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},V9=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ca.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` - ${nA} + `}},j9=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ca.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${rA} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},U9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ca.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` - ${nA} + `}},q9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ca.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${rA} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},G9={R:0,G:1,B:2,A:3},aS=class{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let a=Cn();this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let s="";for(let i=0;igA,createBufferFromOutputTexture:()=>xA,createFloat16MatrixTexture:()=>dA,createFloat16PackedMatrixTexture:()=>fA,createFloat32MatrixTexture:()=>cA,createIndexBuffer:()=>pA,createPackedMatrixTexture:()=>mA,createUnsignedBytesMatrixTexture:()=>hA,createVertexBuffer:()=>uA,createVertexShader:()=>lA,downloadByteEncodedFloatMatrixFromOutputTexture:()=>wA,downloadFloat32MatrixFromBuffer:()=>vA,downloadMatrixFromPackedOutputTexture:()=>IA,downloadPackedMatrixFromBuffer:()=>kA,getInternalFormatForFloat16MatrixTexture:()=>ak,getInternalFormatForFloat16PackedMatrixTexture:()=>ik,getInternalFormatForFloat32MatrixTexture:()=>nk,getInternalFormatForPackedMatrixTexture:()=>sk,getInternalFormatForUnsignedBytesMatrixTexture:()=>rk,uploadDenseMatrixToTexture:()=>bA,uploadPixelDataToTexture:()=>yA});function lA(e){let t=Cn(),n=`${t.version} + `}},uA={};_e(uA,{bindVertexProgramAttributeStreams:()=>yA,createBufferFromOutputTexture:()=>wA,createFloat16MatrixTexture:()=>mA,createFloat16PackedMatrixTexture:()=>bA,createFloat32MatrixTexture:()=>hA,createIndexBuffer:()=>dA,createPackedMatrixTexture:()=>gA,createUnsignedBytesMatrixTexture:()=>fA,createVertexBuffer:()=>cA,createVertexShader:()=>pA,downloadByteEncodedFloatMatrixFromOutputTexture:()=>IA,downloadFloat32MatrixFromBuffer:()=>kA,downloadMatrixFromPackedOutputTexture:()=>NA,downloadPackedMatrixFromBuffer:()=>SA,getInternalFormatForFloat16MatrixTexture:()=>ak,getInternalFormatForFloat16PackedMatrixTexture:()=>ik,getInternalFormatForFloat32MatrixTexture:()=>nk,getInternalFormatForPackedMatrixTexture:()=>sk,getInternalFormatForUnsignedBytesMatrixTexture:()=>rk,uploadDenseMatrixToTexture:()=>xA,uploadPixelDataToTexture:()=>vA});function pA(e){let t=En(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1119,11 +1119,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return R_(e,n)}function uA(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 L_(e,t)}function pA(e){let t=new Uint16Array([0,1,2,2,1,3]);return z_(e,t)}function Ad(e,t,n,a,r,s){B_(t,n);let i=W_(e),o=e.TEXTURE_2D;return de(e,()=>e.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function nk(e){return e.internalFormatFloat}function cA(e,t,n,a){let[r,s]=_d(t,n);return Ad(e,r,s,nk(a),a.textureFormatFloat,e.FLOAT)}function ak(e){return e.internalFormatHalfFloat}function dA(e,t,n,a){let[r,s]=_d(t,n);return Ad(e,r,s,ak(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function rk(e){return e.downloadTextureFormat}function hA(e,t,n,a){let[r,s]=_d(t,n);return Ad(e,r,s,rk(a),e.RGBA,e.UNSIGNED_BYTE)}function sk(e){return e.internalFormatPackedFloat}function mA(e,t,n,a){let[r,s]=op(t,n);return Ad(e,r,s,sk(a),e.RGBA,e.FLOAT)}function ik(e){return e.internalFormatPackedHalfFloat}function fA(e,t,n,a){let[r,s]=op(t,n);return Ad(e,r,s,ik(a),e.RGBA,a.textureTypeHalfFloat)}function gA(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),uv(e,t,"clipSpacePos",n,3,20,0)&&uv(e,t,"uv",n,2,20,12)}function bA(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function yA(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function xA(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function vA(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 wA(e,t,n,a){let[r,s]=_d(t,n),i=4,o=new Uint8Array(BJ(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function kA(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(VJ(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 IA(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Wh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,F_(t,e)):this.gl=qa(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(r,()=>r.getParameter(r.VERTEX_ARRAY_BINDING))}else if(e!=null){let r=e.getExtension("OES_vertex_array_object");if(r==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(e,()=>e.getParameter(r.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=rc(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=rc(this.gl,s);else if(G().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),da(this.gl,a))this.colorBufferHalfFloatExtension=rc(this.gl,a);else if(G().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",da(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(da(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=uA(this.gl),this.indexBuffer=pA(this.gl),this.framebuffer=V_(this.gl),this.textureConfig=Z1(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),cA(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),dA(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),hA(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),yA(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),bA(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),fA(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),mA(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(pv(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>wA(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return kA(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return vA(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=xA(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>IA(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=lA(t));let n=O_(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),P_(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&Oh(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),gA(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Oh(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?G_(this.gl,e,t):H_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),q_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=op(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&&Oh(this.gl,this.program),sc(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;if(this.debug){let t=this.getVertexArray();console.assert(t===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=rc(this.gl,G().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(G().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(G().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,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=q9(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){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Ph(this.gl,e,this.framebuffer),this.debug&&sc(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Ph(this.gl,this.outputTexture,this.framebuffer),this.debug&&sc(this.gl)):pv(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;Ph(a,e,this.framebuffer),this.debug&&sc(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 q9(e){let t=0;for(;t`${e}.${n}`)}function kn(e,t){return t===1?[e]:CA(e,t)}function LQ(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function nk(e){return e.internalFormatFloat}function hA(e,t,n,a){let[r,s]=_d(t,n);return Ad(e,r,s,nk(a),a.textureFormatFloat,e.FLOAT)}function ak(e){return e.internalFormatHalfFloat}function mA(e,t,n,a){let[r,s]=_d(t,n);return Ad(e,r,s,ak(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function rk(e){return e.downloadTextureFormat}function fA(e,t,n,a){let[r,s]=_d(t,n);return Ad(e,r,s,rk(a),e.RGBA,e.UNSIGNED_BYTE)}function sk(e){return e.internalFormatPackedFloat}function gA(e,t,n,a){let[r,s]=op(t,n);return Ad(e,r,s,sk(a),e.RGBA,e.FLOAT)}function ik(e){return e.internalFormatPackedHalfFloat}function bA(e,t,n,a){let[r,s]=op(t,n);return Ad(e,r,s,ik(a),e.RGBA,a.textureTypeHalfFloat)}function yA(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),pv(e,t,"clipSpacePos",n,3,20,0)&&pv(e,t,"uv",n,2,20,12)}function xA(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function vA(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function wA(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function kA(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 IA(e,t,n,a){let[r,s]=_d(t,n),i=4,o=new Uint8Array(HJ(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function SA(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(jJ(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 NA(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Wh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,D_(t,e)):this.gl=ja(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(r,()=>r.getParameter(r.VERTEX_ARRAY_BINDING))}else if(e!=null){let r=e.getExtension("OES_vertex_array_object");if(r==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(e,()=>e.getParameter(r.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=rc(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=rc(this.gl,s);else if(G().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),da(this.gl,a))this.colorBufferHalfFloatExtension=rc(this.gl,a);else if(G().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",da(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(da(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=cA(this.gl),this.indexBuffer=dA(this.gl),this.framebuffer=G_(this.gl),this.textureConfig=Z1(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),hA(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),mA(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),fA(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),vA(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),xA(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),bA(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),gA(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(cv(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>IA(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return SA(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return kA(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=wA(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>NA(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=pA(t));let n=L_(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),z_(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&Oh(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),yA(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Oh(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?j_(this.gl,e,t):q_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),K_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=op(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&&Oh(this.gl,this.program),sc(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;if(this.debug){let t=this.getVertexArray();console.assert(t===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=rc(this.gl,G().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(G().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(G().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,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=Y9(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){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Ph(this.gl,e,this.framebuffer),this.debug&&sc(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Ph(this.gl,this.outputTexture,this.framebuffer),this.debug&&sc(this.gl)):cv(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;Ph(a,e,this.framebuffer),this.debug&&sc(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 Y9(e){let t=0;for(;t`${e}.${n}`)}function In(e,t){return t===1?[e]:_A(e,t)}function VQ(e,t){if(e===1)return"rc";let n="";for(let a=0;a= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), - rEdge || cEdge ? 0. : getA(${t[3]})`}},EA=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length);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(${t[3]})`}},AA=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);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); @@ -1158,7 +1158,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${WQ(t,this.enableShapeUniforms)} + ${GQ(t,this.enableShapeUniforms)} ${this.enableShapeUniforms?ek():Q1(e)} void main() { @@ -1174,12 +1174,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function WQ(e,t){return` + `}};function GQ(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?e9(["r","c","d"],"inputShape"):Zo(["r","c","d"],e)} + ${t?r9(["r","c","d"],"inputShape"):Zo(["r","c","d"],e)} return ivec3(r, c, d); } - `}var BQ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=sS(t,n),r=iS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=rS(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].pop();return this.usedTextures[r].push(o),o}let i;return a===pn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===pn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===pn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===pn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===pn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=sS(n,a),s=iS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=rS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`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.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function VQ(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function rS(e,t,n,a,r){let s=UQ(t,a),i;if(r){let[l,u]=op(e[0],e[1]);i=l*u}else{let[l,u]=_d(e[0],e[1]);i=l*u}let o=VQ(n,s);return i*o}function UQ(e,t){switch(e){case pn.PACKED_2X2_FLOAT32:return sk(t);case pn.PACKED_2X2_FLOAT16:return ik(t);case pn.UNPACKED_FLOAT32:return nk(t);case pn.UNPACKED_FLOAT16:return ak(t);case pn.PACKED_4X1_UNSIGNED_BYTE:return rk(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function GQ(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?pn.PACKED_2X2_FLOAT32:pn.UNPACKED_FLOAT32:e?pn.PACKED_2X2_FLOAT16:pn.UNPACKED_FLOAT16}function sS(e,t){if(e===ca.UPLOAD)return pn.PACKED_2X2_FLOAT32;if(e===ca.RENDER||e==null)return GQ(t);if(e===ca.DOWNLOAD||e===ca.PIXELS)return pn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function iS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var rr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` + `}var HQ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=sS(t,n),r=iS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=rS(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].pop();return this.usedTextures[r].push(o),o}let i;return a===cn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===cn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===cn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===cn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===cn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=sS(n,a),s=iS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=rS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`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.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function jQ(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function rS(e,t,n,a,r){let s=qQ(t,a),i;if(r){let[l,u]=op(e[0],e[1]);i=l*u}else{let[l,u]=_d(e[0],e[1]);i=l*u}let o=jQ(n,s);return i*o}function qQ(e,t){switch(e){case cn.PACKED_2X2_FLOAT32:return sk(t);case cn.PACKED_2X2_FLOAT16:return ik(t);case cn.UNPACKED_FLOAT32:return nk(t);case cn.UNPACKED_FLOAT16:return ak(t);case cn.PACKED_4X1_UNSIGNED_BYTE:return rk(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function KQ(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?cn.PACKED_2X2_FLOAT32:cn.UNPACKED_FLOAT32:e?cn.PACKED_2X2_FLOAT16:cn.UNPACKED_FLOAT16}function sS(e,t){if(e===ca.UPLOAD)return cn.PACKED_2X2_FLOAT32;if(e===ca.RENDER||e==null)return KQ(t);if(e===ca.DOWNLOAD||e===ca.PIXELS)return cn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function iS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var rr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1190,11 +1190,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Da="if (isnan(x)) return x;",HQ="return x;",oS="return abs(x);",qQ="return (x >= 0.0) ? x : (exp(x) - 1.0);",jQ=Da+` + `}},Da="if (isnan(x)) return x;",XQ="return x;",oS="return abs(x);",YQ="return (x >= 0.0) ? x : (exp(x) - 1.0);",ZQ=Da+` return (x < 0.0) ? 0.0 : x; -`,KQ=Da+` +`,JQ=Da+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Yr="return x;",XQ="return 1.0 / (1.0 + exp(-1.0 * x));",YQ="return x;",ZQ=` +`,Yr="return x;",QQ="return 1.0 / (1.0 + exp(-1.0 * x));",eee="return x;",tee=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1203,7 +1203,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,JQ=` +`,nee=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1213,7 +1213,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,QQ=` +`,aee=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1223,7 +1223,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,eee="return 1.0 / (1.0 + exp(-1.0 * x));",ts=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` +`,ree="return 1.0 / (1.0 + exp(-1.0 * x));",ts=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1234,17 +1234,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},tee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length);let t=e.length,n=kn("rc",t),a=ht(t),r=LQ(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},see=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.length,n=In("rc",t),a=ht(t),r=VQ(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})); } - `}},nee=hr.whereImpl,aee=1e-7,ree=1e-4,bx={};function see(e){return e in bx||(bx[e]={}),bx[e]}var iee=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),oee=600;function lee(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*oee/1024/1024}var lk=class _A extends Fc{nextDataId(){return _A.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let n;if(t!=null){if(t instanceof Wh)n=t;else{let a=qa(G().getNumber("WEBGL_VERSION"),t);n=new Wh(a)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let a=qa(G().getNumber("WEBGL_VERSION"));n=new Wh(a),this.binaryCache=see(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=n,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new BQ(this.gpgpu),this.numMBBeforeWarning=lee(),this.texData=new ym(this,Ta())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,n,a,r,s,i){let o=this.makeTensorInfo(n,a),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:t,texShape:[r,s]},l.texShape=[r,s];let u=ic(n),p=new aS(u,!1,i),d=this.runWebGLProgram(p,[o],a,[[r,s]]);return d.shape=n,l.texture=null,this.disposeIntermediateTensorInfo(o),d.dataId}write(t,n,a){if((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().getBool("DEBUG"))&&this.checkNumericalProblems(t),a==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let r={id:this.nextDataId()};return this.texData.set(r,{shape:n,dtype:a,values:t,usage:ca.UPLOAD,refCount:1}),r}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let n=this.texData.get(t);n.refCount++}decRef(t){if(this.texData.has(t)){let n=this.texData.get(t);n.refCount--}}move(t,n,a,r,s){if(G().getBool("DEBUG")&&this.checkNumericalProblems(n),r==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:a,dtype:r,values:n,usage:ca.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let n=this.texData.get(t),{values:a,dtype:r,complexTensorInfos:s,slice:i,shape:o,isPacked:l}=n;if(i!=null){let c;l?c=new ts(o,Yr):c=new rr(o,Yr);let h=this.runWebGLProgram(c,[{dataId:t,shape:o,dtype:r}],r),m=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),m}if(a!=null)return this.convertAndCacheOnCPU(t);if(r==="string")return a;let u=this.activeTimers!=null,p;u&&(p=w.now());let d;if(r==="complex64"){let c=this.readSync(s.real.dataId),h=this.readSync(s.imag.dataId);d=T.mergeRealAndImagArrays(c,h)}else d=this.getValuesFromTexture(t);return u&&(this.downloadWaitMs+=w.now()-p),this.convertAndCacheOnCPU(t,d)}async read(t){if(this.pendingRead.has(t)){let m=this.pendingRead.get(t);return new Promise(f=>m.push(f))}let n=this.texData.get(t),{values:a,shape:r,slice:s,dtype:i,complexTensorInfos:o,isPacked:l}=n;if(s!=null){let m;l?m=new ts(r,Yr):m=new rr(r,Yr);let f=this.runWebGLProgram(m,[{dataId:t,shape:r,dtype:i}],i),g=this.read(f.dataId);return this.disposeIntermediateTensorInfo(f),g}if(a!=null)return this.convertAndCacheOnCPU(t);if(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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,p;if(i!=="complex64"&&G().get("WEBGL_BUFFER_SUPPORTED")){p=this.decode(t);let m=this.texData.get(p.dataId);u=this.gpgpu.createBufferFromTexture(m.texture.texture,...Ah(r))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let d;if(i==="complex64"){let m=await Promise.all([this.read(o.real.dataId),this.read(o.imag.dataId)]),f=m[0],g=m[1];d=T.mergeRealAndImagArrays(f,g)}else if(u==null)d=this.getValuesFromTexture(t);else{let m=w.sizeFromShape(r);d=this.gpgpu.downloadFloat32MatrixFromBuffer(u,m)}if(p!=null&&this.disposeIntermediateTensorInfo(p),u!=null){let m=this.gpgpu.gl;de(m,()=>m.deleteBuffer(u))}let c=this.convertAndCacheOnCPU(t,d),h=this.pendingRead.get(t);return this.pendingRead.delete(t),h.forEach(m=>m(c)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Ta().removeDataId(t,this),this.pendingDeletes--),c}readToGPU(t,n={}){let a=this.texData.get(t),{values:r,shape:s,slice:i,dtype:o,isPacked:l,texture:u}=a;if(o==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let h;l?h=new ts(s,Yr):h=new rr(s,Yr);let m=this.runWebGLProgram(h,[{dataId:t,shape:s,dtype:o}],o),f=this.readToGPU(m,n);return this.disposeIntermediateTensorInfo(m),f}if(u==null)throw r!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let p=this.decode(t,n.customTexShape),d=Ta().makeTensorFromTensorInfo(p),c=this.texData.get(p.dataId);return Object.assign({tensorRef:d},c.texture)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Oe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(t.shape,t.dtype,n)}checkNumericalProblems(t){if(t!=null)for(let n=0;n0}time(t){let n=this.activeTimers,a=[],r=!1;this.programTimersStack==null?(this.programTimersStack=a,r=!0):this.activeTimers.push(a),this.activeTimers=a,t();let s=w.flatten(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),i=w.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=n,r&&(this.programTimersStack=null);let o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);o.kernelMs=w.sum(l),o.getExtraProfileInfo=()=>l.map((u,p)=>({name:i[p],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(t){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=w.now(),t)}async getQueryTime(t){if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let n=t;return n.endMs-n.startMs}disposeData(t,n=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(n?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!n&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:a}=this.texData.get(t);return a!=null&&(this.disposeData(a.real.dataId,n),this.disposeData(a.imag.dataId,n)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:n,dtype:a,texShape:r,usage:s,isPacked:i,slice:o}=this.texData.get(t),l=o&&o.origDataId||t,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),n!=null&&(this.numBytesInGPU-=this.computeBytes(r,a),this.textureManager.releaseTexture(n,r,s,i)));let p=this.texData.get(t);p.texture=null,p.texShape=null,p.isPacked=!1,p.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,n=iee){return G().getBool("WEBGL_CPU_FORWARD")&&t.every(a=>this.texData.get(a.dataId).texture==null&&w.sizeFromShape(a.shape)0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return this.texData.get(r).usage=null,{dataId:r,shape:t,dtype:n}}makeOutput(t,n,a){return Ta().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,a),this)}unpackTensor(t){let n=new tee(t.shape);return this.runWebGLProgram(n,[t],t.dtype)}packTensor(t){let n=new zQ(t.shape);return this.runWebGLProgram(n,[t],t.dtype,null,!0)}packedReshape(t,n){let a=[vi(t.shape),...wi(t.shape)],r={dtype:t.dtype,shape:a,dataId:t.dataId},s=[vi(n),...wi(n)],i=new EA(s,a),o=!0,l=[a],u=this.runWebGLProgram(i,[r],t.dtype,l,o);return{dataId:u.dataId,shape:n,dtype:u.dtype}}decode(t,n){let a=this.texData.get(t),{isPacked:r,shape:s,dtype:i}=a;if(n!=null){let c=w.sizeFromShape(s),h=n[0]*n[1]*4;w.assert(c<=h,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let o=ic(s),l;r?l=new B9(o):l=new W9(o);let u=!0,p=[n!=null?n:Ah(o)],d=this.runWebGLProgram(l,[{shape:o,dtype:i,dataId:t}],i,p,u,n);return{dtype:i,shape:s,dataId:d.dataId}}runWebGLProgram(t,n,a,r,s=!1,i){let o=this.makeTensorInfo(t.outputShape,a),l=this.texData.get(o.dataId);if(t.packedOutput&&(l.isPacked=!0),t.outPackingScheme===Nc.DENSE){let b=i!=null?i:Ah(t.outputShape);l.texShape=b.map(y=>y*2)}if(t.outTexUsage!=null&&(l.usage=t.outTexUsage),w.sizeFromShape(o.shape)===0)return l.values=w.getTypedArrayFromDType(o.dtype,0),o;let u=[],p=n.map(b=>{if(b.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(b.dataId);if(y.texture==null){if(!t.packedInputs&&w.sizeFromShape(b.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:b.shape,texData:null,isUniform:!0,uniformValues:y.values};t.packedInputs&&(y.isPacked=!0,y.shape=b.shape)}if(this.uploadToGPU(b.dataId),!!y.isPacked!=!!t.packedInputs)b=y.isPacked?this.unpackTensor(b):this.packTensor(b),u.push(b),y=this.texData.get(b.dataId);else if(y.isPacked&&!Tc(y.shape,b.shape)){let x=b,v=b.shape;b.shape=y.shape,b=this.packedReshape(b,v),u.push(b),y=this.texData.get(b.dataId),x.shape=v}return{shape:b.shape,texData:y,isUniform:!1}});this.uploadToGPU(o.dataId);let d={shape:o.shape,texData:l,isUniform:!1},c=z9(t,p,d),h=this.getAndSaveBinary(c,()=>P9(this.gpgpu,t,p,d)),m=this.activeTimers!=null,f;m&&(f=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||L9(this.gpgpu,h,p,d,r),u.forEach(b=>this.disposeIntermediateTensorInfo(b)),m&&(f=this.endTimer(f),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(f)}));let g=G().getNumber("WEBGL_FLUSH_THRESHOLD");if(g>0){let b=w.now();b-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=b)}if(!G().getBool("WEBGL_LAZILY_UNPACK")&&l.isPacked&&s===!1){let b=this.unpackTensor(o);return this.disposeIntermediateTensorInfo(o),b}return o}compileAndRun(t,n,a,r,s=!1){return a=a||n[0].dtype,this.runWebGLProgram(t,n,a,r,s)}getAndSaveBinary(t,n){return t in this.binaryCache||(this.binaryCache[t]=n()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(G().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=O(()=>{if(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=G().getBool("DEBUG");G().set("DEBUG",!1);let n=this.abs(ve(1e-8)).dataSync()[0];if(G().set("DEBUG",t),n>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?aee:ree}uploadToGPU(t){let n=this.texData.get(t),{shape:a,dtype:r,values:s,texture:i,usage:o,isPacked:l}=n;if(i!=null)return;let u=this.activeTimers!=null,p;u&&(p=w.now());let d=n.texShape;if(d==null&&(d=X_(a,l),n.texShape=d),s!=null){let c=ic(a),h,m=d[1],f=d[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(l||!g)&&([m,f]=op(d[0],d[1])),l?h=new H9(c,g):h=new aS(c,g);let b=g?[f,m]:d,y=this.makeTensorInfo(b,r),x=this.texData.get(y.dataId);g?x.usage=ca.PIXELS:x.usage=ca.UPLOAD,x.texShape=b,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),m,f,s);let v=[[f,m]],I=this.runWebGLProgram(h,[y],r,v,!0),N=this.texData.get(I.dataId);n.texShape=N.texShape,n.isPacked=N.isPacked,n.usage=N.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(n.texture=N.texture,n.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),u&&(this.uploadWaitMs+=w.now()-p)}else{let c=this.acquireTexture(d,o,r,l);n.texture=c}}convertAndCacheOnCPU(t,n){let a=this.texData.get(t),{dtype:r}=a;return n!=null&&(a.values=uee(n,r)),a.values}acquireTexture(t,n,a,r){if(this.numBytesInGPU+=this.computeBytes(t,a),!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(t,n,r)}computeBytes(t,n){return t[0]*t[1]*w.bytesPerElement(n)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,n]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(n));return Promise.all(t)}else{for(let[,n]of Object.entries(this.binaryCache)){let a=new Promise(r=>{try{this.checkCompletion_(n),r(!0)}catch(s){throw s}});t.push(a)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await Zw(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(J1(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:n,customUniformLocations:a,infLoc:r,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:o,outTexShapeLocation:l}=iA(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=n,t.customUniformLocations=a,t.infLoc=r,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=o,t.outTexShapeLocation=l}}createTensorFromGPUData(t,n,a){t.channels=t.channels||"RGBA";let{texture:r,height:s,width:i,channels:o}=t,l=Ta().backend;if(!l.gpgpu.gl.isTexture(r))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let u=l.writeTexture(r,n,a,s,i,o);return Ta().makeTensorFromDataId(u,n,a,l)}};lk.nextDataId=0;function uee(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 lk,2);var cee={forceHalfFloat:AA},uk=` + `}},iee=mr.whereImpl,oee=1e-7,lee=1e-4,yx={};function uee(e){return e in yx||(yx[e]={}),yx[e]}var pee=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),cee=600;function dee(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*cee/1024/1024}var lk=class FA extends Fc{nextDataId(){return FA.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let n;if(t!=null){if(t instanceof Wh)n=t;else{let a=ja(G().getNumber("WEBGL_VERSION"),t);n=new Wh(a)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let a=ja(G().getNumber("WEBGL_VERSION"));n=new Wh(a),this.binaryCache=uee(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=n,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new HQ(this.gpgpu),this.numMBBeforeWarning=dee(),this.texData=new ym(this,Ta())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,n,a,r,s,i){let o=this.makeTensorInfo(n,a),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:t,texShape:[r,s]},l.texShape=[r,s];let u=ic(n),p=new aS(u,!1,i),d=this.runWebGLProgram(p,[o],a,[[r,s]]);return d.shape=n,l.texture=null,this.disposeIntermediateTensorInfo(o),d.dataId}write(t,n,a){if((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().getBool("DEBUG"))&&this.checkNumericalProblems(t),a==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let r={id:this.nextDataId()};return this.texData.set(r,{shape:n,dtype:a,values:t,usage:ca.UPLOAD,refCount:1}),r}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let n=this.texData.get(t);n.refCount++}decRef(t){if(this.texData.has(t)){let n=this.texData.get(t);n.refCount--}}move(t,n,a,r,s){if(G().getBool("DEBUG")&&this.checkNumericalProblems(n),r==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:a,dtype:r,values:n,usage:ca.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let n=this.texData.get(t),{values:a,dtype:r,complexTensorInfos:s,slice:i,shape:o,isPacked:l}=n;if(i!=null){let c;l?c=new ts(o,Yr):c=new rr(o,Yr);let h=this.runWebGLProgram(c,[{dataId:t,shape:o,dtype:r}],r),m=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),m}if(a!=null)return this.convertAndCacheOnCPU(t);if(r==="string")return a;let u=this.activeTimers!=null,p;u&&(p=w.now());let d;if(r==="complex64"){let c=this.readSync(s.real.dataId),h=this.readSync(s.imag.dataId);d=T.mergeRealAndImagArrays(c,h)}else d=this.getValuesFromTexture(t);return u&&(this.downloadWaitMs+=w.now()-p),this.convertAndCacheOnCPU(t,d)}async read(t){if(this.pendingRead.has(t)){let m=this.pendingRead.get(t);return new Promise(f=>m.push(f))}let n=this.texData.get(t),{values:a,shape:r,slice:s,dtype:i,complexTensorInfos:o,isPacked:l}=n;if(s!=null){let m;l?m=new ts(r,Yr):m=new rr(r,Yr);let f=this.runWebGLProgram(m,[{dataId:t,shape:r,dtype:i}],i),g=this.read(f.dataId);return this.disposeIntermediateTensorInfo(f),g}if(a!=null)return this.convertAndCacheOnCPU(t);if(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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,p;if(i!=="complex64"&&G().get("WEBGL_BUFFER_SUPPORTED")){p=this.decode(t);let m=this.texData.get(p.dataId);u=this.gpgpu.createBufferFromTexture(m.texture.texture,...Ah(r))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let d;if(i==="complex64"){let m=await Promise.all([this.read(o.real.dataId),this.read(o.imag.dataId)]),f=m[0],g=m[1];d=T.mergeRealAndImagArrays(f,g)}else if(u==null)d=this.getValuesFromTexture(t);else{let m=w.sizeFromShape(r);d=this.gpgpu.downloadFloat32MatrixFromBuffer(u,m)}if(p!=null&&this.disposeIntermediateTensorInfo(p),u!=null){let m=this.gpgpu.gl;de(m,()=>m.deleteBuffer(u))}let c=this.convertAndCacheOnCPU(t,d),h=this.pendingRead.get(t);return this.pendingRead.delete(t),h.forEach(m=>m(c)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Ta().removeDataId(t,this),this.pendingDeletes--),c}readToGPU(t,n={}){let a=this.texData.get(t),{values:r,shape:s,slice:i,dtype:o,isPacked:l,texture:u}=a;if(o==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let h;l?h=new ts(s,Yr):h=new rr(s,Yr);let m=this.runWebGLProgram(h,[{dataId:t,shape:s,dtype:o}],o),f=this.readToGPU(m,n);return this.disposeIntermediateTensorInfo(m),f}if(u==null)throw r!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let p=this.decode(t,n.customTexShape),d=Ta().makeTensorFromTensorInfo(p),c=this.texData.get(p.dataId);return Object.assign({tensorRef:d},c.texture)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Oe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(t.shape,t.dtype,n)}checkNumericalProblems(t){if(t!=null)for(let n=0;n0}time(t){let n=this.activeTimers,a=[],r=!1;this.programTimersStack==null?(this.programTimersStack=a,r=!0):this.activeTimers.push(a),this.activeTimers=a,t();let s=w.flatten(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),i=w.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=n,r&&(this.programTimersStack=null);let o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);o.kernelMs=w.sum(l),o.getExtraProfileInfo=()=>l.map((u,p)=>({name:i[p],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(t){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=w.now(),t)}async getQueryTime(t){if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let n=t;return n.endMs-n.startMs}disposeData(t,n=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(n?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!n&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:a}=this.texData.get(t);return a!=null&&(this.disposeData(a.real.dataId,n),this.disposeData(a.imag.dataId,n)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:n,dtype:a,texShape:r,usage:s,isPacked:i,slice:o}=this.texData.get(t),l=o&&o.origDataId||t,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),n!=null&&(this.numBytesInGPU-=this.computeBytes(r,a),this.textureManager.releaseTexture(n,r,s,i)));let p=this.texData.get(t);p.texture=null,p.texShape=null,p.isPacked=!1,p.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,n=pee){return G().getBool("WEBGL_CPU_FORWARD")&&t.every(a=>this.texData.get(a.dataId).texture==null&&w.sizeFromShape(a.shape)0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return this.texData.get(r).usage=null,{dataId:r,shape:t,dtype:n}}makeOutput(t,n,a){return Ta().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,a),this)}unpackTensor(t){let n=new see(t.shape);return this.runWebGLProgram(n,[t],t.dtype)}packTensor(t){let n=new UQ(t.shape);return this.runWebGLProgram(n,[t],t.dtype,null,!0)}packedReshape(t,n){let a=[vi(t.shape),...wi(t.shape)],r={dtype:t.dtype,shape:a,dataId:t.dataId},s=[vi(n),...wi(n)],i=new AA(s,a),o=!0,l=[a],u=this.runWebGLProgram(i,[r],t.dtype,l,o);return{dataId:u.dataId,shape:n,dtype:u.dtype}}decode(t,n){let a=this.texData.get(t),{isPacked:r,shape:s,dtype:i}=a;if(n!=null){let c=w.sizeFromShape(s),h=n[0]*n[1]*4;w.assert(c<=h,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let o=ic(s),l;r?l=new H9(o):l=new G9(o);let u=!0,p=[n!=null?n:Ah(o)],d=this.runWebGLProgram(l,[{shape:o,dtype:i,dataId:t}],i,p,u,n);return{dtype:i,shape:s,dataId:d.dataId}}runWebGLProgram(t,n,a,r,s=!1,i){let o=this.makeTensorInfo(t.outputShape,a),l=this.texData.get(o.dataId);if(t.packedOutput&&(l.isPacked=!0),t.outPackingScheme===Nc.DENSE){let b=i!=null?i:Ah(t.outputShape);l.texShape=b.map(y=>y*2)}if(t.outTexUsage!=null&&(l.usage=t.outTexUsage),w.sizeFromShape(o.shape)===0)return l.values=w.getTypedArrayFromDType(o.dtype,0),o;let u=[],p=n.map(b=>{if(b.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(b.dataId);if(y.texture==null){if(!t.packedInputs&&w.sizeFromShape(b.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:b.shape,texData:null,isUniform:!0,uniformValues:y.values};t.packedInputs&&(y.isPacked=!0,y.shape=b.shape)}if(this.uploadToGPU(b.dataId),!!y.isPacked!=!!t.packedInputs)b=y.isPacked?this.unpackTensor(b):this.packTensor(b),u.push(b),y=this.texData.get(b.dataId);else if(y.isPacked&&!Tc(y.shape,b.shape)){let x=b,v=b.shape;b.shape=y.shape,b=this.packedReshape(b,v),u.push(b),y=this.texData.get(b.dataId),x.shape=v}return{shape:b.shape,texData:y,isUniform:!1}});this.uploadToGPU(o.dataId);let d={shape:o.shape,texData:l,isUniform:!1},c=U9(t,p,d),h=this.getAndSaveBinary(c,()=>B9(this.gpgpu,t,p,d)),m=this.activeTimers!=null,f;m&&(f=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||V9(this.gpgpu,h,p,d,r),u.forEach(b=>this.disposeIntermediateTensorInfo(b)),m&&(f=this.endTimer(f),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(f)}));let g=G().getNumber("WEBGL_FLUSH_THRESHOLD");if(g>0){let b=w.now();b-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=b)}if(!G().getBool("WEBGL_LAZILY_UNPACK")&&l.isPacked&&s===!1){let b=this.unpackTensor(o);return this.disposeIntermediateTensorInfo(o),b}return o}compileAndRun(t,n,a,r,s=!1){return a=a||n[0].dtype,this.runWebGLProgram(t,n,a,r,s)}getAndSaveBinary(t,n){return t in this.binaryCache||(this.binaryCache[t]=n()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(G().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=O(()=>{if(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=G().getBool("DEBUG");G().set("DEBUG",!1);let n=this.abs(xe(1e-8)).dataSync()[0];if(G().set("DEBUG",t),n>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?oee:lee}uploadToGPU(t){let n=this.texData.get(t),{shape:a,dtype:r,values:s,texture:i,usage:o,isPacked:l}=n;if(i!=null)return;let u=this.activeTimers!=null,p;u&&(p=w.now());let d=n.texShape;if(d==null&&(d=Z_(a,l),n.texShape=d),s!=null){let c=ic(a),h,m=d[1],f=d[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(l||!g)&&([m,f]=op(d[0],d[1])),l?h=new X9(c,g):h=new aS(c,g);let b=g?[f,m]:d,y=this.makeTensorInfo(b,r),x=this.texData.get(y.dataId);g?x.usage=ca.PIXELS:x.usage=ca.UPLOAD,x.texShape=b,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),m,f,s);let v=[[f,m]],I=this.runWebGLProgram(h,[y],r,v,!0),N=this.texData.get(I.dataId);n.texShape=N.texShape,n.isPacked=N.isPacked,n.usage=N.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(n.texture=N.texture,n.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),u&&(this.uploadWaitMs+=w.now()-p)}else{let c=this.acquireTexture(d,o,r,l);n.texture=c}}convertAndCacheOnCPU(t,n){let a=this.texData.get(t),{dtype:r}=a;return n!=null&&(a.values=hee(n,r)),a.values}acquireTexture(t,n,a,r){if(this.numBytesInGPU+=this.computeBytes(t,a),!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(t,n,r)}computeBytes(t,n){return t[0]*t[1]*w.bytesPerElement(n)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,n]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(n));return Promise.all(t)}else{for(let[,n]of Object.entries(this.binaryCache)){let a=new Promise(r=>{try{this.checkCompletion_(n),r(!0)}catch(s){throw s}});t.push(a)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await Zw(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(J1(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:n,customUniformLocations:a,infLoc:r,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:o,outTexShapeLocation:l}=lA(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=n,t.customUniformLocations=a,t.infLoc=r,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=o,t.outTexShapeLocation=l}}createTensorFromGPUData(t,n,a){t.channels=t.channels||"RGBA";let{texture:r,height:s,width:i,channels:o}=t,l=Ta().backend;if(!l.gpgpu.gl.isTexture(r))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let u=l.writeTexture(r,n,a,s,i,o);return Ta().makeTensorFromDataId(u,n,a,l)}};lk.nextDataId=0;function hee(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 lk,2);var fee={forceHalfFloat:$A},uk=` if (isnan(a)) return a; if (isnan(b)) return b; -`,ki=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=T.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` +`,ki=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=T.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1259,7 +1259,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.g = isNaN.g ? NAN : result.g; result.b = isNaN.b ? NAN : result.b; result.a = isNaN.a ? NAN : result.a; -`,hp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=T.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=xn(r);let s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` +`,hp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=T.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=vn(r);let s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1273,7 +1273,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 i=kn("coords",r);this.enableShapeUniforms?s+=` + `;else{let i=In("coords",r);this.enableShapeUniforms?s+=` bool nextRowOutOfBounds = (${i[r-2]} + 1) >= outShape[${r} - 2]; bool nextColOutOfBounds = @@ -1303,13 +1303,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function ta(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 dee={kernelName:eo,backendName:"webgl",kernelFunc:ta};function Fs(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=ta({inputs:{x:a},backend:n}),l=ta({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var hee={kernelName:wm,backendName:"webgl",kernelFunc:Fs},FA="return (a < 0.) ? b * a : a;",$A=` + `}};function ta(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 gee={kernelName:eo,backendName:"webgl",kernelFunc:ta};function $s(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=ta({inputs:{x:a},backend:n}),l=ta({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var bee={kernelName:wm,backendName:"webgl",kernelFunc:$s},DA="return (a < 0.) ? b * a : a;",RA=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function mee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp($A,r.shape,i.shape):new ki(FA,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var fee={kernelName:ro,backendName:"webgl",kernelFunc:mee},DA="return (a < 0.) ? b * a : a;",RA=` +`;function yee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(RA,r.shape,i.shape):new ki(DA,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var xee={kernelName:ro,backendName:"webgl",kernelFunc:yee},MA="return (a < 0.) ? b * a : a;",OA=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function gee(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(RA,a.shape,r.shape):new ki(DA,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var bee={kernelName:wo,backendName:"webgl",kernelFunc:gee},mp="if (isnan(x)) return x;";function Ze({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 d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ts(i.shape,t):p=new rr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function hn({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,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,I]=x,N={dataId:v.dataId,dtype:v.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},_=new ki(e,l.shape,u.shape);return p.runWebGLProgram(_,[N,C],fa(v.dtype,I.dtype))}),y=Fs({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||fa(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?T.fromUint8ToStringArray(m):m,b=l.dtype==="string"?T.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),v=p.makeTensorInfo(x,d),I=p.texData.get(v.dataId);return I.values=y,v}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new hp(t,l.shape,u.shape,n):h=new ki(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function Cc(e,t=!1){if(e==="linear")return t?YQ:HQ;if(e==="relu")return t?JQ:jQ;if(e==="elu")return t?ZQ:qQ;if(e==="relu6")return t?QQ:KQ;if(e==="prelu")return t?RA:DA;if(e==="leakyrelu")return t?$A:FA;if(e==="sigmoid")return t?eee:XQ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var MA=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,this.enableShapeUniforms=xn(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=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 vee(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(OA,a.shape,r.shape):new ki(MA,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var wee={kernelName:wo,backendName:"webgl",kernelFunc:vee},mp="if (isnan(x)) return x;";function Ze({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 d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ts(i.shape,t):p=new rr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function hn({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,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,I]=x,N={dataId:v.dataId,dtype:v.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},_=new ki(e,l.shape,u.shape);return p.runWebGLProgram(_,[N,C],fa(v.dtype,I.dtype))}),y=$s({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||fa(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?T.fromUint8ToStringArray(m):m,b=l.dtype==="string"?T.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),v=p.makeTensorInfo(x,d),I=p.texData.get(v.dataId);return I.values=y,v}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new hp(t,l.shape,u.shape,n):h=new ki(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function Cc(e,t=!1){if(e==="linear")return t?eee:XQ;if(e==="relu")return t?nee:ZQ;if(e==="elu")return t?tee:YQ;if(e==="relu6")return t?aee:JQ;if(e==="prelu")return t?OA:MA;if(e==="leakyrelu")return t?RA:DA;if(e==="sigmoid")return t?ree:QQ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var PA=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,this.enableShapeUniforms=vn(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=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) { @@ -1361,7 +1361,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},pS="return a * b;";function pk(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=T.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new uS(lS.REAL,a.shape,r.shape),p=new uS(lS.IMAG,a.shape,r.shape),d=[{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}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Fs({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=mQ(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new hp(pS,a.shape,r.shape):i=new ki(pS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var yee={kernelName:bo,backendName:"webgl",kernelFunc:pk};function xee(e,t,n){let a=[vi(e.shape),...wi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[vi(t),...wi(t)],i=new EA(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function ce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=w.sizeFromShape(r.shape),l=w.inferFromImplicitShape(s,o),u=w.sizeFromShape(l);w.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 p=i.texData.get(r.dataId);return p.isPacked&&!Tc(r.shape,l)&&!(p.texture!==null&&Tc(p.shape,l))?xee(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var vee={kernelName:Ru,backendName:"webgl",kernelFunc:ce},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 p=1/t;l=`sumValue += dot(values * ${w.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` + `}},pS="return a * b;";function pk(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=T.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new uS(lS.REAL,a.shape,r.shape),p=new uS(lS.IMAG,a.shape,r.shape),d=[{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}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=$s({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=yQ(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new hp(pS,a.shape,r.shape):i=new ki(pS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var kee={kernelName:bo,backendName:"webgl",kernelFunc:pk};function Iee(e,t,n){let a=[vi(e.shape),...wi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[vi(t),...wi(t)],i=new AA(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function ce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=w.sizeFromShape(r.shape),l=w.inferFromImplicitShape(s,o),u=w.sizeFromShape(l);w.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 p=i.texData.get(r.dataId);return p.isPacked&&!Tc(r.shape,l)&&!(p.texture!==null&&Tc(p.shape,l))?Iee(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var See={kernelName:Ru,backendName:"webgl",kernelFunc:ce},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 p=1/t;l=`sumValue += dot(values * ${w.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1414,7 +1414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},wee=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,p=n%4,d=` + `}},Nee=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,p=n%4,d=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1506,12 +1506,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function kee(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=T.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function el(e,t,n,a){let r=kee(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=ht(this.rank),r=CA("rc",this.rank),s=new Array(this.rank);for(let u=0;u6)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=_A("rc",this.rank),s=new Array(this.rank);for(let u=0;u`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let v=n?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],N=ce({inputs:{x:e},backend:r,attrs:{shape:v}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),_=[N,C],F=Math.max(b,y),D=n?N.shape[1]:N.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?Cc(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>OA&&U===!1){let K=N,Z=C;n&&(K=In({inputs:{x:N},backend:r,attrs:{perm:[0,2,1]}}),_.push(K)),a&&(Z=In({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),_.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),_.push(ae));let te=m===1?2:1,se=Z;ee&&(se=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),_.push(se));let ie=pk({inputs:{a:ae,b:se},backend:r});H=Bf({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),_.push(ie)}else{let K=fa(e.dtype,t.dtype),Z=new MA(v,I,[F,h,m],n,a,$,B,S,M),J=[N,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));J.push(ee),_.push(ee)}H=r.runWebGLProgram(Z,J,K)}let j=ce({inputs:{x:H},backend:r,attrs:{shape:x}});_.push(H);for(let K of _)r.disposeIntermediateTensorInfo(K);return j}function _ee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return hm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var Aee={kernelName:si,backendName:"webgl",kernelFunc:_ee},dS="return abs(x);";function Fee(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=NA(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ts(a.shape,dS):r=new rr(a.shape,dS),n.runWebGLProgram(r,[a],a.dtype)}var $ee={kernelName:Yl,backendName:"webgl",kernelFunc:Fee},Dee=Da+` + `}};function Bf(e,t,n){let a=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new _ee(e.shape,t):new Cee(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function Aee(e,t,n,a){let r=t,s=e.shape.length,i=w.parseAxisParam(r,e.shape),o=i,l=T.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=Bf(e,l,a),o=T.getInnerMostAxes(o.length,s)),T.assertAxesAreInnerMostDims("sum",o,s);let[d,c]=T.computeOutAndReduceShapes(p.shape,o),h=d;n&&(h=T.expandShapeToKeepDim(d,i));let m=w.sizeFromShape(c),f=w.sizeFromShape(e.shape)/m,g=ce({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),b=Mm(e.dtype),y=el(g,b,"sum",a),x=ce({inputs:{x:y},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),u&&a.disposeIntermediateTensorInfo(p),x}function Vf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return Aee(r,s,i,n)}var Fee={kernelName:Lo,backendName:"webgl",kernelFunc:Vf};function Sn(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 p=0;p`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let v=n?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],N=ce({inputs:{x:e},backend:r,attrs:{shape:v}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),_=[N,C],F=Math.max(b,y),D=n?N.shape[1]:N.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?Cc(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>LA&&U===!1){let K=N,Z=C;n&&(K=Sn({inputs:{x:N},backend:r,attrs:{perm:[0,2,1]}}),_.push(K)),a&&(Z=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),_.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),_.push(ae));let te=m===1?2:1,se=Z;ee&&(se=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),_.push(se));let ie=pk({inputs:{a:ae,b:se},backend:r});H=Vf({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),_.push(ie)}else{let K=fa(e.dtype,t.dtype),Z=new PA(v,I,[F,h,m],n,a,$,B,S,M),J=[N,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));J.push(ee),_.push(ee)}H=r.runWebGLProgram(Z,J,K)}let q=ce({inputs:{x:H},backend:r,attrs:{shape:x}});_.push(H);for(let K of _)r.disposeIntermediateTensorInfo(K);return q}function Dee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return hm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var Ree={kernelName:ii,backendName:"webgl",kernelFunc:Dee},dS="return abs(x);";function Mee(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=CA(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ts(a.shape,dS):r=new rr(a.shape,dS),n.runWebGLProgram(r,[a],a.dtype)}var Oee={kernelName:Yl,backendName:"webgl",kernelFunc:Mee},Pee=Da+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,Ree=Ze({opSnippet:Dee}),Mee={kernelName:Ni,backendName:"webgl",kernelFunc:Ree},Oee=Da+` +`,Lee=Ze({opSnippet:Pee}),zee={kernelName:Ni,backendName:"webgl",kernelFunc:Lee},Wee=Da+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,Pee=Ze({opSnippet:Oee}),Lee={kernelName:Ti,backendName:"webgl",kernelFunc:Pee},hS="return a + b;",zee=hn({opSnippet:hS,packedOpSnippet:hS,supportsComplex:!0,cpuKernelImpl:j9}),Wee={kernelName:xs,backendName:"webgl",kernelFunc:zee},Bee=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));`,Bee=Ze({opSnippet:Wee}),Vee={kernelName:Ti,backendName:"webgl",kernelFunc:Bee},hS="return a + b;",Uee=hn({opSnippet:hS,packedOpSnippet:hS,supportsComplex:!0,cpuKernelImpl:Z9}),Gee={kernelName:vs,backendName:"webgl",kernelFunc:Uee},Hee=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(` `)} @@ -1543,7 +1543,7 @@ return log(x + sqrt(x * x - 1.0));`,Pee=Ze({opSnippet:Oee}),Lee={kernelName:Ti,b float result = ${a}; setOutput(result); } - `}},Vee=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=` + `}},jee=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(` `)} @@ -1551,7 +1551,7 @@ return log(x + sqrt(x * x - 1.0));`,Pee=Ze({opSnippet:Oee}),Lee={kernelName:Ti,b vec4 result = ${a}; setOutput(result); } - `}};function Bh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return ta({inputs:{x:a[0]},backend:n});if(a.length>G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Bh({inputs:a.slice(0,o),backend:n}),u=Bh({inputs:a.slice(o),backend:n});return Bh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>fa(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new Vee(a[0].shape,s):new Bee(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var Uee={kernelName:Ci,backendName:"webgl",kernelFunc:Bh};function Gee(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("all",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=el(f,f.dtype,"all",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var Hee={kernelName:Zl,backendName:"webgl",kernelFunc:Gee};function qee(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("any",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=el(f,f.dtype,"any",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var jee={kernelName:Jl,backendName:"webgl",kernelFunc:qee},Kee=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 Bh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return ta({inputs:{x:a[0]},backend:n});if(a.length>G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Bh({inputs:a.slice(0,o),backend:n}),u=Bh({inputs:a.slice(o),backend:n});return Bh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>fa(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new jee(a[0].shape,s):new Hee(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var qee={kernelName:Ci,backendName:"webgl",kernelFunc:Bh};function Kee(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("all",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=el(f,f.dtype,"all",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var Xee={kernelName:Zl,backendName:"webgl",kernelFunc:Kee};function Yee(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("any",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=el(f,f.dtype,"any",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var Zee={kernelName:Jl,backendName:"webgl",kernelFunc:Yee},Jee=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]; @@ -1571,7 +1571,7 @@ return log(x + sqrt(x * x - 1.0));`,Pee=Ze({opSnippet:Oee}),Lee={kernelName:Ti,b } setOutput(float(bestIndex)); } - `}},Xee=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=ht(o),u=kn("coords",o),p,d;if(s===1){d=o+1;let C=ht(d);p=` + `}},Qee=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=ht(o),u=In("coords",o),p,d;if(s===1){d=o+1;let C=ht(d);p=` ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; ${C} sourceLocG = ${C}(${u.join()}, 0); @@ -1587,7 +1587,7 @@ return log(x + sqrt(x * x - 1.0));`,Pee=Ze({opSnippet:Oee}),Lee={kernelName:Ti,b ${l} sourceLocA = coords; --${u[o-1]}; ${l} sourceLocB = coords; - --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=kn("sourceLocR",d-1).concat("inIdx.r"),g=kn("sourceLocG",d-1).concat("inIdx.g"),b=kn("sourceLocB",d-1).concat("inIdx.b"),y=kn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` + --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=In("sourceLocR",d-1).concat("inIdx.r"),g=In("sourceLocG",d-1).concat("inIdx.g"),b=In("sourceLocB",d-1).concat("inIdx.b"),y=In("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${b.join()}), @@ -1633,25 +1633,25 @@ return log(x + sqrt(x * x - 1.0));`,Pee=Ze({opSnippet:Oee}),Lee={kernelName:Ti,b } setOutput(bestIndex); } - `}};function PA(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=T.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new Kee(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=PA(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function LA(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=T.computeOptimalWindowSize(s),o=new Xee(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 p=LA(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function zA(e,t,n,a){let r=[n];if(T.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=T.computeOutAndReduceShapes(l.shape,r),d=w.sizeFromShape(p),c=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=PA(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return LA(e,t,a)}function Yee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=zA(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var Zee={kernelName:Ql,backendName:"webgl",kernelFunc:Yee};function Jee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=zA(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var Qee={kernelName:eu,backendName:"webgl",kernelFunc:Jee},ete=Da+` + `}};function zA(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=T.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new Jee(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=zA(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function WA(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=T.computeOptimalWindowSize(s),o=new Qee(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 p=WA(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function BA(e,t,n,a){let r=[n];if(T.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=T.computeOutAndReduceShapes(l.shape,r),d=w.sizeFromShape(p),c=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=zA(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return WA(e,t,a)}function ete(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=BA(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var tte={kernelName:Ql,backendName:"webgl",kernelFunc:ete};function nte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=BA(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var ate={kernelName:eu,backendName:"webgl",kernelFunc:nte},rte=Da+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,tte=Ze({opSnippet:ete}),nte={kernelName:Ei,backendName:"webgl",kernelFunc:tte},ate=Da+"return log(x + sqrt(x * x + 1.0));",rte=Ze({opSnippet:ate}),ste={kernelName:_i,backendName:"webgl",kernelFunc:rte},ite=Da+` +`,ste=Ze({opSnippet:rte}),ite={kernelName:Ei,backendName:"webgl",kernelFunc:ste},ote=Da+"return log(x + sqrt(x * x + 1.0));",lte=Ze({opSnippet:ote}),ute={kernelName:_i,backendName:"webgl",kernelFunc:lte},pte=Da+` return atan(x); -`,ote=Ze({opSnippet:ite}),lte={kernelName:Ai,backendName:"webgl",kernelFunc:ote},ute=uk+` +`,cte=Ze({opSnippet:pte}),dte={kernelName:Ai,backendName:"webgl",kernelFunc:cte},hte=uk+` return atan(a, b); -`,pte=` +`,mte=` vec4 result = atan(a, b); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); `+Qo+` return result; -`,cte=hn({opSnippet:ute,packedOpSnippet:pte}),dte={kernelName:$i,backendName:"webgl",kernelFunc:cte},hte=Da+` +`,fte=hn({opSnippet:hte,packedOpSnippet:mte}),gte={kernelName:$i,backendName:"webgl",kernelFunc:fte},bte=Da+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernelName:Fi,backendName:"webgl",kernelFunc:mte},Ec=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,yte=Ze({opSnippet:bte}),xte={kernelName:Fi,backendName:"webgl",kernelFunc:yte},Ec=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1955,7 +1955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(${I}); } - `}};function gte(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,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new Ec(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var bte={kernelName:Di,backendName:"webgl",kernelFunc:gte};function yte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new ck(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var xte={kernelName:tu,backendName:"webgl",kernelFunc:yte},vte=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,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` + `}};function vte(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,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new Ec(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var wte={kernelName:Di,backendName:"webgl",kernelFunc:vte};function kte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new ck(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var Ite={kernelName:tu,backendName:"webgl",kernelFunc:kte},Ste=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,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${u}, ${p}); const float avgMultiplier = float(${d}); @@ -1997,7 +1997,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}},wte=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,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},Nte=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,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -2053,7 +2053,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}};function kte(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=T.computePool3DInfo(i.shape,o,l,d,u,p),h=new wte(c);return n.runWebGLProgram(h,[r],i.dtype)}var Ite={kernelName:Rc,backendName:"webgl",kernelFunc:kte};function Ste(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:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=new vte(p);return n.runWebGLProgram(d,[r],i.dtype)}var Nte={kernelName:Dc,backendName:"webgl",kernelFunc:Ste};function Tte(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return hm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var Cte={kernelName:Ri,backendName:"webgl",kernelFunc:Tte},Ete=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function Tte(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=T.computePool3DInfo(i.shape,o,l,d,u,p),h=new Nte(c);return n.runWebGLProgram(h,[r],i.dtype)}var Cte={kernelName:Rc,backendName:"webgl",kernelFunc:Tte};function Ete(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:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=new Ste(p);return n.runWebGLProgram(d,[r],i.dtype)}var _te={kernelName:Dc,backendName:"webgl",kernelFunc:Ete};function Ate(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return hm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var Fte={kernelName:Ri,backendName:"webgl",kernelFunc:Ate},$te=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2063,7 +2063,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},_te=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},Dte=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -2076,7 +2076,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel setOutput((x - mean) * inv + offset); } - `}},Ate=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;w.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=G().getBool("WEBGL_PACK_NORMALIZATION")?new _te(a.shape,r.shape,s.shape,p,d,l):new Ete(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},Fte={kernelName:Ji,backendName:"webgl",kernelFunc:Ate},$te=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ht(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Dte(this.rank),a,r=e.map((s,i)=>`sourceLoc.${hv[i]} = start[${i}] + coords.${hv[i]};`);a=` + `}},Rte=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;w.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=G().getBool("WEBGL_PACK_NORMALIZATION")?new Dte(a.shape,r.shape,s.shape,p,d,l):new $te(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},Mte={kernelName:Ji,backendName:"webgl",kernelFunc:Rte},Ote=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ht(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Pte(this.rank),a,r=e.map((s,i)=>`sourceLoc.${mv[i]} = start[${i}] + coords.${mv[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2086,7 +2086,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ${a} setOutput(getSource(${n})); } - `}},hv=["x","y","z","w","u","v"];function Dte(e){if(e===1)return"sourceLoc";if(e<=6)return hv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var Rte=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=ht(this.rank),n=kn("coords",this.rank),a=kn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}},mv=["x","y","z","w","u","v"];function Pte(e){if(e===1)return"sourceLoc";if(e<=6)return mv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var Lte=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=ht(this.rank),n=In("coords",this.rank),a=In("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]}; @@ -2115,15 +2115,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ${o} setOutput(result); } - `}};function Mte(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=Kt.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 fp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Kt.parseSliceParams(r,s,i);if(Kt.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=NQ(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Kt.isSliceContinous(r.shape,o,l);if(u||!p){let d=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Rte(l):new $te(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),Mte(r,o,l,n)}var Ote={kernelName:Bu,backendName:"webgl",kernelFunc:fp},Pte=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((y,x)=>y*x),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=[],m=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=In({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=fp({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Lte={kernelName:nu,backendName:"webgl",kernelFunc:Pte};function zte(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=SA(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var Wte={kernelName:au,backendName:"webgl",kernelFunc:zte},Bte=` + `}};function zte(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=Kt.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 fp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Kt.parseSliceParams(r,s,i);if(Kt.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=_Q(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Kt.isSliceContinous(r.shape,o,l);if(u||!p){let d=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Lte(l):new Ote(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),zte(r,o,l,n)}var Wte={kernelName:Bu,backendName:"webgl",kernelFunc:fp},Bte=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((y,x)=>y*x),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=[],m=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=fp({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Vte={kernelName:nu,backendName:"webgl",kernelFunc:Bte};function Ute(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=TA(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var Gte={kernelName:au,backendName:"webgl",kernelFunc:Ute},Hte=` int r = int(a.r) & int(b.r); int g = int(a.g) & int(b.g); int rb = int(a.b) & int(b.b); int ra = int(a.a) & int(b.a); return vec4(r, g, rb, ra); -`,Vte=` +`,jte=` return float(int(a.r) & int(b.r)); -`;function Ute(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=G().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([a,r])||i===1){let l=n.texData.get(a.dataId).values,u=n.texData.get(r.dataId).values,[p,d]=X9(a.shape,r.shape,l,u,a.dtype),c=n.makeTensorInfo(d,a.dtype),h=n.texData.get(c.dataId);return h.values=p,c}let o;return s?o=new hp(Bte,a.shape,r.shape,!1):o=new ki(Vte,a.shape,r.shape),n.runWebGLProgram(o,[a,r],a.dtype)}var Gte={kernelName:ru,backendName:"webgl",kernelFunc:Ute};function Hte(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var qte={kernelName:Mc,backendName:"webgl",kernelFunc:Hte},jte="return float(a != b);",WA=hn({opSnippet:jte,cpuKernelImpl:gQ,dtype:"bool"}),Kte={kernelName:Eu,backendName:"webgl",kernelFunc:WA};function Fd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.real},backend:n})}var Xte={kernelName:Dm,backendName:"webgl",kernelFunc:Fd},Yte="return float(int(x));";function Zte(e,t){let n=new rr(e.shape,Yte),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function mv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ta({inputs:{x:r},backend:n});let i=It(r.shape),o=mv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Fs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Fd({inputs:{input:r},backend:n}),o=mv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=ta({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=Y9(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return Zte(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=WA({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 Jte={kernelName:Mi,backendName:"webgl",kernelFunc:mv},mS="return ceil(x);",Qte=Ze({opSnippet:mS,packedOpSnippet:mS,cpuKernelImpl:Z9}),ene={kernelName:Oi,backendName:"webgl",kernelFunc:Qte},tne=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` +`;function qte(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=G().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([a,r])||i===1){let l=n.texData.get(a.dataId).values,u=n.texData.get(r.dataId).values,[p,d]=Q9(a.shape,r.shape,l,u,a.dtype),c=n.makeTensorInfo(d,a.dtype),h=n.texData.get(c.dataId);return h.values=p,c}let o;return s?o=new hp(Hte,a.shape,r.shape,!1):o=new ki(jte,a.shape,r.shape),n.runWebGLProgram(o,[a,r],a.dtype)}var Kte={kernelName:ru,backendName:"webgl",kernelFunc:qte};function Xte(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var Yte={kernelName:Mc,backendName:"webgl",kernelFunc:Xte},Zte="return float(a != b);",VA=hn({opSnippet:Zte,cpuKernelImpl:vQ,dtype:"bool"}),Jte={kernelName:Eu,backendName:"webgl",kernelFunc:VA};function Fd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.real},backend:n})}var Qte={kernelName:Dm,backendName:"webgl",kernelFunc:Fd},ene="return float(int(x));";function tne(e,t){let n=new rr(e.shape,ene),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function fv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ta({inputs:{x:r},backend:n});let i=It(r.shape),o=fv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=$s({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Fd({inputs:{input:r},backend:n}),o=fv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=ta({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=eQ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return tne(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=VA({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 nne={kernelName:Mi,backendName:"webgl",kernelFunc:fv},mS="return ceil(x);",ane=Ze({opSnippet:mS,packedOpSnippet:mS,cpuKernelImpl:tQ}),rne={kernelName:Oi,backendName:"webgl",kernelFunc:ane},sne=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2134,7 +2134,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel setOutput(clamp(value, minVal, maxVal)); } - `}},nne=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}},ine=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2145,7 +2145,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function ane(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new nne(r.shape):o=new tne(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var rne={kernelName:vs,backendName:"webgl",kernelFunc:ane},sne=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function one(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new ine(r.shape):o=new sne(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var lne={kernelName:ws,backendName:"webgl",kernelFunc:one},une=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2158,7 +2158,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function fS(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function ine(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new sne(a.shape),i=[fS(a,r.complexTensorInfos.real),fS(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var one={kernelName:Oc,backendName:"webgl",kernelFunc:ine},lne=class{constructor(e){this.outputShape=[],this.outputShape=T.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;ms===a?`${r} - ${n}`:r).join()}function Vf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.imag},backend:n})}var pne={kernelName:_m,backendName:"webgl",kernelFunc:Vf};function oc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>Fd({inputs:{input:y},backend:n})),m=e.map(y=>Vf({inputs:{input:y},backend:n})),f=oc(h,t,n),g=oc(m,t,n),b=Fs({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(v=>{let I=[-1,w.sizeFromShape(v.shape.slice(t))];return ce({inputs:{x:v},backend:n,attrs:{shape:I}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape})),f=T.computeOutShape(h.map(v=>v.shape),1),g=h[0].shape[0]===1,b=J9(m,f,a,g),y=T.computeOutShape(e.map(v=>v.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}let s=e.filter(h=>w.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new rr(e[0].shape,Yr):new ts(e[0].shape,Yr);return n.runWebGLProgram(h,e,a)}let o=G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>o){let h=[];for(let f=0;fm.shape),t);return n.runWebGLProgram(h,s,a)}let{tensors2D:l,outShape:u}=cne(s,t,n),p=new lne(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function cne(e,t,n){let a=T.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function BA(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(u=>u.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>w.sizeFromShape(u.shape)>0);return l.length===1?ta({inputs:{x:l[0]},backend:n}):oc(l,s,n)}var dne={kernelName:su,backendName:"webgl",kernelFunc:BA},VA=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,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,b=f?2:3,y=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { + `}};function $h(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Uf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.imag},backend:n})}var mne={kernelName:_m,backendName:"webgl",kernelFunc:Uf};function oc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>Fd({inputs:{input:y},backend:n})),m=e.map(y=>Uf({inputs:{input:y},backend:n})),f=oc(h,t,n),g=oc(m,t,n),b=$s({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(v=>{let I=[-1,w.sizeFromShape(v.shape.slice(t))];return ce({inputs:{x:v},backend:n,attrs:{shape:I}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape})),f=T.computeOutShape(h.map(v=>v.shape),1),g=h[0].shape[0]===1,b=nQ(m,f,a,g),y=T.computeOutShape(e.map(v=>v.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}let s=e.filter(h=>w.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new rr(e[0].shape,Yr):new ts(e[0].shape,Yr);return n.runWebGLProgram(h,e,a)}let o=G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>o){let h=[];for(let f=0;fm.shape),t);return n.runWebGLProgram(h,s,a)}let{tensors2D:l,outShape:u}=fne(s,t,n),p=new dne(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function fne(e,t,n){let a=T.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function UA(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(u=>u.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>w.sizeFromShape(u.shape)>0);return l.length===1?ta({inputs:{x:l[0]},backend:n}):oc(l,s,n)}var gne={kernelName:su,backendName:"webgl",kernelFunc:UA},GA=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,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,b=f?2:3,y=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2338,7 +2338,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ${v} setOutput(result); } - `}},hne=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,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},bne=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,p=e.filterDepth,d=e.filterHeight,c=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}); @@ -2426,7 +2426,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}},UA=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=xn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},HA=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=vn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let f=0;f=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function GA({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),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,b=[];if(s!=null){let y=mm(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=mm(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>OA)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&w.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},v=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,w.assert(Tc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let N=hm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(N.dataId);w.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=v,C.shape=n.outShape,g=ta({inputs:{x:N},backend:a}),g.shape=n.outShape,b.push(N)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),v=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=hm({a:h?x:v,b:h?v:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(v),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function HA({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:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,b=[n.batchSize,f,g],y=!0,x=!1,v=[];if(s!=null){let K=mm(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),v.push(s))}if(r!=null){let K=mm(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),v.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(I);let N=new mne(b,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],_=a.runWebGLProgram(N,[e],"float32",C),F=ce({inputs:{x:_},backend:a,attrs:{shape:b}});v.push(_),v.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?Cc(o,!0):null,B=new MA(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));U.push(K),v.push(K)}let H=a.runWebGLProgram(B,U,"float32"),j=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});v.push(H);for(let K of v)a.disposeIntermediateTensorInfo(K);return j}function fne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=GA({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new UA(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(G().getBool("WEBGL_CONV_IM2COL"))h=HA({x:r,filter:s,convInfo:c,backend:n});else{let f=new VA(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var gne={kernelName:Pi,backendName:"webgl",kernelFunc:fne},bne=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 mm(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function jA({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),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,b=[];if(s!=null){let y=mm(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=mm(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>LA)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&w.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},v=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,w.assert(Tc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let N=hm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(N.dataId);w.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=v,C.shape=n.outShape,g=ta({inputs:{x:N},backend:a}),g.shape=n.outShape,b.push(N)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),v=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=hm({a:h?x:v,b:h?v:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(v),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function qA({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:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,b=[n.batchSize,f,g],y=!0,x=!1,v=[];if(s!=null){let K=mm(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),v.push(s))}if(r!=null){let K=mm(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),v.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(I);let N=new yne(b,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],_=a.runWebGLProgram(N,[e],"float32",C),F=ce({inputs:{x:_},backend:a,attrs:{shape:b}});v.push(_),v.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?Cc(o,!0):null,B=new PA(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));U.push(K),v.push(K)}let H=a.runWebGLProgram(B,U,"float32"),q=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});v.push(H);for(let K of v)a.disposeIntermediateTensorInfo(K);return q}function xne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=jA({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new HA(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(G().getBool("WEBGL_CONV_IM2COL"))h=qA({x:r,filter:s,convInfo:c,backend:n});else{let f=new GA(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var vne={kernelName:Pi,backendName:"webgl",kernelFunc:xne},wne=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; @@ -2706,7 +2706,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}},yne=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,p=s?3:1;this.userCode=` + `}},kne=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,p=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2759,7 +2759,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}},xne=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=` + `}},Ine=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; @@ -2801,7 +2801,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}},vne=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=` + `}},Sne=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() { @@ -2858,7 +2858,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}};function wne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new bne(c);return n.runWebGLProgram(h,[r,s],"float32")}var kne={kernelName:km,backendName:"webgl",kernelFunc:wne},Ine=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=xn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` + `}};function Nne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new wne(c);return n.runWebGLProgram(h,[r,s],"float32")}var Tne={kernelName:km,backendName:"webgl",kernelFunc:Nne},Cne=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${a}, ${r}); void main() { @@ -2932,17 +2932,17 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(result); } - `}};function Sne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(u),c=T.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d);if(G().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new Ine(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new yne(c);return n.runWebGLProgram(h,[r,s],"float32")}}var Nne={kernelName:Li,backendName:"webgl",kernelFunc:Sne};function Tne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new hne(u);return n.runWebGLProgram(p,[r,s],"float32")}var Cne={kernelName:zi,backendName:"webgl",kernelFunc:Tne};function Ene(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=T.computeConv3DInfo(r.shape,l,i,1,o),p=new xne(u);return n.runWebGLProgram(p,[r,s],"float32")}var _ne={kernelName:iu,backendName:"webgl",kernelFunc:Ene};function Ane(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=T.computeConv3DInfo(l,s.shape,o,1,i),p=new vne(u);return n.runWebGLProgram(p,[r,s],"float32")}var Fne={kernelName:ou,backendName:"webgl",kernelFunc:Ane},$ne=mp+` + `}};function Ene(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(u),c=T.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d);if(G().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new Cne(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new kne(c);return n.runWebGLProgram(h,[r,s],"float32")}}var _ne={kernelName:Li,backendName:"webgl",kernelFunc:Ene};function Ane(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new bne(u);return n.runWebGLProgram(p,[r,s],"float32")}var Fne={kernelName:zi,backendName:"webgl",kernelFunc:Ane};function $ne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=T.computeConv3DInfo(r.shape,l,i,1,o),p=new Ine(u);return n.runWebGLProgram(p,[r,s],"float32")}var Dne={kernelName:iu,backendName:"webgl",kernelFunc:$ne};function Rne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=T.computeConv3DInfo(l,s.shape,o,1,i),p=new Sne(u);return n.runWebGLProgram(p,[r,s],"float32")}var Mne={kernelName:ou,backendName:"webgl",kernelFunc:Rne},One=mp+` return cos(x); -`,Dne=` +`,Pne=` vec4 result = cos(x); bvec4 isNaN = isnan(x); ${Qo} return result; -`,Rne=Ze({opSnippet:$ne,packedOpSnippet:Dne}),Mne={kernelName:Wi,backendName:"webgl",kernelFunc:Rne},One=` +`,Lne=Ze({opSnippet:One,packedOpSnippet:Pne}),zne={kernelName:Wi,backendName:"webgl",kernelFunc:Lne},Wne=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,Pne=Ze({opSnippet:One}),Lne={kernelName:Bi,backendName:"webgl",kernelFunc:Pne},zne=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,v]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,Bne=Ze({opSnippet:Wne}),Vne={kernelName:Bi,backendName:"webgl",kernelFunc:Bne},Une=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,v]=d>1?[`${(o-1)/(d-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(${y}); void main() { @@ -3003,7 +3003,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel setOutput(newValue); } } - `}},Wne=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new zne(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},Bne={kernelName:uu,backendName:"webgl",kernelFunc:Wne},_c;(function(e){e.Prod="*",e.Sum="+"})(_c||(_c={}));var gS=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===_c.Prod?"1.0":"0.0",i=n?s:`getX(${bS(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` + `}},Gne=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new Une(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},Hne={kernelName:uu,backendName:"webgl",kernelFunc:Gne},_c;(function(e){e.Prod="*",e.Sum="+"})(_c||(_c={}));var gS=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===_c.Prod?"1.0":"0.0",i=n?s:`getX(${bS(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` void main() { ${ht(r)} coords = getOutputCoords(); int end = ${yS(r,"coords",this.op)}; @@ -3016,7 +3016,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(val); } - `}};function bS(e,t,n){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 new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function yS(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function qA(e,t,n,a,r,s){let i=t.shape.length,o=T.getAxesPermutation([a],i),l=t;o!=null&&(l=In({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=T.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=ta({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new gS(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new gS(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=T.getUndoAxesPermutation(o),h=In({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function Vne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return qA(_c.Prod,r,n,s,i,o)}var Une={kernelName:lu,backendName:"webgl",kernelFunc:Vne};function Gne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return qA(_c.Sum,r,n,s,i,o)}var Hne={kernelName:Vi,backendName:"webgl",kernelFunc:Gne};function qne(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),p=SA(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=K9(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var jne={kernelName:Pc,backendName:"webgl",kernelFunc:qne},Kne=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function bS(e,t,n){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 new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function yS(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function KA(e,t,n,a,r,s){let i=t.shape.length,o=T.getAxesPermutation([a],i),l=t;o!=null&&(l=Sn({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=T.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=ta({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new gS(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new gS(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=T.getUndoAxesPermutation(o),h=Sn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function jne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return KA(_c.Prod,r,n,s,i,o)}var qne={kernelName:lu,backendName:"webgl",kernelFunc:jne};function Kne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return KA(_c.Sum,r,n,s,i,o)}var Xne={kernelName:Vi,backendName:"webgl",kernelFunc:Kne};function Yne(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),p=TA(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=J9(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var Zne={kernelName:Pc,backendName:"webgl",kernelFunc:Yne},Jne=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]; @@ -3035,7 +3035,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel 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 Xne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new Kne(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var Yne={kernelName:pu,backendName:"webgl",kernelFunc:Xne},jA=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=xn(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`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 Qne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new Jne(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var eae={kernelName:pu,backendName:"webgl",kernelFunc:Qne},XA=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=vn(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?l=`float activation(float a) { @@ -3088,7 +3088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ${u} setOutput(result); } - `}},KA=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=xn(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` + `}},YA=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=vn(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=T.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new KA(d):c=new jA(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var Jne={kernelName:Ui,backendName:"webgl",kernelFunc:Zne},Qne=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 tae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,p=l;p==null&&(p=[1,1]),w.assert(T.eitherStridesOrDilationsAreOne(i,p),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=T.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new YA(d):c=new XA(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var nae={kernelName:Ui,backendName:"webgl",kernelFunc:tae},aae=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; @@ -3312,7 +3312,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}},eae=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=` + `}},rae=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() { @@ -3357,13 +3357,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}};function tae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=T.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new Qne(d);return n.runWebGLProgram(c,[r,s],"float32")}var nae={kernelName:Im,backendName:"webgl",kernelFunc:tae};function aae(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=T.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new eae(d);return n.runWebGLProgram(c,[r,s],"float32")}var rae={kernelName:Sm,backendName:"webgl",kernelFunc:aae},sae=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function sae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=T.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new aae(d);return n.runWebGLProgram(c,[r,s],"float32")}var iae={kernelName:Im,backendName:"webgl",kernelFunc:sae};function oae(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=T.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new rae(d);return n.runWebGLProgram(c,[r,s],"float32")}var lae={kernelName:Sm,backendName:"webgl",kernelFunc:oae},uae=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 iae(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new sae(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var oae={kernelName:Lc,backendName:"webgl",kernelFunc:iae},lae=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:p,left:d}=a;this.userCode=` + `}};function pae(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new uae(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var cae={kernelName:Lc,backendName:"webgl",kernelFunc:pae},dae=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:p,left:d}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${p}, ${d}); const float neg_infinity = -3.4e38; @@ -3401,7 +3401,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel float result = curVal; setOutput(result); } - `}};function uae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new lae(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var pae={kernelName:Gi,backendName:"webgl",kernelFunc:uae};function cae(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=T.decodeEinsumEquation(r,s.length);T.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=T.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Bf({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var dae={kernelName:Tm,backendName:"webgl",kernelFunc:cae},hae="return (x >= 0.0) ? x : (exp(x) - 1.0);",mae=` + `}};function hae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new dae(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var mae={kernelName:Gi,backendName:"webgl",kernelFunc:hae};function fae(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=T.decodeEinsumEquation(r,s.length);T.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=T.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Vf({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var gae={kernelName:Tm,backendName:"webgl",kernelFunc:fae},bae="return (x >= 0.0) ? x : (exp(x) - 1.0);",yae=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3410,12 +3410,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,fae=Ze({opSnippet:hae,packedOpSnippet:mae}),gae={kernelName:qi,backendName:"webgl",kernelFunc:fae},bae="return (b >= 0.0) ? a : a * (b + 1.0);",yae=` +`,xae=Ze({opSnippet:bae,packedOpSnippet:yae}),vae={kernelName:ji,backendName:"webgl",kernelFunc:xae},wae="return (b >= 0.0) ? a : a * (b + 1.0);",kae=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,xae=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(yae,a.shape,r.shape):new ki(bae,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},vae={kernelName:cu,backendName:"webgl",kernelFunc:xae},wae=` +`,Iae=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp(kae,a.shape,r.shape):new ki(wae,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},Sae={kernelName:cu,backendName:"webgl",kernelFunc:Iae},Nae=` return vec4(equal(a, b)); -`,kae="return float(a == b);",Iae=hn({opSnippet:kae,packedOpSnippet:wae,dtype:"bool",cpuKernelImpl:Q9}),Sae={kernelName:du,backendName:"webgl",kernelFunc:Iae},Nae=` +`,Tae="return float(a == b);",Cae=hn({opSnippet:Tae,packedOpSnippet:Nae,dtype:"bool",cpuKernelImpl:aQ}),Eae={kernelName:du,backendName:"webgl",kernelFunc:Cae},_ae=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3430,9 +3430,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel 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)); -`,Tae=Ze({opSnippet:Nae}),Cae={kernelName:ji,backendName:"webgl",kernelFunc:Tae},Eae=mp+` +`,Aae=Ze({opSnippet:_ae}),Fae={kernelName:qi,backendName:"webgl",kernelFunc:Aae},$ae=mp+` return exp(x); -`,_ae=` +`,Dae=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3441,7 +3441,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel result.a = isNaN.a ? x.a : result.a; return result; -`,XA=Ze({opSnippet:Eae,packedOpSnippet:_ae,cpuKernelImpl:eQ,dtype:"float32"}),Aae={kernelName:Ki,backendName:"webgl",kernelFunc:XA};function fv(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),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var Fae={kernelName:hu,backendName:"webgl",kernelFunc:fv},xS="return exp(x) - 1.0;",$ae=Ze({opSnippet:xS,packedOpSnippet:xS,cpuKernelImpl:tQ}),Dae={kernelName:Xi,backendName:"webgl",kernelFunc:$ae},vS=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=` +`,ZA=Ze({opSnippet:$ae,packedOpSnippet:Dae,cpuKernelImpl:rQ,dtype:"float32"}),Rae={kernelName:Ki,backendName:"webgl",kernelFunc:ZA};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&&(w.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var Mae={kernelName:hu,backendName:"webgl",kernelFunc:gv},xS="return exp(x) - 1.0;",Oae=Ze({opSnippet:xS,packedOpSnippet:xS,cpuKernelImpl:sQ}),Pae={kernelName:Xi,backendName:"webgl",kernelFunc:Oae},vS=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) { @@ -3474,12 +3474,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function YA(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=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new vS("real",l,t),p=new vS("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Fs({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Rae(e){let{inputs:t,backend:n}=e,{input:a}=t;return YA(a,!1,n)}var Mae={kernelName:Cm,backendName:"webgl",kernelFunc:Rae},Oae=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function JA(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=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new vS("real",l,t),p=new vS("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=$s({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Lae(e){let{inputs:t,backend:n}=e,{input:a}=t;return JA(a,!1,n)}var zae={kernelName:Cm,backendName:"webgl",kernelFunc:Lae},Wae=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); } - `}};function $d(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 Oae(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Pae={kernelName:zc,backendName:"webgl",kernelFunc:$d},Lae=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function $d(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 Wae(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Bae={kernelName:zc,backendName:"webgl",kernelFunc:$d},Vae=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]; @@ -3493,7 +3493,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(outputValue); } - `}},zae={kernelName:mu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Lae(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},wS="return floor(x);",Wae=Ze({opSnippet:wS,packedOpSnippet:wS,cpuKernelImpl:nQ}),Bae={kernelName:Yi,backendName:"webgl",kernelFunc:Wae},Vae=` + `}},Uae={kernelName:mu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Vae(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},wS="return floor(x);",Gae=Ze({opSnippet:wS,packedOpSnippet:wS,cpuKernelImpl:iQ}),Hae={kernelName:Yi,backendName:"webgl",kernelFunc:Gae},jae=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3503,7 +3503,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } else { return NAN; } -`,Uae=` +`,qae=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3524,7 +3524,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Gae=hn({opSnippet:Vae,packedOpSnippet:Uae,dtype:"int32"}),Hae={kernelName:Zi,backendName:"webgl",kernelFunc:Gae},qae=class{constructor(e){this.variableNames=["A"];let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,Kae=hn({opSnippet:jae,packedOpSnippet:qae,dtype:"int32"}),Xae={kernelName:Zi,backendName:"webgl",kernelFunc:Kae},Yae=class{constructor(e){this.variableNames=["A"];let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3546,7 +3546,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel setOutput(floor(value * 255.0 + 0.5)); } - `}},jae=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},Zae=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3580,7 +3580,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ${t.output} = result; } - `}},Kae={kernelName:Hh,backendName:"webgl",kernelFunc:Xae},Il,yx=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Xae(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],p=[u,l],d=[u,l,s];if(o||i){let f=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Il==null||f!==yx)&&(yx=f,Il=document.createElement("canvas").getContext("2d",{willReadFrequently:yx})),Il.canvas.width=l,Il.canvas.height=u,Il.drawImage(r,0,0,l,u),r=Il.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ca.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new jae(d):new qae(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Yae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=T.convertConv2DDataFormat(p),g=T.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),b,y=[],x=i!=null,v=o!=null,I=h==="leakyrelu",N=()=>{let _=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&_.push(F(i,p)),v&&_.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));_.push(D),y.push(D)}return _};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"))b=GA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let _=h?Cc(h,!0):null,F=new UA(g,x,_,v,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=N();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=HA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let _=h?Cc(h,!1):null,F=new VA(g,x,_,v,I),D=N();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(_=>n.disposeIntermediateTensorInfo(_)),C}var Zae={kernelName:ii,backendName:"webgl",kernelFunc:Yae};function Jae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),w.assert(T.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=T.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?Cc(c,b):null,x=[r,s],v=i!=null,I=o!=null,N=c==="leakyrelu";if(v&&x.push(i),I&&x.push(o),N){let D=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new KA(g,v,y,I,N):C=new jA(g,v,y,I,N);let _=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",_);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var Qae={kernelName:oi,backendName:"webgl",kernelFunc:Jae},ere=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=ht(n.length),s=` + `}},Jae={kernelName:Hh,backendName:"webgl",kernelFunc:Qae},Il,xx=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Qae(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],p=[u,l],d=[u,l,s];if(o||i){let f=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Il==null||f!==xx)&&(xx=f,Il=document.createElement("canvas").getContext("2d",{willReadFrequently:xx})),Il.canvas.width=l,Il.canvas.height=u,Il.drawImage(r,0,0,l,u),r=Il.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ca.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new Zae(d):new Yae(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function ere(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=T.convertConv2DDataFormat(p),g=T.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),b,y=[],x=i!=null,v=o!=null,I=h==="leakyrelu",N=()=>{let _=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&_.push(F(i,p)),v&&_.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));_.push(D),y.push(D)}return _};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"))b=jA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let _=h?Cc(h,!0):null,F=new HA(g,x,_,v,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=N();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=qA({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let _=h?Cc(h,!1):null,F=new GA(g,x,_,v,I),D=N();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(_=>n.disposeIntermediateTensorInfo(_)),C}var tre={kernelName:oi,backendName:"webgl",kernelFunc:ere};function nre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),w.assert(T.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=T.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?Cc(c,b):null,x=[r,s],v=i!=null,I=o!=null,N=c==="leakyrelu";if(v&&x.push(i),I&&x.push(o),N){let D=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new YA(g,v,y,I,N):C=new XA(g,v,y,I,N);let _=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",_);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var are={kernelName:li,backendName:"webgl",kernelFunc:nre},rre=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=ht(n.length),s=` int index;`;for(let i=0;i= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function rre(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=w.sizeFromShape(s.shape),d=[],c=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let y=n.bufferSync(h),x=n.bufferSync(c),v=rQ(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new are(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var sre={kernelName:fu,backendName:"webgl",kernelFunc:ZA},ire="return float(a > b);",ore=` + `}};function lre(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=w.sizeFromShape(s.shape),d=[],c=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let y=n.bufferSync(h),x=n.bufferSync(c),v=lQ(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new ore(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var ure={kernelName:fu,backendName:"webgl",kernelFunc:QA},pre="return float(a > b);",cre=` return vec4(greaterThan(a, b)); -`,lre=hn({opSnippet:ire,packedOpSnippet:ore,cpuKernelImpl:sQ,dtype:"bool"}),ure={kernelName:bu,backendName:"webgl",kernelFunc:lre},pre="return float(a >= b);",cre=` +`,dre=hn({opSnippet:pre,packedOpSnippet:cre,cpuKernelImpl:uQ,dtype:"bool"}),hre={kernelName:bu,backendName:"webgl",kernelFunc:dre},mre="return float(a >= b);",fre=` return vec4(greaterThanEqual(a, b)); -`,dre=hn({opSnippet:pre,packedOpSnippet:cre,dtype:"bool",cpuKernelImpl:iQ}),hre={kernelName:Qi,backendName:"webgl",kernelFunc:dre};function mre(e){let{inputs:t,backend:n}=e,{input:a}=t;return YA(a,!0,n)}var fre={kernelName:Em,backendName:"webgl",kernelFunc:mre},gre="return float(!isnan(x) && !isinf(x));",bre=Ze({opSnippet:gre,dtype:"bool"}),yre={kernelName:to,backendName:"webgl",kernelFunc:bre},xre="return float(isinf(x));",vre=Ze({opSnippet:xre,dtype:"bool"}),wre={kernelName:no,backendName:"webgl",kernelFunc:vre},kre="return float(isnan(x));",Ire=Ze({opSnippet:kre,dtype:"bool"}),Sre={kernelName:ao,backendName:"webgl",kernelFunc:Ire},Nre="return float(a < b);",Tre=` +`,gre=hn({opSnippet:mre,packedOpSnippet:fre,dtype:"bool",cpuKernelImpl:pQ}),bre={kernelName:Qi,backendName:"webgl",kernelFunc:gre};function yre(e){let{inputs:t,backend:n}=e,{input:a}=t;return JA(a,!0,n)}var xre={kernelName:Em,backendName:"webgl",kernelFunc:yre},vre="return float(!isnan(x) && !isinf(x));",wre=Ze({opSnippet:vre,dtype:"bool"}),kre={kernelName:to,backendName:"webgl",kernelFunc:wre},Ire="return float(isinf(x));",Sre=Ze({opSnippet:Ire,dtype:"bool"}),Nre={kernelName:no,backendName:"webgl",kernelFunc:Sre},Tre="return float(isnan(x));",Cre=Ze({opSnippet:Tre,dtype:"bool"}),Ere={kernelName:ao,backendName:"webgl",kernelFunc:Cre},_re="return float(a < b);",Are=` return vec4(lessThan(a, b)); -`,Cre=hn({opSnippet:Nre,packedOpSnippet:Tre,cpuKernelImpl:oQ,dtype:"bool"}),Ere={kernelName:yu,backendName:"webgl",kernelFunc:Cre},_re="return float(a <= b);",Are=` +`,Fre=hn({opSnippet:_re,packedOpSnippet:Are,cpuKernelImpl:cQ,dtype:"bool"}),$re={kernelName:yu,backendName:"webgl",kernelFunc:Fre},Dre="return float(a <= b);",Rre=` return vec4(lessThanEqual(a, b)); -`,Fre=hn({opSnippet:_re,packedOpSnippet:Are,cpuKernelImpl:lQ,dtype:"bool"}),$re={kernelName:xu,backendName:"webgl",kernelFunc:Fre};function Dre(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=uQ(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Rre={kernelName:vu,backendName:"webgl",kernelFunc:Dre},Mre=mp+` +`,Mre=hn({opSnippet:Dre,packedOpSnippet:Rre,cpuKernelImpl:dQ,dtype:"bool"}),Ore={kernelName:xu,backendName:"webgl",kernelFunc:Mre};function Pre(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=hQ(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Lre={kernelName:vu,backendName:"webgl",kernelFunc:Pre},zre=mp+` return x < 0.0 ? 0./0. : log(x); -`,Ore=` +`,Wre=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3620,18 +3620,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,Pre=Ze({opSnippet:Mre,packedOpSnippet:Ore,cpuKernelImpl:pQ}),Lre={kernelName:so,backendName:"webgl",kernelFunc:Pre},zre=mp+` +`,Bre=Ze({opSnippet:zre,packedOpSnippet:Wre,cpuKernelImpl:mQ}),Vre={kernelName:so,backendName:"webgl",kernelFunc:Bre},Ure=mp+` return log(1.0 + x); -`,Wre=Ze({opSnippet:zre}),Bre={kernelName:io,backendName:"webgl",kernelFunc:Wre},Vre="return float(a >= 1.0 && b >= 1.0);",Ure=` +`,Gre=Ze({opSnippet:Ure}),Hre={kernelName:io,backendName:"webgl",kernelFunc:Gre},jre="return float(a >= 1.0 && b >= 1.0);",qre=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Gre=hn({opSnippet:Vre,packedOpSnippet:Ure,dtype:"bool"}),Hre={kernelName:wu,backendName:"webgl",kernelFunc:Gre},qre="return float(!(x >= 1.0));",jre=Ze({opSnippet:qre}),Kre={kernelName:ku,backendName:"webgl",kernelFunc:jre},Xre="return float(a >= 1.0 || b >= 1.0);",Yre=` +`,Kre=hn({opSnippet:jre,packedOpSnippet:qre,dtype:"bool"}),Xre={kernelName:wu,backendName:"webgl",kernelFunc:Kre},Yre="return float(!(x >= 1.0));",Zre=Ze({opSnippet:Yre}),Jre={kernelName:ku,backendName:"webgl",kernelFunc:Zre},Qre="return float(a >= 1.0 || b >= 1.0);",ese=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,Zre=hn({opSnippet:Xre,packedOpSnippet:Yre,dtype:"bool"}),Jre={kernelName:Iu,backendName:"webgl",kernelFunc:Zre},Qre=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=` +`,tse=hn({opSnippet:Qre,packedOpSnippet:ese,dtype:"bool"}),nse={kernelName:Iu,backendName:"webgl",kernelFunc:tse},ase=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]; @@ -3650,7 +3650,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel float val = x * ${o}; setOutput(val); } - `}},ese=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=` + `}},rse=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; @@ -3712,7 +3712,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},tse=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new ese(r.shape,s,i,o,l):new Qre(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},nse={kernelName:oo,backendName:"webgl",kernelFunc:tse},ase=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=` + `}},sse=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new rse(r.shape,s,i,o,l):new ase(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},ise={kernelName:oo,backendName:"webgl",kernelFunc:sse},ose=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]; @@ -3767,16 +3767,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(result); } - `}},rse=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new ase(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},sse={kernelName:Su,backendName:"webgl",kernelFunc:rse};function ise(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=el(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function JA(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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let y=n.texData.get(h.dataId).values,x=new Array(o);for(let N=0;N{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new ose(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},use={kernelName:Su,backendName:"webgl",kernelFunc:lse};function pse(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=el(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function eF(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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let y=n.texData.get(h.dataId).values,x=new Array(o);for(let N=0;N`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new Ec(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var hse={kernelName:po,backendName:"webgl",kernelFunc:dse};function mse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new ck(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var fse={kernelName:Nu,backendName:"webgl",kernelFunc:mse},gse=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=` +`,mse=hn({opSnippet:dse,packedOpSnippet:hse,cpuKernelImpl:gQ}),fse={kernelName:uo,backendName:"webgl",kernelFunc:mse};function gse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;lp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new Ec(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var bse={kernelName:po,backendName:"webgl",kernelFunc:gse};function yse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new ck(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var xse={kernelName:Nu,backendName:"webgl",kernelFunc:yse},vse=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() { @@ -3822,7 +3822,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}},bse=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,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + `}},wse=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,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${d}, ${c}); void main() { @@ -3886,16 +3886,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel } setOutput(dotProd); } - `}};function yse(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=T.computePool3DInfo(i.shape,o,l,d,u,p),h=new ck(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new bse(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var xse={kernelName:Bc,backendName:"webgl",kernelFunc:yse};function vse(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:u,pad:p,dimRoundingMode:d}=a,c=T.computePool2DInfo(o.shape,l,u,1,p,d),h=!0,m=new Ec(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new gse(c),b=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),b}var wse={kernelName:Wc,backendName:"webgl",kernelFunc:vse};function kse(e,t,n,a){let r=new Ec(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new Ec(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var Ise={kernelName:Vc,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 u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=T.computePool2DInfo(a.shape,r,s,u,i),[d,c]=kse(a,o,p,l);return[d,c]}};function Sse(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=el(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Nse={kernelName:co,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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let C=0;C{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 u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=T.computePool2DInfo(a.shape,r,s,u,i),[d,c]=Tse(a,o,p,l);return[d,c]}};function Ese(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=el(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var _se={kernelName:co,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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let C=0;Cu[0]+e[p]+u[1]);let a=e.length,r=ht(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,Rse=hn({opSnippet:$se,packedOpSnippet:Dse,cpuKernelImpl:bQ}),Mse={kernelName:mo,backendName:"webgl",kernelFunc:Rse},Ose=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((u,p)=>u[0]+e[p]+u[1]);let a=e.length,r=ht(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).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}; @@ -3924,7 +3924,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ${r} coords = outC - start; setOutput(getX(${o})); } - `}},Dse=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=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` + `}},Pse=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=In("rc",a),l=In("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${d}; @@ -3980,13 +3980,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel ${c} setOutput(result); } - `}},Rse=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Dse(a.shape,r,s):new $se(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Mse={kernelName:fo,backendName:"webgl",kernelFunc:Rse},Ose=`if (b == 0.0) return NAN; - return mod(a, b);`,Pse=` + `}},Lse=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Pse(a.shape,r,s):new Ose(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},zse={kernelName:fo,backendName:"webgl",kernelFunc:Lse},Wse=`if (b == 0.0) return NAN; + return mod(a, b);`,Bse=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); `+Qo+` return result; -`,Lse=hn({opSnippet:Ose,packedOpSnippet:Pse}),zse={kernelName:go,backendName:"webgl",kernelFunc:Lse},Wse=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,Vse=hn({opSnippet:Wse,packedOpSnippet:Bse}),Use={kernelName:go,backendName:"webgl",kernelFunc:Vse},Gse=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4006,11 +4006,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,mte=Ze({opSnippet:hte}),fte={kernel // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},Bse=` + `}},Hse=` if (a == b) { return 1.0; }; -return a / b;`,Vse=` +return a / b;`,jse=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -4028,9 +4028,9 @@ return a / b;`,Vse=` } return result; -`,QA=hn({opSnippet:Bse,packedOpSnippet:Vse,checkOutOfBounds:!0}),Use={kernelName:Hi,backendName:"webgl",kernelFunc:QA},kS="return a - b;",eF=hn({opSnippet:kS,packedOpSnippet:kS,supportsComplex:!0,cpuKernelImpl:RQ}),Gse={kernelName:Bo,backendName:"webgl",kernelFunc:eF};function tF(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=JA({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=T.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=eF({inputs:{a:r,b:u},backend:n}),d=XA({inputs:{x:p},backend:n}),c=Bf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=QA({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Hse={kernelName:zo,backendName:"webgl",kernelFunc:tF};function qse(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:tF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Wse(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var jse={kernelName:Tu,backendName:"webgl",kernelFunc:qse},Kse=Da+` +`,tF=hn({opSnippet:Hse,packedOpSnippet:jse,checkOutOfBounds:!0}),qse={kernelName:Hi,backendName:"webgl",kernelFunc:tF},kS="return a - b;",nF=hn({opSnippet:kS,packedOpSnippet:kS,supportsComplex:!0,cpuKernelImpl:LQ}),Kse={kernelName:Bo,backendName:"webgl",kernelFunc:nF};function aF(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=eF({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=T.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=nF({inputs:{a:r,b:u},backend:n}),d=ZA({inputs:{x:p},backend:n}),c=Vf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=tF({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Xse={kernelName:zo,backendName:"webgl",kernelFunc:aF};function Yse(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:aF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Gse(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Zse={kernelName:Tu,backendName:"webgl",kernelFunc:Yse},Jse=Da+` return -x; -`,Xse=` +`,Qse=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -4040,14 +4040,14 @@ return a / b;`,Vse=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Yse(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=fQ(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ts(a.shape,Xse):r=new rr(a.shape,Kse),n.runWebGLProgram(r,[a],a.dtype)}var Zse={kernelName:Cu,backendName:"webgl",kernelFunc:Yse},Jse=hr.nonMaxSuppressionV3Impl;function Qse(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=Jse(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var eie={kernelName:_u,backendName:"webgl",kernelFunc:Qse},tie=hr.nonMaxSuppressionV4Impl;function nie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=tie(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var aie={kernelName:Au,backendName:"webgl",kernelFunc:nie},rie=hr.nonMaxSuppressionV5Impl;function sie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=rie(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var iie={kernelName:Fu,backendName:"webgl",kernelFunc:sie},oie=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function eie(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=xQ(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ts(a.shape,Qse):r=new rr(a.shape,Jse),n.runWebGLProgram(r,[a],a.dtype)}var tie={kernelName:Cu,backendName:"webgl",kernelFunc:eie},nie=mr.nonMaxSuppressionV3Impl;function aie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=nie(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var rie={kernelName:_u,backendName:"webgl",kernelFunc:aie},sie=mr.nonMaxSuppressionV4Impl;function iie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=sie(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var oie={kernelName:Au,backendName:"webgl",kernelFunc:iie},lie=mr.nonMaxSuppressionV5Impl;function uie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=lie(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var pie={kernelName:Fu,backendName:"webgl",kernelFunc:uie},cie=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))); } - `}},lie=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=w.sizeFromShape(r.shape),p=new oie(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},uie={kernelName:yo,backendName:"webgl",kernelFunc:lie};function fm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Fd({inputs:{input:a},backend:n}),s=fm({inputs:{x:r},backend:n}),i=Vf({inputs:{input:a},backend:n}),o=fm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var pie={kernelName:Yu,backendName:"webgl",kernelFunc:fm};function nF(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=Fd({inputs:{input:a},backend:n}),s=nF({inputs:{x:r},backend:n}),i=Vf({inputs:{input:a},backend:n}),o=fm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var cie={kernelName:$u,backendName:"webgl",kernelFunc:nF};function die(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return fv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=fv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=BA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var hie={kernelName:Du,backendName:"webgl",kernelFunc:die},mie=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=ht(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},die=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=w.sizeFromShape(r.shape),p=new cie(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},hie={kernelName:yo,backendName:"webgl",kernelFunc:die};function fm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Fd({inputs:{input:a},backend:n}),s=fm({inputs:{x:r},backend:n}),i=Uf({inputs:{input:a},backend:n}),o=fm({inputs:{x:i},backend:n}),l=$s({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var mie={kernelName:Yu,backendName:"webgl",kernelFunc:fm};function rF(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=Fd({inputs:{input:a},backend:n}),s=rF({inputs:{x:r},backend:n}),i=Uf({inputs:{input:a},backend:n}),o=fm({inputs:{x:i},backend:n}),l=$s({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var fie={kernelName:$u,backendName:"webgl",kernelFunc:rF};function gie(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(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=gv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=UA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var bie={kernelName:Du,backendName:"webgl",kernelFunc:gie},yie=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=ht(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -4072,7 +4072,7 @@ return a / b;`,Vse=` setOutput(getX(${o})); } } - `}},fie=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],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=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},xie=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],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=In("rc",a),l=In("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${u}) { `,a===1?"":`} rc = outputLoc; @@ -4096,7 +4096,7 @@ return a / b;`,Vse=` ${h} setOutput(result); } - `}},aF=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(w.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return $d({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new fie(r.shape,s,i):new mie(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},gie={kernelName:xo,backendName:"webgl",kernelFunc:aF},bie=` + `}},sF=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(w.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return $d({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xie(r.shape,s,i):new yie(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},vie={kernelName:xo,backendName:"webgl",kernelFunc:sF},wie=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4105,7 +4105,7 @@ return a / b;`,Vse=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,yie=` +`,kie=` // 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); @@ -4123,9 +4123,9 @@ return a / b;`,Vse=` bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); `+Qo+` return result; -`,xie=hn({opSnippet:bie,packedOpSnippet:yie}),vie={kernelName:vo,backendName:"webgl",kernelFunc:xie};function wie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=w.parseAxisParam(s,r.shape),p=u,d=T.getAxesPermutation(p,o),c=r;d!=null&&(c=In({inputs:{x:r},backend:n,attrs:{perm:d}}),p=T.getInnerMostAxes(p.length,o),l.push(c)),T.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:b}=bQ(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=T.computeOutAndReduceShapes(c.shape,p),g=w.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Mm(r.dtype),x=el(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=T.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var kie={kernelName:ko,backendName:"webgl",kernelFunc:wie};function Iie(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=yQ(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Sie={kernelName:Am,backendName:"webgl",kernelFunc:Iie};function Nie(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=xQ(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Tie={kernelName:Fm,backendName:"webgl",kernelFunc:Nie};function Cie(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=vQ(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Eie={kernelName:$m,backendName:"webgl",kernelFunc:Cie},rF=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=wQ(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},_ie={kernelName:Uc,backendName:"webgl",kernelFunc:rF},Aie="return 1.0 / x;",Fie=Ze({opSnippet:Aie}),$ie={kernelName:Io,backendName:"webgl",kernelFunc:Fie},Die=Da+` +`,Iie=hn({opSnippet:wie,packedOpSnippet:kie}),Sie={kernelName:vo,backendName:"webgl",kernelFunc:Iie};function Nie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=w.parseAxisParam(s,r.shape),p=u,d=T.getAxesPermutation(p,o),c=r;d!=null&&(c=Sn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=T.getInnerMostAxes(p.length,o),l.push(c)),T.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:b}=wQ(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=T.computeOutAndReduceShapes(c.shape,p),g=w.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Mm(r.dtype),x=el(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=T.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var Tie={kernelName:ko,backendName:"webgl",kernelFunc:Nie};function Cie(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=kQ(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Eie={kernelName:Am,backendName:"webgl",kernelFunc:Cie};function _ie(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=IQ(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Aie={kernelName:Fm,backendName:"webgl",kernelFunc:_ie};function Fie(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=SQ(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var $ie={kernelName:$m,backendName:"webgl",kernelFunc:Fie},iF=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=NQ(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Die={kernelName:Uc,backendName:"webgl",kernelFunc:iF},Rie="return 1.0 / x;",Mie=Ze({opSnippet:Rie}),Oie={kernelName:Io,backendName:"webgl",kernelFunc:Mie},Pie=Da+` return (x < 0.0) ? 0.0 : x; -`,Rie=` +`,Lie=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4135,9 +4135,9 @@ return a / b;`,Vse=` result.a = isNaN.a ? x.a : result.a; return result; -`,Mie=Ze({opSnippet:Die,packedOpSnippet:Rie}),Oie={kernelName:So,backendName:"webgl",kernelFunc:Mie},Pie=Da+` +`,zie=Ze({opSnippet:Pie,packedOpSnippet:Lie}),Wie={kernelName:So,backendName:"webgl",kernelFunc:zie},Bie=Da+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Lie=` +`,Vie=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4147,7 +4147,7 @@ return a / b;`,Vse=` result.a = isNaN.a ? x.a : result.a; return result; -`,zie=Ze({opSnippet:Pie,packedOpSnippet:Lie}),Wie={kernelName:Co,backendName:"webgl",kernelFunc:zie},Bie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,Uie=Ze({opSnippet:Bie,packedOpSnippet:Vie}),Gie={kernelName:Co,backendName:"webgl",kernelFunc:Uie},Hie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4180,7 +4180,7 @@ return a / b;`,Vse=` setOutput(newValue); } - `}},Vie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},jie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4257,7 +4257,7 @@ return a / b;`,Vse=` setOutput(newValue); } - `}};function Uie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Vie(r.shape,l,u,s,i):new Bie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Gie={kernelName:To,backendName:"webgl",kernelFunc:Uie},Hie=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function qie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new jie(r.shape,l,u,s,i):new Hie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Kie={kernelName:To,backendName:"webgl",kernelFunc:qie},Xie=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4338,7 +4338,7 @@ return a / b;`,Vse=` setOutput(accumulator); } - `}};function qie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Hie(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var jie={kernelName:Ou,backendName:"webgl",kernelFunc:qie},Kie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function Yie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Xie(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Zie={kernelName:Ou,backendName:"webgl",kernelFunc:Yie},Jie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4360,7 +4360,7 @@ return a / b;`,Vse=` setOutput(newValue); } - `}},Xie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},Qie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4401,7 +4401,7 @@ return a / b;`,Vse=` setOutput(newValue); } - `}};function Yie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Xie(r.shape,l,u,s,i):new Kie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var Zie={kernelName:No,backendName:"webgl",kernelFunc:Yie},Jie=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function eoe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Qie(r.shape,l,u,s,i):new Jie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var toe={kernelName:No,backendName:"webgl",kernelFunc:eoe},noe=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4471,7 +4471,7 @@ return a / b;`,Vse=` setOutput(accumulator); } - `}};function Qie(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Jie(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var eoe={kernelName:Mu,backendName:"webgl",kernelFunc:Qie},toe=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 aoe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new noe(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var roe={kernelName:Mu,backendName:"webgl",kernelFunc:aoe},soe=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)); @@ -4481,7 +4481,7 @@ return a / b;`,Vse=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},noe=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=kn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=ht(n);n===1?this.userCode=` + `}},ioe=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=In("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.); @@ -4509,7 +4509,7 @@ return a / b;`,Vse=` } setOutput(result); } - `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function aoe(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 ta({inputs:{x:r},backend:n});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new noe(r.shape,o):new toe(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var roe={kernelName:Eo,backendName:"webgl",kernelFunc:aoe},soe=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function ooe(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 ta({inputs:{x:r},backend:n});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ioe(r.shape,o):new soe(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var loe={kernelName:Eo,backendName:"webgl",kernelFunc:ooe},uoe=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];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=` void main() { @@ -4528,7 +4528,7 @@ return a / b;`,Vse=` } setOutput(outputValue); } - `}},ioe={kernelName:Zu,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new soe(a.shape,s),[u,p]=T.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},ooe=` + `}},poe={kernelName:Zu,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new uoe(a.shape,s),[u,p]=T.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},coe=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4543,7 +4543,7 @@ return a / b;`,Vse=` return base + 1.0; } } -`,loe=Ze({opSnippet:ooe}),uoe={kernelName:_o,backendName:"webgl",kernelFunc:loe},poe="return inversesqrt(x);",coe=Ze({opSnippet:poe,cpuKernelImpl:kQ}),doe={kernelName:Ao,backendName:"webgl",kernelFunc:coe},dk=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` +`,doe=Ze({opSnippet:coe}),hoe={kernelName:_o,backendName:"webgl",kernelFunc:doe},moe="return inversesqrt(x);",foe=Ze({opSnippet:moe,cpuKernelImpl:TQ}),goe={kernelName:Ao,backendName:"webgl",kernelFunc:foe},dk=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4563,7 +4563,7 @@ return a / b;`,Vse=` } setOutput(mix(${f}, sum, float(found))); } - `}},hoe=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` + `}},boe=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4600,7 +4600,7 @@ return a / b;`,Vse=` } setOutput(mix(${f}, sum, found)); } - `}};function moe(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new hoe(l,o,h.shape.length,m.shape.length,p,c):g=new dk(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var foe={kernelName:Pu,backendName:"webgl",kernelFunc:moe},goe=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function yoe(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new boe(l,o,h.shape.length,m.shape.length,p,c):g=new dk(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var xoe={kernelName:Pu,backendName:"webgl",kernelFunc:yoe},voe=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4625,7 +4625,7 @@ return a / b;`,Vse=` setOutput(float(findBound(batch, value))); } - `}};function boe(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new goe(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var yoe={kernelName:zu,backendName:"webgl",kernelFunc:boe},xoe=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 u=0;u4)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); -`,Ioe=Ze({opSnippet:koe}),Soe={kernelName:Fo,backendName:"webgl",kernelFunc:Ioe},Noe=mp+` +`,Coe=Ze({opSnippet:Toe}),Eoe={kernelName:Fo,backendName:"webgl",kernelFunc:Coe},_oe=mp+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Toe=` +`,Aoe=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4653,20 +4653,20 @@ return a / b;`,Vse=` result.a = isNaN.a ? x.a : result.a; return result; -`,Coe=Ze({opSnippet:Noe,packedOpSnippet:Toe,cpuKernelImpl:SQ}),Eoe={kernelName:Mo,backendName:"webgl",kernelFunc:Coe},_oe=` +`,Foe=Ze({opSnippet:_oe,packedOpSnippet:Aoe,cpuKernelImpl:EQ}),$oe={kernelName:Mo,backendName:"webgl",kernelFunc:Foe},Doe=` if (isnan(x)) { return 0.0; } return sign(x); -`,Aoe=Ze({opSnippet:_oe}),Foe={kernelName:Ro,backendName:"webgl",kernelFunc:Aoe},$oe=mp+` +`,Roe=Ze({opSnippet:Doe}),Moe={kernelName:Ro,backendName:"webgl",kernelFunc:Roe},Ooe=mp+` return sin(x); -`,Doe=` +`,Poe=` vec4 result = sin(x); bvec4 isNaN = isnan(x); ${Qo} return result; -`,Roe=Ze({opSnippet:$oe,packedOpSnippet:Doe}),Moe={kernelName:$o,backendName:"webgl",kernelFunc:Roe},Ooe=` +`,Loe=Ze({opSnippet:Ooe,packedOpSnippet:Poe}),zoe={kernelName:$o,backendName:"webgl",kernelFunc:Loe},Woe=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Poe=Ze({opSnippet:Ooe}),Loe={kernelName:Do,backendName:"webgl",kernelFunc:Poe},zoe=` +`,Boe=Ze({opSnippet:Woe}),Voe={kernelName:Do,backendName:"webgl",kernelFunc:Boe},Uoe=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4686,17 +4686,17 @@ return a / b;`,Vse=` result = log(exp_x + 1.0); } return result; -`,Woe=Ze({opSnippet:zoe}),Boe={kernelName:Oo,backendName:"webgl",kernelFunc:Woe},Voe=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;w.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},Uoe={kernelName:Vu,backendName:"webgl",kernelFunc:Voe};function Goe(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,Goe=Ze({opSnippet:Uoe}),Hoe={kernelName:Oo,backendName:"webgl",kernelFunc:Goe},joe=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;w.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},qoe={kernelName:Vu,backendName:"webgl",kernelFunc:joe};function Koe(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(a.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${a.shape}`);if(r.shape.length!==1)throw new Error(`Values must be a vector, saw: ${r.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=TQ(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Hoe={kernelName:Gc,backendName:"webgl",kernelFunc:Goe};function qoe(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=CQ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var joe={kernelName:Gu,backendName:"webgl",kernelFunc:qoe};function Koe(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=AQ(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Xoe={kernelName:Gc,backendName:"webgl",kernelFunc:Koe};function Yoe(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=FQ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Zoe={kernelName:Gu,backendName:"webgl",kernelFunc:Yoe};function Joe(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=TA(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Xoe={kernelName:Hc,backendName:"webgl",kernelFunc:Koe};function Yoe(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=EA(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Qoe={kernelName:Hc,backendName:"webgl",kernelFunc:Joe};function ele(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=TA(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Zoe={kernelName:qc,backendName:"webgl",kernelFunc:Yoe};function Joe(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=w.decodeString(n.readSync(i.dataId)[0]),v=IQ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,v.dtype,v.values)}let m=new dk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Qoe={kernelName:Hu,backendName:"webgl",kernelFunc:Joe};function ele(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=fp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var tle={kernelName:Uu,backendName:"webgl",kernelFunc:ele},IS="return sqrt(x);",nle=Ze({opSnippet:IS,packedOpSnippet:IS,cpuKernelImpl:EQ}),ale={kernelName:Po,backendName:"webgl",kernelFunc:nle},rle="return x * x;",sle=Ze({opSnippet:rle}),ile={kernelName:jc,backendName:"webgl",kernelFunc:sle},SS="return (a - b) * (a - b);",ole=hn({opSnippet:SS,packedOpSnippet:SS}),lle={kernelName:Wo,backendName:"webgl",kernelFunc:ole};function ule(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=T.fromUint8ToStringArray(s),o=_Q(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var ple={kernelName:Kc,backendName:"webgl",kernelFunc:ule};function cle({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Da+` + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=EA(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var tle={kernelName:jc,backendName:"webgl",kernelFunc:ele};function nle(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=w.decodeString(n.readSync(i.dataId)[0]),v=CQ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,v.dtype,v.values)}let m=new dk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var ale={kernelName:Hu,backendName:"webgl",kernelFunc:nle};function rle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=fp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var sle={kernelName:Uu,backendName:"webgl",kernelFunc:rle},IS="return sqrt(x);",ile=Ze({opSnippet:IS,packedOpSnippet:IS,cpuKernelImpl:$Q}),ole={kernelName:Po,backendName:"webgl",kernelFunc:ile},lle="return x * x;",ule=Ze({opSnippet:lle}),ple={kernelName:qc,backendName:"webgl",kernelFunc:ule},SS="return (a - b) * (a - b);",cle=hn({opSnippet:SS,packedOpSnippet:SS}),dle={kernelName:Wo,backendName:"webgl",kernelFunc:cle};function hle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=T.fromUint8ToStringArray(s),o=DQ(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var mle={kernelName:Kc,backendName:"webgl",kernelFunc:hle};function fle({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Da+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new rr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var dle={kernelName:ks,backendName:"webgl",kernelFunc:cle},hle=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=` + `,s=new rr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var gle={kernelName:Is,backendName:"webgl",kernelFunc:fle},ble=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}); @@ -4704,15 +4704,15 @@ return a / b;`,Vse=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function mle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(y,x,v),_=fp({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),_=Oe(r.shape,r.dtype,C),F=AQ(h,_,v,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new hle(y,v,h);I=n.runWebGLProgram(C,[r],r.dtype)}let N=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),N}var fle={kernelName:qu,backendName:"webgl",kernelFunc:mle};function gle(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=FQ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var ble={kernelName:Xc,backendName:"webgl",kernelFunc:gle};function yle(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=$Q(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var xle={kernelName:Yc,backendName:"webgl",kernelFunc:yle};function vle(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=DQ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var wle={kernelName:Zc,backendName:"webgl",kernelFunc:vle},kle="return tan(x);",Ile=Ze({opSnippet:kle}),Sle={kernelName:Vo,backendName:"webgl",kernelFunc:Ile},Nle=` + `}};function yle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(y,x,v),_=fp({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),_=Oe(r.shape,r.dtype,C),F=RQ(h,_,v,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new ble(y,v,h);I=n.runWebGLProgram(C,[r],r.dtype)}let N=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),N}var xle={kernelName:ju,backendName:"webgl",kernelFunc:yle};function vle(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=MQ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var wle={kernelName:Xc,backendName:"webgl",kernelFunc:vle};function kle(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=OQ(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var Ile={kernelName:Yc,backendName:"webgl",kernelFunc:kle};function Sle(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=PQ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var Nle={kernelName:Zc,backendName:"webgl",kernelFunc:Sle},Tle="return tan(x);",Cle=Ze({opSnippet:Tle}),Ele={kernelName:Vo,backendName:"webgl",kernelFunc:Cle},_le=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,Tle=Ze({opSnippet:Nle}),Cle={kernelName:Uo,backendName:"webgl",kernelFunc:Tle};function Ele(e){let{inputs:t,backend:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=t,{}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(i,s,r.shape),c=[d/u,u];if(d===0)return n.makeTensorInfo(r.shape,s.dtype);let h=ce({inputs:{x:s},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:i},backend:n,attrs:{shape:[l,u]}}),f=ce({inputs:{x:r},backend:n,attrs:{shape:c}}),g=new dk(l,o,h.shape.length,m.shape.length,p,c,!1,!0),b=n.runWebGLProgram(g,[m,h,f],f.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(b),y}var _le={kernelName:Lu,backendName:"webgl",kernelFunc:Ele},Ale=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;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>w.decodeString(d)):o,u=Oe(r.shape,r.dtype,l),p=MQ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Ale(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var $le={kernelName:ws,backendName:"webgl",kernelFunc:sF},Dle=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` + `}};function Mle(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;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>w.decodeString(d)):o,u=Oe(r.shape,r.dtype,l),p=zQ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Rle(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Ole={kernelName:ks,backendName:"webgl",kernelFunc:oF},Ple=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4752,7 +4752,7 @@ return a / b;`,Vse=` setOutput(float(i1)); } } - `}},Rle=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + `}},Lle=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4786,7 +4786,7 @@ return a / b;`,Vse=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function qs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function NS(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=OQ(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,$d({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=w.sizeFromShape(u)/p,f=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&qs(n,h);let g=NS(s),b=NS(p),y=null,x=()=>y===null?[f,f]:[f,y],v=(F,D,$)=>{let S=x(),M=new Dle($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),qs(n,U)};for(let F=1;F=1;$/=2)v(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new Rle([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),qs(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)v(U,H,y.shape)}let I=y;y=fp({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),qs(n,I);let N=ZA({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});qs(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),qs(n,I);let _=N;return N=ce({inputs:{x:N},attrs:{shape:C},backend:n}),qs(n,_),[N,y]}var Ole={kernelName:ju,backendName:"webgl",kernelFunc:Mle},Ple=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=` + `}};function qs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function NS(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=WQ(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,$d({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=w.sizeFromShape(u)/p,f=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&qs(n,h);let g=NS(s),b=NS(p),y=null,x=()=>y===null?[f,f]:[f,y],v=(F,D,$)=>{let S=x(),M=new Ple($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),qs(n,U)};for(let F=1;F=1;$/=2)v(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new Lle([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),qs(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)v(U,H,y.shape)}let I=y;y=fp({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),qs(n,I);let N=QA({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});qs(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),qs(n,I);let _=N;return N=ce({inputs:{x:N},attrs:{shape:C},backend:n}),qs(n,_),[N,y]}var Wle={kernelName:qu,backendName:"webgl",kernelFunc:zle},Ble=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) { @@ -4898,7 +4898,7 @@ return a / b;`,Vse=` } setOutput(outputValue); } - `}};function Lle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Ple(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var zle={kernelName:Ku,backendName:"webgl",kernelFunc:Lle};function Wle(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:u}=PQ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Ble={kernelName:Jc,backendName:"webgl",kernelFunc:Wle};function Vle(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),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Ule={kernelName:Xu,backendName:"webgl",kernelFunc:Vle},Gle=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,p=n%4,d=` + `}};function Vle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Ble(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var Ule={kernelName:Ku,backendName:"webgl",kernelFunc:Vle};function Gle(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:u}=BQ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Hle={kernelName:Jc,backendName:"webgl",kernelFunc:Gle};function jle(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),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var qle={kernelName:Xu,backendName:"webgl",kernelFunc:jle},Kle=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,p=n%4,d=` sumValue += dot(values, segFilter); `,c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { @@ -5004,7 +5004,7 @@ return a / b;`,Vse=` } setOutput(${l}); } - `}};function Hle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,p=T.getAxesPermutation([u],o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=T.getInnerMostAxes(1,o)[0]);let c=T.segment_util.computeOutShape(d.shape,u,i),h=w.sizeFromShape([d.shape[u]]),m=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Mm(r.dtype),g=(v,I,N,C,_)=>{let F=v.shape[0],D=v.shape[1],$=T.segment_util.segOpComputeOptimalWindowSize(D,_),S={windowSize:$,inSize:D,batchSize:F,numSegments:_},M=new Gle(S,I),B=n.compileAndRun(M,[v,N],C);if(l.push(B),B.shape[1]===_)return B;let U=rF({backend:n,attrs:{start:0,stop:_,step:1,dtype:"float32"}}),H=sF({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,_)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let v=T.getUndoAxesPermutation(p);x=In({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var qle={kernelName:Qc,backendName:"webgl",kernelFunc:Hle},jle=[Aee,$ee,Mee,Lee,Wee,Uee,Hee,jee,Zee,Qee,nte,ste,lte,dte,fte,bte,xte,Ite,Nte,Cte,Fte,Lte,Wte,Gte,qte,Jte,ene,rne,hee,one,dne,gne,kne,Nne,Cne,_ne,Fne,Mne,Lne,Bne,Une,Hne,jne,Yne,Jne,nae,rae,oae,pae,dae,gae,vae,Sae,Cae,Aae,Fae,Dae,Mae,Pae,zae,Bae,Hae,Kae,Zae,Qae,nre,sre,ure,hre,dee,fre,pne,yre,wre,Sre,fee,Ere,$re,Rre,Lre,Bre,Hre,Kre,Jre,nse,sse,ose,cse,hse,fse,xse,wse,Ise,Nse,Cse,Fse,Mse,zse,jse,yee,Zse,eie,aie,iie,Kte,uie,cie,hie,gie,vie,bee,kie,Sie,Tie,Eie,_ie,Xte,Use,$ie,Oie,Wie,vee,Gie,jie,Zie,eoe,roe,ioe,uoe,doe,foe,yoe,woe,Soe,Eoe,Foe,Moe,Loe,Ote,Hse,Boe,Uoe,Hoe,joe,Xoe,Zoe,Qoe,tle,ale,ile,lle,ple,dle,fle,ble,xle,wle,Gse,Cee,Sle,Cle,_le,$le,Ole,zle,Eee,Ble,Ule,qle,pie];for(let e of jle)ed(e);var Qe;(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"})(Qe||(Qe={}));var Ac;(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",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(Ac||(Ac={}));var iF;function Kle(e){iF=e.wasm.cwrap(si,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Xle(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:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let _=n.dataIdMap.get(i.dataId);if(_.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${_.shape.length}.`);m=_.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Ac[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),v=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(v.dataId).id,N=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return iF(c,N,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),v}var Yle={kernelName:si,backendName:"wasm",setupFunc:Kle,kernelFunc:Xle};function Xe(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return w.sizeFromShape(u.shape)===0||n(l,Qe[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Zle=Xe(Yl),Jle=Xe(Ni),Qle=Xe(Ti);function Ut(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:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=T.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Qe[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var eue=!0,tue=Ut(xs,eue),oF;function nue(e){oF=e.wasm.cwrap(Ci,null,["array","number","number","number"])}function aue(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 oF(s,r.length,Qe[a.dtype],i),a}var rue={kernelName:Ci,backendName:"wasm",setupFunc:nue,kernelFunc:aue};function Uf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var sue={kernelName:eo,backendName:"wasm",kernelFunc:Uf},lF;function iue(e){lF=e.wasm.cwrap(Tr,null,["number","array","number","number","number","array","number"])}function bs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=lue(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 uue={kernelName:Tr,backendName:"wasm",kernelFunc:bs,setupFunc:iue};function $s(e,t,n){let a=e.shape,r=e.shape.length,s=w.parseAxisParam(t,a),i=s,o=T.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`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 Mue={kernelName:Ru,backendName:"wasm",kernelFunc:Ln},gF;function Oue(e){gF=e.wasm.cwrap(Ri,null,["number","array","number","number","array","number","number","number","number"])}function Pue(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,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=Ln({inputs:{x:r},backend:n,attrs:{shape:x}}),N=Ln({inputs:{x:s},backend:n,attrs:{shape:v}}),C=n.dataIdMap.get(I.dataId).id,_=n.dataIdMap.get(N.dataId).id,F=i?I.shape[2]:I.shape[1],D=o?N.shape[1]:N.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(N.shape).buffer);return gF(C,B,I.shape.length,_,U,N.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(N.dataId),S.shape=y,S}var Lue={kernelName:Ri,backendName:"wasm",setupFunc:Oue,kernelFunc:Pue};function Ii(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Kt.parseSliceParams(t,n,a),o=Kt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Kt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(i))),u}if(t.dtype==="string"){let m=um(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)zue(l,p[0],c,s,i);else if(h===3)Wue(l,p[0],p[1],c,s,i);else if(h===4)Bue(l,p[0],p[1],p[2],c,s,i);else{let m=um(l,s,i,t.shape,t.dtype);c.set(m)}return u}function zue(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=Ln({inputs:{x:r},backend:n,attrs:{shape:l}}),m=bs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Ln({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Ii({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(f.dataId),g}var Gue={kernelName:nu,backendName:"wasm",kernelFunc:Uue},bF;function Hue(e){bF=e.wasm.cwrap(au,null,["number","number","boolean","number","number","number"])}function que(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return bF(p(r),i,o,p(s),Qe[s.dtype],p(u)),u}var jue={kernelName:au,backendName:"wasm",setupFunc:Hue,kernelFunc:que},Kue=!0,Xue=Ut(ru,Kue);function Yue(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var Zue={kernelName:Mc,backendName:"wasm",kernelFunc:Yue};function Ds(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 Jue={kernelName:Mi,backendName:"wasm",kernelFunc:Ds},Que=Xe(Oi),yF;function epe(e){yF=e.wasm.cwrap(vs,null,["number","number","number","number"])}function tpe(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 yF(o,s,i,u),l}var npe={kernelName:vs,backendName:"wasm",setupFunc:epe,kernelFunc:tpe};function xF(e){let{inputs:t,backend:n}=e,a=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);T.assertParamsConsistent(r,a);let s=T.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>w.sizeFromShape(h.shape)>0);if(i.length===1)return Uf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(w.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let v=[-1,w.sizeFromShape(x.shape.slice(a))];return Ln({inputs:{x},backend:n,attrs:{shape:v}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=T.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=L1(m,s,t[0].dtype,f),b=T.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=T.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=w.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=bs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;TF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=bs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Tpe={kernelName:lu,backendName:"wasm",setupFunc:Spe,kernelFunc:Npe},CF;function Cpe(e){CF=e.wasm.cwrap(Vi,null,["number","number","number","number","number","number"])}function Epe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;w.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=bs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;CF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=bs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var _pe={kernelName:Vi,backendName:"wasm",setupFunc:Cpe,kernelFunc:Epe},EF;function Ape(e){EF=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function Fpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return EF(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),Qe[s.dtype],o,d(p)),p}var $pe={kernelName:Pc,backendName:"wasm",setupFunc:Ape,kernelFunc:Fpe},_F;function Dpe(e){_F=e.wasm.cwrap(pu,null,["number","number","number","array","number","array","array","number","number"])}function Rpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return _F(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,v),f}var Mpe={kernelName:pu,backendName:"wasm",setupFunc:Dpe,kernelFunc:Rpe},AF;function Ope(e){AF=e.wasm.cwrap(Ui,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ppe(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:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=T.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,I=h.dilationWidth,N=h.strideHeight,C=h.strideWidth,_=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return AF(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,v,I,N,C,_,F,S),$}var Lpe={kernelName:Ui,backendName:"wasm",setupFunc:Ope,kernelFunc:Ppe},FF;function zpe(e){FF=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function Wpe(e){let{inputs:t,backend:n}=e,{x:a}=t,r=w.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return FF(n.dataIdMap.get(a.dataId).id,Qe[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var Bpe={kernelName:Lc,backendName:"wasm",setupFunc:zpe,kernelFunc:Wpe},$F;function Vpe(e){$F=e.wasm.cwrap(Gi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Upe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return $F(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,Qe[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var Gpe={kernelName:Gi,backendName:"wasm",setupFunc:Vpe,kernelFunc:Upe},DF;function Hpe(e){DF=e.wasm.cwrap(Rl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function qpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return DF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var jpe={kernelName:Rl,backendName:"wasm",setupFunc:Hpe,kernelFunc:qpe},RF;function Kpe(e){RF=e.wasm.cwrap(Dl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Xpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return RF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var Ype={kernelName:Dl,backendName:"wasm",setupFunc:Kpe,kernelFunc:Xpe},Zpe=Xe(qi),MF;function Jpe(e){MF=e.wasm.cwrap(cu,null,["number","number","number"])}function Qpe(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return MF(i(r),i(a),i(s)),s}var ece={kernelName:cu,backendName:"wasm",setupFunc:Jpe,kernelFunc:Qpe},tce=!1,nce=Ut(du,tce,"bool"),ace=Xe(ji),rce=Xe(Ki,"float32");function bv(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),Ln({inputs:{x:r},backend:a,attrs:{shape:o}})}var sce={kernelName:hu,backendName:"wasm",kernelFunc:bv},ice=Xe(Xi,"float32");function OF(e){let{attrs:{shape:t,value:n},backend:a}=e,{attrs:{dtype:r}}=e;r=r||w.inferDtype(n);let s=a.makeOutput(t,r);return a.typedArrayFromHeap(s).fill(n),s}var oce={kernelName:zc,backendName:"wasm",kernelFunc:OF},PF;function lce(e){PF=e.wasm.cwrap(mu,null,["number","number","number","number","number","number"])}function uce(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,p]=a.shape;return PF(s,o,l,u,p,i),r}var pce={kernelName:mu,backendName:"wasm",kernelFunc:uce,setupFunc:lce},cce=Xe(Yi),dce=!1,hce=Ut(Zi,dce),LF;function mce(e){LF=e.wasm.cwrap(Ji,null,["number","number","number","number","number","number","number"])}function fce(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=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(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return LF(p,d,c,h,m,r,g),f}var gce={kernelName:Ji,backendName:"wasm",setupFunc:mce,kernelFunc:fce},zF;function bce(e){zF=e.wasm.cwrap(ii,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 yce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=Ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return zF(b,j,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var xce={kernelName:ii,backendName:"wasm",setupFunc:bce,kernelFunc:yce},WF;function vce(e){WF=e.wasm.cwrap(oi,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 wce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=Ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return WF(b,j,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var kce={kernelName:oi,backendName:"wasm",setupFunc:vce,kernelFunc:wce},BF;function Ice(e){BF=e.wasm.cwrap(gu,null,["number","number","number","number","number","number","array","number"])}function Sce(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Yw.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=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 BF(c,Qe[a.dtype],h,i,d,o,m,f),u}var Nce={kernelName:gu,backendName:"wasm",setupFunc:Ice,kernelFunc:Sce},VF;function Tce(e){VF=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Cce(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],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${_} is not in [0, ${p-1}]`)}let d=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Ln({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=w.sizeFromShape(s.shape),m=Ln({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(w.sizeFromShape(r.shape)===0)return g;let b=c.shape.length-1,y=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,v=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),N=new Uint8Array(new Int32Array(w.computeStrides(f)).buffer);return VF(y,Qe[r.dtype],I,b,x,d.batchSize,N,v),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Ece={kernelName:fu,backendName:"wasm",setupFunc:Tce,kernelFunc:Cce},_ce=!1,Ace=Ut(bu,_ce,"bool"),Fce=!1,$ce=Ut(Qi,Fce,"bool"),Dce=Xe(to,"bool"),Rce=Xe(no,"bool"),Mce=Xe(ao,"bool"),UF;function Oce(e){UF=e.wasm.cwrap(ro,null,["number","number","number","number"])}function Pce(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;UF(r,Qe[t.dtype],n,i)}return s}var Lce={kernelName:ro,backendName:"wasm",setupFunc:Oce,kernelFunc:Pce},zce=!1,Wce=Ut(yu,zce,"bool"),Bce=!1,Vce=Ut(xu,Bce,"bool"),GF;function Uce(e){GF=e.wasm.cwrap(vu,null,["number","number","number","number"])}function Gce(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return GF(n.dataIdMap.get(o.dataId).id,a,r,i),o}var Hce={kernelName:vu,backendName:"wasm",setupFunc:Uce,kernelFunc:Gce},qce=Xe(so),jce=Xe(io),Kce=!1,Xce=Ut(wu,Kce,"bool"),Yce=Xe(ku),Zce=!1,Jce=Ut(Iu,Zce,"bool"),Qce=!1,ede=Ut(qS,Qce,"bool"),HF;function tde(e){HF=e.wasm.cwrap(oo,null,["number","number","number","number","number","number","number"])}function nde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return HF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var ade={kernelName:oo,backendName:"wasm",setupFunc:tde,kernelFunc:nde},qF;function rde(e){qF=e.wasm.cwrap(Su,null,["number","number","number","number","number","number","number","number","number"])}function sde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return qF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var ide={kernelName:Su,backendName:"wasm",setupFunc:rde,kernelFunc:sde},jF;function ode(e){jF=e.wasm.cwrap(lo,null,["number","number","number","number"])}function lde(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:p,originalAxes:d,inputWasTransposed:c}=$s(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;T.assertAxesAreInnerMostDims("max",p,h);let[m,f]=T.computeOutAndReduceShapes(l.shape,p),g=w.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;jF(o,Qe[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=T.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var ude={kernelName:lo,backendName:"wasm",setupFunc:ode,kernelFunc:lde},pde=!1,cde=Ut(uo,pde),KF;function dde(e){KF=e.wasm.cwrap(po,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function hde(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;w.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=T.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,v=p.strideWidth,I=p.inChannels,N=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),_=a.dataIdMap.get(C.dataId).id;return KF(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,v,I,N,_),C}var mde={kernelName:po,backendName:"wasm",setupFunc:dde,kernelFunc:hde},XF;function fde(e){XF=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function gde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return XF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var bde={kernelName:Nu,backendName:"wasm",setupFunc:fde,kernelFunc:gde},YF;function yde(e){YF=e.wasm.cwrap("MaxPool3DGrad",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 xde(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return YF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var vde={kernelName:Bc,backendName:"wasm",setupFunc:yde,kernelFunc:xde},ZF;function wde(e){ZF=e.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function kde(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool2DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return ZF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),d}var Ide={kernelName:Wc,backendName:"wasm",setupFunc:wde,kernelFunc:kde},JF;function Sde(e){JF=e.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Nde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,includeBatchInIndex:l}=a;w.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);let u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,[1,1],o),d=n.makeOutput(p.outShape,r.dtype),c=n.makeOutput(p.outShape,"int32");return JF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,n.dataIdMap.get(c.dataId).id,Qe[r.dtype],l,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),[d,c]}var Tde={kernelName:Vc,backendName:"wasm",setupFunc:Sde,kernelFunc:Nde},QF;function Cde(e){QF=e.wasm.cwrap(co,null,["number, number, number"])}function Ede(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=$s(i,r,t),m=d;if(h){let v=t.dataIdMap.get(p.dataId).id;v!==o&&(u=p,l=v,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Ds({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;QF(l,b,v)}if(h&&t.disposeData(p.dataId),s){let v=T.expandShapeToKeepDim(x.shape,c);x.shape=v}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var _de={kernelName:co,backendName:"wasm",setupFunc:Cde,kernelFunc:Ede},e$;function Ade(e){e$=e.wasm.cwrap(ho,null,["number","number","number","number"])}function Fde(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=$s(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;T.assertAxesAreInnerMostDims("min",d,m);let[f,g]=T.computeOutAndReduceShapes(u.shape,d),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;e$(l,Qe[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var $de={kernelName:ho,backendName:"wasm",setupFunc:Ade,kernelFunc:Fde},Dde=!1,Rde=Ut(mo,Dde),yv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(yv||(yv={}));var t$;function Mde(e){t$=e.wasm.cwrap(fo,null,["number","array","number","number","array","array","number","number"])}function Ode(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode: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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return t$(i,u,t.shape.length,Qe[t.dtype],c,h,yv[r],l),o}var Pde={kernelName:fo,backendName:"wasm",kernelFunc:Ode,setupFunc:Mde},n$;function Lde(e){n$=e.wasm.cwrap(zo,null,["number","number","number","number"])}function a$(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=w.sizeFromShape(n.shape)/o;return w.sizeFromShape(s.shape)===0||n$(r,i,o,l),s}var zde={kernelName:zo,backendName:"wasm",setupFunc:Lde,kernelFunc:a$},r$;function Wde(e){r$=e.wasm.cwrap(Tu,null,["number","number","number","number","number","number"])}function Bde(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:a$({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return r$(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var Vde={kernelName:Tu,backendName:"wasm",setupFunc:Wde,kernelFunc:Bde},Ude=Ut(go,!0),Gde=!0,Hde=Ut(bo,Gde),qde=Xe(Cu);function hk(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 s$;function jde(e){s$=e.wasm.cwrap(_u,"number",["number","number","number","number","number"])}function Kde(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,p=t.dataIdMap.get(l.dataId).id,d=s$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=hk(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var Xde={kernelName:_u,backendName:"wasm",setupFunc:jde,kernelFunc:Kde},i$;function Yde(e){i$=e.wasm.cwrap(Au,"number",["number","number","number","number","number","bool"])}function Zde(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=i$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=hk(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var Jde={kernelName:Au,backendName:"wasm",setupFunc:Yde,kernelFunc:Zde},o$;function Qde(e){o$=e.wasm.cwrap(Fu,"number",["number","number","number","number","number","number"])}function ehe(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=o$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=hk(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var the={kernelName:Fu,backendName:"wasm",setupFunc:Qde,kernelFunc:ehe},nhe=!1,ahe=Ut(Eu,nhe,"bool"),l$;function rhe(e){l$=e.wasm.cwrap(yo,null,["number","number","number","number","number"])}function she(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return l$(d,i,o,l,p),u}var ihe={kernelName:yo,backendName:"wasm",setupFunc:rhe,kernelFunc:she};function ohe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var lhe={kernelName:$u,backendName:"wasm",kernelFunc:ohe};function uhe(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return bv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=bv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=xF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var phe={kernelName:Du,backendName:"wasm",kernelFunc:uhe},u$;function che(e){u$=e.wasm.cwrap(xo,null,["number","array","number","number","array","array","number","number"])}function dhe(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]);if(w.sizeFromShape(t.shape)===0)return OF({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let 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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return u$(i,u,t.shape.length,Qe[t.dtype],c,h,r,l),o}var p$={kernelName:xo,backendName:"wasm",kernelFunc:dhe,setupFunc:che},hhe=!1,mhe=Ut(vo,hhe),c$;function fhe(e){c$=e.wasm.cwrap(wo,null,["number","number","number"])}function ghe(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=s,l=a,u=l;l.dtype!=="float32"&&(u=Ds({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return c$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var bhe={kernelName:wo,backendName:"wasm",setupFunc:fhe,kernelFunc:ghe},d$;function yhe(e){d$=e.wasm.cwrap(ko,null,["number","number","number","number"])}function xhe(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=$s(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;d$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var vhe={kernelName:ko,backendName:"wasm",setupFunc:yhe,kernelFunc:xhe},whe=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=B1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},khe={kernelName:Uc,backendName:"wasm",kernelFunc:whe},Ihe=!0,She=Ut(Hi,Ihe),Nhe=Xe(Io),The=Xe(So),Che=Xe(Co),h$;function Ehe(e){h$=e.wasm.cwrap(To,null,["number","number","number","number","number","number","number","number","number","number"])}function _he(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Ds({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return h$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Ahe={kernelName:To,backendName:"wasm",setupFunc:Ehe,kernelFunc:_he},m$;function Fhe(e){m$=e.wasm.cwrap(Ou,null,["number","number","number","array","array","boolean"])}function $he(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ds({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),m$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Dhe={kernelName:Ou,backendName:"wasm",setupFunc:Fhe,kernelFunc:$he},f$;function Rhe(e){f$=e.wasm.cwrap(No,null,["number","number","number","number","number","number","number","number","number","number"])}function Mhe(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),b;g.dtype!=="float32"&&(b=Ds({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return f$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var Ohe={kernelName:No,backendName:"wasm",setupFunc:Rhe,kernelFunc:Mhe},g$;function Phe(e){g$=e.wasm.cwrap(Mu,null,["number","number","number","array","array","boolean"])}function Lhe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ds({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),g$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var zhe={kernelName:Mu,backendName:"wasm",setupFunc:Phe,kernelFunc:Lhe},b$;function Whe(e){b$=e.wasm.cwrap(Eo,null,["number","array","number","array","number","number"])}function Bhe(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 Uf({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,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);b$(l,p,i.length,d,r.shape.length,u);let c=Ln({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Vhe={kernelName:Eo,backendName:"wasm",kernelFunc:Bhe,setupFunc:Whe},y$;function Uhe(e){y$=e.wasm.cwrap(Zu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Ghe(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,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=T.getImageCenter(o,c,h),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],v=new Uint8Array(new Int32Array(x).buffer);return y$(u,d,c,h,m,s,f,g,v,x.length,p),l}var Hhe={kernelName:Zu,backendName:"wasm",kernelFunc:Ghe,setupFunc:Uhe},qhe=Xe(_o),jhe=Xe(Ao),x$;function Khe(e){x$=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","array","number","number"])}function Xhe(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:u,sliceSize:p,strides:d,outputSize:c}=rf.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return x$(h,m,Qe[s.dtype],l,u,p,f,c,g),o}var Yhe={kernelName:Pu,backendName:"wasm",setupFunc:Khe,kernelFunc:Xhe},v$;function Zhe(e){v$=e.wasm.cwrap(zu,null,["number","number","number","number","number","number","bool","number"])}function Jhe(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return v$(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],Qe[r.dtype],i==="left",l(o)),o}var Qhe={kernelName:zu,backendName:"wasm",setupFunc:Zhe,kernelFunc:Jhe},w$;function eme(e){w$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function tme(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),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:w.sizeFromShape(r.shape.slice(1));return w$(i,o,l,h,p),u}var nme={kernelName:Wu,backendName:"wasm",kernelFunc:tme,setupFunc:eme},ame=Xe(Fo),k$;function rme(e){k$=e.wasm.cwrap(Mo,null,["number","number"])}function sme(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||k$(a,s),r}var ime={kernelName:"Sigmoid",backendName:"wasm",setupFunc:rme,kernelFunc:sme},ome=Xe(Ro),lme=Xe($o),ume=Xe(Do),pme=Xe(Oo);function cme(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=w.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g{let F=v.shape[0],D=v.shape[1],$=T.segment_util.segOpComputeOptimalWindowSize(D,_),S={windowSize:$,inSize:D,batchSize:F,numSegments:_},M=new Kle(S,I),B=n.compileAndRun(M,[v,N],C);if(l.push(B),B.shape[1]===_)return B;let U=iF({backend:n,attrs:{start:0,stop:_,step:1,dtype:"float32"}}),H=oF({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,_)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let v=T.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var Yle={kernelName:Qc,backendName:"webgl",kernelFunc:Xle},Zle=[Ree,Oee,zee,Vee,Gee,qee,Xee,Zee,tte,ate,ite,ute,dte,gte,xte,wte,Ite,Cte,_te,Fte,Mte,Vte,Gte,Kte,Yte,nne,rne,lne,bee,cne,gne,vne,Tne,_ne,Fne,Dne,Mne,zne,Vne,Hne,qne,Xne,Zne,eae,nae,iae,lae,cae,mae,gae,vae,Sae,Eae,Fae,Rae,Mae,Pae,zae,Bae,Uae,Hae,Xae,Jae,tre,are,ire,ure,hre,bre,gee,xre,mne,kre,Nre,Ere,xee,$re,Ore,Lre,Vre,Hre,Xre,Jre,nse,ise,use,cse,fse,bse,xse,Ise,Nse,Cse,_se,Fse,Mse,zse,Use,Zse,kee,tie,rie,oie,pie,Jte,hie,fie,bie,vie,Sie,wee,Tie,Eie,Aie,$ie,Die,Qte,qse,Oie,Wie,Gie,See,Kie,Zie,toe,roe,loe,poe,hoe,goe,xoe,koe,Noe,Eoe,$oe,Moe,zoe,Voe,Wte,Xse,Hoe,qoe,Xoe,Zoe,Qoe,tle,ale,sle,ole,ple,dle,mle,gle,xle,wle,Ile,Nle,Kse,Fee,Ele,Fle,Dle,Ole,Wle,Ule,$ee,Hle,qle,Yle,mie];for(let e of Zle)ed(e);var Qe;(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"})(Qe||(Qe={}));var Ac;(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",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(Ac||(Ac={}));var lF;function Jle(e){lF=e.wasm.cwrap(ii,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Qle(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:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let _=n.dataIdMap.get(i.dataId);if(_.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${_.shape.length}.`);m=_.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Ac[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),v=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(v.dataId).id,N=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return lF(c,N,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),v}var eue={kernelName:ii,backendName:"wasm",setupFunc:Jle,kernelFunc:Qle};function Xe(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return w.sizeFromShape(u.shape)===0||n(l,Qe[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var tue=Xe(Yl),nue=Xe(Ni),aue=Xe(Ti);function Ut(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:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=T.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Qe[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var rue=!0,sue=Ut(vs,rue),uF;function iue(e){uF=e.wasm.cwrap(Ci,null,["array","number","number","number"])}function oue(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 uF(s,r.length,Qe[a.dtype],i),a}var lue={kernelName:Ci,backendName:"wasm",setupFunc:iue,kernelFunc:oue};function Gf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var uue={kernelName:eo,backendName:"wasm",kernelFunc:Gf},pF;function pue(e){pF=e.wasm.cwrap(Cr,null,["number","array","number","number","number","array","number"])}function ys(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=due(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 hue={kernelName:Cr,backendName:"wasm",kernelFunc:ys,setupFunc:pue};function Ds(e,t,n){let a=e.shape,r=e.shape.length,s=w.parseAxisParam(t,a),i=s,o=T.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`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 zue={kernelName:Ru,backendName:"wasm",kernelFunc:zn},yF;function Wue(e){yF=e.wasm.cwrap(Ri,null,["number","array","number","number","array","number","number","number","number"])}function Bue(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,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=Ju.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=zn({inputs:{x:r},backend:n,attrs:{shape:x}}),N=zn({inputs:{x:s},backend:n,attrs:{shape:v}}),C=n.dataIdMap.get(I.dataId).id,_=n.dataIdMap.get(N.dataId).id,F=i?I.shape[2]:I.shape[1],D=o?N.shape[1]:N.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(N.shape).buffer);return yF(C,B,I.shape.length,_,U,N.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(N.dataId),S.shape=y,S}var Vue={kernelName:Ri,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue};function Ii(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Kt.parseSliceParams(t,n,a),o=Kt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Kt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(i))),u}if(t.dtype==="string"){let m=um(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Uue(l,p[0],c,s,i);else if(h===3)Gue(l,p[0],p[1],c,s,i);else if(h===4)Hue(l,p[0],p[1],p[2],c,s,i);else{let m=um(l,s,i,t.shape,t.dtype);c.set(m)}return u}function Uue(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=zn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ys({inputs:{x:h},backend:n,attrs:{perm:u}}),f=zn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Ii({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(f.dataId),g}var Kue={kernelName:nu,backendName:"wasm",kernelFunc:que},xF;function Xue(e){xF=e.wasm.cwrap(au,null,["number","number","boolean","number","number","number"])}function Yue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return xF(p(r),i,o,p(s),Qe[s.dtype],p(u)),u}var Zue={kernelName:au,backendName:"wasm",setupFunc:Xue,kernelFunc:Yue},Jue=!0,Que=Ut(ru,Jue);function epe(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var tpe={kernelName:Mc,backendName:"wasm",kernelFunc:epe};function Rs(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 npe={kernelName:Mi,backendName:"wasm",kernelFunc:Rs},ape=Xe(Oi),vF;function rpe(e){vF=e.wasm.cwrap(ws,null,["number","number","number","number"])}function spe(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 vF(o,s,i,u),l}var ipe={kernelName:ws,backendName:"wasm",setupFunc:rpe,kernelFunc:spe};function wF(e){let{inputs:t,backend:n}=e,a=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);T.assertParamsConsistent(r,a);let s=T.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>w.sizeFromShape(h.shape)>0);if(i.length===1)return Gf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(w.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let v=[-1,w.sizeFromShape(x.shape.slice(a))];return zn({inputs:{x},backend:n,attrs:{shape:v}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=T.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=L1(m,s,t[0].dtype,f),b=T.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=T.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=w.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=ys({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;EF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=ys({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Ape={kernelName:lu,backendName:"wasm",setupFunc:Epe,kernelFunc:_pe},_F;function Fpe(e){_F=e.wasm.cwrap(Vi,null,["number","number","number","number","number","number"])}function $pe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;w.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=ys({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;_F(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=ys({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Dpe={kernelName:Vi,backendName:"wasm",setupFunc:Fpe,kernelFunc:$pe},AF;function Rpe(e){AF=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function Mpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return AF(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),Qe[s.dtype],o,d(p)),p}var Ope={kernelName:Pc,backendName:"wasm",setupFunc:Rpe,kernelFunc:Mpe},FF;function Ppe(e){FF=e.wasm.cwrap(pu,null,["number","number","number","array","number","array","array","number","number"])}function Lpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return FF(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,v),f}var zpe={kernelName:pu,backendName:"wasm",setupFunc:Ppe,kernelFunc:Lpe},$F;function Wpe(e){$F=e.wasm.cwrap(Ui,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Bpe(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:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=T.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,I=h.dilationWidth,N=h.strideHeight,C=h.strideWidth,_=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return $F(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,v,I,N,C,_,F,S),$}var Vpe={kernelName:Ui,backendName:"wasm",setupFunc:Wpe,kernelFunc:Bpe},DF;function Upe(e){DF=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function Gpe(e){let{inputs:t,backend:n}=e,{x:a}=t,r=w.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return DF(n.dataIdMap.get(a.dataId).id,Qe[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var Hpe={kernelName:Lc,backendName:"wasm",setupFunc:Upe,kernelFunc:Gpe},RF;function jpe(e){RF=e.wasm.cwrap(Gi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function qpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return RF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,Qe[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var Kpe={kernelName:Gi,backendName:"wasm",setupFunc:jpe,kernelFunc:qpe},MF;function Xpe(e){MF=e.wasm.cwrap(Rl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ype(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return MF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var Zpe={kernelName:Rl,backendName:"wasm",setupFunc:Xpe,kernelFunc:Ype},OF;function Jpe(e){OF=e.wasm.cwrap(Dl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Qpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return OF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var ece={kernelName:Dl,backendName:"wasm",setupFunc:Jpe,kernelFunc:Qpe},tce=Xe(ji),PF;function nce(e){PF=e.wasm.cwrap(cu,null,["number","number","number"])}function ace(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return PF(i(r),i(a),i(s)),s}var rce={kernelName:cu,backendName:"wasm",setupFunc:nce,kernelFunc:ace},sce=!1,ice=Ut(du,sce,"bool"),oce=Xe(qi),lce=Xe(Ki,"float32");function yv(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),zn({inputs:{x:r},backend:a,attrs:{shape:o}})}var uce={kernelName:hu,backendName:"wasm",kernelFunc:yv},pce=Xe(Xi,"float32");function LF(e){let{attrs:{shape:t,value:n},backend:a}=e,{attrs:{dtype:r}}=e;r=r||w.inferDtype(n);let s=a.makeOutput(t,r);return a.typedArrayFromHeap(s).fill(n),s}var cce={kernelName:zc,backendName:"wasm",kernelFunc:LF},zF;function dce(e){zF=e.wasm.cwrap(mu,null,["number","number","number","number","number","number"])}function hce(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,p]=a.shape;return zF(s,o,l,u,p,i),r}var mce={kernelName:mu,backendName:"wasm",kernelFunc:hce,setupFunc:dce},fce=Xe(Yi),gce=!1,bce=Ut(Zi,gce),WF;function yce(e){WF=e.wasm.cwrap(Ji,null,["number","number","number","number","number","number","number"])}function xce(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=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(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return WF(p,d,c,h,m,r,g),f}var vce={kernelName:Ji,backendName:"wasm",setupFunc:yce,kernelFunc:xce},BF;function wce(e){BF=e.wasm.cwrap(oi,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 kce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=Ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return BF(b,q,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Ice={kernelName:oi,backendName:"wasm",setupFunc:wce,kernelFunc:kce},VF;function Sce(e){VF=e.wasm.cwrap(li,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 Nce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=Ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return VF(b,q,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Tce={kernelName:li,backendName:"wasm",setupFunc:Sce,kernelFunc:Nce},UF;function Cce(e){UF=e.wasm.cwrap(gu,null,["number","number","number","number","number","number","array","number"])}function Ece(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Yw.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=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 UF(c,Qe[a.dtype],h,i,d,o,m,f),u}var _ce={kernelName:gu,backendName:"wasm",setupFunc:Cce,kernelFunc:Ece},GF;function Ace(e){GF=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Fce(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],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${_} is not in [0, ${p-1}]`)}let d=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=zn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=w.sizeFromShape(s.shape),m=zn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(w.sizeFromShape(r.shape)===0)return g;let b=c.shape.length-1,y=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,v=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),N=new Uint8Array(new Int32Array(w.computeStrides(f)).buffer);return GF(y,Qe[r.dtype],I,b,x,d.batchSize,N,v),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var $ce={kernelName:fu,backendName:"wasm",setupFunc:Ace,kernelFunc:Fce},Dce=!1,Rce=Ut(bu,Dce,"bool"),Mce=!1,Oce=Ut(Qi,Mce,"bool"),Pce=Xe(to,"bool"),Lce=Xe(no,"bool"),zce=Xe(ao,"bool"),HF;function Wce(e){HF=e.wasm.cwrap(ro,null,["number","number","number","number"])}function Bce(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;HF(r,Qe[t.dtype],n,i)}return s}var Vce={kernelName:ro,backendName:"wasm",setupFunc:Wce,kernelFunc:Bce},Uce=!1,Gce=Ut(yu,Uce,"bool"),Hce=!1,jce=Ut(xu,Hce,"bool"),jF;function qce(e){jF=e.wasm.cwrap(vu,null,["number","number","number","number"])}function Kce(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return jF(n.dataIdMap.get(o.dataId).id,a,r,i),o}var Xce={kernelName:vu,backendName:"wasm",setupFunc:qce,kernelFunc:Kce},Yce=Xe(so),Zce=Xe(io),Jce=!1,Qce=Ut(wu,Jce,"bool"),ede=Xe(ku),tde=!1,nde=Ut(Iu,tde,"bool"),ade=!1,rde=Ut(jS,ade,"bool"),qF;function sde(e){qF=e.wasm.cwrap(oo,null,["number","number","number","number","number","number","number"])}function ide(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return qF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var ode={kernelName:oo,backendName:"wasm",setupFunc:sde,kernelFunc:ide},KF;function lde(e){KF=e.wasm.cwrap(Su,null,["number","number","number","number","number","number","number","number","number"])}function ude(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return KF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var pde={kernelName:Su,backendName:"wasm",setupFunc:lde,kernelFunc:ude},XF;function cde(e){XF=e.wasm.cwrap(lo,null,["number","number","number","number"])}function dde(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:p,originalAxes:d,inputWasTransposed:c}=Ds(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;T.assertAxesAreInnerMostDims("max",p,h);let[m,f]=T.computeOutAndReduceShapes(l.shape,p),g=w.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;XF(o,Qe[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=T.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var hde={kernelName:lo,backendName:"wasm",setupFunc:cde,kernelFunc:dde},mde=!1,fde=Ut(uo,mde),YF;function gde(e){YF=e.wasm.cwrap(po,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function bde(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;w.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=T.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,v=p.strideWidth,I=p.inChannels,N=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),_=a.dataIdMap.get(C.dataId).id;return YF(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,v,I,N,_),C}var yde={kernelName:po,backendName:"wasm",setupFunc:gde,kernelFunc:bde},ZF;function xde(e){ZF=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function vde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return ZF(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var wde={kernelName:Nu,backendName:"wasm",setupFunc:xde,kernelFunc:vde},JF;function kde(e){JF=e.wasm.cwrap("MaxPool3DGrad",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 Ide(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return JF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var Sde={kernelName:Bc,backendName:"wasm",setupFunc:kde,kernelFunc:Ide},QF;function Nde(e){QF=e.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Tde(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool2DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return QF(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),d}var Cde={kernelName:Wc,backendName:"wasm",setupFunc:Nde,kernelFunc:Tde},e$;function Ede(e){e$=e.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function _de(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,includeBatchInIndex:l}=a;w.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);let u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,[1,1],o),d=n.makeOutput(p.outShape,r.dtype),c=n.makeOutput(p.outShape,"int32");return e$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,n.dataIdMap.get(c.dataId).id,Qe[r.dtype],l,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),[d,c]}var Ade={kernelName:Vc,backendName:"wasm",setupFunc:Ede,kernelFunc:_de},t$;function Fde(e){t$=e.wasm.cwrap(co,null,["number, number, number"])}function $de(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t),m=d;if(h){let v=t.dataIdMap.get(p.dataId).id;v!==o&&(u=p,l=v,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Rs({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;t$(l,b,v)}if(h&&t.disposeData(p.dataId),s){let v=T.expandShapeToKeepDim(x.shape,c);x.shape=v}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Dde={kernelName:co,backendName:"wasm",setupFunc:Fde,kernelFunc:$de},n$;function Rde(e){n$=e.wasm.cwrap(ho,null,["number","number","number","number"])}function Mde(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;T.assertAxesAreInnerMostDims("min",d,m);let[f,g]=T.computeOutAndReduceShapes(u.shape,d),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;n$(l,Qe[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Ode={kernelName:ho,backendName:"wasm",setupFunc:Rde,kernelFunc:Mde},Pde=!1,Lde=Ut(mo,Pde),xv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(xv||(xv={}));var a$;function zde(e){a$=e.wasm.cwrap(fo,null,["number","array","number","number","array","array","number","number"])}function Wde(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode: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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return a$(i,u,t.shape.length,Qe[t.dtype],c,h,xv[r],l),o}var Bde={kernelName:fo,backendName:"wasm",kernelFunc:Wde,setupFunc:zde},r$;function Vde(e){r$=e.wasm.cwrap(zo,null,["number","number","number","number"])}function s$(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=w.sizeFromShape(n.shape)/o;return w.sizeFromShape(s.shape)===0||r$(r,i,o,l),s}var Ude={kernelName:zo,backendName:"wasm",setupFunc:Vde,kernelFunc:s$},i$;function Gde(e){i$=e.wasm.cwrap(Tu,null,["number","number","number","number","number","number"])}function Hde(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:s$({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return i$(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var jde={kernelName:Tu,backendName:"wasm",setupFunc:Gde,kernelFunc:Hde},qde=Ut(go,!0),Kde=!0,Xde=Ut(bo,Kde),Yde=Xe(Cu);function hk(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 o$;function Zde(e){o$=e.wasm.cwrap(_u,"number",["number","number","number","number","number"])}function Jde(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,p=t.dataIdMap.get(l.dataId).id,d=o$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=hk(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var Qde={kernelName:_u,backendName:"wasm",setupFunc:Zde,kernelFunc:Jde},l$;function ehe(e){l$=e.wasm.cwrap(Au,"number",["number","number","number","number","number","bool"])}function the(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=l$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=hk(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var nhe={kernelName:Au,backendName:"wasm",setupFunc:ehe,kernelFunc:the},u$;function ahe(e){u$=e.wasm.cwrap(Fu,"number",["number","number","number","number","number","number"])}function rhe(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=u$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=hk(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var she={kernelName:Fu,backendName:"wasm",setupFunc:ahe,kernelFunc:rhe},ihe=!1,ohe=Ut(Eu,ihe,"bool"),p$;function lhe(e){p$=e.wasm.cwrap(yo,null,["number","number","number","number","number"])}function uhe(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return p$(d,i,o,l,p),u}var phe={kernelName:yo,backendName:"wasm",setupFunc:lhe,kernelFunc:uhe};function che(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var dhe={kernelName:$u,backendName:"wasm",kernelFunc:che};function hhe(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return yv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=yv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=wF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var mhe={kernelName:Du,backendName:"wasm",kernelFunc:hhe},c$;function fhe(e){c$=e.wasm.cwrap(xo,null,["number","array","number","number","array","array","number","number"])}function ghe(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]);if(w.sizeFromShape(t.shape)===0)return LF({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let 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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return c$(i,u,t.shape.length,Qe[t.dtype],c,h,r,l),o}var d$={kernelName:xo,backendName:"wasm",kernelFunc:ghe,setupFunc:fhe},bhe=!1,yhe=Ut(vo,bhe),h$;function xhe(e){h$=e.wasm.cwrap(wo,null,["number","number","number"])}function vhe(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=s,l=a,u=l;l.dtype!=="float32"&&(u=Rs({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return h$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var whe={kernelName:wo,backendName:"wasm",setupFunc:xhe,kernelFunc:vhe},m$;function khe(e){m$=e.wasm.cwrap(ko,null,["number","number","number","number"])}function Ihe(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;m$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var She={kernelName:ko,backendName:"wasm",setupFunc:khe,kernelFunc:Ihe},Nhe=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=B1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},The={kernelName:Uc,backendName:"wasm",kernelFunc:Nhe},Che=!0,Ehe=Ut(Hi,Che),_he=Xe(Io),Ahe=Xe(So),Fhe=Xe(Co),f$;function $he(e){f$=e.wasm.cwrap(To,null,["number","number","number","number","number","number","number","number","number","number"])}function Dhe(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Rs({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return f$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Rhe={kernelName:To,backendName:"wasm",setupFunc:$he,kernelFunc:Dhe},g$;function Mhe(e){g$=e.wasm.cwrap(Ou,null,["number","number","number","array","array","boolean"])}function Ohe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Rs({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),g$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Phe={kernelName:Ou,backendName:"wasm",setupFunc:Mhe,kernelFunc:Ohe},b$;function Lhe(e){b$=e.wasm.cwrap(No,null,["number","number","number","number","number","number","number","number","number","number"])}function zhe(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),b;g.dtype!=="float32"&&(b=Rs({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return b$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var Whe={kernelName:No,backendName:"wasm",setupFunc:Lhe,kernelFunc:zhe},y$;function Bhe(e){y$=e.wasm.cwrap(Mu,null,["number","number","number","array","array","boolean"])}function Vhe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Rs({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),y$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Uhe={kernelName:Mu,backendName:"wasm",setupFunc:Bhe,kernelFunc:Vhe},x$;function Ghe(e){x$=e.wasm.cwrap(Eo,null,["number","array","number","array","number","number"])}function Hhe(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 Gf({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,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);x$(l,p,i.length,d,r.shape.length,u);let c=zn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var jhe={kernelName:Eo,backendName:"wasm",kernelFunc:Hhe,setupFunc:Ghe},v$;function qhe(e){v$=e.wasm.cwrap(Zu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Khe(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,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=T.getImageCenter(o,c,h),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],v=new Uint8Array(new Int32Array(x).buffer);return v$(u,d,c,h,m,s,f,g,v,x.length,p),l}var Xhe={kernelName:Zu,backendName:"wasm",kernelFunc:Khe,setupFunc:qhe},Yhe=Xe(_o),Zhe=Xe(Ao),w$;function Jhe(e){w$=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","array","number","number"])}function Qhe(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:u,sliceSize:p,strides:d,outputSize:c}=sf.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return w$(h,m,Qe[s.dtype],l,u,p,f,c,g),o}var eme={kernelName:Pu,backendName:"wasm",setupFunc:Jhe,kernelFunc:Qhe},k$;function tme(e){k$=e.wasm.cwrap(zu,null,["number","number","number","number","number","number","bool","number"])}function nme(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return k$(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],Qe[r.dtype],i==="left",l(o)),o}var ame={kernelName:zu,backendName:"wasm",setupFunc:tme,kernelFunc:nme},I$;function rme(e){I$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function sme(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),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:w.sizeFromShape(r.shape.slice(1));return I$(i,o,l,h,p),u}var ime={kernelName:Wu,backendName:"wasm",kernelFunc:sme,setupFunc:rme},ome=Xe(Fo),S$;function lme(e){S$=e.wasm.cwrap(Mo,null,["number","number"])}function ume(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||S$(a,s),r}var pme={kernelName:"Sigmoid",backendName:"wasm",setupFunc:lme,kernelFunc:ume},cme=Xe(Ro),dme=Xe($o),hme=Xe(Do),mme=Xe(Oo);function fme(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=w.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g0?l+1:0;if(u<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),b=n.dataIdMap.get(g.dataId).id;N$(d,Qe[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function xme(e){return C$(e,!0)}var vme={kernelName:Hc,backendName:"wasm",setupFunc:T$,kernelFunc:xme};function wme(e){return C$(e,!1)}var kme={kernelName:qc,backendName:"wasm",setupFunc:T$,kernelFunc:wme},E$;function Ime(e){E$=e.wasm.cwrap(Hu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Sme(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(w.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=T.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return E$(m,f,s.shape.length,g,Qe[i.dtype],u,p,d,b,h,y),l}var Nme={kernelName:Hu,backendName:"wasm",setupFunc:Ime,kernelFunc:Sme};function Tme(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=Ii({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Cme={kernelName:Uu,backendName:"wasm",kernelFunc:Tme},Eme=Xe(Po),_me=Xe(jc),Ame=!0,Fme=Ut(Wo,Ame),_$;function $me(e){_$=e.wasm.cwrap(ks,null,["number","number","number","number"])}function Dme(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 _$(i,r,Qe[s.dtype],l),o}var Rme={kernelName:ks,backendName:"wasm",setupFunc:$me,kernelFunc:Dme},A$;function Mme(e){A$=e.wasm.cwrap(qu,null,["number","array","number","array","array","array","array","array","number","number"])}function Ome(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Ln({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=Ii({inputs:{x:r},backend:t,attrs:{begin:y,size:N}});I=Ln({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let N=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,_=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=new Uint8Array(new Int32Array(v).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer),B=t.dataIdMap.get(N.dataId).id;A$(C,_,r.shape.length,F,D,$,S,M,h.length,B),I=Ln({inputs:{x:N},backend:t,attrs:{shape:m}}),t.disposeData(N.dataId)}return I}var Pme={kernelName:qu,backendName:"wasm",setupFunc:Mme,kernelFunc:Ome};function Lme(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=U1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var zme={kernelName:Xc,backendName:"wasm",kernelFunc:Lme};function Wme(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=G1(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Bme={kernelName:Yc,backendName:"wasm",kernelFunc:Wme};function Vme(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=H1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Ume={kernelName:Zc,backendName:"wasm",kernelFunc:Vme},Gme=!0,Hme=Ut(Bo,Gme),F$;function qme(e){F$=e.wasm.cwrap(Lo,null,["number","number","number","number"])}function jme(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=$s(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;F$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Kme={kernelName:Lo,backendName:"wasm",setupFunc:qme,kernelFunc:jme},Xme=Xe(Vo),Yme=Xe(Uo),$$;function Zme(e){$$=e.wasm.cwrap(Lu,null,["number","number","number","number","number","number","array","number","number","number"])}function Jme(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(w.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=rf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return $$(h,m,Qe[i.dtype],l,u,p,g,c,b,f),o}var Qme={kernelName:Lu,backendName:"wasm",setupFunc:Zme,kernelFunc:Jme},D$;function efe(e){D$=e.wasm.cwrap(ws,null,["number","array","number","array","number","number"])}function tfe(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 c=0;c{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),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return R$(i,o,a.shape.length,Qe[a.dtype],r,s,p,c),[u,d]},sfe={kernelName:ju,backendName:"wasm",setupFunc:afe,kernelFunc:rfe},M$;function ife(e){M$=e.wasm.cwrap(Ku,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function ofe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(w.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),v=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,N=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,_;switch(o){case"constant":_=1;break;case"reflect":_=2;break;case"wrap":_=3;break;case"nearest":_=4;break;default:_=1;break}return M$(I,N,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,_,l,v),x}var lfe={kernelName:Ku,backendName:"wasm",setupFunc:ife,kernelFunc:ofe};function ufe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=j1(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var pfe={kernelName:Jc,backendName:"wasm",kernelFunc:ufe};function cfe(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 dfe={kernelName:Xu,backendName:"wasm",kernelFunc:cfe};function hfe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var mfe={kernelName:Yu,backendName:"wasm",kernelFunc:hfe},ffe=[Yle,Zle,Jle,Qle,tue,rue,due,fue,gue,bue,yue,xue,vue,wue,kue,Nue,Rue,Eue,Fue,Lue,Gue,jue,Xue,Zue,Jue,Que,npe,ape,ipe,upe,dpe,fpe,ype,xpe,vpe,Ipe,Tpe,_pe,$pe,Mpe,Lpe,Bpe,Gpe,jpe,Ype,Zpe,ece,nce,ace,rce,sce,ice,oce,pce,cce,hce,gce,xce,kce,Nce,Ece,Ace,$ce,sue,Dce,Rce,Mce,Lce,Wce,Vce,Hce,jce,qce,Xce,Yce,Jce,ede,ade,ide,ude,cde,mde,bde,vde,Ide,Tde,_de,$de,Rde,Pde,Vde,Ude,Hde,qde,Xde,Jde,the,ahe,ihe,lhe,phe,p$,mhe,bhe,vhe,khe,She,Nhe,The,Che,Mue,Ahe,Dhe,Ohe,zhe,Vhe,Hhe,qhe,jhe,Yhe,Qhe,nme,ame,ime,ome,lme,ume,Vue,zde,pme,dme,fme,yme,vme,kme,Nme,Cme,Eme,_me,Fme,Rme,Pme,zme,Bme,Ume,Hme,Kme,Xme,Yme,Qme,nfe,sfe,lfe,uue,pfe,dfe,mfe];for(let e of ffe)ed(e);var xv=G();xv.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});xv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(xv.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 TS=ys(WR()),gfe=ys(BR()),CS=ys(VR()),ES=TS.default||TS,bfe=CS.default||CS,O$=class extends Fc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(P$),vv=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ym(this,Ta())}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 u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o)>>>0;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,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||w.sizeFromShape(s);let o=w.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return vfe(l.buffer,r)}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(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,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 yfe(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,s.module)})})}),{})}function _S(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"),cc!=null&&cc[a]!=null?cc[a]:n+a}async function xfe(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=gfe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?_S(e,t,lc!=null?lc:l):l+o},mk&&(r.instantiateWasm=yfe(_S(e,t,lc!=null?lc:"")));let s=!1;r.onAbort=()=>{s||dc||(dc=!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 = "+ES.toString()],{type:"text/javascript"}),i=ES(r)):i=bfe(r),i.then(o=>{s=!0,dc=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function vfe(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 wfe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],gm=null,lc=null,cc={},dc=!1,mk=!1;function kfe(e,t=!1){if(Fv("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),dc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");gm=e,mk=t}function Ife(e,t=!1){if(dc)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")lc=e;else{cc=e;let n=wfe.filter(a=>cc[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.`)}mk=t}var P$=-1,vv=-1;function Sfe(e){P$=e}function Nfe(){if(vv===-1)throw new Error("WASM backend not initialized.");return vv}var Tfe="4.16.0",Cfe=2;Om("wasm",async()=>{let{wasm:e}=await xfe();return new O$(e)},Cfe);var AS="4.16.0",Efe="4.16.0",_fe="4.16.0",Afe="4.16.0",Ffe="4.16.0",$fe={tfjs:AS,"tfjs-core":AS,"tfjs-converter":Efe,"tfjs-backend-cpu":_fe,"tfjs-backend-webgl":Afe,"tfjs-backend-wasm":Ffe};var rD={};nx(rD,{AnchorPosition:()=>Ik,DrawBox:()=>Od,DrawBoxOptions:()=>Kf,DrawFaceLandmarks:()=>ig,DrawFaceLandmarksOptions:()=>sg,DrawTextField:()=>sl,DrawTextFieldOptions:()=>Ip,drawContour:()=>Pr,drawDetections:()=>zfe,drawFaceExpressions:()=>Wfe,drawFaceLandmarks:()=>Vfe});function Pr(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 L$={};nx(L$,{computeReshapedDimensions:()=>bk,getCenterPoint:()=>al,isDimensions:()=>Hf,isEven:()=>Gf,isFloat:()=>gk,isTensor:()=>tl,isTensor1D:()=>Dfe,isTensor2D:()=>fk,isTensor3D:()=>Lr,isTensor4D:()=>wa,isValidNumber:()=>Xa,isValidProbablitiy:()=>gp,range:()=>fr,round:()=>nl});var aa=class e{constructor(t,n){if(!Xa(t)||!Xa(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 e(1/this.width,1/this.height)}};function tl(e,t){return e instanceof Ce&&e.shape.length===t}function Dfe(e){return tl(e,1)}function fk(e){return tl(e,2)}function Lr(e){return tl(e,3)}function wa(e){return tl(e,4)}function gk(e){return e%1!==0}function Gf(e){return e%2===0}function nl(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Hf(e){return e&&e.width&&e.height}function bk({width:e,height:t},n){let a=n/Math.max(t,e);return new aa(Math.round(e*a),Math.round(t*a))}function al(e){return e.reduce((t,n)=>t.add(n),new He(0,0)).div(new He(e.length,e.length))}function fr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Xa(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function gp(e){return Xa(e)&&e>=0&&e<=1}var He=class e{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new e(this.x+t.x,this.y+t.y)}sub(t){return new e(this.x-t.x,this.y-t.y)}mul(t){return new e(this.x*t.x,this.y*t.y)}div(t){return new e(this.x/t.x,this.y/t.y)}abs(){return new e(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new e(Math.floor(this.x),Math.floor(this.y))}};var mn=class e{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Xa)}static assertIsValidBox(t,n,a=!1){if(!e.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(Xa),s=[a.x,a.y,a.width,a.height].every(Xa);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];e.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 He(this.left,this.top)}get topRight(){return new He(this.right,this.top)}get bottomLeft(){return new He(this.left,this.bottom)}get bottomRight(){return new He(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 e({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 e({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=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new e({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 bp=class extends mn{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var yp=class e{constructor(t,n,a,r,s){this._imageDims=new aa(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new mn(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 mn(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new e(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var Ft=class e extends yp{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 e(a,r,s)}};function z$(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 W$(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[p]<=n)}return s}function gr(e,t){return O(()=>{let[n,a,r]=t,s=yn([...e.shape.slice(0,3),1],n,"float32"),i=yn([...e.shape.slice(0,3),1],a,"float32"),o=yn([...e.shape.slice(0,3),1],r,"float32"),l=et([s,i,o],3);return pe(e,l)})}function V$(e,t=!1){return O(()=>{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=c=>{let h=e.shape.slice();return h[i]=c,yn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>re(c,"float32"));return et(d,i)})}function d0e(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 qf(e){return 1/(1+Math.exp(-e))}function m0e(e){return Math.log(e/(1-e))}var xp=class extends mn{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Rfe=.5,Mfe=.43,Ofe=.45,ka=class{constructor(t,n,a=new He(0,0)){let{width:r,height:s}=n;this._imgDims=new aa(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new He(r,s)).add(a))}get shift(){return new He(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 He(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 He(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 mn(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=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Ofe),l=al(t),u=Math.floor(Math.max(0,l.x-Rfe*o)),p=Math.floor(Math.max(0,l.y-Mfe*o));return new xp(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=W$(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var U$=class extends ka{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],al([t[3],t[4]])]}};var vp=class extends ka{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(al)}};var Dd=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?` (${nl(this.distance)})`:""}`}};var Rd=class extends mn{static assertIsValidLabeledBox(t,n){if(mn.assertIsValidBox(t,n),!Xa(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 rl=class e{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 e(t.label,n)}};var G$=class extends Rd{static assertIsValidPredictedBox(t,n){if(Rd.assertIsValidLabeledBox(t,n),!gp(t.score)||!gp(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 zr(e){return e.detection instanceof Ft}function wp(e,t){return{...e,...{detection:t}}}function yk(){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"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Md(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function jf(e){let t="";if(!e&&Md())try{e=xR("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 xk(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;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")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=jf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function vk(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var on;function Pfe(){if(!on)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return on}function wk(e){on=e}function kk(){return vk()?wk(yk()):Md()?wk(xk()):null}function Lfe(e){if(on||kk(),!on)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=on.Canvas,Image:n=on.Image}=e;on.Canvas=t,on.Image=n,on.createCanvasElement=e.createCanvasElement||(()=>new t),on.createImageElement=e.createImageElement||(()=>new n),on.ImageData=e.ImageData||on.ImageData,on.Video=e.Video||on.Video,on.fetch=e.fetch||on.fetch,on.readFile=e.readFile||on.readFile}var at={getEnv:Pfe,setEnv:wk,initialize:kk,createBrowserEnv:yk,createFileSystem:jf,createNodejsEnv:xk,monkeyPatch:Lfe,isBrowser:vk,isNodejs:Md};kk();function kp(e){return!at.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function ra(e){let{Canvas:t,CanvasRenderingContext2D:n}=at.getEnv();if(e instanceof n)return e;let a=kp(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var Ik=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(Ik||{}),Ip=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"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}},sl=class e{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof e?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+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var Kf=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:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Ip({...i,...s})}},Od=class{constructor(t,n={}){this.box=new mn(t),this.options=new Kf(n)}draw(t){let n=ra(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 sl([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function zfe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof Ft?a.score:zr(a)?a.detection.score:void 0,s=a instanceof Ft?a.box:zr(a)?a.detection.box:new mn(a),i=r?`${nl(r)}`:void 0;new Od(s,{label:i}).draw(e)})}function Xf(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function H$(e){return new Promise((t,n)=>{if(e instanceof at.getEnv().Canvas||Xf(e)){t(null);return}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 q$(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=at.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Sp(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t?new aa(e.naturalWidth,e.naturalHeight):e instanceof n?new aa(e.videoWidth,e.videoHeight):new aa(e.width,e.height)}function Np({width:e,height:t}){let{createCanvasElement:n}=at.getEnv(),a=n();return a.width=e,a.height=t,a}function Yf(e,t){let{ImageData:n}=at.getEnv();if(!(e instanceof n)&&!Xf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Sp(e),s=Np({width:a,height:r});return e instanceof n?ra(s).putImageData(e,0,0):ra(s).drawImage(e,0,0,a,r),s}async function j$(e,t){let n=t||at.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(wa(e)?1:0),i=O(()=>e.as3D(a,r,s).toInt());return await jo.toPixels(i,n),i.dispose(),n}function Sk(e){let{Image:t,Canvas:n,Video:a}=at.getEnv();return e instanceof t||e instanceof n||e instanceof a}function K$(e,t,n=!1){let{Image:a,Canvas:r}=at.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Np({width:1,height:1});let s=Sp(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Np({width:t,height:t}),p=e instanceof r?e:Yf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&ra(u).drawImage(p,c,h,o,l),u}var Wr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(Lr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(wa(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 at.getEnv().Canvas?a:Yf(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 fr(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 bk({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,O(()=>{let a=fr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ce){let o=wa(i)?i:Gt(i);return o=V$(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Zn.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof at.getEnv().Canvas)return jo.fromPixels(K$(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return At(a.map(s=>re(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof Wr)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(kp);return a.forEach((r,s)=>{if(!Sk(r)&&!Lr(r)&&!wa(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(wa(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=>Sk(r)&&H$(r))),new Wr(a,Array.isArray(e))}async function Pd(e,t){let{Canvas:n}=at.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await j$(o)}let r=ra(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 p=Np({width:l,height:u});return l>0&&u>0&&ra(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Ld(e,t){if(!Lr(e)&&!wa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(wa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return O(()=>{let[n,a,r]=e.shape.slice(wa(e)?1:0);return t.map(o=>o instanceof Ft?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>Ho(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Rs(e,t){let{fetch:n}=at.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 Qke(e){let t=await Rs(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 q$(n)}async function X$(e){return(await Rs(e)).json()}async function rIe(e){return new Float32Array(await(await Rs(e)).arrayBuffer())}function Y$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=at.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function pIe(e){let t=await Rs(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return Y$(n)}function Zf(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 Z$(e,t){let{manifestUri:n,modelBaseUri:a}=Zf(e,t),r=await X$(n);return qt.loadWeights(r,a)}function bIe(e,t,n=!1){let{width:a,height:r}=n?Sp(t):t;return e.width=a,e.height=r,{width:a,height:r}}var fn=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 os)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof os))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 Z$(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}=at.getEnv(),{manifestUri:a,modelBaseUri:r}=Zf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>typeof d=="string"?Buffer.from(d):d.buffer))),i=qt.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 Ce))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Un(e,t,n){return O(()=>{let a=Es(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=X(a,t.bias),a})}function Jf(e,t,n=!1){return O(()=>{let a=Ke(n?X($t(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Un(e,t.conv0,[2,2])),r=Un(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=Un(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function zd(e,t,n=!1,a=!0){return O(()=>{let r=Ke(n?X($t(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Un(e,t.conv0,a?[2,2]:[1,1])),s=Un(r,t.conv1,[1,1]),i=Ke(X(r,s)),o=Un(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=Un(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function il(e,t,n="same",a=!1){return O(()=>{let r=X($t(e,t.filters,[1,1],n),t.bias);return a?Ke(r):r})}function En(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Tp(e,t){return(n,a,r,s)=>{let i=Fa(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 Qf(e,t){return(n,a,r)=>{let s=Ea(e(n*a),[n,a]),i=qe(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Wd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Cp(e,t){return(n,a,r)=>{let s=Fa(e(9*n),[3,3,n,1]),i=Fa(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 Wd(s,i,o)}}function Ep(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Wd(n,a,r)}}function sa(e,t){return(n,a,r)=>{let s=e[n];if(!tl(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 _n(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 eg(e,t){let n=Tp(e,t),a=Cp(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function J$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),{extractDenseBlock4Params:r}=eg(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 tg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function ng(e,t){let n=sa(e,t),a=tg(n),r=Ep(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function Q$(e){let t=[],{extractDenseBlock4Params:n}=ng(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return En(e,t),{params:a,paramMappings:t}}var _p=class extends fn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=gr(a,[122.782,117.001,104.298]).div(255),i=zd(s,n.dense0,!0);return i=zd(i,n.dense1),i=zd(i,n.dense2),i=zd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Q$(t)}extractParams(t){return J$(t)}};function Bd(e,t){return O(()=>X($e(e,t.weights),t.bias))}function eD(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=_n(e),o=Qf(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 tD(e){let t=[],n=sa(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 En(e,t),{params:r,paramMappings:t}}function ag(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 Ap=class extends fn{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 O(()=>{let a=t instanceof Wr?this.faceFeatureExtractor.forwardInput(t):t;return Bd(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 eD(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=ag(t);return this.faceFeatureExtractor.loadFromWeightMap(n),tD(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 nD=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Ms=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);nD.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return nD.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var rg=class extends Ap{constructor(t=new _p){super("FaceExpressionNet",t)}forwardInput(t){return O(()=>ja(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Ms(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function aD(e){return e.expressions instanceof Ms}function Nk(e,t){return{...e,...{expressions:t}}}function Wfe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Ms?s:aD(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(d=>d.probability>n),u=zr(s)?s.detection.box.bottomLeft:a||new He(0,0);new sl(l.map(d=>`${d.expression} (${nl(d.probability)})`),u).draw(e)})}function Fp(e){return zr(e)&&e.landmarks instanceof ka&&e.unshiftedLandmarks instanceof ka&&e.alignedRect instanceof Ft}function Bfe(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l.x-u.x)**2+(l.y-u.y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l.x-u.x),c=Math.floor(u.x-p.x);return d-c},s=(l,u)=>{let p=Math.hypot(u.x-l.x,u.y-l.y),d=u.y-l.y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u.x-l.x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c=new He((l.x+p.x)/2,(l.y+p.y)/2),h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c.y-u.y<0?-1:1;return f*g};if(!e||!e.positions||e.positions.length!==68)return a;let o=e.positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function Vd(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=Bfe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var sg=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)"}},ig=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new sg(n)}draw(t){let n=ra(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof vp&&(n.strokeStyle=i,n.lineWidth=s,Pr(n,this.faceLandmarks.getJawOutline()),Pr(n,this.faceLandmarks.getLeftEyeBrow()),Pr(n,this.faceLandmarks.getRightEyeBrow()),Pr(n,this.faceLandmarks.getNose()),Pr(n,this.faceLandmarks.getLeftEye(),!0),Pr(n,this.faceLandmarks.getRightEye(),!0),Pr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Vfe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ka?a:Fp(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new ig(r).draw(e)})}var sD="1.7.13";function Hfe(e,t){let n=Tp(e,t),a=Cp(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function iD(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=_n(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Hfe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};fr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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:c,middle_flow:h,exit_flow:g}}}function qfe(e,t){let n=sa(e,t),a=tg(n),r=Ep(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function oD(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=qfe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};fr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return En(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function lD(e,t,n){return X($t(e,t.filters,n,"same"),t.bias)}function Tk(e,t,n=!0){let a=n?Ke(e):e;return a=Un(a,t.separable_conv0,[1,1]),a=Un(Ke(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=X(a,lD(e,t.expansion_conv,[2,2])),a}function jfe(e,t){let n=Un(Ke(e),t.separable_conv0,[1,1]);return n=Un(Ke(n),t.separable_conv1,[1,1]),n=Un(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var og=class extends fn{constructor(t){super("TinyXception"),this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=gr(a,[122.782,117.001,104.298]).div(255),i=Ke(lD(s,n.entry_flow.conv_in,[2,2]));return i=Tk(i,n.entry_flow.reduction_block_0,!1),i=Tk(i,n.entry_flow.reduction_block_1),fr(this._numMainBlocks,0,1).forEach(o=>{i=jfe(i,n.middle_flow[`main_block_${o}`])}),i=Tk(i,n.exit_flow.reduction_block),i=Ke(Un(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return oD(t,this._numMainBlocks)}extractParams(t){return iD(t,this._numMainBlocks)}};function uD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),r=Qf(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 pD(e){let t=[],n=sa(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 En(e,t),{params:r,paramMappings:t}}var Ck=(n=>(n.FEMALE="female",n.MALE="male",n))(Ck||{});var lg=class extends fn{constructor(t=new og(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 O(()=>{let a=t instanceof Wr?this.faceFeatureExtractor.forwardInput(t):t,r=ya(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Bd(r,n.fc.age).as1D(),i=Bd(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return O(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:ja(a)}})}async forward(t){return this.forwardInput(await vt(t))}async predictAgeAndGender(t){let n=await vt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,u)=>({ageTensor:l,genderTensor:s[u]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:u})=>{let p=l.dataSync()[0],d=u.dataSync()[0],c=d>.5,h=c?"male":"female",m=c?d:1-d;return l.dispose(),u.dispose(),{age:p,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 uD(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=ag(t);return this.faceFeatureExtractor.loadFromWeightMap(n),pD(a)}extractParams(t){let a=t.slice(0,t.length-1539),r=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var $p=class extends Ap{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 O(()=>{let i=(d,c)=>At([yn([68],d,"float32"),yn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(At(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return O(()=>{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 vt(t))}async detectLandmarks(t){let n=await vt(t),a=O(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>Gf(d)),u=o.filter((p,d)=>!Gf(d));return new vp(Array(68).fill(0).map((p,d)=>new He(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Dp=class extends $p{constructor(t=new _p){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function cD(e){let t=[],{extractDenseBlock3Params:n}=ng(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return En(e,t),{params:a,paramMappings:t}}function dD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),{extractDenseBlock3Params:r}=eg(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 ug=class extends fn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=gr(a,[122.782,117.001,104.298]).div(255),i=Jf(s,n.dense0,!0);return i=Jf(i,n.dense1),i=Jf(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return cD(t)}extractParams(t){return dD(t)}};var pg=class extends $p{constructor(t=new ug){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var hD=class extends Dp{};function mD(e,t){return X(z(e,t.weights),t.biases)}function Ek(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=$t(e,s,n,r);return o=X(o,i),o=mD(o,t.scale),a?Ke(o):o}function fD(e,t){return Ek(e,t,[1,1],!0)}function _k(e,t){return Ek(e,t,[1,1],!1)}function cg(e,t){return Ek(e,t,[2,2],!0,"valid")}function Kfe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(gk(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return O(()=>De(Fa(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=qe(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=qe(e(o)),p=qe(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function gD(e){let{extractWeights:t,getRemainingWeights:n}=_n(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Kfe(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"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),I=O(()=>De(Ea(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:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:b,conv256_1:y,conv256_2:x,conv256_down_out:v,fc:I},paramMappings:a}}function Xfe(e,t){let n=sa(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 bD(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Xfe(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"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!fk(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:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:b,conv256_down_out:y,fc:x};return En(e,t),{params:v,paramMappings:t}}function Ya(e,t){let n=fD(e,t.conv1);return n=_k(n,t.conv2),n=X(n,e),n=Ke(n),n}function Ud(e,t){let n=cg(e,t.conv1);n=_k(n,t.conv2);let a=ya(e,2,2,"valid"),r=It(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=It(o);n=et([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=et([n,p],2)}return a=s?et([a,r],3):a,n=X(a,n),n=Ke(n),n}var Rp=class extends fn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return O(()=>{let a=re(t.toBatchTensor(150,!0),"float32"),s=gr(a,[122.782,117.001,104.298]).div(255),i=cg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Ya(i,n.conv32_1),i=Ya(i,n.conv32_2),i=Ya(i,n.conv32_3),i=Ud(i,n.conv64_down),i=Ya(i,n.conv64_1),i=Ya(i,n.conv64_2),i=Ya(i,n.conv64_3),i=Ud(i,n.conv128_down),i=Ya(i,n.conv128_1),i=Ya(i,n.conv128_2),i=Ud(i,n.conv256_down),i=Ya(i,n.conv256_1),i=Ya(i,n.conv256_2),i=Ud(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=O(()=>dt(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 bD(t)}extractParams(t){return gD(t)}};function G2e(e){let t=new Rp;return t.extractWeights(e),t}function Ak(e,t){return{...e,...{descriptor:t}}}function K2e(e){return typeof e.age=="number"}function Fk(e,t){return{...e,...{age:t}}}function J2e(e){return(e.gender==="male"||e.gender==="female")&&gp(e.genderProbability)}function $k(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Yfe(e,t){function n(l,u){let p=Fa(e(9*l),[3,3,l,1]),d=qe(e(l)),c=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:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Fa(e(l*u*p*p),[p,p,l,u]),m=qe(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=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"),b=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:b,conv_10:y,conv_11:x,conv_12:v,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),N=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),_=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"),$=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:I},box_predictor_3:{box_encoding_predictor:N,class_predictor:C},box_predictor_4:{box_encoding_predictor:_,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function yD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Yfe(n,t),i=r(),o=s(),u={extra_dim:xd(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 Zfe(e,t){let n=sa(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:b,batch_norm_variance:y},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,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}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 xD(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zfe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Lr(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 En(e,t),{params:s,paramMappings:t}}function Ra(e,t,n){return O(()=>{let a=$t(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),an(a,0,6)})}var Jfe=.0010000000474974513;function Qfe(e,t,n){return O(()=>{let a=Ns(e,t.filters,n,"same");return a=Ss(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Jfe),an(a,0,6)})}function ege(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function vD(e,t){return O(()=>{let n,a=Ra(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=ege(o);a=Qfe(a,s.depthwise_conv,l),a=Ra(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 tge(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]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function wD(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=tge(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function nge(e){let t=dt(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function age(e,t){let{sizes:n,centers:a}=nge(e),r=dt(De(t,[1,0])),s=he(z(dn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(dn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(At([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function kD(e,t,n){return O(()=>{let a=e.shape[0],r=age(W(Mn(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ha(Ve(t,[0,0,1],[-1,-1,-1])),i=Ve(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function ol(e,t){return O(()=>{let n=e.shape[0],a=W(il(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(il(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function ID(e,t,n){return O(()=>{let a=Ra(e,n.conv_0,[1,1]),r=Ra(a,n.conv_1,[2,2]),s=Ra(r,n.conv_2,[1,1]),i=Ra(s,n.conv_3,[2,2]),o=Ra(i,n.conv_4,[1,1]),l=Ra(o,n.conv_5,[2,2]),u=Ra(l,n.conv_6,[1,1]),p=Ra(u,n.conv_7,[2,2]),d=ol(t,n.box_predictor_0),c=ol(e,n.box_predictor_1),h=ol(r,n.box_predictor_2),m=ol(i,n.box_predictor_3),f=ol(l,n.box_predictor_4),g=ol(p,n.box_predictor_5),b=et([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=et([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ma=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 ll=class extends fn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return O(()=>{let a=re(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=vD(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=ID(s.out,s.conv11,n.prediction_layer);return kD(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ma(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,I]=[Math.max(0,b[x][0]),Math.min(1,b[x][2])].map(_=>_*g),[N,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(_=>_*f);return new Ft(p[x],new xp(N,v,C-N,I-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return xD(t)}extractParams(t){return yD(t)}};function rge(e){let t=new ll;return t.extractWeights(e),t}function GCe(e){return rge(e)}var SD=class extends ll{};var ND=.4,TD=[new He(.738768,.874946),new He(2.42204,2.65704),new He(4.30971,7.04493),new He(10.246,4.59428),new He(12.6868,11.8741)],CD=[new He(1.603231,2.094468),new He(6.041143,7.080126),new He(2.882459,3.518061),new He(4.266906,5.178857),new He(9.041765,10.66308)],ED=[117.001,114.697,97.404],_D="tiny_yolov2_model",AD="tiny_yolov2_separable_conv_model";var dg=e=>typeof e=="number";function FD(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(!dg(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=>dg(t.x)&&dg(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(dg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Mp(e){return O(()=>{let t=z(e,ve(.10000000149011612));return X(Ke(pe(e,t)),t)})}function Br(e,t){return O(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$t(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Mp(n)})}function Vr(e,t){return O(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Es(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Mp(n)})}function sge(e,t){let n=Tp(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`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=Cp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function $D(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=_n(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=sge(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,v=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),N=u(h,m,"conv2"),C=u(m,f,"conv3"),_=u(f,g,"conv4"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,x]=a,v=l(d,c,"conv0"),I=l(c,h,"conv1"),N=l(h,m,"conv2"),C=l(m,f,"conv3"),_=l(f,g,"conv4"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function ige(e,t){let n=sa(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=Ep(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function DD(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=ige(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 En(e,n),{params:i,paramMappings:n}}var br=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 hg=class hg extends fn{constructor(t){super("TinyYolov2"),FD(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=Br(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=Br(a,n.conv6),a=Br(a,n.conv7),il(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Mp(il(t,n.conv0,"valid",!1)):Vr(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=n.conv6?Vr(a,n.conv6):a,a=n.conv7?Vr(a,n.conv7):a,il(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return O(()=>{let r=re(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?gr(r,this.config.meanRgb):r,r=r.div(255),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await vt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new br(n),s=await vt(t),i=await this.forwardInput(s,a),o=O(()=>dt(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 p=u.map(g=>g.box),d=u.map(g=>g.score),c=u.map(g=>g.classScore),h=u.map(g=>this.config.classes[g.label]);return B$(p.map(g=>g.rescale(a)),d,this.config.iouThreshold,!0).map(g=>new yp(d[g],c[g],h[g],p[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return DD(t,this.config)}extractParams(t){let n=this.config.filterSizes||hg.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 $D(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],p=this.config.anchors.length,[d,c,h]=O(()=>{let b=t.reshape([u,u,p,this.boxEncodingSize]),y=b.slice([0,0,0,0],[u,u,p,4]),x=b.slice([0,0,0,4],[u,u,p,1]),v=this.withClassScores?ja(b.slice([0,0,0,5],[u,u,p,this.config.classes.length]),3):ve(0);return[y,x,v]}),m=[],f=await c.array(),g=await d.array();for(let b=0;ba){let I=(y+qf(g[b][y][x][0]))/u*o,N=(b+qf(g[b][y][x][1]))/u*l,C=Math.exp(g[b][y][x][2])*this.config.anchors[x].x/u*o,_=Math.exp(g[b][y][x][3])*this.config.anchors[x].y/u*l,F=I-C/2,D=N-_/2,$={row:b,col:y,anchor:x},{classScore:S,label:M}=this.withClassScores?await this.extractPredictedClass(h,$):{classScore:1,label:0};m.push({box:new bp(F,D,F+C,D+_),score:v,classScore:v*S,label:M,...$})}}return d.dispose(),c.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)}};hg.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Op=hg;var Pp=class extends Op{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:ND,classes:["face"],...t?{anchors:CD,meanRgb:ED}:{anchors:TD,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?AD:_D}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function MEe(e,t=!0){let n=new Pp(t);return n.extractWeights(e),n}var mg=class extends br{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Oa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function ul(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Fp(l)?r(l):l.detection),i=a||(t instanceof Ce?await Ld(t,s):await Pd(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ce&&l.dispose()),o}async function Lp(e,t,n,a,r){return ul([e],t,async s=>n(s[0]),a,r)}var RD=.4,MD=[new He(1.603231,2.094468),new He(6.041143,7.080126),new He(2.882459,3.518061),new He(4.266906,5.178857),new He(9.041765,10.66308)],OD=[117.001,114.697,97.404];var zp=class extends Op{constructor(){let t={withSeparableConvs:!0,iouThreshold:RD,classes:["face"],anchors:MD,meanRgb:OD,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 rt={ssdMobilenetv1:new ll,tinyFaceDetector:new zp,tinyYolov2:new Pp,faceLandmark68Net:new Dp,faceLandmark68TinyNet:new pg,faceRecognitionNet:new Rp,faceExpressionNet:new rg,ageGenderNet:new lg},oge=(e,t)=>rt.ssdMobilenetv1.locateFaces(e,t),c_e=(e,t)=>rt.tinyFaceDetector.locateFaces(e,t),d_e=(e,t)=>rt.tinyYolov2.locateFaces(e,t),lge=e=>rt.faceLandmark68Net.detectLandmarks(e),h_e=e=>rt.faceLandmark68TinyNet.detectLandmarks(e),m_e=e=>rt.faceRecognitionNet.computeFaceDescriptor(e),f_e=e=>rt.faceExpressionNet.predictExpressions(e),g_e=e=>rt.ageGenderNet.predictAgeAndGender(e),uge=e=>rt.ssdMobilenetv1.load(e),b_e=e=>rt.tinyFaceDetector.load(e),y_e=e=>rt.tinyYolov2.load(e),x_e=e=>rt.faceLandmark68Net.load(e),v_e=e=>rt.faceLandmark68TinyNet.load(e),w_e=e=>rt.faceRecognitionNet.load(e),k_e=e=>rt.faceExpressionNet.load(e),I_e=e=>rt.ageGenderNet.load(e),S_e=uge,N_e=oge,T_e=lge;var fg=class extends Oa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},pl=class extends fg{async run(){let t=await this.parentTask,n=await ul(t,this.input,async a=>Promise.all(a.map(r=>rt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>Nk(a,n[r]))}withAgeAndGender(){return new dl(this,this.input)}},cl=class extends fg{async run(){let t=await this.parentTask;if(!t)return;let n=await Lp(t,this.input,a=>rt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return Nk(t,n)}withAgeAndGender(){return new hl(this,this.input)}},Os=class extends pl{withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptors(){return new Ws(this,this.input)}},Ps=class extends cl{withAgeAndGender(){return new zs(this,this.input)}withFaceDescriptor(){return new Bs(this,this.input)}};var gg=class extends Oa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},dl=class extends gg{async run(){let t=await this.parentTask,n=await ul(t,this.input,async a=>Promise.all(a.map(r=>rt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Fk($k(a,i,o),s)})}withFaceExpressions(){return new pl(this,this.input)}},hl=class extends gg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Lp(t,this.input,s=>rt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Fk($k(t,a,r),n)}withFaceExpressions(){return new cl(this,this.input)}},Ls=class extends dl{withFaceExpressions(){return new Os(this,this.input)}withFaceDescriptors(){return new Ws(this,this.input)}},zs=class extends hl{withFaceExpressions(){return new Ps(this,this.input)}withFaceDescriptor(){return new Bs(this,this.input)}};var bg=class extends Oa{constructor(n,a){super();this.parentTask=n;this.input=a}},Ws=class extends bg{async run(){let t=await this.parentTask;return(await ul(t,this.input,a=>Promise.all(a.map(r=>rt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Ak(t[r],a))}withFaceExpressions(){return new Os(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}},Bs=class extends bg{async run(){let t=await this.parentTask;if(!t)return;let n=await Lp(t,this.input,a=>rt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Ak(t,n)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new zs(this,this.input)}};var yg=class extends Oa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?rt.faceLandmark68TinyNet:rt.faceLandmark68Net}},xg=class extends yg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Ce?await Ld(this.input,n):await Pd(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Ce&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>Vd(i,r[o]))}withFaceExpressions(){return new Os(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptors(){return new Ws(this,this.input)}},vg=class extends yg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ce?await Ld(this.input,[n]):await Pd(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ce&&s.dispose()),Vd(t,r)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new zs(this,this.input)}withFaceDescriptor(){return new Bs(this,this.input)}};var wg=class extends Oa{constructor(n,a=new Ma){super();this.input=n;this.options=a}},Gd=class extends wg{async run(){let{input:t,options:n}=this,a;if(n instanceof mg)a=rt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ma)a=rt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof br)a=rt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>wp({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new xg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new pl(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new dl(this.runAndExtendWithFaceDetections(),this.input)}},kg=class extends wg{async run(){let t=await new Gd(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?wp({},n):void 0)})}withFaceLandmarks(t=!1){return new vg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new cl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new hl(this.runAndExtendWithFaceDetection(),this.input)}};function IAe(e,t=new Ma){return new kg(e,t)}function Dk(e,t=new Ma){return new Gd(e,t)}async function pge(e,t){return Dk(e,new Ma(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function _Ae(e,t={}){return Dk(e,new br(t)).withFaceLandmarks().withFaceDescriptors()}var AAe=pge;function PD(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*s,0))}var LD=class e{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 rl)return i;if(i instanceof Float32Array)return new rl(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new rl(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=>PD(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Dd(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>rl.fromJSON(a));return new e(n,t.distanceThreshold)}};function KAe(e){let t=new zp;return t.extractWeights(e),t}function cge(e,t){let{width:n,height:a}=new aa(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=>cge(r,{width:n,height:a}));if(Fp(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Vd(wp(e,r),s)}return zr(e)?wp(e,e.detection.forSize(n,a)):e instanceof ka||e instanceof Ft?e.forSize(n,a):e}var sFe=sD;export{lg as AgeGenderNet,bp as BoundingBox,mn as Box,Oa as ComposableTask,Ws as ComputeAllFaceDescriptorsTask,bg as ComputeFaceDescriptorsTaskBase,Bs as ComputeSingleFaceDescriptorTask,xg as DetectAllFaceLandmarksTask,Gd as DetectAllFacesTask,yg as DetectFaceLandmarksTaskBase,wg as DetectFacesTaskBase,vg as DetectSingleFaceLandmarksTask,kg as DetectSingleFaceTask,aa as Dimensions,nD as FACE_EXPRESSION_LABELS,Ft as FaceDetection,SD as FaceDetectionNet,rg as FaceExpressionNet,Ms as FaceExpressions,Dp as FaceLandmark68Net,pg as FaceLandmark68TinyNet,hD as FaceLandmarkNet,ka as FaceLandmarks,U$ as FaceLandmarks5,vp as FaceLandmarks68,Dd as FaceMatch,LD as FaceMatcher,Rp as FaceRecognitionNet,Ck as Gender,Rd as LabeledBox,rl as LabeledFaceDescriptors,Wr as NetInput,fn as NeuralNetwork,yp as ObjectDetection,He as Point,G$ as PredictedBox,xp as Rect,ll as SsdMobilenetv1,Ma as SsdMobilenetv1Options,zp as TinyFaceDetector,mg as TinyFaceDetectorOptions,Pp as TinyYolov2,br as TinyYolov2Options,AAe as allFaces,pge as allFacesSsdMobilenetv1,_Ae as allFacesTinyYolov2,H$ as awaitMediaLoaded,q$ as bufferToImage,m_e as computeFaceDescriptor,Np as createCanvas,Yf as createCanvasFromMedia,GCe as createFaceDetectionNet,G2e as createFaceRecognitionNet,rge as createSsdMobilenetv1,KAe as createTinyFaceDetector,MEe as createTinyYolov2,Dk as detectAllFaces,lge as detectFaceLandmarks,h_e as detectFaceLandmarksTiny,T_e as detectLandmarks,IAe as detectSingleFace,rD as draw,at as env,PD as euclideanDistance,Fk as extendWithAge,Ak as extendWithFaceDescriptor,wp as extendWithFaceDetection,Nk as extendWithFaceExpressions,Vd as extendWithFaceLandmarks,$k as extendWithGender,Ld as extractFaceTensors,Pd as extractFaces,Qke as fetchImage,X$ as fetchJson,rIe as fetchNetWeights,Rs as fetchOrThrow,pIe as fetchVideo,ra as getContext2dOrThrow,Sp as getMediaDimensions,j$ as imageTensorToCanvas,K$ as imageToSquare,m0e as inverseSigmoid,z$ as iou,Sk as isMediaElement,Xf as isMediaLoaded,K2e as isWithAge,zr as isWithFaceDetection,aD as isWithFaceExpressions,Fp as isWithFaceLandmarks,J2e as isWithGender,I_e as loadAgeGenderModel,S_e as loadFaceDetectionModel,k_e as loadFaceExpressionModel,x_e as loadFaceLandmarkModel,v_e as loadFaceLandmarkTinyModel,w_e as loadFaceRecognitionModel,uge as loadSsdMobilenetv1Model,b_e as loadTinyFaceDetectorModel,y_e as loadTinyYolov2Model,Z$ as loadWeightMap,N_e as locateFaces,bIe as matchDimensions,W$ as minBbox,rt as nets,B$ as nonMaxSuppression,gr as normalize,V$ as padToSquare,g_e as predictAgeAndGender,f_e as recognizeFaceExpressions,cge as resizeResults,kp as resolveInput,d0e as shuffleArray,qf as sigmoid,oge as ssdMobilenetv1,Pe as tf,c_e as tinyFaceDetector,d_e as tinyYolov2,vt as toNetInput,L$ as utils,FD as validateConfig,sFe as version}; + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(a.dataId).id,o=t.dataIdMap.get(r.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=a.shape[0],p=w.sizeFromShape(s.shape),d=t.makeOutput([u,p],a.dtype),c=t.dataIdMap.get(d.dataId).id,h=t.makeOutput([p],s.dtype),m=t.dataIdMap.get(h.dataId).id,f=t.makeOutput([3],"int32"),g=t.dataIdMap.get(f.dataId).id;T$(i,o,l,u,c,m,g);let b=t.readSync(f.dataId),y;switch(b[0]){case 0:{y=T.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(b[1],b[2]);break}case 1:{y=T.getSparseReshapeNegativeOutputDimErrorMessage(b[1],b[2]);break}case 2:y=T.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=T.getSparseReshapeInputOutputMultipleErrorMessage(x,v);break}case 4:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=T.getSparseReshapeInputOutputMismatchErrorMessage(x,v);break}default:y=""}if(t.disposeData(f.dataId),y)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(y);return[d,h]}var kme={kernelName:Gu,backendName:"wasm",setupFunc:vme,kernelFunc:wme},C$;function E$(e){C$=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function _$(e,t){let{backend:n,inputs:a}=e,{data:r,indices:s,segmentIds:i}=a,o=s.shape[0],l=n.readSync(i.dataId,o-1,o)[0],u=o>0?l+1:0;if(u<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),b=n.dataIdMap.get(g.dataId).id;C$(d,Qe[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Ime(e){return _$(e,!0)}var Sme={kernelName:Hc,backendName:"wasm",setupFunc:E$,kernelFunc:Ime};function Nme(e){return _$(e,!1)}var Tme={kernelName:jc,backendName:"wasm",setupFunc:E$,kernelFunc:Nme},A$;function Cme(e){A$=e.wasm.cwrap(Hu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Eme(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(w.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=T.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return A$(m,f,s.shape.length,g,Qe[i.dtype],u,p,d,b,h,y),l}var _me={kernelName:Hu,backendName:"wasm",setupFunc:Cme,kernelFunc:Eme};function Ame(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=Ii({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Fme={kernelName:Uu,backendName:"wasm",kernelFunc:Ame},$me=Xe(Po),Dme=Xe(qc),Rme=!0,Mme=Ut(Wo,Rme),F$;function Ome(e){F$=e.wasm.cwrap(Is,null,["number","number","number","number"])}function Pme(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 F$(i,r,Qe[s.dtype],l),o}var Lme={kernelName:Is,backendName:"wasm",setupFunc:Ome,kernelFunc:Pme},$$;function zme(e){$$=e.wasm.cwrap(ju,null,["number","array","number","array","array","array","array","array","number","number"])}function Wme(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=zn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=Ii({inputs:{x:r},backend:t,attrs:{begin:y,size:N}});I=zn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let N=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,_=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=new Uint8Array(new Int32Array(v).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer),B=t.dataIdMap.get(N.dataId).id;$$(C,_,r.shape.length,F,D,$,S,M,h.length,B),I=zn({inputs:{x:N},backend:t,attrs:{shape:m}}),t.disposeData(N.dataId)}return I}var Bme={kernelName:ju,backendName:"wasm",setupFunc:zme,kernelFunc:Wme};function Vme(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=U1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var Ume={kernelName:Xc,backendName:"wasm",kernelFunc:Vme};function Gme(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=G1(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Hme={kernelName:Yc,backendName:"wasm",kernelFunc:Gme};function jme(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=H1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var qme={kernelName:Zc,backendName:"wasm",kernelFunc:jme},Kme=!0,Xme=Ut(Bo,Kme),D$;function Yme(e){D$=e.wasm.cwrap(Lo,null,["number","number","number","number"])}function Zme(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;D$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Jme={kernelName:Lo,backendName:"wasm",setupFunc:Yme,kernelFunc:Zme},Qme=Xe(Vo),efe=Xe(Uo),R$;function tfe(e){R$=e.wasm.cwrap(Lu,null,["number","number","number","number","number","number","array","number","number","number"])}function nfe(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(w.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=sf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return R$(h,m,Qe[i.dtype],l,u,p,g,c,b,f),o}var afe={kernelName:Lu,backendName:"wasm",setupFunc:tfe,kernelFunc:nfe},M$;function rfe(e){M$=e.wasm.cwrap(ks,null,["number","array","number","array","number","number"])}function sfe(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 c=0;c{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),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return O$(i,o,a.shape.length,Qe[a.dtype],r,s,p,c),[u,d]},ufe={kernelName:qu,backendName:"wasm",setupFunc:ofe,kernelFunc:lfe},P$;function pfe(e){P$=e.wasm.cwrap(Ku,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function cfe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(w.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),v=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,N=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,_;switch(o){case"constant":_=1;break;case"reflect":_=2;break;case"wrap":_=3;break;case"nearest":_=4;break;default:_=1;break}return P$(I,N,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,_,l,v),x}var dfe={kernelName:Ku,backendName:"wasm",setupFunc:pfe,kernelFunc:cfe};function hfe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=q1(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var mfe={kernelName:Jc,backendName:"wasm",kernelFunc:hfe};function ffe(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 gfe={kernelName:Xu,backendName:"wasm",kernelFunc:ffe};function bfe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var yfe={kernelName:Yu,backendName:"wasm",kernelFunc:bfe},xfe=[eue,tue,nue,aue,sue,lue,gue,xue,vue,wue,kue,Iue,Sue,Nue,Tue,_ue,Lue,$ue,Mue,Vue,Kue,Zue,Que,tpe,npe,ape,ipe,ope,ppe,hpe,gpe,xpe,kpe,Ipe,Spe,Cpe,Ape,Dpe,Ope,zpe,Vpe,Hpe,Kpe,Zpe,ece,tce,rce,ice,oce,lce,uce,pce,cce,mce,fce,bce,vce,Ice,Tce,_ce,$ce,Rce,Oce,uue,Pce,Lce,zce,Vce,Gce,jce,Xce,Zce,Yce,Qce,ede,nde,rde,ode,pde,hde,fde,yde,wde,Sde,Cde,Ade,Dde,Ode,Lde,Bde,jde,qde,Xde,Yde,Qde,nhe,she,ohe,phe,dhe,mhe,d$,yhe,whe,She,The,Ehe,_he,Ahe,Fhe,zue,Rhe,Phe,Whe,Uhe,jhe,Xhe,Yhe,Zhe,eme,ame,ime,ome,pme,cme,dme,hme,jue,Ude,mme,gme,xme,kme,Sme,Tme,_me,Fme,$me,Dme,Mme,Lme,Bme,Ume,Hme,qme,Xme,Jme,Qme,efe,afe,ife,ufe,dfe,hue,mfe,gfe,yfe];for(let e of xfe)ed(e);var vv=G();vv.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});vv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(vv.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 TS=xs(VR()),vfe=xs(UR()),CS=xs(GR()),ES=TS.default||TS,wfe=CS.default||CS,L$=class extends Fc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(z$),wv=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ym(this,Ta())}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 u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o)>>>0;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,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||w.sizeFromShape(s);let o=w.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return Sfe(l.buffer,r)}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(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,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 kfe(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,s.module)})})}),{})}function _S(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"),cc!=null&&cc[a]!=null?cc[a]:n+a}async function Ife(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=vfe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?_S(e,t,lc!=null?lc:l):l+o},mk&&(r.instantiateWasm=kfe(_S(e,t,lc!=null?lc:"")));let s=!1;r.onAbort=()=>{s||dc||(dc=!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 = "+ES.toString()],{type:"text/javascript"}),i=ES(r)):i=wfe(r),i.then(o=>{s=!0,dc=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function Sfe(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 Nfe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],gm=null,lc=null,cc={},dc=!1,mk=!1;function Tfe(e,t=!1){if($v("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),dc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");gm=e,mk=t}function Cfe(e,t=!1){if(dc)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")lc=e;else{cc=e;let n=Nfe.filter(a=>cc[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.`)}mk=t}var z$=-1,wv=-1;function Efe(e){z$=e}function _fe(){if(wv===-1)throw new Error("WASM backend not initialized.");return wv}var Afe="4.21.0",Ffe=2;Om("wasm",async()=>{let{wasm:e}=await Ife();return new L$(e)},Ffe);var AS="4.21.0",$fe="4.21.0",Dfe="4.21.0",Rfe="4.21.0",Mfe="4.21.0",Ofe={tfjs:AS,"tfjs-core":AS,"tfjs-converter":$fe,"tfjs-backend-cpu":Dfe,"tfjs-backend-webgl":Rfe,"tfjs-backend-wasm":Mfe};var iD={};ax(iD,{AnchorPosition:()=>Ik,DrawBox:()=>Od,DrawBoxOptions:()=>Xf,DrawFaceLandmarks:()=>og,DrawFaceLandmarksOptions:()=>ig,DrawTextField:()=>sl,DrawTextFieldOptions:()=>Ip,drawContour:()=>Pr,drawDetections:()=>Ufe,drawFaceExpressions:()=>Gfe,drawFaceLandmarks:()=>jfe});function Pr(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 W$={};ax(W$,{computeReshapedDimensions:()=>bk,getCenterPoint:()=>al,isDimensions:()=>jf,isEven:()=>Hf,isFloat:()=>gk,isTensor:()=>tl,isTensor1D:()=>Pfe,isTensor2D:()=>fk,isTensor3D:()=>Lr,isTensor4D:()=>wa,isValidNumber:()=>Xa,isValidProbablitiy:()=>gp,range:()=>gr,round:()=>nl});var aa=class e{constructor(t,n){if(!Xa(t)||!Xa(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 e(1/this.width,1/this.height)}};function tl(e,t){return e instanceof Ce&&e.shape.length===t}function Pfe(e){return tl(e,1)}function fk(e){return tl(e,2)}function Lr(e){return tl(e,3)}function wa(e){return tl(e,4)}function gk(e){return e%1!==0}function Hf(e){return e%2===0}function nl(e,t=2){let n=10**t;return Math.floor(e*n)/n}function jf(e){return e&&e.width&&e.height}function bk({width:e,height:t},n){let a=n/Math.max(t,e);return new aa(Math.round(e*a),Math.round(t*a))}function al(e){return e.reduce((t,n)=>t.add(n),new He(0,0)).div(new He(e.length,e.length))}function gr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Xa(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function gp(e){return Xa(e)&&e>=0&&e<=1}var He=class e{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new e(this.x+t.x,this.y+t.y)}sub(t){return new e(this.x-t.x,this.y-t.y)}mul(t){return new e(this.x*t.x,this.y*t.y)}div(t){return new e(this.x/t.x,this.y/t.y)}abs(){return new e(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new e(Math.floor(this.x),Math.floor(this.y))}};var mn=class e{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Xa)}static assertIsValidBox(t,n,a=!1){if(!e.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(Xa),s=[a.x,a.y,a.width,a.height].every(Xa);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];e.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 He(this.left,this.top)}get topRight(){return new He(this.right,this.top)}get bottomLeft(){return new He(this.left,this.bottom)}get bottomRight(){return new He(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 e({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 e({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=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new e({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 bp=class extends mn{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var yp=class e{constructor(t,n,a,r,s){this._imageDims=new aa(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new mn(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 mn(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new e(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var Ft=class e extends yp{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 e(a,r,s)}};function B$(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 V$(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[p]<=n)}return s}function br(e,t){return O(()=>{let[n,a,r]=t,s=yn([...e.shape.slice(0,3),1],n,"float32"),i=yn([...e.shape.slice(0,3),1],a,"float32"),o=yn([...e.shape.slice(0,3),1],r,"float32"),l=et([s,i,o],3);return pe(e,l)})}function G$(e,t=!1){return O(()=>{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=c=>{let h=e.shape.slice();return h[i]=c,yn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>re(c,"float32"));return et(d,i)})}function y0e(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 qf(e){return 1/(1+Math.exp(-e))}function v0e(e){return Math.log(e/(1-e))}var xp=class extends mn{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Lfe=.5,zfe=.43,Wfe=.45,ka=class{constructor(t,n,a=new He(0,0)){let{width:r,height:s}=n;this._imgDims=new aa(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new He(r,s)).add(a))}get shift(){return new He(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 He(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 He(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 mn(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=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Wfe),l=al(t),u=Math.floor(Math.max(0,l.x-Lfe*o)),p=Math.floor(Math.max(0,l.y-zfe*o));return new xp(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=V$(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var H$=class extends ka{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],al([t[3],t[4]])]}};var vp=class extends ka{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(al)}};var Dd=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?` (${nl(this.distance)})`:""}`}};var Rd=class extends mn{static assertIsValidLabeledBox(t,n){if(mn.assertIsValidBox(t,n),!Xa(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 rl=class e{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 e(t.label,n)}};var j$=class extends Rd{static assertIsValidPredictedBox(t,n){if(Rd.assertIsValidLabeledBox(t,n),!gp(t.score)||!gp(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 zr(e){return e.detection instanceof Ft}function wp(e,t){return{...e,...{detection:t}}}function yk(){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"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Md(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Kf(e){let t="";if(!e&&Md())try{e=wR("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 xk(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;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")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=Kf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function vk(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var ln;function Bfe(){if(!ln)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return ln}function wk(e){ln=e}function kk(){return vk()?wk(yk()):Md()?wk(xk()):null}function Vfe(e){if(ln||kk(),!ln)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=ln.Canvas,Image:n=ln.Image}=e;ln.Canvas=t,ln.Image=n,ln.createCanvasElement=e.createCanvasElement||(()=>new t),ln.createImageElement=e.createImageElement||(()=>new n),ln.ImageData=e.ImageData||ln.ImageData,ln.Video=e.Video||ln.Video,ln.fetch=e.fetch||ln.fetch,ln.readFile=e.readFile||ln.readFile}var at={getEnv:Bfe,setEnv:wk,initialize:kk,createBrowserEnv:yk,createFileSystem:Kf,createNodejsEnv:xk,monkeyPatch:Vfe,isBrowser:vk,isNodejs:Md};kk();function kp(e){return!at.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function ra(e){let{Canvas:t,CanvasRenderingContext2D:n}=at.getEnv();if(e instanceof n)return e;let a=kp(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var Ik=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(Ik||{}),Ip=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"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}},sl=class e{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof e?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+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var Xf=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:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Ip({...i,...s})}},Od=class{constructor(t,n={}){this.box=new mn(t),this.options=new Xf(n)}draw(t){let n=ra(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 sl([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Ufe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof Ft?a.score:zr(a)?a.detection.score:void 0,s=a instanceof Ft?a.box:zr(a)?a.detection.box:new mn(a),i=r?`${nl(r)}`:void 0;new Od(s,{label:i}).draw(e)})}function Yf(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function q$(e){return new Promise((t,n)=>{if(e instanceof at.getEnv().Canvas||Yf(e)){t(null);return}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 K$(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=at.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Sp(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t?new aa(e.naturalWidth,e.naturalHeight):e instanceof n?new aa(e.videoWidth,e.videoHeight):new aa(e.width,e.height)}function Np({width:e,height:t}){let{createCanvasElement:n}=at.getEnv(),a=n();return a.width=e,a.height=t,a}function Zf(e,t){let{ImageData:n}=at.getEnv();if(!(e instanceof n)&&!Yf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Sp(e),s=Np({width:a,height:r});return e instanceof n?ra(s).putImageData(e,0,0):ra(s).drawImage(e,0,0,a,r),s}async function X$(e,t){let n=t||at.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(wa(e)?1:0),i=O(()=>e.as3D(a,r,s).toInt());return await qo.toPixels(i,n),i.dispose(),n}function Sk(e){let{Image:t,Canvas:n,Video:a}=at.getEnv();return e instanceof t||e instanceof n||e instanceof a}function Y$(e,t,n=!1){let{Image:a,Canvas:r}=at.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Np({width:1,height:1});let s=Sp(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Np({width:t,height:t}),p=e instanceof r?e:Zf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&ra(u).drawImage(p,c,h,o,l),u}var Wr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(Lr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(wa(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 at.getEnv().Canvas?a:Zf(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 gr(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 bk({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,O(()=>{let a=gr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ce){let o=wa(i)?i:Gt(i);return o=G$(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Zn.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof at.getEnv().Canvas)return qo.fromPixels(Y$(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return At(a.map(s=>re(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof Wr)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(kp);return a.forEach((r,s)=>{if(!Sk(r)&&!Lr(r)&&!wa(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(wa(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=>Sk(r)&&q$(r))),new Wr(a,Array.isArray(e))}async function Pd(e,t){let{Canvas:n}=at.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await X$(o)}let r=ra(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 p=Np({width:l,height:u});return l>0&&u>0&&ra(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Ld(e,t){if(!Lr(e)&&!wa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(wa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return O(()=>{let[n,a,r]=e.shape.slice(wa(e)?1:0);return t.map(o=>o instanceof Ft?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>Ho(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Ms(e,t){let{fetch:n}=at.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 sIe(e){let t=await Ms(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 K$(n)}async function Z$(e){return(await Ms(e)).json()}async function pIe(e){return new Float32Array(await(await Ms(e)).arrayBuffer())}function J$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=at.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function gIe(e){let t=await Ms(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return J$(n)}function Jf(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 Q$(e,t){let{manifestUri:n,modelBaseUri:a}=Jf(e,t),r=await Z$(n);return jt.loadWeights(r,a)}function IIe(e,t,n=!1){let{width:a,height:r}=n?Sp(t):t;return e.width=a,e.height=r,{width:a,height:r}}var fn=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 os)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof os))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 Q$(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}=at.getEnv(),{manifestUri:a,modelBaseUri:r}=Jf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>typeof d=="string"?Buffer.from(d):d.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 Ce))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Un(e,t,n){return O(()=>{let a=_s(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=X(a,t.bias),a})}function Qf(e,t,n=!1){return O(()=>{let a=Ke(n?X($t(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Un(e,t.conv0,[2,2])),r=Un(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=Un(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function zd(e,t,n=!1,a=!0){return O(()=>{let r=Ke(n?X($t(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Un(e,t.conv0,a?[2,2]:[1,1])),s=Un(r,t.conv1,[1,1]),i=Ke(X(r,s)),o=Un(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=Un(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function il(e,t,n="same",a=!1){return O(()=>{let r=X($t(e,t.filters,[1,1],n),t.bias);return a?Ke(r):r})}function _n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Tp(e,t){return(n,a,r,s)=>{let i=Fa(e(n*a*r*r),[r,r,n,a]),o=je(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function eg(e,t){return(n,a,r)=>{let s=Ea(e(n*a),[n,a]),i=je(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Wd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Cp(e,t){return(n,a,r)=>{let s=Fa(e(9*n),[3,3,n,1]),i=Fa(e(n*a),[1,1,n,a]),o=je(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Wd(s,i,o)}}function Ep(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Wd(n,a,r)}}function sa(e,t){return(n,a,r)=>{let s=e[n];if(!tl(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 An(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 tg(e,t){let n=Tp(e,t),a=Cp(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function eD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock4Params:r}=tg(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 ng(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function ag(e,t){let n=sa(e,t),a=ng(n),r=Ep(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function tD(e){let t=[],{extractDenseBlock4Params:n}=ag(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return _n(e,t),{params:a,paramMappings:t}}var _p=class extends fn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=br(a,[122.782,117.001,104.298]).div(255),i=zd(s,n.dense0,!0);return i=zd(i,n.dense1),i=zd(i,n.dense2),i=zd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return tD(t)}extractParams(t){return eD(t)}};function Bd(e,t){return O(()=>X($e(e,t.weights),t.bias))}function nD(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=An(e),o=eg(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 aD(e){let t=[],n=sa(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 _n(e,t),{params:r,paramMappings:t}}function rg(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 Ap=class extends fn{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 O(()=>{let a=t instanceof Wr?this.faceFeatureExtractor.forwardInput(t):t;return Bd(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 nD(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=rg(t);return this.faceFeatureExtractor.loadFromWeightMap(n),aD(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 rD=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Os=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);rD.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return rD.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var sg=class extends Ap{constructor(t=new _p){super("FaceExpressionNet",t)}forwardInput(t){return O(()=>qa(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Os(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function sD(e){return e.expressions instanceof Os}function Nk(e,t){return{...e,...{expressions:t}}}function Gfe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Os?s:sD(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(d=>d.probability>n),u=zr(s)?s.detection.box.bottomLeft:a||new He(0,0);new sl(l.map(d=>`${d.expression} (${nl(d.probability)})`),u).draw(e)})}function Fp(e){return zr(e)&&e.landmarks instanceof ka&&e.unshiftedLandmarks instanceof ka&&e.alignedRect instanceof Ft}function Hfe(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l.x-u.x)**2+(l.y-u.y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l.x-u.x),c=Math.floor(u.x-p.x);return d-c},s=(l,u)=>{let p=Math.hypot(u.x-l.x,u.y-l.y),d=u.y-l.y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u.x-l.x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c=new He((l.x+p.x)/2,(l.y+p.y)/2),h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c.y-u.y<0?-1:1;return f*g};if(!e||!e.positions||e.positions.length!==68)return a;let o=e.positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function Vd(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=Hfe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var ig=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)"}},og=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new ig(n)}draw(t){let n=ra(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof vp&&(n.strokeStyle=i,n.lineWidth=s,Pr(n,this.faceLandmarks.getJawOutline()),Pr(n,this.faceLandmarks.getLeftEyeBrow()),Pr(n,this.faceLandmarks.getRightEyeBrow()),Pr(n,this.faceLandmarks.getNose()),Pr(n,this.faceLandmarks.getLeftEye(),!0),Pr(n,this.faceLandmarks.getRightEye(),!0),Pr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function jfe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ka?a:Fp(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new og(r).draw(e)})}var oD="1.7.14";function Xfe(e,t){let n=Tp(e,t),a=Cp(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function lD(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=An(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Xfe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};gr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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:c,middle_flow:h,exit_flow:g}}}function Yfe(e,t){let n=sa(e,t),a=ng(n),r=Ep(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function uD(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Yfe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};gr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return _n(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function pD(e,t,n){return X($t(e,t.filters,n,"same"),t.bias)}function Tk(e,t,n=!0){let a=n?Ke(e):e;return a=Un(a,t.separable_conv0,[1,1]),a=Un(Ke(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=X(a,pD(e,t.expansion_conv,[2,2])),a}function Zfe(e,t){let n=Un(Ke(e),t.separable_conv0,[1,1]);return n=Un(Ke(n),t.separable_conv1,[1,1]),n=Un(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var lg=class extends fn{constructor(t){super("TinyXception"),this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=br(a,[122.782,117.001,104.298]).div(255),i=Ke(pD(s,n.entry_flow.conv_in,[2,2]));return i=Tk(i,n.entry_flow.reduction_block_0,!1),i=Tk(i,n.entry_flow.reduction_block_1),gr(this._numMainBlocks,0,1).forEach(o=>{i=Zfe(i,n.middle_flow[`main_block_${o}`])}),i=Tk(i,n.exit_flow.reduction_block),i=Ke(Un(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return uD(t,this._numMainBlocks)}extractParams(t){return lD(t,this._numMainBlocks)}};function cD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),r=eg(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 dD(e){let t=[],n=sa(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 _n(e,t),{params:r,paramMappings:t}}var Ck=(n=>(n.FEMALE="female",n.MALE="male",n))(Ck||{});var ug=class extends fn{constructor(t=new lg(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 O(()=>{let a=t instanceof Wr?this.faceFeatureExtractor.forwardInput(t):t,r=ya(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Bd(r,n.fc.age).as1D(),i=Bd(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return O(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:qa(a)}})}async forward(t){return this.forwardInput(await vt(t))}async predictAgeAndGender(t){let n=await vt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,u)=>({ageTensor:l,genderTensor:s[u]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:u})=>{let p=l.dataSync()[0],d=u.dataSync()[0],c=d>.5,h=c?"male":"female",m=c?d:1-d;return l.dispose(),u.dispose(),{age:p,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 cD(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=rg(t);return this.faceFeatureExtractor.loadFromWeightMap(n),dD(a)}extractParams(t){let a=t.slice(0,t.length-1539),r=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var $p=class extends Ap{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 O(()=>{let i=(d,c)=>At([yn([68],d,"float32"),yn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(At(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return O(()=>{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 vt(t))}async detectLandmarks(t){let n=await vt(t),a=O(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>Hf(d)),u=o.filter((p,d)=>!Hf(d));return new vp(Array(68).fill(0).map((p,d)=>new He(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Dp=class extends $p{constructor(t=new _p){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function hD(e){let t=[],{extractDenseBlock3Params:n}=ag(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return _n(e,t),{params:a,paramMappings:t}}function mD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock3Params:r}=tg(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 pg=class extends fn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=br(a,[122.782,117.001,104.298]).div(255),i=Qf(s,n.dense0,!0);return i=Qf(i,n.dense1),i=Qf(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return hD(t)}extractParams(t){return mD(t)}};var cg=class extends $p{constructor(t=new pg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var fD=class extends Dp{};function gD(e,t){return X(z(e,t.weights),t.biases)}function Ek(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=$t(e,s,n,r);return o=X(o,i),o=gD(o,t.scale),a?Ke(o):o}function bD(e,t){return Ek(e,t,[1,1],!0)}function _k(e,t){return Ek(e,t,[1,1],!1)}function dg(e,t){return Ek(e,t,[2,2],!0,"valid")}function Jfe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(gk(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return O(()=>De(Fa(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=je(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=je(e(o)),p=je(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function yD(e){let{extractWeights:t,getRemainingWeights:n}=An(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Jfe(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"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),I=O(()=>De(Ea(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:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:b,conv256_1:y,conv256_2:x,conv256_down_out:v,fc:I},paramMappings:a}}function Qfe(e,t){let n=sa(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 xD(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qfe(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"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!fk(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:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:b,conv256_down_out:y,fc:x};return _n(e,t),{params:v,paramMappings:t}}function Ya(e,t){let n=bD(e,t.conv1);return n=_k(n,t.conv2),n=X(n,e),n=Ke(n),n}function Ud(e,t){let n=dg(e,t.conv1);n=_k(n,t.conv2);let a=ya(e,2,2,"valid"),r=It(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=It(o);n=et([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=et([n,p],2)}return a=s?et([a,r],3):a,n=X(a,n),n=Ke(n),n}var Rp=class extends fn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return O(()=>{let a=re(t.toBatchTensor(150,!0),"float32"),s=br(a,[122.782,117.001,104.298]).div(255),i=dg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Ya(i,n.conv32_1),i=Ya(i,n.conv32_2),i=Ya(i,n.conv32_3),i=Ud(i,n.conv64_down),i=Ya(i,n.conv64_1),i=Ya(i,n.conv64_2),i=Ya(i,n.conv64_3),i=Ud(i,n.conv128_down),i=Ya(i,n.conv128_1),i=Ya(i,n.conv128_2),i=Ud(i,n.conv256_down),i=Ya(i,n.conv256_1),i=Ya(i,n.conv256_2),i=Ud(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=O(()=>dt(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 xD(t)}extractParams(t){return yD(t)}};function Y2e(e){let t=new Rp;return t.extractWeights(e),t}function Ak(e,t){return{...e,...{descriptor:t}}}function eCe(e){return typeof e.age=="number"}function Fk(e,t){return{...e,...{age:t}}}function rCe(e){return(e.gender==="male"||e.gender==="female")&&gp(e.genderProbability)}function $k(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function ege(e,t){function n(l,u){let p=Fa(e(9*l),[3,3,l,1]),d=je(e(l)),c=je(e(l)),h=je(e(l)),m=je(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:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Fa(e(l*u*p*p),[p,p,l,u]),m=je(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=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"),b=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:b,conv_10:y,conv_11:x,conv_12:v,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),N=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),_=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"),$=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:I},box_predictor_3:{box_encoding_predictor:N,class_predictor:C},box_predictor_4:{box_encoding_predictor:_,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function vD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=ege(n,t),i=r(),o=s(),u={extra_dim:xd(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 tge(e,t){let n=sa(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:b,batch_norm_variance:y},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,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}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 wD(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=tge(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Lr(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 _n(e,t),{params:s,paramMappings:t}}function Ra(e,t,n){return O(()=>{let a=$t(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),an(a,0,6)})}var nge=.0010000000474974513;function age(e,t,n){return O(()=>{let a=Ts(e,t.filters,n,"same");return a=Ns(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,nge),an(a,0,6)})}function rge(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function kD(e,t){return O(()=>{let n,a=Ra(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=rge(o);a=age(a,s.depthwise_conv,l),a=Ra(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 sge(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]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function ID(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=sge(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function ige(e){let t=dt(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function oge(e,t){let{sizes:n,centers:a}=ige(e),r=dt(De(t,[1,0])),s=he(z(dn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(dn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(At([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function SD(e,t,n){return O(()=>{let a=e.shape[0],r=oge(W(On(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ha(Ve(t,[0,0,1],[-1,-1,-1])),i=Ve(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function ol(e,t){return O(()=>{let n=e.shape[0],a=W(il(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(il(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function ND(e,t,n){return O(()=>{let a=Ra(e,n.conv_0,[1,1]),r=Ra(a,n.conv_1,[2,2]),s=Ra(r,n.conv_2,[1,1]),i=Ra(s,n.conv_3,[2,2]),o=Ra(i,n.conv_4,[1,1]),l=Ra(o,n.conv_5,[2,2]),u=Ra(l,n.conv_6,[1,1]),p=Ra(u,n.conv_7,[2,2]),d=ol(t,n.box_predictor_0),c=ol(e,n.box_predictor_1),h=ol(r,n.box_predictor_2),m=ol(i,n.box_predictor_3),f=ol(l,n.box_predictor_4),g=ol(p,n.box_predictor_5),b=et([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=et([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ma=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 ll=class extends fn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return O(()=>{let a=re(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=kD(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=ND(s.out,s.conv11,n.prediction_layer);return SD(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ma(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,I]=[Math.max(0,b[x][0]),Math.min(1,b[x][2])].map(_=>_*g),[N,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(_=>_*f);return new Ft(p[x],new xp(N,v,C-N,I-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return wD(t)}extractParams(t){return vD(t)}};function lge(e){let t=new ll;return t.extractWeights(e),t}function YCe(e){return lge(e)}var TD=class extends ll{};var CD=.4,ED=[new He(.738768,.874946),new He(2.42204,2.65704),new He(4.30971,7.04493),new He(10.246,4.59428),new He(12.6868,11.8741)],_D=[new He(1.603231,2.094468),new He(6.041143,7.080126),new He(2.882459,3.518061),new He(4.266906,5.178857),new He(9.041765,10.66308)],AD=[117.001,114.697,97.404],FD="tiny_yolov2_model",$D="tiny_yolov2_separable_conv_model";var hg=e=>typeof e=="number";function DD(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(!hg(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=>hg(t.x)&&hg(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(hg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Mp(e){return O(()=>{let t=z(e,xe(.10000000149011612));return X(Ke(pe(e,t)),t)})}function Br(e,t){return O(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$t(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Mp(n)})}function Vr(e,t){return O(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=_s(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Mp(n)})}function uge(e,t){let n=Tp(e,t);function a(i,o){let l=je(e(i)),u=je(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`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=Cp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function RD(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=An(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=uge(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,v=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),N=u(h,m,"conv2"),C=u(m,f,"conv3"),_=u(f,g,"conv4"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,x]=a,v=l(d,c,"conv0"),I=l(c,h,"conv1"),N=l(h,m,"conv2"),C=l(m,f,"conv3"),_=l(f,g,"conv4"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function pge(e,t){let n=sa(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=Ep(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function MD(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=pge(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 _n(e,n),{params:i,paramMappings:n}}var yr=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 mg=class mg extends fn{constructor(t){super("TinyYolov2"),DD(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=Br(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Br(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=Br(a,n.conv6),a=Br(a,n.conv7),il(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Mp(il(t,n.conv0,"valid",!1)):Vr(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Vr(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=n.conv6?Vr(a,n.conv6):a,a=n.conv7?Vr(a,n.conv7):a,il(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return O(()=>{let r=re(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?br(r,this.config.meanRgb):r,r=r.div(255),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await vt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new yr(n),s=await vt(t),i=await this.forwardInput(s,a),o=O(()=>dt(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 p=u.map(g=>g.box),d=u.map(g=>g.score),c=u.map(g=>g.classScore),h=u.map(g=>this.config.classes[g.label]);return U$(p.map(g=>g.rescale(a)),d,this.config.iouThreshold,!0).map(g=>new yp(d[g],c[g],h[g],p[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return MD(t,this.config)}extractParams(t){let n=this.config.filterSizes||mg.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 RD(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],p=this.config.anchors.length,[d,c,h]=O(()=>{let b=t.reshape([u,u,p,this.boxEncodingSize]),y=b.slice([0,0,0,0],[u,u,p,4]),x=b.slice([0,0,0,4],[u,u,p,1]),v=this.withClassScores?qa(b.slice([0,0,0,5],[u,u,p,this.config.classes.length]),3):xe(0);return[y,x,v]}),m=[],f=await c.array(),g=await d.array();for(let b=0;ba){let I=(y+qf(g[b][y][x][0]))/u*o,N=(b+qf(g[b][y][x][1]))/u*l,C=Math.exp(g[b][y][x][2])*this.config.anchors[x].x/u*o,_=Math.exp(g[b][y][x][3])*this.config.anchors[x].y/u*l,F=I-C/2,D=N-_/2,$={row:b,col:y,anchor:x},{classScore:S,label:M}=this.withClassScores?await this.extractPredictedClass(h,$):{classScore:1,label:0};m.push({box:new bp(F,D,F+C,D+_),score:v,classScore:v*S,label:M,...$})}}return d.dispose(),c.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)}};mg.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Op=mg;var Pp=class extends Op{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:CD,classes:["face"],...t?{anchors:_D,meanRgb:AD}:{anchors:ED,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?$D:FD}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function BEe(e,t=!0){let n=new Pp(t);return n.extractWeights(e),n}var fg=class extends yr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Oa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function ul(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Fp(l)?r(l):l.detection),i=a||(t instanceof Ce?await Ld(t,s):await Pd(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ce&&l.dispose()),o}async function Lp(e,t,n,a,r){return ul([e],t,async s=>n(s[0]),a,r)}var OD=.4,PD=[new He(1.603231,2.094468),new He(6.041143,7.080126),new He(2.882459,3.518061),new He(4.266906,5.178857),new He(9.041765,10.66308)],LD=[117.001,114.697,97.404];var zp=class extends Op{constructor(){let t={withSeparableConvs:!0,iouThreshold:OD,classes:["face"],anchors:PD,meanRgb:LD,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 rt={ssdMobilenetv1:new ll,tinyFaceDetector:new zp,tinyYolov2:new Pp,faceLandmark68Net:new Dp,faceLandmark68TinyNet:new cg,faceRecognitionNet:new Rp,faceExpressionNet:new sg,ageGenderNet:new ug},cge=(e,t)=>rt.ssdMobilenetv1.locateFaces(e,t),b_e=(e,t)=>rt.tinyFaceDetector.locateFaces(e,t),y_e=(e,t)=>rt.tinyYolov2.locateFaces(e,t),dge=e=>rt.faceLandmark68Net.detectLandmarks(e),x_e=e=>rt.faceLandmark68TinyNet.detectLandmarks(e),v_e=e=>rt.faceRecognitionNet.computeFaceDescriptor(e),w_e=e=>rt.faceExpressionNet.predictExpressions(e),k_e=e=>rt.ageGenderNet.predictAgeAndGender(e),hge=e=>rt.ssdMobilenetv1.load(e),I_e=e=>rt.tinyFaceDetector.load(e),S_e=e=>rt.tinyYolov2.load(e),N_e=e=>rt.faceLandmark68Net.load(e),T_e=e=>rt.faceLandmark68TinyNet.load(e),C_e=e=>rt.faceRecognitionNet.load(e),E_e=e=>rt.faceExpressionNet.load(e),__e=e=>rt.ageGenderNet.load(e),A_e=hge,F_e=cge,$_e=dge;var gg=class extends Oa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},pl=class extends gg{async run(){let t=await this.parentTask,n=await ul(t,this.input,async a=>Promise.all(a.map(r=>rt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>Nk(a,n[r]))}withAgeAndGender(){return new dl(this,this.input)}},cl=class extends gg{async run(){let t=await this.parentTask;if(!t)return;let n=await Lp(t,this.input,a=>rt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return Nk(t,n)}withAgeAndGender(){return new hl(this,this.input)}},Ps=class extends pl{withAgeAndGender(){return new zs(this,this.input)}withFaceDescriptors(){return new Bs(this,this.input)}},Ls=class extends cl{withAgeAndGender(){return new Ws(this,this.input)}withFaceDescriptor(){return new Vs(this,this.input)}};var bg=class extends Oa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},dl=class extends bg{async run(){let t=await this.parentTask,n=await ul(t,this.input,async a=>Promise.all(a.map(r=>rt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Fk($k(a,i,o),s)})}withFaceExpressions(){return new pl(this,this.input)}},hl=class extends bg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Lp(t,this.input,s=>rt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Fk($k(t,a,r),n)}withFaceExpressions(){return new cl(this,this.input)}},zs=class extends dl{withFaceExpressions(){return new Ps(this,this.input)}withFaceDescriptors(){return new Bs(this,this.input)}},Ws=class extends hl{withFaceExpressions(){return new Ls(this,this.input)}withFaceDescriptor(){return new Vs(this,this.input)}};var yg=class extends Oa{constructor(n,a){super();this.parentTask=n;this.input=a}},Bs=class extends yg{async run(){let t=await this.parentTask;return(await ul(t,this.input,a=>Promise.all(a.map(r=>rt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Ak(t[r],a))}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new zs(this,this.input)}},Vs=class extends yg{async run(){let t=await this.parentTask;if(!t)return;let n=await Lp(t,this.input,a=>rt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Ak(t,n)}withFaceExpressions(){return new Ls(this,this.input)}withAgeAndGender(){return new Ws(this,this.input)}};var xg=class extends Oa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?rt.faceLandmark68TinyNet:rt.faceLandmark68Net}},vg=class extends xg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Ce?await Ld(this.input,n):await Pd(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Ce&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>Vd(i,r[o]))}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new zs(this,this.input)}withFaceDescriptors(){return new Bs(this,this.input)}},wg=class extends xg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ce?await Ld(this.input,[n]):await Pd(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ce&&s.dispose()),Vd(t,r)}withFaceExpressions(){return new Ls(this,this.input)}withAgeAndGender(){return new Ws(this,this.input)}withFaceDescriptor(){return new Vs(this,this.input)}};var kg=class extends Oa{constructor(n,a=new Ma){super();this.input=n;this.options=a}},Gd=class extends kg{async run(){let{input:t,options:n}=this,a;if(n instanceof fg)a=rt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ma)a=rt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof yr)a=rt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>wp({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new vg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new pl(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new dl(this.runAndExtendWithFaceDetections(),this.input)}},Ig=class extends kg{async run(){let t=await new Gd(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?wp({},n):void 0)})}withFaceLandmarks(t=!1){return new wg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new cl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new hl(this.runAndExtendWithFaceDetection(),this.input)}};function _Ae(e,t=new Ma){return new Ig(e,t)}function Dk(e,t=new Ma){return new Gd(e,t)}async function mge(e,t){return Dk(e,new Ma(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function MAe(e,t={}){return Dk(e,new yr(t)).withFaceLandmarks().withFaceDescriptors()}var OAe=mge;function zD(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*s,0))}var WD=class e{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 rl)return i;if(i instanceof Float32Array)return new rl(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new rl(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=>zD(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Dd(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>rl.fromJSON(a));return new e(n,t.distanceThreshold)}};function eFe(e){let t=new zp;return t.extractWeights(e),t}function fge(e,t){let{width:n,height:a}=new aa(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=>fge(r,{width:n,height:a}));if(Fp(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Vd(wp(e,r),s)}return zr(e)?wp(e,e.detection.forSize(n,a)):e instanceof ka||e instanceof Ft?e.forSize(n,a):e}var cFe=oD;export{ug as AgeGenderNet,bp as BoundingBox,mn as Box,Oa as ComposableTask,Bs as ComputeAllFaceDescriptorsTask,yg as ComputeFaceDescriptorsTaskBase,Vs as ComputeSingleFaceDescriptorTask,vg as DetectAllFaceLandmarksTask,Gd as DetectAllFacesTask,xg as DetectFaceLandmarksTaskBase,kg as DetectFacesTaskBase,wg as DetectSingleFaceLandmarksTask,Ig as DetectSingleFaceTask,aa as Dimensions,rD as FACE_EXPRESSION_LABELS,Ft as FaceDetection,TD as FaceDetectionNet,sg as FaceExpressionNet,Os as FaceExpressions,Dp as FaceLandmark68Net,cg as FaceLandmark68TinyNet,fD as FaceLandmarkNet,ka as FaceLandmarks,H$ as FaceLandmarks5,vp as FaceLandmarks68,Dd as FaceMatch,WD as FaceMatcher,Rp as FaceRecognitionNet,Ck as Gender,Rd as LabeledBox,rl as LabeledFaceDescriptors,Wr as NetInput,fn as NeuralNetwork,yp as ObjectDetection,He as Point,j$ as PredictedBox,xp as Rect,ll as SsdMobilenetv1,Ma as SsdMobilenetv1Options,zp as TinyFaceDetector,fg as TinyFaceDetectorOptions,Pp as TinyYolov2,yr as TinyYolov2Options,OAe as allFaces,mge as allFacesSsdMobilenetv1,MAe as allFacesTinyYolov2,q$ as awaitMediaLoaded,K$ as bufferToImage,v_e as computeFaceDescriptor,Np as createCanvas,Zf as createCanvasFromMedia,YCe as createFaceDetectionNet,Y2e as createFaceRecognitionNet,lge as createSsdMobilenetv1,eFe as createTinyFaceDetector,BEe as createTinyYolov2,Dk as detectAllFaces,dge as detectFaceLandmarks,x_e as detectFaceLandmarksTiny,$_e as detectLandmarks,_Ae as detectSingleFace,iD as draw,at as env,zD as euclideanDistance,Fk as extendWithAge,Ak as extendWithFaceDescriptor,wp as extendWithFaceDetection,Nk as extendWithFaceExpressions,Vd as extendWithFaceLandmarks,$k as extendWithGender,Ld as extractFaceTensors,Pd as extractFaces,sIe as fetchImage,Z$ as fetchJson,pIe as fetchNetWeights,Ms as fetchOrThrow,gIe as fetchVideo,ra as getContext2dOrThrow,Sp as getMediaDimensions,X$ as imageTensorToCanvas,Y$ as imageToSquare,v0e as inverseSigmoid,B$ as iou,Sk as isMediaElement,Yf as isMediaLoaded,eCe as isWithAge,zr as isWithFaceDetection,sD as isWithFaceExpressions,Fp as isWithFaceLandmarks,rCe as isWithGender,__e as loadAgeGenderModel,A_e as loadFaceDetectionModel,E_e as loadFaceExpressionModel,N_e as loadFaceLandmarkModel,T_e as loadFaceLandmarkTinyModel,C_e as loadFaceRecognitionModel,hge as loadSsdMobilenetv1Model,I_e as loadTinyFaceDetectorModel,S_e as loadTinyYolov2Model,Q$ as loadWeightMap,F_e as locateFaces,IIe as matchDimensions,V$ as minBbox,rt as nets,U$ as nonMaxSuppression,br as normalize,G$ as padToSquare,k_e as predictAgeAndGender,w_e as recognizeFaceExpressions,fge as resizeResults,kp as resolveInput,y0e as shuffleArray,qf as sigmoid,cge as ssdMobilenetv1,Pe as tf,b_e as tinyFaceDetector,y_e as tinyYolov2,vt as toNetInput,W$ as utils,DD as validateConfig,cFe as version}; //# sourceMappingURL=face-api.esm.js.map diff --git a/dist/face-api.esm.js.map b/dist/face-api.esm.js.map index 3fedcf3..1b2a327 100644 --- a/dist/face-api.esm.js.map +++ b/dist/face-api.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["tfjs.esm.js", "../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/isNodejs.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/dom/bufferToVideo.ts", "../src/dom/fetchVideo.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", "../package.json", "../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": ["/*\n Face-API\n homepage: \n author: '\n*/\n\nvar Mq=Object.create;var p0=Object.defineProperty;var Pq=Object.getOwnPropertyDescriptor;var Lq=Object.getOwnPropertyNames;var zq=Object.getPrototypeOf,Bq=Object.prototype.hasOwnProperty;var br=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)p0(r,e,{get:t[e],enumerable:!0})},Vq=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of Lq(t))!Bq.call(r,o)&&o!==e&&p0(r,o,{get:()=>t[o],enumerable:!(n=Pq(t,o))||n.enumerable});return r};var Gl=(r,t,e)=>(e=r!=null?Mq(zq(r)):{},Vq(t||!r||!r.__esModule?p0(e,\"default\",{value:r,enumerable:!0}):e,r));var V_=br((mft,B_)=>{B_.exports=He;var yo=null;try{yo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function He(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}He.prototype.__isLong__;Object.defineProperty(He.prototype,\"__isLong__\",{value:!0});function zn(r){return(r&&r.__isLong__)===!0}He.isLong=zn;var D_={},$_={};function oc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=$_[r],n)?n:(e=qe(r,(r|0)<0?-1:0,!0),o&&($_[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=D_[r],n)?n:(e=qe(r,r<0?-1:0,!1),o&&(D_[r]=e),e))}He.fromInt=oc;function bo(r,t){if(isNaN(r))return t?nc:wo;if(t){if(r<0)return nc;if(r>=M_)return z_}else{if(r<=-F_)return Ln;if(r+1>=F_)return L_}return r<0?bo(-r,t).neg():qe(r%Hp|0,r/Hp|0,t)}He.fromNumber=bo;function qe(r,t,e){return new He(r,t,e)}He.fromBits=qe;var Zg=Math.pow;function S0(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return wo;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return S0(r.substring(1),t,e).neg();for(var o=bo(Zg(e,8)),s=wo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Hp+(this.low>>>0):this.high*Hp+(this.low>>>0)};xt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c=\"0\"+c;a=\"\"+c+a}};xt.getHighBits=function(){return this.high};xt.getHighBitsUnsigned=function(){return this.high>>>0};xt.getLowBits=function(){return this.low};xt.getLowBitsUnsigned=function(){return this.low>>>0};xt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ln)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&!(t&1<=0};xt.isOdd=function(){return(this.low&1)===1};xt.isEven=function(){return(this.low&1)===0};xt.equals=function(t){return zn(t)||(t=oi(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};xt.eq=xt.equals;xt.notEquals=function(t){return!this.eq(t)};xt.neq=xt.notEquals;xt.ne=xt.notEquals;xt.lessThan=function(t){return this.comp(t)<0};xt.lt=xt.lessThan;xt.lessThanOrEqual=function(t){return this.comp(t)<=0};xt.lte=xt.lessThanOrEqual;xt.le=xt.lessThanOrEqual;xt.greaterThan=function(t){return this.comp(t)>0};xt.gt=xt.greaterThan;xt.greaterThanOrEqual=function(t){return this.comp(t)>=0};xt.gte=xt.greaterThanOrEqual;xt.ge=xt.greaterThanOrEqual;xt.compare=function(t){if(zn(t)||(t=oi(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};xt.comp=xt.compare;xt.negate=function(){return!this.unsigned&&this.eq(Ln)?Ln:this.not().add(Up)};xt.neg=xt.negate;xt.add=function(t){zn(t)||(t=oi(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,qe(m<<16|f,c<<16|p,this.unsigned)};xt.subtract=function(t){return zn(t)||(t=oi(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return wo;if(zn(t)||(t=oi(t)),yo){var e=yo.mul(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(t.isZero())return wo;if(this.eq(Ln))return t.isOdd()?Ln:wo;if(t.eq(Ln))return this.isOdd()?Ln:wo;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(O_)&&t.lt(O_))return bo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,qe(f<<16|d,p<<16|m,this.unsigned)};xt.mul=xt.multiply;xt.divide=function(t){if(zn(t)||(t=oi(t)),t.isZero())throw Error(\"division by zero\");if(yo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?yo.div_u:yo.div_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?nc:wo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return nc;if(t.gt(this.shru(1)))return P_;s=nc}else{if(this.eq(Ln)){if(t.eq(Up)||t.eq(v0))return Ln;if(t.eq(Ln))return Up;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(wo)?t.isNegative()?Up:v0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Ln))return this.unsigned?nc:wo;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=wo}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Zg(2,a-48),l=bo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=bo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Up),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(zn(t)||(t=oi(t)),yo){var e=(this.unsigned?yo.rem_u:yo.rem_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};xt.mod=xt.modulo;xt.rem=xt.modulo;xt.not=function(){return qe(~this.low,~this.high,this.unsigned)};xt.and=function(t){return zn(t)||(t=oi(t)),qe(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return zn(t)||(t=oi(t)),qe(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return zn(t)||(t=oi(t)),qe(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return zn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?qe(this.low<>>32-t,this.unsigned):qe(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):qe(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};xt.shr=xt.shiftRight;xt.shiftRightUnsigned=function(t){if(zn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return qe(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?qe(e,0,this.unsigned):qe(e>>>t-32,0,this.unsigned)};xt.shru=xt.shiftRightUnsigned;xt.shr_u=xt.shiftRightUnsigned;xt.toSigned=function(){return this.unsigned?qe(this.low,this.high,!1):this};xt.toUnsigned=function(){return this.unsigned?this:qe(this.low,this.high,!0)};xt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};xt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};xt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};He.fromBytes=function(t,e,n){return n?He.fromBytesLE(t,e):He.fromBytesBE(t,e)};He.fromBytesLE=function(t,e){return new He(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};He.fromBytesBE=function(t,e){return new He(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var NE=br(()=>{});var kE=br(()=>{});var eA=br((tA,nN)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(\" \"),u.s1=l(\" \"),u.s2=l(\" \"),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c==\"object\"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(tA,typeof nN==\"object\"&&nN,typeof define==\"function\"&&define)});var nA=br((rA,oN)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(rA,typeof oN==\"object\"&&oN,typeof define==\"function\"&&define)});var sA=br((oA,sN)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(oA,typeof sN==\"object\"&&sN,typeof define==\"function\"&&define)});var aA=br((iA,iN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=\"\"+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(iA,typeof iN==\"object\"&&iN,typeof define==\"function\"&&define)});var uA=br((lA,aN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+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,a.i=p,f+(l^l>>>16)|0};function u(l,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;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(lA,typeof aN==\"object\"&&aN,typeof define==\"function\"&&define)});var pA=br((cA,lN)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(cA,typeof lN==\"object\"&&lN,typeof define==\"function\"&&define)});var mA=br(()=>{});var dA=br((fA,ty)=>{(function(r,t,e){var n=256,o=6,s=52,i=\"random\",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var M=D.g(o),V=a,G=0;M=l;)M/=2,V/=2,G>>>=1;return(M+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(M,V,G,W){return W&&(W.S&&d(W,D),M.state=function(){return d(D,{})}),G?(e[i]=M,V):M})(F,A,\"global\"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var PX=eA(),LX=nA(),zX=sA(),BX=aA(),VX=uA(),GX=pA(),hc=dA();hc.alea=PX;hc.xor128=LX;hc.xorwow=zX;hc.xorshift7=BX;hc.xor4096=VX;hc.tychei=GX;hA.exports=hc});var Ak=br(()=>{});var fw=br(()=>{});var Q1=br(()=>{});var UH=br(()=>{});var HH=br(()=>{});var qH=br(()=>{});var KH=br((DC,e_)=>{var t_=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};function e(){return it.buffer!=re&&Xe(it.buffer),ye}function n(){return it.buffer!=re&&Xe(it.buffer),de}function o(){return it.buffer!=re&&Xe(it.buffer),Ee}function s(){return it.buffer!=re&&Xe(it.buffer),On}function i(){return it.buffer!=re&&Xe(it.buffer),lr}function a(){return it.buffer!=re&&Xe(it.buffer),Zn}function u(){return it.buffer!=re&&Xe(it.buffer),zr}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(P,U){c=P,p=U});var m;typeof process!=\"undefined\"&&process.listeners&&(m={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var f=Object.assign({},l),d=[],h=\"./this.program\",g=(P,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",I=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function E(P){return l.locateFile?l.locateFile(P,N):N+P}var A,D,F,M;function V(P){if(P instanceof Yu)return;Y(\"exiting due to exception: \"+P)}if(w){var G=fw(),W=Q1();b?N=W.dirname(N)+\"/\":N=__dirname+\"/\",A=(U,dt)=>(U=wp(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:\"utf8\")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Pt)=>{U=wp(U)?new URL(U):W.normalize(U),G.readFile(U,function(Jt,Zt){Jt?Pt(Jt):dt(Zt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof Yu))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,dt)=>{if(zo())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let P;try{P=UH()}catch(U){throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=P.Worker}else(x||b)&&(b?N=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(N=document.currentScript.src),typeof r!=\"undefined\"&&r&&(N=r),N.indexOf(\"blob:\")!==0?N=N.substr(0,N.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):N=\"\",w||(A=P=>{var U=new XMLHttpRequest;return U.open(\"GET\",P,!1),U.send(null),U.responseText},b&&(F=P=>{var U=new XMLHttpRequest;return U.open(\"GET\",P,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),D=(P,U,dt)=>{var Pt=new XMLHttpRequest;Pt.open(\"GET\",P,!0),Pt.responseType=\"arraybuffer\",Pt.onload=()=>{if(Pt.status==200||Pt.status==0&&Pt.response){U(Pt.response);return}dt()},Pt.onerror=dt,Pt.send(null)}),M=P=>document.title=P);w&&typeof performance==\"undefined\"&&(global.performance=HH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=P=>G.writeSync(1,P+`\n`),H=P=>G.writeSync(2,P+`\n`));var K=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,nt=Atomics.store,st=Atomics.compareExchange,lt;l.wasmBinary&&(lt=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Xu(\"no native wasm support detected\");var it,ft,gt=!1,Ct;function Rt(P,U){P||Xu(U)}var Dt=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Ht(P,U,dt){U>>>=0;for(var Pt=U+dt,Jt=U;P[Jt]&&!(Jt>=Pt);)++Jt;if(Jt-U>16&&P.buffer&&Dt)return Dt.decode(P.buffer instanceof SharedArrayBuffer?P.slice(U,Jt):P.subarray(U,Jt));for(var Zt=\"\";U>10,56320|eo&1023)}}return Zt}function qt(P,U){return P>>>=0,P?Ht(n(),P,U):\"\"}function pe(P,U,dt,Pt){if(dt>>>=0,!(Pt>0))return 0;for(var Jt=dt,Zt=dt+Pt-1,bt=0;bt=55296&&$t<=57343){var or=P.charCodeAt(++bt);$t=65536+(($t&1023)<<10)|or&1023}if($t<=127){if(dt>=Zt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Zt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Zt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Zt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Jt}function xe(P,U,dt){return pe(P,n(),U,dt)}var re,ye,de,Ee,Ae,On,lr,Zn,zr;I&&(re=l.buffer);function Xe(P){re=P,l.HEAP8=ye=new Int8Array(P),l.HEAP16=Ee=new Int16Array(P),l.HEAP32=On=new Int32Array(P),l.HEAPU8=de=new Uint8Array(P),l.HEAPU16=Ae=new Uint16Array(P),l.HEAPU32=lr=new Uint32Array(P),l.HEAPF32=Zn=new Float32Array(P),l.HEAPF64=zr=new Float64Array(P)}var Br=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,re=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Br/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw Y(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\"),w&&Y(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)\"),Error(\"bad memory\");it&&(re=it.buffer),Br=re.byteLength,Xe(re);var Vr,Jn=[],Qn=[],Zr=[],Ca=!1;function zo(){return ot}function ki(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Bd(l.preRun.shift());Wd(Jn)}function Er(){Ca=!0,!I&&Wd(Qn)}function va(){if(!I){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)l_(l.postRun.shift());Wd(Zr)}}function Bd(P){Jn.unshift(P)}function Vd(P){Qn.unshift(P)}function l_(P){Zr.unshift(P)}var zl=0,bp=null,Sa=null;function FC(P){zl++,l.monitorRunDependencies&&l.monitorRunDependencies(zl)}function wg(P){if(zl--,l.monitorRunDependencies&&l.monitorRunDependencies(zl),zl==0&&(bp!==null&&(clearInterval(bp),bp=null),Sa)){var U=Sa;Sa=null,U()}}function Xu(P){l.onAbort&&l.onAbort(P),P=\"Aborted(\"+P+\")\",Y(P),gt=!0,Ct=1,P+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(P);throw p(U),U}var OC=\"data:application/octet-stream;base64,\";function Ig(P){return P.startsWith(OC)}function wp(P){return P.startsWith(\"file://\")}var Jr;Jr=\"tfjs-backend-wasm-threaded-simd.wasm\",Ig(Jr)||(Jr=E(Jr));function Cg(P){try{if(P==Jr&<)return new Uint8Array(lt);if(F)return F(P);throw\"both async and sync fetching of the wasm failed\"}catch(U){Xu(U)}}function MC(){if(!lt&&(x||b)){if(typeof fetch==\"function\"&&!wp(Jr))return fetch(Jr,{credentials:\"same-origin\"}).then(function(P){if(!P.ok)throw\"failed to load wasm binary file at '\"+Jr+\"'\";return P.arrayBuffer()}).catch(function(){return Cg(Jr)});if(D)return new Promise(function(P,U){D(Jr,function(dt){P(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return Cg(Jr)})}function PC(){var P={env:Og,wasi_snapshot_preview1:Og};function U(bt,$t){var or=bt.exports;if(l.asm=or,qC(l.asm._emscripten_tls_init),Vr=l.asm.__indirect_function_table,Vd(l.asm.__wasm_call_ctors),ft=$t,!I){var eo=Yt.unusedWorkers.length;Yt.unusedWorkers.forEach(function(ka){Yt.loadWasmModuleToWorker(ka,function(){--eo||wg(\"wasm-instantiate\")})})}}I||FC(\"wasm-instantiate\");function dt(bt){U(bt.instance,bt.module)}function Pt(bt){return MC().then(function($t){return WebAssembly.instantiate($t,P)}).then(function($t){return $t}).then(bt,function($t){Y(\"failed to asynchronously prepare wasm: \"+$t),Xu($t)})}function Jt(){return!lt&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Ig(Jr)&&!wp(Jr)&&!w&&typeof fetch==\"function\"?fetch(Jr,{credentials:\"same-origin\"}).then(function(bt){var $t=WebAssembly.instantiateStreaming(bt,P);return $t.then(dt,function(or){return Y(\"wasm streaming compile failed: \"+or),Y(\"falling back to ArrayBuffer instantiation\"),Pt(dt)})}):Pt(dt)}if(l.instantiateWasm)try{var Zt=l.instantiateWasm(P,U);return Zt}catch(bt){Y(\"Module.instantiateWasm callback failed with error: \"+bt),p(bt)}return Jt().catch(p),{}}var u_,c_,vg={};function Yu(P){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+P+\")\",this.status=P}function LC(P){var U=Yt.pthreads[P];delete Yt.pthreads[P],U.terminate(),l0(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function zC(P){var U=Yt.pthreads[P];U.postMessage({cmd:\"cancel\"})}function Gd(P){var U=Yt.pthreads[P];Rt(U),Yt.returnWorkerToPool(U)}function BC(P){var U=Yt.getNewWorker();if(!U)return 6;Yt.runningWorkers.push(U),Yt.pthreads[P.pthread_ptr]=U,U.pthread_ptr=P.pthread_ptr;var dt={cmd:\"run\",start_routine:P.startRoutine,arg:P.arg,pthread_ptr:P.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,P.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var Sg={varargs:void 0,get:function(){Sg.varargs+=4;var P=s()[Sg.varargs-4>>>2];return P},getStr:function(P){var U=qt(P);return U}};function Ng(P){if(I)return Bl(1,1,P);Ct=P,zo()||(Yt.terminateAllThreads(),l.onExit&&l.onExit(P),gt=!0),g(P,new Yu(P))}function VC(P,U){if(Ct=P,!U&&I)throw Tg(P),\"unwind\";Ng(P)}var kg=VC;function GC(P){if(P instanceof Yu||P==\"unwind\")return Ct;g(1,P)}var Yt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Yt.initWorker():Yt.initMainThread()},initMainThread:function(){for(var P=8;P--;)Yt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(P){Ct=P},terminateAllThreads:function(){for(var P of Object.values(Yt.pthreads))Yt.returnWorkerToPool(P);for(var P of Yt.unusedWorkers)P.terminate();Yt.unusedWorkers=[]},returnWorkerToPool:function(P){var U=P.pthread_ptr;delete Yt.pthreads[U],Yt.unusedWorkers.push(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(P),1),P.pthread_ptr=0,w&&P.unref(),l0(U)},receiveObjectTransfer:function(P){},threadInitTLS:function(){Yt.tlsInitFunctions.forEach(P=>P())},loadWasmModuleToWorker:function(P,U){P.onmessage=Zt=>{var bt=Zt.data,$t=bt.cmd;if(P.pthread_ptr&&(Yt.currentProxiedOperationCallerThread=P.pthread_ptr),bt.targetThread&&bt.targetThread!=Vg()){var or=Yt.pthreads[bt.targetThread];or?or.postMessage(bt,bt.transferList):Y('Internal error! Worker sent a message \"'+$t+'\" to target pthread '+bt.targetThread+\", but that thread no longer exists!\"),Yt.currentProxiedOperationCallerThread=void 0;return}$t===\"processProxyingQueue\"?Ud(bt.queue):$t===\"spawnThread\"?BC(bt):$t===\"cleanupThread\"?Gd(bt.thread):$t===\"killThread\"?LC(bt.thread):$t===\"cancelThread\"?zC(bt.thread):$t===\"loaded\"?(P.loaded=!0,w&&P.unref(),U&&U(P),P.runPthread&&P.runPthread()):$t===\"print\"?K(\"Thread \"+bt.threadId+\": \"+bt.text):$t===\"printErr\"?Y(\"Thread \"+bt.threadId+\": \"+bt.text):$t===\"alert\"?alert(\"Thread \"+bt.threadId+\": \"+bt.text):bt.target===\"setimmediate\"?P.postMessage(bt):$t===\"callHandler\"?l[bt.handler](...bt.args):$t&&Y(\"worker sent an unknown command \"+$t),Yt.currentProxiedOperationCallerThread=void 0},P.onerror=Zt=>{var bt=\"worker sent an error!\";throw Y(bt+\" \"+Zt.filename+\":\"+Zt.lineno+\": \"+Zt.message),Zt},w&&(P.on(\"message\",function(Zt){P.onmessage({data:Zt})}),P.on(\"error\",function(Zt){P.onerror(Zt)}),P.on(\"detachedExit\",function(){}));var dt=[],Pt=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var Jt of Pt)l.hasOwnProperty(Jt)&&dt.push(Jt);P.postMessage({cmd:\"load\",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:ft})},allocateUnusedWorker:function(){var P,U=E(\"tfjs-backend-wasm-threaded-simd.worker.js\");P=new Worker(U),Yt.unusedWorkers.push(P)},getNewWorker:function(){return Yt.unusedWorkers.length==0&&(Yt.allocateUnusedWorker(),Yt.loadWasmModuleToWorker(Yt.unusedWorkers[0])),Yt.unusedWorkers.pop()}};l.PThread=Yt;function Wd(P){for(;P.length>0;)P.shift()(l)}function WC(){var P=Vg(),U=s()[P+52>>>2],dt=s()[P+56>>>2],Pt=U-dt;g_(U,Pt),Gg(U)}l.establishStackSpace=WC;function Tg(P){if(I)return Bl(2,0,P);try{kg(P)}catch(U){GC(U)}}var Ip=[];function UC(P){var U=Ip[P];return U||(P>=Ip.length&&(Ip.length=P+1),Ip[P]=U=Vr.get(P)),U}function HC(P,U){var dt=UC(P)(U);zo()?Yt.setExitStatus(dt):h_(dt)}l.invokeEntryPoint=HC;function qC(P){Yt.tlsInitFunctions.push(P)}function KC(P){m_(P,!b,1,!x),Yt.threadInitTLS()}function jC(P){I?postMessage({cmd:\"cleanupThread\",thread:P}):Gd(P)}function _g(P,U,dt,Pt){return I?Bl(3,1,P,U,dt,Pt):Eg(P,U,dt,Pt)}function Eg(P,U,dt,Pt){if(typeof SharedArrayBuffer==\"undefined\")return Y(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Jt=[],Zt=0;if(I&&(Jt.length===0||Zt))return _g(P,U,dt,Pt);if(Zt)return Zt;var bt={startRoutine:dt,pthread_ptr:P,arg:Pt,transferList:Jt};return I?(bt.cmd=\"spawnThread\",postMessage(bt,Jt),0):BC(bt)}function XC(){return 65536}var YC=!0;function ZC(){return YC}function Ud(P){Atomics.store(s(),P>>2,1),Vg()&&d_(P),Atomics.compareExchange(s(),P>>2,1,0)}l.executeNotifiedProxyingQueue=Ud;function JC(P,U,dt,Pt){if(P==U)setTimeout(()=>Ud(Pt));else if(I)postMessage({targetThread:P,cmd:\"processProxyingQueue\",queue:Pt});else{var Jt=Yt.pthreads[P];if(!Jt)return;Jt.postMessage({cmd:\"processProxyingQueue\",queue:Pt})}return 1}function QC(P,U,dt){return-1}function tv(){Xu(\"\")}function Zu(P){Zu.shown||(Zu.shown={}),Zu.shown[P]||(Zu.shown[P]=1,w&&(P=\"warning: \"+P),Y(P))}function ev(){w||b||Zu(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function rv(){return Date.now()}function Ag(){return 4294901760}function nv(){return Ag()}var Hd;w?Hd=()=>{var P=process.hrtime();return P[0]*1e3+P[1]/1e6}:Hd=()=>performance.timeOrigin+performance.now();function ov(P,U,dt){n().copyWithin(P>>>0,U>>>0,U+dt>>>0)}function sv(){return w?qH().cpus().length:navigator.hardwareConcurrency}function iv(P){var U=u0(),dt=P();return Gg(U),dt}function Bl(P,U){var dt=arguments.length-2,Pt=arguments;return iv(()=>{for(var Jt=dt,Zt=Wg(Jt*8),bt=Zt>>3,$t=0;$t>>0]=or}return f_(P,Jt,Zt,U)})}var qd=[];function av(P,U,dt){qd.length=U;for(var Pt=dt>>3,Jt=0;Jt>>0];var Zt=P<0,bt=Zt?vg[-P-1]:gv[P];return bt.apply(null,qd)}function lv(P){try{return it.grow(P-re.byteLength+65535>>>16),Xe(it.buffer),1}catch(U){}}function uv(P){var U=n().length;if(P=P>>>0,P<=U)return!1;var dt=Ag();if(P>dt)return!1;let Pt=(or,eo)=>or+(eo-or%eo)%eo;for(var Jt=1;Jt<=4;Jt*=2){var Zt=U*(1+.2/Jt);Zt=Math.min(Zt,P+100663296);var bt=Math.min(dt,Pt(Math.max(P,Zt),65536)),$t=lv(bt);if($t)return!0}return!1}function cv(){throw\"unwind\"}function Dg(P){return I?Bl(4,1,P):52}function $g(P,U,dt,Pt,Jt){return I?Bl(5,1,P,U,dt,Pt,Jt):70}var pv=[null,[],[]];function mv(P,U){var dt=pv[P];U===0||U===10?((P===1?K:Y)(Ht(dt,0)),dt.length=0):dt.push(U)}function Rg(P,U,dt,Pt){if(I)return Bl(6,1,P,U,dt,Pt);for(var Jt=0,Zt=0;Zt>>2],$t=i()[U+4>>>2];U+=8;for(var or=0;or<$t;or++)mv(P,n()[bt+or>>>0]);Jt+=$t}return i()[Pt>>>2]=Jt,0}function Fg(P){var U=l[\"_\"+P];return U}function fv(P,U){e().set(P,U>>>0)}function dv(P,U,dt,Pt,Jt){var Zt={string:Mn=>{var Np=0;if(Mn!=null&&Mn!==0){var b_=(Mn.length<<2)+1;Np=Wg(b_),xe(Mn,Np,b_)}return Np},array:Mn=>{var Np=Wg(Mn.length);return fv(Mn,Np),Np}};function bt(Mn){return U===\"string\"?qt(Mn):U===\"boolean\"?!!Mn:Mn}var $t=Fg(P),or=[],eo=0;if(Pt)for(var ka=0;kabt===\"number\"||bt===\"boolean\"),Zt=U!==\"string\";return Zt&&Jt&&!Pt?Fg(P):function(){return dv(P,U,dt,arguments,Pt)}}Yt.init();var gv=[null,Ng,Tg,_g,Dg,$g,Rg],Og={__emscripten_init_main_thread_js:KC,__emscripten_thread_cleanup:jC,__pthread_create_js:Eg,_emscripten_default_pthread_stack_size:XC,_emscripten_get_now_is_monotonic:ZC,_emscripten_notify_task_queue:JC,_emscripten_set_offscreencanvas_size:QC,abort:tv,emscripten_check_blocking_allowed:ev,emscripten_date_now:rv,emscripten_get_heap_max:nv,emscripten_get_now:Hd,emscripten_memcpy_big:ov,emscripten_num_logical_cores:sv,emscripten_receive_on_main_thread_js:av,emscripten_resize_heap:uv,emscripten_unwind_to_js_event_loop:cv,exit:kg,fd_close:Dg,fd_seek:$g,fd_write:Rg,memory:it||l.wasmMemory},p_=PC(),xv=l.___wasm_call_ctors=function(){return(xv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},yv=l._init=function(){return(yv=l._init=l.asm.init).apply(null,arguments)},bv=l._init_with_threads_count=function(){return(bv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},wv=l._get_threads_count=function(){return(wv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},Iv=l._register_tensor=function(){return(Iv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},Cv=l._dispose_data=function(){return(Cv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},vv=l._dispose=function(){return(vv=l._dispose=l.asm.dispose).apply(null,arguments)},Sv=l._Abs=function(){return(Sv=l._Abs=l.asm.Abs).apply(null,arguments)},Nv=l._Acos=function(){return(Nv=l._Acos=l.asm.Acos).apply(null,arguments)},kv=l._Acosh=function(){return(kv=l._Acosh=l.asm.Acosh).apply(null,arguments)},Tv=l._Add=function(){return(Tv=l._Add=l.asm.Add).apply(null,arguments)},_v=l._AddN=function(){return(_v=l._AddN=l.asm.AddN).apply(null,arguments)},Ev=l._All=function(){return(Ev=l._All=l.asm.All).apply(null,arguments)},Av=l._Any=function(){return(Av=l._Any=l.asm.Any).apply(null,arguments)},Dv=l._ArgMax=function(){return(Dv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},$v=l._ArgMin=function(){return($v=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Rv=l._Asin=function(){return(Rv=l._Asin=l.asm.Asin).apply(null,arguments)},Fv=l._Asinh=function(){return(Fv=l._Asinh=l.asm.Asinh).apply(null,arguments)},Ov=l._Atan=function(){return(Ov=l._Atan=l.asm.Atan).apply(null,arguments)},Mv=l._Atan2=function(){return(Mv=l._Atan2=l.asm.Atan2).apply(null,arguments)},Pv=l._Atanh=function(){return(Pv=l._Atanh=l.asm.Atanh).apply(null,arguments)},Lv=l._AvgPool=function(){return(Lv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},zv=l._AvgPool3D=function(){return(zv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Bv=l._AvgPool3DGrad=function(){return(Bv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},Vv=l._AvgPoolGrad=function(){return(Vv=l._AvgPoolGrad=l.asm.AvgPoolGrad).apply(null,arguments)},Gv=l._BatchMatMul=function(){return(Gv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Wv=l._Bincount=function(){return(Wv=l._Bincount=l.asm.Bincount).apply(null,arguments)},Uv=l._BitwiseAnd=function(){return(Uv=l._BitwiseAnd=l.asm.BitwiseAnd).apply(null,arguments)},Hv=l._Ceil=function(){return(Hv=l._Ceil=l.asm.Ceil).apply(null,arguments)},qv=l._ClipByValue=function(){return(qv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Kv=l._Conv2D=function(){return(Kv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},jv=l._Conv2DBackpropInput=function(){return(jv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Xv=l._Conv3D=function(){return(Xv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},Yv=l._Conv3DBackpropFilterV2=function(){return(Yv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Zv=l._Conv3DBackpropInputV2=function(){return(Zv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},Jv=l._Cos=function(){return(Jv=l._Cos=l.asm.Cos).apply(null,arguments)},Qv=l._Cosh=function(){return(Qv=l._Cosh=l.asm.Cosh).apply(null,arguments)},tS=l._CropAndResize=function(){return(tS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},eS=l._Cumprod=function(){return(eS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},rS=l._Cumsum=function(){return(rS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},nS=l._DenseBincount=function(){return(nS=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},oS=l._DepthToSpace=function(){return(oS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},sS=l._DepthwiseConv2dNative=function(){return(sS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},iS=l._Diag=function(){return(iS=l._Diag=l.asm.Diag).apply(null,arguments)},aS=l._Dilation2D=function(){return(aS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},lS=l._Dilation2DBackpropFilter=function(){return(lS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},uS=l._Dilation2DBackpropInput=function(){return(uS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},cS=l._Elu=function(){return(cS=l._Elu=l.asm.Elu).apply(null,arguments)},pS=l._EluGrad=function(){return(pS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},mS=l._Equal=function(){return(mS=l._Equal=l.asm.Equal).apply(null,arguments)},fS=l._Erf=function(){return(fS=l._Erf=l.asm.Erf).apply(null,arguments)},dS=l._Exp=function(){return(dS=l._Exp=l.asm.Exp).apply(null,arguments)},hS=l._Expm1=function(){return(hS=l._Expm1=l.asm.Expm1).apply(null,arguments)},gS=l._FlipLeftRight=function(){return(gS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},xS=l._Floor=function(){return(xS=l._Floor=l.asm.Floor).apply(null,arguments)},yS=l._FloorDiv=function(){return(yS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},bS=l._FusedBatchNorm=function(){return(bS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},wS=l._FusedConv2D=function(){return(wS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},IS=l._FusedDepthwiseConv2D=function(){return(IS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},CS=l._Gather=function(){return(CS=l._Gather=l.asm.Gather).apply(null,arguments)},vS=l._GatherNd=function(){return(vS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},SS=l._Greater=function(){return(SS=l._Greater=l.asm.Greater).apply(null,arguments)},NS=l._GreaterEqual=function(){return(NS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},kS=l._IsFinite=function(){return(kS=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},TS=l._IsInf=function(){return(TS=l._IsInf=l.asm.IsInf).apply(null,arguments)},_S=l._IsNan=function(){return(_S=l._IsNan=l.asm.IsNan).apply(null,arguments)},ES=l._LRN=function(){return(ES=l._LRN=l.asm.LRN).apply(null,arguments)},AS=l._LRNGrad=function(){return(AS=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},DS=l._LeakyRelu=function(){return(DS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},$S=l._Less=function(){return($S=l._Less=l.asm.Less).apply(null,arguments)},RS=l._LessEqual=function(){return(RS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},FS=l._LinSpace=function(){return(FS=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},OS=l._Log=function(){return(OS=l._Log=l.asm.Log).apply(null,arguments)},MS=l._Log1p=function(){return(MS=l._Log1p=l.asm.Log1p).apply(null,arguments)},PS=l._LogicalAnd=function(){return(PS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},LS=l._LogicalNot=function(){return(LS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},zS=l._LogicalOr=function(){return(zS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},BS=l._LogicalXor=function(){return(BS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},VS=l._Max=function(){return(VS=l._Max=l.asm.Max).apply(null,arguments)},GS=l._MaxPool=function(){return(GS=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},WS=l._MaxPool3D=function(){return(WS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},US=l._MaxPool3DGrad=function(){return(US=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},HS=l._MaxPoolGrad=function(){return(HS=l._MaxPoolGrad=l.asm.MaxPoolGrad).apply(null,arguments)},qS=l._MaxPoolWithArgmax=function(){return(qS=l._MaxPoolWithArgmax=l.asm.MaxPoolWithArgmax).apply(null,arguments)},KS=l._Maximum=function(){return(KS=l._Maximum=l.asm.Maximum).apply(null,arguments)},jS=l._Mean=function(){return(jS=l._Mean=l.asm.Mean).apply(null,arguments)},XS=l._Min=function(){return(XS=l._Min=l.asm.Min).apply(null,arguments)},YS=l._Minimum=function(){return(YS=l._Minimum=l.asm.Minimum).apply(null,arguments)},ZS=l._MirrorPad=function(){return(ZS=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},JS=l._Mod=function(){return(JS=l._Mod=l.asm.Mod).apply(null,arguments)},QS=l._Multinomial=function(){return(QS=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},t0=l._Multiply=function(){return(t0=l._Multiply=l.asm.Multiply).apply(null,arguments)},e0=l._Neg=function(){return(e0=l._Neg=l.asm.Neg).apply(null,arguments)},r0=l._NonMaxSuppressionV3=function(){return(r0=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},n0=l._NonMaxSuppressionV4=function(){return(n0=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Mg=l._NonMaxSuppressionV5=function(){return(Mg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},Pg=l._NotEqual=function(){return(Pg=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},Kd=l._OneHot=function(){return(Kd=l._OneHot=l.asm.OneHot).apply(null,arguments)},o0=l._PadV2=function(){return(o0=l._PadV2=l.asm.PadV2).apply(null,arguments)},s0=l._Pow=function(){return(s0=l._Pow=l.asm.Pow).apply(null,arguments)},Cp=l._Prelu=function(){return(Cp=l._Prelu=l.asm.Prelu).apply(null,arguments)},Lg=l._Prod=function(){return(Lg=l._Prod=l.asm.Prod).apply(null,arguments)},vp=l._RealDiv=function(){return(vp=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},Sp=l._Reciprocal=function(){return(Sp=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},i0=l._Relu=function(){return(i0=l._Relu=l.asm.Relu).apply(null,arguments)},j=l._Relu6=function(){return(j=l._Relu6=l.asm.Relu6).apply(null,arguments)},ut=l._ResizeBilinear=function(){return(ut=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Ft=l._ResizeBilinearGrad=function(){return(Ft=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},me=l._ResizeNearestNeighbor=function(){return(me=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ye=l._ResizeNearestNeighborGrad=function(){return(Ye=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},Ze=l._Reverse=function(){return(Ze=l._Reverse=l.asm.Reverse).apply(null,arguments)},se=l._RotateWithOffset=function(){return(se=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},ne=l._Round=function(){return(ne=l._Round=l.asm.Round).apply(null,arguments)},yr=l._Rsqrt=function(){return(yr=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},to=l._ScatterNd=function(){return(to=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Na=l._SearchSorted=function(){return(Na=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},zg=l._SelectV2=function(){return(zg=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},jd=l._Selu=function(){return(jd=l._Selu=l.asm.Selu).apply(null,arguments)},a0=l._Sigmoid=function(){return(a0=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},nn=l._Sign=function(){return(nn=l._Sign=l.asm.Sign).apply(null,arguments)},Vl=l._Sin=function(){return(Vl=l._Sin=l.asm.Sin).apply(null,arguments)},Bg=l._Sinh=function(){return(Bg=l._Sinh=l.asm.Sinh).apply(null,arguments)},nq=l._Softmax=function(){return(nq=l._Softmax=l.asm.Softmax).apply(null,arguments)},oq=l._Softplus=function(){return(oq=l._Softplus=l.asm.Softplus).apply(null,arguments)},sq=l._SparseFillEmptyRows=function(){return(sq=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},iq=l._SparseReshape=function(){return(iq=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},aq=l._SparseSegmentReduction=function(){return(aq=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},lq=l._SparseToDense=function(){return(lq=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},uq=l._Sqrt=function(){return(uq=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},cq=l._Square=function(){return(cq=l._Square=l.asm.Square).apply(null,arguments)},pq=l._SquaredDifference=function(){return(pq=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},mq=l._Step=function(){return(mq=l._Step=l.asm.Step).apply(null,arguments)},fq=l._StridedSlice=function(){return(fq=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},dq=l._Sub=function(){return(dq=l._Sub=l.asm.Sub).apply(null,arguments)},hq=l._Sum=function(){return(hq=l._Sum=l.asm.Sum).apply(null,arguments)},gq=l._Tan=function(){return(gq=l._Tan=l.asm.Tan).apply(null,arguments)},xq=l._Tanh=function(){return(xq=l._Tanh=l.asm.Tanh).apply(null,arguments)},yq=l._TensorScatterUpdate=function(){return(yq=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},bq=l._Tile=function(){return(bq=l._Tile=l.asm.Tile).apply(null,arguments)},wq=l._TopK=function(){return(wq=l._TopK=l.asm.TopK).apply(null,arguments)},Iq=l._Transform=function(){return(Iq=l._Transform=l.asm.Transform).apply(null,arguments)},Cq=l._Transpose=function(){return(Cq=l._Transpose=l.asm.Transpose).apply(null,arguments)},vq=l.__FusedMatMul=function(){return(vq=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},Sq=l._malloc=function(){return(Sq=l._malloc=l.asm.malloc).apply(null,arguments)},Nq=l._free=function(){return(Nq=l._free=l.asm.free).apply(null,arguments)},kq=l.__emscripten_tls_init=function(){return(kq=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Vg=l._pthread_self=function(){return(Vg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},Tq=l.___errno_location=function(){return(Tq=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},m_=l.__emscripten_thread_init=function(){return(m_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},_q=l.__emscripten_thread_crashed=function(){return(_q=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},Eq=l._emscripten_main_thread_process_queued_calls=function(){return(Eq=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},Aq=l._emscripten_main_browser_thread_id=function(){return(Aq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},f_=l._emscripten_run_in_main_runtime_thread_js=function(){return(f_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Dq=l._emscripten_dispatch_to_thread_=function(){return(Dq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},d_=l.__emscripten_proxy_execute_task_queue=function(){return(d_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},l0=l.__emscripten_thread_free_data=function(){return(l0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},h_=l.__emscripten_thread_exit=function(){return(h_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},g_=l._emscripten_stack_set_limits=function(){return(g_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},u0=l.stackSave=function(){return(u0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Gg=l.stackRestore=function(){return(Gg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Wg=l.stackAlloc=function(){return(Wg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},$q=l.dynCall_iijjiiii=function(){return($q=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},Rq=l.dynCall_jiji=function(){return(Rq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=zo,l.wasmMemory=it,l.cwrap=hv,l.ExitStatus=Yu,l.PThread=Yt;var Ug;Sa=function P(){Ug||x_(),Ug||(Sa=P)};function x_(P){if(P=P||d,zl>0)return;if(I){c(l),Er(),startWorker(l);return}if(ki(),zl>0)return;function U(){Ug||(Ug=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),va()))}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){l.setStatus(\"\")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();x_();var Hg;m&&(Hg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(P){return!m.uncaughtException.indexOf(P)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(P){return!m.unhandledRejection.indexOf(P)>-1})});var qg;if(typeof WasmBackendModule!=\"undefined\")qg=WasmBackendModule;else if(typeof t!=\"undefined\")qg=t;else throw new Error(\"Could not find wasm module in post.js\");if(Hg){var Fq=qg._dispose;qg._dispose=function(){Fq(),Hg.uncaughtException.forEach(function(P){process.removeListener(\"uncaughtException\",P)}),Hg.unhandledRejection.forEach(function(P){process.removeListener(\"unhandledRejection\",P)})}}return t.ready}})();typeof DC==\"object\"&&typeof e_==\"object\"?e_.exports=t_:typeof define==\"function\"&&define.amd?define([],function(){return t_}):typeof DC==\"object\"&&(DC.WasmBackendModuleThreadedSimd=t_)});var XH=br((pnr,jH)=>{jH.exports.wasmWorkerContents=`\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\")+\"//# sourceURL=\"+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}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;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({\"cmd\":\"loaded\"})};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:\"callHandler\",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd===\"run\"){Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};`});var YH=br(($C,n_)=>{var r_=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!=\"undefined\"?t:{},n,o;e.ready=new Promise(function(j,ut){n=j,o=ut});var s;typeof process!=\"undefined\"&&process.listeners&&(s={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var i=Object.assign({},e),a=[],u=\"./this.program\",l=(j,ut)=>{throw ut},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(j){return e.locateFile?e.locateFile(j,f):f+j}var h,g,x,b;function w(j){if(j instanceof bp)return;A(\"exiting due to exception: \"+j)}if(m){var I=fw(),N=Q1();p?f=N.dirname(f)+\"/\":f=__dirname+\"/\",h=(j,ut)=>(j=ki(j)?new URL(j):N.normalize(j),I.readFileSync(j,ut?void 0:\"utf8\")),x=j=>{var ut=h(j,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},g=(j,ut,Ft)=>{j=ki(j)?new URL(j):N.normalize(j),I.readFile(j,function(me,Ye){me?Ft(me):ut(Ye.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(j){if(!(j instanceof bp))throw j}),process.on(\"unhandledRejection\",function(j){throw j}),l=(j,ut)=>{if(de())throw process.exitCode=j,ut;w(ut),process.exit(j)},e.inspect=function(){return\"[Emscripten Module object]\"}}else(c||p)&&(p?f=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf(\"blob:\")!==0?f=f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):f=\"\",h=j=>{var ut=new XMLHttpRequest;return ut.open(\"GET\",j,!1),ut.send(null),ut.responseText},p&&(x=j=>{var ut=new XMLHttpRequest;return ut.open(\"GET\",j,!1),ut.responseType=\"arraybuffer\",ut.send(null),new Uint8Array(ut.response)}),g=(j,ut,Ft)=>{var me=new XMLHttpRequest;me.open(\"GET\",j,!0),me.responseType=\"arraybuffer\",me.onload=()=>{if(me.status==200||me.status==0&&me.response){ut(me.response);return}Ft()},me.onerror=Ft,me.send(null)},b=j=>document.title=j);var E=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var D=4,F;e.wasmBinary&&(F=e.wasmBinary);var M=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Zr(\"no native wasm support detected\");var V,G=!1,W;function q(j,ut){j||Zr(ut)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function K(j,ut,Ft){ut>>>=0;for(var me=ut+Ft,Ye=ut;j[Ye]&&!(Ye>=me);)++Ye;if(Ye-ut>16&&j.buffer&&H)return H.decode(j.subarray(ut,Ye));for(var Ze=\"\";ut>10,56320|to&1023)}}return Ze}function Y(j,ut){return j>>>=0,j?K(lt,j,ut):\"\"}function Z(j,ut,Ft,me){if(Ft>>>=0,!(me>0))return 0;for(var Ye=Ft,Ze=Ft+me-1,se=0;se=55296&&ne<=57343){var yr=j.charCodeAt(++se);ne=65536+((ne&1023)<<10)|yr&1023}if(ne<=127){if(Ft>=Ze)break;ut[Ft++>>>0]=ne}else if(ne<=2047){if(Ft+1>=Ze)break;ut[Ft++>>>0]=192|ne>>6,ut[Ft++>>>0]=128|ne&63}else if(ne<=65535){if(Ft+2>=Ze)break;ut[Ft++>>>0]=224|ne>>12,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}else{if(Ft+3>=Ze)break;ut[Ft++>>>0]=240|ne>>18,ut[Ft++>>>0]=128|ne>>12&63,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}}return ut[Ft>>>0]=0,Ft-Ye}function et(j,ut,Ft){return Z(j,lt,ut,Ft)}var nt,st,lt,ot,it,ft,gt,Ct,Rt;function Dt(j){nt=j,e.HEAP8=st=new Int8Array(j),e.HEAP16=ot=new Int16Array(j),e.HEAP32=ft=new Int32Array(j),e.HEAPU8=lt=new Uint8Array(j),e.HEAPU16=it=new Uint16Array(j),e.HEAPU32=gt=new Uint32Array(j),e.HEAPF32=Ct=new Float32Array(j),e.HEAPF64=Rt=new Float64Array(j)}var Ht=e.INITIAL_MEMORY||16777216,qt,pe=[],xe=[],re=[],ye=!1;function de(){return M}function Ee(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());Sa(pe)}function Ae(){ye=!0,Sa(xe)}function On(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)zr(e.postRun.shift());Sa(re)}function lr(j){pe.unshift(j)}function Zn(j){xe.unshift(j)}function zr(j){re.unshift(j)}var Xe=0,Br=null,Vr=null;function Jn(j){Xe++,e.monitorRunDependencies&&e.monitorRunDependencies(Xe)}function Qn(j){if(Xe--,e.monitorRunDependencies&&e.monitorRunDependencies(Xe),Xe==0&&(Br!==null&&(clearInterval(Br),Br=null),Vr)){var ut=Vr;Vr=null,ut()}}function Zr(j){e.onAbort&&e.onAbort(j),j=\"Aborted(\"+j+\")\",A(j),G=!0,W=1,j+=\". Build with -sASSERTIONS for more info.\";var ut=new WebAssembly.RuntimeError(j);throw o(ut),ut}var Ca=\"data:application/octet-stream;base64,\";function zo(j){return j.startsWith(Ca)}function ki(j){return j.startsWith(\"file://\")}var Er;Er=\"tfjs-backend-wasm.wasm\",zo(Er)||(Er=d(Er));function va(j){try{if(j==Er&&F)return new Uint8Array(F);if(x)return x(j);throw\"both async and sync fetching of the wasm failed\"}catch(ut){Zr(ut)}}function Bd(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!ki(Er))return fetch(Er,{credentials:\"same-origin\"}).then(function(j){if(!j.ok)throw\"failed to load wasm binary file at '\"+Er+\"'\";return j.arrayBuffer()}).catch(function(){return va(Er)});if(g)return new Promise(function(j,ut){g(Er,function(Ft){j(new Uint8Array(Ft))},ut)})}return Promise.resolve().then(function(){return va(Er)})}function Vd(){var j={env:Gd,wasi_snapshot_preview1:Gd};function ut(se,ne){var yr=se.exports;e.asm=yr,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,Zn(e.asm.__wasm_call_ctors),Qn(\"wasm-instantiate\")}Jn(\"wasm-instantiate\");function Ft(se){ut(se.instance)}function me(se){return Bd().then(function(ne){return WebAssembly.instantiate(ne,j)}).then(function(ne){return ne}).then(se,function(ne){A(\"failed to asynchronously prepare wasm: \"+ne),Zr(ne)})}function Ye(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!zo(Er)&&!ki(Er)&&!m&&typeof fetch==\"function\"?fetch(Er,{credentials:\"same-origin\"}).then(function(se){var ne=WebAssembly.instantiateStreaming(se,j);return ne.then(Ft,function(yr){return A(\"wasm streaming compile failed: \"+yr),A(\"falling back to ArrayBuffer instantiation\"),me(Ft)})}):me(Ft)}if(e.instantiateWasm)try{var Ze=e.instantiateWasm(j,ut);return Ze}catch(se){A(\"Module.instantiateWasm callback failed with error: \"+se),o(se)}return Ye().catch(o),{}}var l_,zl;function bp(j){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+j+\")\",this.status=j}function Sa(j){for(;j.length>0;)j.shift()(e)}function FC(){Zr(\"\")}function wg(){return 4294901760}function Xu(){return wg()}function OC(j,ut,Ft){lt.copyWithin(j>>>0,ut>>>0,ut+Ft>>>0)}function Ig(j){try{return V.grow(j-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ut){}}function wp(j){var ut=lt.length;j=j>>>0;var Ft=wg();if(j>Ft)return!1;let me=(yr,to)=>yr+(to-yr%to)%to;for(var Ye=1;Ye<=4;Ye*=2){var Ze=ut*(1+.2/Ye);Ze=Math.min(Ze,j+100663296);var se=Math.min(Ft,me(Math.max(j,Ze),65536)),ne=Ig(se);if(ne)return!0}return!1}var Jr={varargs:void 0,get:function(){Jr.varargs+=4;var j=ft[Jr.varargs-4>>>2];return j},getStr:function(j){var ut=Y(j);return ut}};function Cg(j){return 52}function MC(j,ut,Ft,me,Ye){return 70}var PC=[null,[],[]];function u_(j,ut){var Ft=PC[j];ut===0||ut===10?((j===1?E:A)(K(Ft,0)),Ft.length=0):Ft.push(ut)}function c_(j,ut,Ft,me){for(var Ye=0,Ze=0;Ze>>2],ne=gt[ut+4>>>2];ut+=8;for(var yr=0;yr>>0]);Ye+=ne}return gt[me>>>2]=Ye,0}function vg(j){var ut=e[\"_\"+j];return ut}function Yu(j,ut){st.set(j,ut>>>0)}function LC(j,ut,Ft,me,Ye){var Ze={string:nn=>{var Vl=0;if(nn!=null&&nn!==0){var Bg=(nn.length<<2)+1;Vl=Kd(Bg),et(nn,Vl,Bg)}return Vl},array:nn=>{var Vl=Kd(nn.length);return Yu(nn,Vl),Vl}};function se(nn){return ut===\"string\"?Y(nn):ut===\"boolean\"?!!nn:nn}var ne=vg(j),yr=[],to=0;if(me)for(var Na=0;Nase===\"number\"||se===\"boolean\"),Ze=ut!==\"string\";return Ze&&Ye&&!me?vg(j):function(){return LC(j,ut,Ft,arguments,me)}}var Gd={abort:FC,emscripten_get_heap_max:Xu,emscripten_memcpy_big:OC,emscripten_resize_heap:wp,fd_close:Cg,fd_seek:MC,fd_write:c_},BC=Vd(),Sg=e.___wasm_call_ctors=function(){return(Sg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Ng=e._init=function(){return(Ng=e._init=e.asm.init).apply(null,arguments)},VC=e._init_with_threads_count=function(){return(VC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},kg=e._get_threads_count=function(){return(kg=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},GC=e._register_tensor=function(){return(GC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Yt=e._dispose_data=function(){return(Yt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Wd=e._dispose=function(){return(Wd=e._dispose=e.asm.dispose).apply(null,arguments)},WC=e._Abs=function(){return(WC=e._Abs=e.asm.Abs).apply(null,arguments)},Tg=e._Acos=function(){return(Tg=e._Acos=e.asm.Acos).apply(null,arguments)},Ip=e._Acosh=function(){return(Ip=e._Acosh=e.asm.Acosh).apply(null,arguments)},UC=e._Add=function(){return(UC=e._Add=e.asm.Add).apply(null,arguments)},HC=e._AddN=function(){return(HC=e._AddN=e.asm.AddN).apply(null,arguments)},qC=e._All=function(){return(qC=e._All=e.asm.All).apply(null,arguments)},KC=e._Any=function(){return(KC=e._Any=e.asm.Any).apply(null,arguments)},jC=e._ArgMax=function(){return(jC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},_g=e._ArgMin=function(){return(_g=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Eg=e._Asin=function(){return(Eg=e._Asin=e.asm.Asin).apply(null,arguments)},XC=e._Asinh=function(){return(XC=e._Asinh=e.asm.Asinh).apply(null,arguments)},YC=e._Atan=function(){return(YC=e._Atan=e.asm.Atan).apply(null,arguments)},ZC=e._Atan2=function(){return(ZC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Ud=e._Atanh=function(){return(Ud=e._Atanh=e.asm.Atanh).apply(null,arguments)},JC=e._AvgPool=function(){return(JC=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},QC=e._AvgPool3D=function(){return(QC=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},tv=e._AvgPool3DGrad=function(){return(tv=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},Zu=e._AvgPoolGrad=function(){return(Zu=e._AvgPoolGrad=e.asm.AvgPoolGrad).apply(null,arguments)},ev=e._BatchMatMul=function(){return(ev=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},rv=e._Bincount=function(){return(rv=e._Bincount=e.asm.Bincount).apply(null,arguments)},Ag=e._BitwiseAnd=function(){return(Ag=e._BitwiseAnd=e.asm.BitwiseAnd).apply(null,arguments)},nv=e._Ceil=function(){return(nv=e._Ceil=e.asm.Ceil).apply(null,arguments)},Hd=e._ClipByValue=function(){return(Hd=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},ov=e._Conv2D=function(){return(ov=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},sv=e._Conv2DBackpropInput=function(){return(sv=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},iv=e._Conv3D=function(){return(iv=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},Bl=e._Conv3DBackpropFilterV2=function(){return(Bl=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},qd=e._Conv3DBackpropInputV2=function(){return(qd=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},av=e._Cos=function(){return(av=e._Cos=e.asm.Cos).apply(null,arguments)},lv=e._Cosh=function(){return(lv=e._Cosh=e.asm.Cosh).apply(null,arguments)},uv=e._CropAndResize=function(){return(uv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},cv=e._Cumprod=function(){return(cv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},Dg=e._Cumsum=function(){return(Dg=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},$g=e._DenseBincount=function(){return($g=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},pv=e._DepthToSpace=function(){return(pv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},mv=e._DepthwiseConv2dNative=function(){return(mv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Rg=e._Diag=function(){return(Rg=e._Diag=e.asm.Diag).apply(null,arguments)},Fg=e._Dilation2D=function(){return(Fg=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},fv=e._Dilation2DBackpropFilter=function(){return(fv=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},dv=e._Dilation2DBackpropInput=function(){return(dv=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},hv=e._Elu=function(){return(hv=e._Elu=e.asm.Elu).apply(null,arguments)},gv=e._EluGrad=function(){return(gv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},Og=e._Equal=function(){return(Og=e._Equal=e.asm.Equal).apply(null,arguments)},p_=e._Erf=function(){return(p_=e._Erf=e.asm.Erf).apply(null,arguments)},xv=e._Exp=function(){return(xv=e._Exp=e.asm.Exp).apply(null,arguments)},yv=e._Expm1=function(){return(yv=e._Expm1=e.asm.Expm1).apply(null,arguments)},bv=e._FlipLeftRight=function(){return(bv=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},wv=e._Floor=function(){return(wv=e._Floor=e.asm.Floor).apply(null,arguments)},Iv=e._FloorDiv=function(){return(Iv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},Cv=e._FusedBatchNorm=function(){return(Cv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},vv=e._FusedConv2D=function(){return(vv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},Sv=e._FusedDepthwiseConv2D=function(){return(Sv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Nv=e._Gather=function(){return(Nv=e._Gather=e.asm.Gather).apply(null,arguments)},kv=e._GatherNd=function(){return(kv=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Tv=e._Greater=function(){return(Tv=e._Greater=e.asm.Greater).apply(null,arguments)},_v=e._GreaterEqual=function(){return(_v=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Ev=e._IsFinite=function(){return(Ev=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},Av=e._IsInf=function(){return(Av=e._IsInf=e.asm.IsInf).apply(null,arguments)},Dv=e._IsNan=function(){return(Dv=e._IsNan=e.asm.IsNan).apply(null,arguments)},$v=e._LRN=function(){return($v=e._LRN=e.asm.LRN).apply(null,arguments)},Rv=e._LRNGrad=function(){return(Rv=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},Fv=e._LeakyRelu=function(){return(Fv=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Ov=e._Less=function(){return(Ov=e._Less=e.asm.Less).apply(null,arguments)},Mv=e._LessEqual=function(){return(Mv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},Pv=e._LinSpace=function(){return(Pv=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Lv=e._Log=function(){return(Lv=e._Log=e.asm.Log).apply(null,arguments)},zv=e._Log1p=function(){return(zv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Bv=e._LogicalAnd=function(){return(Bv=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Vv=e._LogicalNot=function(){return(Vv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Gv=e._LogicalOr=function(){return(Gv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Wv=e._LogicalXor=function(){return(Wv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},Uv=e._Max=function(){return(Uv=e._Max=e.asm.Max).apply(null,arguments)},Hv=e._MaxPool=function(){return(Hv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},qv=e._MaxPool3D=function(){return(qv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Kv=e._MaxPool3DGrad=function(){return(Kv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},jv=e._MaxPoolGrad=function(){return(jv=e._MaxPoolGrad=e.asm.MaxPoolGrad).apply(null,arguments)},Xv=e._MaxPoolWithArgmax=function(){return(Xv=e._MaxPoolWithArgmax=e.asm.MaxPoolWithArgmax).apply(null,arguments)},Yv=e._Maximum=function(){return(Yv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Zv=e._Mean=function(){return(Zv=e._Mean=e.asm.Mean).apply(null,arguments)},Jv=e._Min=function(){return(Jv=e._Min=e.asm.Min).apply(null,arguments)},Qv=e._Minimum=function(){return(Qv=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Mod=function(){return(eS=e._Mod=e.asm.Mod).apply(null,arguments)},rS=e._Multinomial=function(){return(rS=e._Multinomial=e.asm.Multinomial).apply(null,arguments)},nS=e._Multiply=function(){return(nS=e._Multiply=e.asm.Multiply).apply(null,arguments)},oS=e._Neg=function(){return(oS=e._Neg=e.asm.Neg).apply(null,arguments)},sS=e._NonMaxSuppressionV3=function(){return(sS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},iS=e._NonMaxSuppressionV4=function(){return(iS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},aS=e._NonMaxSuppressionV5=function(){return(aS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},lS=e._NotEqual=function(){return(lS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},uS=e._OneHot=function(){return(uS=e._OneHot=e.asm.OneHot).apply(null,arguments)},cS=e._PadV2=function(){return(cS=e._PadV2=e.asm.PadV2).apply(null,arguments)},pS=e._Pow=function(){return(pS=e._Pow=e.asm.Pow).apply(null,arguments)},mS=e._Prelu=function(){return(mS=e._Prelu=e.asm.Prelu).apply(null,arguments)},fS=e._Prod=function(){return(fS=e._Prod=e.asm.Prod).apply(null,arguments)},dS=e._RealDiv=function(){return(dS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},hS=e._Reciprocal=function(){return(hS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},gS=e._Relu=function(){return(gS=e._Relu=e.asm.Relu).apply(null,arguments)},xS=e._Relu6=function(){return(xS=e._Relu6=e.asm.Relu6).apply(null,arguments)},yS=e._ResizeBilinear=function(){return(yS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},bS=e._ResizeBilinearGrad=function(){return(bS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},wS=e._ResizeNearestNeighbor=function(){return(wS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},IS=e._ResizeNearestNeighborGrad=function(){return(IS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},CS=e._Reverse=function(){return(CS=e._Reverse=e.asm.Reverse).apply(null,arguments)},vS=e._RotateWithOffset=function(){return(vS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},SS=e._Round=function(){return(SS=e._Round=e.asm.Round).apply(null,arguments)},NS=e._Rsqrt=function(){return(NS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},kS=e._ScatterNd=function(){return(kS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},TS=e._SearchSorted=function(){return(TS=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},_S=e._SelectV2=function(){return(_S=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},ES=e._Selu=function(){return(ES=e._Selu=e.asm.Selu).apply(null,arguments)},AS=e._Sigmoid=function(){return(AS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},DS=e._Sign=function(){return(DS=e._Sign=e.asm.Sign).apply(null,arguments)},$S=e._Sin=function(){return($S=e._Sin=e.asm.Sin).apply(null,arguments)},RS=e._Sinh=function(){return(RS=e._Sinh=e.asm.Sinh).apply(null,arguments)},FS=e._Softmax=function(){return(FS=e._Softmax=e.asm.Softmax).apply(null,arguments)},OS=e._Softplus=function(){return(OS=e._Softplus=e.asm.Softplus).apply(null,arguments)},MS=e._SparseFillEmptyRows=function(){return(MS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},PS=e._SparseReshape=function(){return(PS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},LS=e._SparseSegmentReduction=function(){return(LS=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},zS=e._SparseToDense=function(){return(zS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},BS=e._Sqrt=function(){return(BS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},VS=e._Square=function(){return(VS=e._Square=e.asm.Square).apply(null,arguments)},GS=e._SquaredDifference=function(){return(GS=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},WS=e._Step=function(){return(WS=e._Step=e.asm.Step).apply(null,arguments)},US=e._StridedSlice=function(){return(US=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},HS=e._Sub=function(){return(HS=e._Sub=e.asm.Sub).apply(null,arguments)},qS=e._Sum=function(){return(qS=e._Sum=e.asm.Sum).apply(null,arguments)},KS=e._Tan=function(){return(KS=e._Tan=e.asm.Tan).apply(null,arguments)},jS=e._Tanh=function(){return(jS=e._Tanh=e.asm.Tanh).apply(null,arguments)},XS=e._TensorScatterUpdate=function(){return(XS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},YS=e._Tile=function(){return(YS=e._Tile=e.asm.Tile).apply(null,arguments)},ZS=e._TopK=function(){return(ZS=e._TopK=e.asm.TopK).apply(null,arguments)},JS=e._Transform=function(){return(JS=e._Transform=e.asm.Transform).apply(null,arguments)},QS=e._Transpose=function(){return(QS=e._Transpose=e.asm.Transpose).apply(null,arguments)},t0=e.__FusedMatMul=function(){return(t0=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},e0=e._malloc=function(){return(e0=e._malloc=e.asm.malloc).apply(null,arguments)},r0=e._free=function(){return(r0=e._free=e.asm.free).apply(null,arguments)},n0=e.___errno_location=function(){return(n0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Mg=e.stackSave=function(){return(Mg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Pg=e.stackRestore=function(){return(Pg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Kd=e.stackAlloc=function(){return(Kd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},o0=e.dynCall_iijjiiii=function(){return(o0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},s0=e.dynCall_jiji=function(){return(s0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=zC;var Cp;Vr=function j(){Cp||Lg(),Cp||(Vr=j)};function Lg(j){if(j=j||a,Xe>0||(Ee(),Xe>0))return;function ut(){Cp||(Cp=!0,e.calledRun=!0,!G&&(Ae(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),On()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),ut()},1)):ut()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Lg();var vp;s&&(vp={uncaughtException:process.listeners(\"uncaughtException\").filter(function(j){return!s.uncaughtException.indexOf(j)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(j){return!s.unhandledRejection.indexOf(j)>-1})});var Sp;if(typeof t!=\"undefined\")Sp=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")Sp=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(vp){var i0=Sp._dispose;Sp._dispose=function(){i0(),vp.uncaughtException.forEach(function(j){process.removeListener(\"uncaughtException\",j)}),vp.unhandledRejection.forEach(function(j){process.removeListener(\"unhandledRejection\",j)})}}return t.ready}})();typeof $C==\"object\"&&typeof n_==\"object\"?n_.exports=r_:typeof define==\"function\"&&define.amd?define([],function(){return r_}):typeof $C==\"object\"&&($C.WasmBackendModule=r_)});var Ta=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},Bo=class{refCount(t){return Pn(\"refCount\")}incRef(t){return Pn(\"incRef\")}timerAvailable(){return!0}time(t){return Pn(\"time\")}read(t){return Pn(\"read\")}readSync(t){return Pn(\"readSync\")}readToGPU(t,e){return Pn(\"readToGPU\")}numDataIds(){return Pn(\"numDataIds\")}disposeData(t,e){return Pn(\"disposeData\")}write(t,e,n){return Pn(\"write\")}move(t,e,n,o,s){return Pn(\"move\")}createTensorFromGPUData(t,e,n){return Pn(\"createTensorFromGPUData\")}memory(){return Pn(\"memory\")}floatPrecision(){return Pn(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Pn(\"dispose\")}};function Pn(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 w_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Kg(r,t,e)}function Gq(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Kg(r,e,n),Kg(t,e,n)}function kp(r,t,e){return Math.max(r,Math.min(t,e))}function Wq(r){return r%2===0?r:r+1}function Kg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function Uq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function ro(r){_(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function jt(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function Jq(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function fr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),_(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),_(r.every(n=>_a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function f0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function d0(r,t){return jg(r,t)}function jg(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else if(r===\"string\")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function h0(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r==\"string\"||r instanceof String}function I_(r){return typeof r==\"boolean\"}function C_(r){return typeof r==\"number\"}function Wl(r){return Array.isArray(r)?Wl(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":C_(r)?\"float32\":Vo(r)?\"string\":I_(r)?\"bool\":\"float32\"}function Ti(r){return!!(r&&r.constructor&&r.call&&r.apply)}function _p(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function v_(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?\" for a complex tensor\":\"\"}.`);return v_(0,r,t,e)}function tK(r,t){if(Array.isArray(r))return r;if(t===\"float32\")return r instanceof Float32Array?r:new Float32Array(r);if(t===\"int32\")return r instanceof Int32Array?r:new Int32Array(r);if(t===\"bool\"||t===\"string\")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function Xd(r,t){let e=Ep(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Ju(r,new Float32Array(e));if(t===\"int32\")return Ju(r,new Int32Array(e));if(t===\"bool\")return Ju(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Le(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function rK(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(\":\");this.urlFlags[o]=aK(o,s)})}};function sK(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(iK(t,n[0],n[1]),n.join(\"=\"))),t}function iK(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function aK(r,t){let e=t.toLowerCase();return e===\"true\"||e===\"false\"?e===\"true\":`${+e}`===e?+e:t}function L(){return y0}var y0=null;function N_(r){y0=r}var b0;function w0(){if(b0==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\");b0=r}return b0}function lK(){let r=w0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Zd(r,t){let e=lK();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var Ei=\"Abs\",Go=\"Acos\",Wo=\"Acosh\",no=\"Add\",Uo=\"AddN\",Ea=\"All\",Aa=\"Any\",Ai=\"ArgMax\",Di=\"ArgMin\",Ho=\"Asin\",qo=\"Asinh\",Ko=\"Atan\",jo=\"Atanh\",Xo=\"Atan2\",Yo=\"AvgPool\",Ul=\"AvgPoolGrad\",$i=\"AvgPool3D\",Hl=\"AvgPool3DGrad\",Zo=\"BatchMatMul\",Ri=\"BatchToSpaceND\",Da=\"Bincount\",$a=\"BitwiseAnd\",k_=\"BroadcastTo\",ql=\"BroadcastArgs\",fo=\"Cast\",Jo=\"Ceil\",ho=\"ClipByValue\",Ap=\"Complex\",Kl=\"ComplexAbs\",Fi=\"Concat\",Qo=\"Conv2D\",Dp=\"Conv2DBackpropFilter\",ts=\"Conv2DBackpropInput\",es=\"Conv3D\",Ra=\"Conv3DBackpropFilterV2\",Fa=\"Conv3DBackpropInputV2\",rs=\"Cos\",ns=\"Cosh\",Oa=\"Cumprod\",os=\"Cumsum\",Ma=\"CropAndResize\",jl=\"DenseBincount\",Pa=\"DepthToSpace\",ss=\"DepthwiseConv2dNative\",$p=\"DepthwiseConv2dNativeBackpropFilter\",Rp=\"DepthwiseConv2dNativeBackpropInput\",Xl=\"Diag\",is=\"Dilation2D\",Yl=\"Dilation2DBackpropInput\",Zl=\"Dilation2DBackpropFilter\",Jd=\"Draw\",as=\"RealDiv\",Fp=\"Einsum\",ls=\"Elu\",La=\"EluGrad\",us=\"Erf\",za=\"Equal\",cs=\"Exp\",Oi=\"ExpandDims\",ps=\"Expm1\",Op=\"FFT\",Jl=\"Fill\",Ba=\"FlipLeftRight\",ms=\"Floor\",fs=\"FloorDiv\",ds=\"FusedBatchNorm\",Mi=\"GatherV2\",Va=\"GatherNd\",Ga=\"Greater\",hs=\"GreaterEqual\",go=\"Identity\",Mp=\"IFFT\",Pp=\"Imag\",gs=\"IsFinite\",xs=\"IsInf\",ys=\"IsNan\",bs=\"LeakyRelu\",Wa=\"Less\",Ua=\"LessEqual\",Ha=\"LinSpace\",ws=\"Log\",Is=\"Log1p\",qa=\"LogicalAnd\",Ka=\"LogicalNot\",ja=\"LogicalOr\",T_=\"LogicalXor\",__=\"LogSoftmax\",Qmt=\"LowerBound\",Cs=\"LRN\",Xa=\"LRNGrad\",tft=\"MatrixBandPart\",vs=\"Max\",Ss=\"Maximum\",Ns=\"MaxPool\",Ql=\"MaxPoolGrad\",Pi=\"MaxPool3D\",tu=\"MaxPool3DGrad\",eu=\"MaxPoolWithArgmax\",ks=\"Mean\",Ts=\"Min\",_s=\"Minimum\",Es=\"MirrorPad\",As=\"Mod\",Ya=\"Multinomial\",Ds=\"Multiply\",Li=\"Neg\",Za=\"NotEqual\",Ja=\"NonMaxSuppressionV3\",Qa=\"NonMaxSuppressionV4\",tl=\"NonMaxSuppressionV5\",zi=\"OnesLike\",$s=\"OneHot\",Bi=\"Pack\",Rs=\"PadV2\",eft=\"Pool\",Fs=\"Pow\",Os=\"Prelu\",Ms=\"Prod\",Lp=\"RaggedGather\",zp=\"RaggedRange\",Bp=\"RaggedTensorToTensor\",ru=\"Range\",Vp=\"Real\",Ps=\"Reciprocal\",Ls=\"Relu\",Vi=\"Reshape\",zs=\"ResizeNearestNeighbor\",el=\"ResizeNearestNeighborGrad\",Bs=\"ResizeBilinear\",rl=\"ResizeBilinearGrad\",Vs=\"Relu6\",Gs=\"Reverse\",Ws=\"Round\",Us=\"Rsqrt\",nl=\"ScatterNd\",ol=\"TensorScatterUpdate\",sl=\"SearchSorted\",Gi=\"Select\",Hs=\"Selu\",Wi=\"Slice\",qs=\"Sin\",Ks=\"Sinh\",js=\"Sign\",Xs=\"Sigmoid\",Ys=\"Softplus\",Zs=\"Sqrt\",Js=\"Sum\",Ui=\"SpaceToBatchND\",Hi=\"SplitV\",Qs=\"Softmax\",nu=\"SparseFillEmptyRows\",il=\"SparseReshape\",ou=\"SparseSegmentMean\",su=\"SparseSegmentSum\",al=\"SparseToDense\",ti=\"SquaredDifference\",iu=\"Square\",ec=\"StaticRegexReplace\",ll=\"StridedSlice\",au=\"StringNGrams\",lu=\"StringSplit\",uu=\"StringToHashBucketFast\",ei=\"Sub\",ri=\"Tan\",ni=\"Tanh\",oo=\"Tile\",ul=\"TopK\",cl=\"Transform\",so=\"Transpose\",cu=\"Unique\",qi=\"Unpack\",pu=\"UnsortedSegmentSum\",rft=\"UpperBound\",Ki=\"ZerosLike\",xo=\"Step\",Qd=\"FromPixels\",pl=\"RotateWithOffset\",ji=\"_FusedMatMul\",Xi=\"FusedConv2D\",Yi=\"FusedDepthwiseConv2D\";function Zi(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.warn(...r)}function uK(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.log(...r)}var Gp=Zd(\"kernelRegistry\",()=>new Map),th=Zd(\"gradRegistry\",()=>new Map);function Wp(r,t){let e=C0(r,t);return Gp.get(e)}function I0(r){return th.get(r)}function Xg(r){let t=Gp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split(\"_\");a===r&&e.push(i)}return e}function rc(r){let{kernelName:t,backendName:e}=r,n=C0(t,e);Gp.has(n)&&Zi(`The kernel '${t}' for backend '${e}' is already registered`),Gp.set(n,r)}function A_(r){let{kernelName:t}=r;th.has(t)&&L().getBool(\"DEBUG\")&&Zi(`Overriding the gradient for '${t}'`),th.set(t,r)}function aft(r,t){let e=C0(r,t);if(!Gp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Gp.delete(e)}function lft(r){if(!th.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);th.delete(r)}function uft(r,t){Xg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});rc(o)})}function C0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>on,arraysEqualWithNull:()=>m0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Le,assertNonNull:()=>ro,assertShapesMatch:()=>$e,bytesFromStringArray:()=>x0,bytesPerElement:()=>Tp,checkConversionForErrors:()=>h0,clamp:()=>kp,computeStrides:()=>_i,convertBackendValuesAndArrayBuffer:()=>tK,createScalarValue:()=>gK,createShuffledIndices:()=>Yq,decodeString:()=>Kp,distSquared:()=>qq,encodeString:()=>fu,fetch:()=>yK,fingerPrint64:()=>hK,flatten:()=>si,getArrayFromDType:()=>jg,getTypedArrayFromDType:()=>d0,hasEncodingLoss:()=>Qq,hexToLong:()=>eh,indexToLoc:()=>nK,inferDtype:()=>Wl,inferFromImplicitShape:()=>Jq,isBoolean:()=>I_,isFunction:()=>Ti,isInt:()=>_a,isNumber:()=>C_,isPromise:()=>tc,isScalarShape:()=>Kq,isString:()=>Vo,isTypedArray:()=>sr,isValidDtype:()=>g0,locToIndex:()=>rK,makeOnesTypedArray:()=>Xd,makeZerosNestedTypedArray:()=>eK,makeZerosTypedArray:()=>Ep,nearestDivisor:()=>_p,nearestLargerEven:()=>Wq,now:()=>ac,parseAxisParam:()=>fr,randUniform:()=>Hq,repeatedTry:()=>Zq,rightPad:()=>Qu,shuffle:()=>w_,shuffleCombo:()=>Gq,sizeFromShape:()=>jt,sizeToSquarishShape:()=>Xq,squeezeShape:()=>f0,sum:()=>Uq,swap:()=>Kg,tanh:()=>jq,toNestedArray:()=>Ju,toTypedArray:()=>qp});function Yg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var k0=Gl(V_());var ic=k0.default||k0;function eh(r){return ic.fromString(r,!0,16)}var W_=eh(\"c3a5c85c97cb3127\"),sc=eh(\"b492b66fbe98f273\"),sn=eh(\"9ae16a3b2f90404f\");function N0(r){return r.xor(r.shru(47))}function U_(r,t,e){let n=r.slice(t,t+e);return ic.fromBytes(Array.from(n),!0,!0)}function ze(r,t){return U_(r,t,8)}function G_(r,t){return U_(r,t,4)}function Ar(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function mu(r,t,e=eh(\"9ddfea08eb382d69\")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function pK(r,t,e,n,o,s){o=o.add(r),s=Ar(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Ar(o,44)),[o.add(n),s.add(i)]}function Jg(r,t,e,n){return pK(ze(r,t),ze(r,t+8),ze(r,t+16),ze(r,t+24),e,n)}function mK(r,t=r.length){if(t>=8){let e=sn.add(t*2),n=ze(r,0).add(sn),o=ze(r,t-8),s=Ar(o,37).mul(e).add(n),i=Ar(n,25).add(o).mul(e);return mu(s,i,e)}if(t>=4){let e=sn.add(t*2),n=G_(r,0);return mu(n.shl(3).add(t),G_(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return N0(sn.mul(s).xor(W_.mul(i))).mul(sn)}return sn}function fK(r,t=r.length){let e=sn.add(t*2),n=ze(r,0).mul(sc),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(sn);return mu(Ar(n.add(o),43).add(Ar(s,30)).add(i),n.add(Ar(o.add(sn),18)).add(s),e)}function dK(r,t=r.length){let e=sn.add(t*2),n=ze(r,0).mul(sn),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(sn),a=Ar(n.add(o),43).add(Ar(s,30)).add(i),u=mu(a,n.add(Ar(o.add(sn),18)).add(s),e),l=ze(r,16).mul(e),c=ze(r,24),p=a.add(ze(r,t-32)).mul(e),m=u.add(ze(r,t-24)).mul(e);return mu(Ar(l.add(c),43).add(Ar(p,30)).add(m),l.add(Ar(c.add(n),18)).add(p),e)}function hK(r,t=r.length){let e=ic.fromNumber(81,!0);if(t<=32)return t<=16?mK(r,t):fK(r,t);if(t<=64)return dK(r,t);let n=e,o=e.mul(sc).add(113),s=N0(o.mul(sn).add(113)).mul(sn),i=[ic.UZERO,ic.UZERO],a=[ic.UZERO,ic.UZERO];n=n.mul(sn).add(ze(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(sc),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(sc),n=n.xor(a[1]),o=o.add(i[0]).add(ze(r,u+40)),s=Ar(s.add(a[0]),33).mul(sc),i=Jg(r,u,i[1].mul(sc),n.add(a[0])),a=Jg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=sc.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(p),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(ze(r,u+40))),s=Ar(s.add(a[0]),33).mul(p),i=Jg(r,u,i[1].mul(p),n.add(a[0])),a=Jg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],mu(mu(i[0],a[0],p).add(N0(o).mul(W_)).add(s),mu(i[1],a[1],p).add(n),p)}function gK(r,t){return t===\"string\"?fu(r):qp([r],t)}function xK(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function qp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=si(r)),L().getBool(\"DEBUG\")&&h0(r,t),xK(r,t))return r;if(t==null||t===\"float32\"||t===\"complex64\")return new Float32Array(r);if(t===\"int32\")return new Int32Array(r);if(t===\"bool\"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=ac();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:ac()-a})}if(L().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{bK(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():\"\")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function bK(r,t,e){if(t!==\"float32\")return!1;for(let n=0;n0?h:\"\"} `}}console.log(`%c${u}\t%c${a}\t%c${l}D ${p}\t%c${c}\t%c${m}\t%c${i}`,\"font-weight:bold\",\"color:red\",\"color:blue\",\"color: orange\",\"color: green\",\"color: steelblue\")}};function H_(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!==\"float32\")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!on(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var K_=20,rh=3,_0=7;function j_(r,t,e,n){let o=_i(t),s=wK(r,t,e,o),i=t.length,a=tx(r,t,e,o,s),u=[\"Tensor\"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(\" values:\")),u.push(a.map(l=>\" \"+l).join(`\n`)),u.join(`\n`)}function wK(r,t,e,n){let o=jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?oh(r):r;if(a>1)for(let l=0;lK_){let g=rh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-rh)*i,a*i));return e===\"complex64\"&&(x=oh(x),b=oh(b)),[\"[\"+x.map((w,I)=>nh(w,o[I],e)).join(\", \")+\", ..., \"+b.map((w,I)=>nh(w,o[a-rh+I],e)).join(\", \")+\"]\"]}return[\"[\"+(e===\"complex64\"?oh(r):Array.from(r)).map((g,x)=>nh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>K_){for(let h=0;h0?m[0]+f:\"\");for(let h=1;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e===\"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||jg(e,this.size),this.strides=_i(t)}set(t,...e){e.length===0&&(e=[0]),_(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oKp(n))}catch(n){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}}return t}dataToGPU(t){return this.throwIfDisposed(),ii().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ii().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Kp(e))}catch(e){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}return t}async bytes(){this.throwIfDisposed();let t=await ii().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),ii().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return jp.print(this,t)}clone(){return this.throwIfDisposed(),jp.clone(this)}toString(t=!1){let e=this.dataSync();return j_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),jp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ii().makeVariable(this,t,e,n)}};Object.defineProperty(Lt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Zd(\"Tensor\",()=>Lt)}O();var ml=class extends Lt{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!on(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ii().disposeTensor(this),this.dataId=t.dataId,ii().incRef(this,null)}dispose(){ii().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ml,Symbol.hasInstance,{value:r=>r instanceof Lt&&r.assign!=null&&r.assign instanceof Function});var Io={};Kt(Io,{assertTypesMatch:()=>F0,getTensorsInContainer:()=>sh,isTensorInList:()=>vK,makeTypesMatch:()=>Xt});var E0;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(E0||(E0={}));var A0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(A0||(A0={}));var D0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(D0||(D0={}));var $0;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})($0||($0={}));var R0;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(R0||(R0={}));var CK={float32:$0,int32:A0,bool:D0,complex64:R0};function ur(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return CK[r][t]}function lc(r){return ur(r,\"int32\")}function ex(r){return r!=null&&typeof r==\"object\"&&\"texture\"in r&&r.texture instanceof WebGLTexture}function rx(r){return typeof GPUBuffer!=\"undefined\"&&r!=null&&typeof r==\"object\"&&\"buffer\"in r&&r.buffer instanceof GPUBuffer}function Xt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function F0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function vK(r,t){return t.some(e=>e.id===r.id)}function sh(r){let t=[];return Q_(r,t,new Set),t}function Q_(r,t,e){if(r==null)return;if(r instanceof Lt){t.push(r);return}if(!SK(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),Q_(s,t,e))}}function SK(r){return Array.isArray(r)||typeof r==\"object\"}function O0(r){return r.kernelName!=null}var nx=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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ih=class r{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new nx}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){Xg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof Bo)&&typeof n.then==\"function\"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error(\"Cannot return a Promise inside of tidy.\"),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return r.nextTensorId++}nextVariableId(){return r.nextVariableId++}clone(t){let e=T.runKernel(go,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return T.runKernel(fo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Wp(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool(\"IS_TEST\")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype===\"complex64\"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=O0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(O0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Wp(d,this.backendName);_(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}else{let{forwardFunc:d}=t,h=g=>{o&&(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=O0(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool(\"DEBUG\")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool(\"DEBUG\")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=I0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(_(Array.isArray(e),()=>\"saveAllInputs is true, expected inputs to be an array.\"),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error(\"Values passed to engine.makeTensor() are null\");n=n||\"float32\",o=o||this.backend;let s=t;n===\"string\"&&Vo(t[0])&&(s=t.map(u=>fu(u)));let i=o.write(s,e,n),a=new Lt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=x0(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||\"float32\";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Lt(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new ml(t,e,n,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(t,e){this.state.numTensors++,t.dtype===\"string\"&&this.state.numStringTensors++;let n=0;t.dtype!==\"complex64\"&&t.dtype!==\"string\"&&(n=t.size*Tp(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof ml||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype===\"string\"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!==\"complex64\"&&t.dtype!==\"string\"){let n=t.size*Tp(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=I0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Ep(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:\"unnamed scope\",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=sh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(_(e.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 s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy(\"forward\",t));_(s instanceof Lt,()=>\"The result y returned by f() must be a tensor.\");let i=H_(this.state.activeTape,e,s);if(!o&&i.length===0&&e.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 a={};a[s.id]=n==null?NK(s.shape):n,q_(a,i,l=>this.tidy(l),kK);let u=e.map(l=>a[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:s,grads:u}})}customGrad(t){return _(Ti(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{_(e.every(a=>a instanceof Lt),()=>\"The args passed in customGrad(f)(x1, x2,...) must all be tensors\");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),_(n.value instanceof Lt,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),_(Ti(n.gradFunc),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.\"),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];_(c.length===e.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(...).\"),_(c.every(m=>m instanceof Lt),()=>\"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:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=ac(),n=await this.backend.time(t);return n.wallMs=ac()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new nx;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ih.nextTensorId=0;ih.nextVariableId=0;function NK(r){let t=Xd(jt(r),\"float32\");return T.makeTensor(t,r,\"float32\")}function M0(){let r=w0();if(r._tfengine==null){let t=new Yd(r);r._tfengine=new ih(t)}return N_(r._tfengine.ENV),Y_(()=>r._tfengine),r._tfengine}var T=M0();function kK(r,t){let e={a:r,b:t};return T.runKernel(no,e)}var du={};Kt(du,{isBrowser:()=>L0,isMobile:()=>EK,mockIsMobile:()=>_K});function TK(){return typeof navigator!=\"undefined\"&&navigator!=null}var P0;function _K(r){P0=r}function EK(r){if(P0!==void 0)return P0;if(r||TK()){if(r||(r=navigator),r.product===\"ReactNative\")return!0;let t=r.userAgent||r.vendor||(typeof window!=\"undefined\"?window.opera:\"\");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(t.substr(0,4))}return!1}function L0(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var vn=L();vn.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.\")});vn.registerFlag(\"IS_BROWSER\",()=>L0());vn.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");vn.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));vn.registerFlag(\"IS_SAFARI\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));vn.registerFlag(\"PROD\",()=>!1);vn.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>vn.getBool(\"DEBUG\"));vn.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);vn.registerFlag(\"IS_TEST\",()=>!1);vn.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>vn.getBool(\"DEBUG\"));vn.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);vn.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);vn.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Gr(r,t){let e=r;if(sr(r))return t===\"string\"?[]:[r.length];if(ex(r)){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}else if(rx(r))return[r.buffer.size/(t==null?4:Tp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||sr(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&eE(r,n,[]),n}function eE(r,t,e){if(e=e||[],!Array.isArray(r)&&!sr(r)){_(t.length===0,()=>`Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}_(t.length>0,()=>`Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`),_(r.length===t[0],()=>`Element arr[${e.join(\"][\")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),tE(n,o,t,e),r==null||!sr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\"){let u=r==null?\"null\":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Gr(r,o);!sr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?qp(r,o):si(r,[],!0);return T.makeTensor(a,s,o)}function fl(r,t,e,n=\"numeric\"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \\`Tensor[]\\` or \\`TensorLike[]\\``);return r.map((s,i)=>C(s,`${t}[${i}]`,e,n))}var z0=\"__op\";function k(r){let t=Object.keys(r);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 e=t[0],n=r[e];e.endsWith(\"_\")&&(e=e.substring(0,e.length-1)),e=e+z0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return tc(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function AK(r,t){let e=C(r,\"real\",\"complex\"),n=C(t,\"imag\",\"complex\");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return T.runKernel(Ap,o)}var Sn=k({complex_:AK});function an(r,t,e,n){if(n==null)n=Wl(r);else if(n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(rx(r)||ex(r)){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!sr(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(t!=null){Le(t);let o=jt(t),s=jt(e);_(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!sr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?qp(r,n):si(r,[],!0),T.makeTensor(r,t,n)}function ir(r,t,e){let n=Gr(r,e);return an(r,t,n,e)}var dl={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Wr=class r{static join(t){return new r(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(n=>sr(n)?n.buffer:n),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=DK(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function DK(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}function ydt(){L().set(\"PROD\",!0)}function bdt(){L().set(\"DEBUG\",!0)}function wdt(){L().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function B0(r){L().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}J_(B0);function Idt(){T.disposeVariables()}function Bn(){return T}function ah(){return T.memory()}function Cdt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){sh(r).forEach(e=>e.dispose())}function De(r){return T.keep(r)}function vdt(r){return T.time(r)}function $K(r){return T.setBackend(r)}function Sdt(){return T.ready()}function rE(){return T.backendName}function Ndt(r){T.removeBackend(r)}function kdt(r){return T.findBackend(r)}function Tdt(r){return T.findBackendFactory(r)}function Xp(r,t,e=1){return T.registerBackend(r,t,e)}function ox(){return T.backend}function _dt(r,t){L().setPlatform(r,t)}var hu=4;async function sE(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+hu*m.length,d=new Uint8Array(f),h=0;for(let g=0;ge.slice(o+a,o+u));n[s.name]=iE(s,e.slice(o,o+i)),o+=i}return n}function RK(r,t){let e=jt(r.shape),n;if(\"quantization\"in r){let o=r.quantization;n=dl[o.dtype]}else if(r.dtype===\"string\"){let o=0;for(let s=0;s(o=await nE(n,o,c),o.slice(l,c)));o=await nE(n,o,i);let a=o.slice(0,i);o=o.slice(i);let u=iE(s,a);if(e[s.name]=u,rE()===\"webgpu\"){let l=ox();\"uploadToGPU\"in l&&jt(u.shape)>=L().get(\"WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD\")&&l.uploadToGPU(u.dataId)}}return e}function OK(r){if(r===null)throw new Error(`Invalid input value: ${JSON.stringify(r)}`);let t=0,e=[];r.forEach(s=>{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var V0=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function oE(r){return V0?Buffer.byteLength(r,\"utf8\"):new Blob([r]).size}function aE(r){if(V0)return Buffer.from(r).toString(\"base64\");let t=new Uint8Array(r),e=\"\";for(let n=0,o=t.length;n{let n=e<<13,o=0;for(;!(n&8388608);)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function PK(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function LK(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function zK(){let r=MK(),t=PK(),e=LK();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Cr=class r{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return r.instance==null&&(r.instance=new r),r.instance}static registerSaveRouter(t){r.getInstance().saveRouters.push(t)}static registerLoadRouter(t){r.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return r.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return r.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?r.getInstance().loadRouters:r.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},cE=r=>Cr.registerSaveRouter(r),pE=r=>Cr.registerLoadRouter(r),mE=r=>Cr.getSaveHandlers(r),fE=(r,t)=>Cr.getLoadHandlers(r,t);var U0=\"tensorflowjs\",H0=1,uc=\"models_store\",gu=\"model_info_store\";function dE(){if(!L().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,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error(\"The current browser does not appear to support IndexedDB.\");return t}function q0(r){let t=r.result;t.createObjectStore(uc,{keyPath:\"modelPath\"}),t.createObjectStore(gu,{keyPath:\"modelPath\"})}var Qi=class{constructor(t){if(this.indexedDB=dE(),t==null||!t)throw new Error(\"For IndexedDB, modelPath must not be null, undefined or empty.\");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open(U0,H0);s.onupgradeneeded=()=>q0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(uc,\"readonly\"),l=a.objectStore(uc).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{e.weightData=Wr.join(e.weightData);let a=Ji(e),u=i.transaction(gu,\"readwrite\"),l=u.objectStore(gu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(uc,\"readwrite\");let m=p.objectStore(uc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(gu);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Qi.URL_SCHEME=\"indexeddb://\";var hE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Qi.URL_SCHEME)?BK(r.slice(Qi.URL_SCHEME.length)):null;Cr.registerSaveRouter(hE);Cr.registerLoadRouter(hE);function BK(r){return new Qi(r)}function VK(r){return r.startsWith(Qi.URL_SCHEME)?r.slice(Qi.URL_SCHEME.length):r}var lx=class{constructor(){this.indexedDB=dE()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(U0,H0);n.onupgradeneeded=()=>q0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(gu,\"readonly\"),a=s.objectStore(gu).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=VK(t),new Promise((e,n)=>{let o=this.indexedDB.open(U0,H0);o.onupgradeneeded=()=>q0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(gu,\"readwrite\"),a=i.objectStore(gu),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(uc,\"readwrite\");let f=l.objectStore(uc).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var hl=\"/\",Zp=\"tensorflowjs_models\",gE=\"info\",GK=\"model_topology\",WK=\"weight_specs\",UK=\"weight_data\",HK=\"model_metadata\";function xE(r){return{info:[Zp,r,gE].join(hl),topology:[Zp,r,GK].join(hl),weightSpecs:[Zp,r,WK].join(hl),weightData:[Zp,r,UK].join(hl),modelMetadata:[Zp,r,HK].join(hl)}}function yE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function qK(r){let t=r.split(hl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(hl)}function KK(r){return r.startsWith(ta.URL_SCHEME)?r.slice(ta.URL_SCHEME.length):r}var ta=class{constructor(t){if(!L().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,t==null||!t)throw new Error(\"For local storage, modelPath must not be null, undefined or empty.\");this.modelPath=t,this.keys=xE(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ji(t),s=Wr.join(t.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,aE(s));let i={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(i)),{modelArtifactsInfo:o}}catch(i){throw yE(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!==\"JSON\")throw new Error(\"BrowserLocalStorage does not support loading non-JSON model topology yet.\");let e={},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.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=lE(i),e}};ta.URL_SCHEME=\"localstorage://\";var bE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ta.URL_SCHEME)?jK(r.slice(ta.URL_SCHEME.length)):null;Cr.registerSaveRouter(bE);Cr.registerLoadRouter(bE);function jK(r){return new ta(r)}var ux=class{constructor(){_(L().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 t={},e=Zp+hl,n=hl+gE;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(Jp)&&(t=t.slice(0,t.indexOf(Jp))),_(t.length>0,()=>\"scheme must not be an empty string.\");let n=r.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(r.getInstance().managers)}};function cx(r){if(r.indexOf(Jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${ai.getSchemes().join(\",\")}`);return{scheme:r.split(Jp)[0],path:r.split(Jp)[1]}}async function wE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Cr.getLoadHandlers(r);_(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),_(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Cr.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 (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=cx(r).scheme,u=cx(r).path,l=a===cx(r).scheme,c=await o.load();e&&l&&await ai.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await ai.getManager(a).removeModel(u),p.modelArtifactsInfo}async function IE(){let r=ai.getSchemes(),t={};for(let e of r){let n=await ai.getManager(e).listModels();for(let o in n){let s=e+Jp+o;t[s]=n[o]}}return t}async function CE(r){let t=cx(r);return ai.getManager(t.scheme).removeModel(t.path)}async function vE(r,t){return wE(r,t,!1)}async function SE(r,t){return wE(r,t,!0)}var K0=class{constructor(){this.messageName=\"setTimeoutCustom\",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window==\"undefined\"||!L().getBool(\"USE_SETTIMEOUTCUSTOM\")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},\"*\")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener(\"message\",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(t){return Yg(t)}};if(L().get(\"IS_BROWSER\")){L().setPlatform(\"browser\",new K0);try{ai.registerManager(ta.URL_SCHEME,new ux)}catch(r){}try{ai.registerManager(Qi.URL_SCHEME,new lx)}catch(r){}}var XK={importFetch:()=>NE()},j0;var X0=class{constructor(){this.util=kE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(j0==null&&(j0=XK.importFetch()),j0(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?\"\":new this.util.TextDecoder(e).decode(t)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get(\"IS_NODE\")&&!L().get(\"IS_BROWSER\")&&L().setPlatform(\"node\",new X0);function wt(r,t=\"float32\",e){return t=t||\"float32\",Le(r),new le(r,t,e)}function YK(r,t){let e=C(r,\"x\",\"cast\");if(!g0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t===\"string\"&&e.dtype!==\"string\"||t!==\"string\"&&e.dtype===\"string\")throw new Error(\"Only strings can be casted to strings\");let n={x:e},o={dtype:t};return T.runKernel(fo,n,o)}var J=k({cast_:YK});function ZK(r){let e={x:C(r,\"x\",\"clone\",\"string_or_numeric\")};return T.runKernel(go,e)}var ln=k({clone_:ZK});function px(r,t=!1){console.log(r.toString(t))}M0();var JK={buffer:wt,cast:J,clone:ln,print:px};Z_(JK);function QK(r,t){let e=C(r,\"a\",\"add\"),n=C(t,\"b\",\"add\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(no,o)}var X=k({add_:QK});function tj(r,t){let e=C(r,\"a\",\"floorDiv\"),n=C(t,\"b\",\"floorDiv\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(fs,o)}var Qp=k({floorDiv_:tj});function ej(r,t){let e=C(r,\"a\",\"div\"),n=C(t,\"b\",\"div\");if([e,n]=Xt(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return Qp(e,n);let o={a:e,b:n},s={};return T.runKernel(as,o,s)}var ct=k({div_:ej});function rj(r,t){let e=C(r,\"a\",\"mul\"),n=C(t,\"b\",\"mul\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Ds,o)}var $=k({mul_:rj});function nj(r){let t=C(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return T.runKernel(Kl,e)}else{let e={x:t};return T.runKernel(Ei,e)}}var _e=k({abs_:nj});function oj(r){let e={x:C(r,\"x\",\"acos\")};return T.runKernel(Go,e)}var mx=k({acos_:oj});function sj(r){let e={x:C(r,\"x\",\"acosh\")};return T.runKernel(Wo,e)}var fx=k({acosh_:sj});function ij(r){_(Array.isArray(r),()=>\"The argument passed to tf.addN() must be a list of tensors\"),_(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>C(o,`tensors${s}`,\"addN\")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(o=>{if(!on(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return T.runKernel(Uo,n)}var TE=k({addN_:ij});function aj(r,t=null,e=!1){let o={x:C(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Ea,o,s)}var tm=k({all_:aj});function lj(r,t=null,e=!1){let o={x:C(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Aa,o,s)}var cc=k({any_:lj});function uj(r,t=0){let n={x:C(r,\"x\",\"argMax\")},o={axis:t};return T.runKernel(Ai,n,o)}var ea=k({argMax_:uj});function cj(r,t=0){let n={x:C(r,\"x\",\"argMin\")},o={axis:t};return T.runKernel(Di,n,o)}var dx=k({argMin_:cj});function pj(r){let e={x:C(r,\"x\",\"asin\")};return T.runKernel(Ho,e)}var hx=k({asin_:pj});function mj(r){let e={x:C(r,\"x\",\"asinh\")};return T.runKernel(qo,e)}var gx=k({asinh_:mj});function fj(r){let e={x:C(r,\"x\",\"atan\")};return T.runKernel(Ko,e)}var xx=k({atan_:fj});function dj(r,t){let e=C(r,\"a\",\"atan2\"),n=C(t,\"b\",\"atan2\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Xo,o)}var yx=k({atan2_:dj});function hj(r){let e={x:C(r,\"x\",\"atanh\")};return T.runKernel(jo,e)}var bx=k({atanh_:hj});function gj(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=EE(o);return pc(r,a,e,s,n,null,null,u)}function Z0(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=uh(t),l;if(i===\"channelsLast\")l=[a,u,r[3],r[3]];else if(i===\"channelsFirst\")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return pc(r,l,e,n,o,s,!1,i)}function xj(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=Y0(t),c,p;if(i===\"NDHWC\")p=\"channelsLast\",c=[a,u,l,r[4],r[4]];else if(i===\"NCDHW\")p=\"channelsFirst\",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return _E(r,c,e,n,o,!1,p,s)}function pc(r,t,e,n,o,s,i=!1,a=\"channelsLast\"){let[u,l,c,p]=[-1,-1,-1,-1];if(a===\"channelsLast\")[u,l,c,p]=r;else if(a===\"channelsFirst\")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=uh(e),[x,b]=uh(n),w=em(m,x),I=em(f,b),{padInfo:N,outHeight:E,outWidth:A}=wj(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,D,E,A]:a===\"channelsLast\"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function _E(r,t,e,n,o,s=!1,i=\"channelsLast\",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i===\"channelsLast\")[u,l,c,p,m]=r;else if(i===\"channelsFirst\")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=Y0(e),[I,N,E]=Y0(n),A=em(f,I),D=em(d,N),F=em(h,E),{padInfo:M,outDepth:V,outHeight:G,outWidth:W}=Ij(o,l,c,p,x,b,w,A,D,F,a),q=s?g*m:g,H;return i===\"channelsFirst\"?H=[u,q,V,G,W]:i===\"channelsLast\"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:M,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function yj(r,t,e,n,o){n==null&&(n=J0(r,t,e));let s=r[0],i=r[1],a=ch((s-t+2*n)/e+1,o),u=ch((i-t+2*n)/e+1,o);return[a,u]}function bj(r,t,e,n,o,s){o==null&&(o=J0(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=ch((r[a]-t[a]+2*o)/n[a]+1,s));return i}function J0(r,t,e,n=1){let o=em(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function uh(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function Y0(r){return typeof r==\"number\"?[r,r,r]:r}function em(r,t){return t<=1?r:r+(r-1)*(t-1)}function wj(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r==\"number\"){l={top:r,bottom:r,left:r,right:r,type:r===0?\"VALID\":\"NUMBER\"};let f=yj([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r===\"same\"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:\"SAME\"}}else if(r===\"valid\")l={top:0,bottom:0,left:0,right:0,type:\"VALID\"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r==\"object\"){let m=u===\"channelsLast\"?r[1][0]:r[2][0],f=u===\"channelsLast\"?r[1][1]:r[2][1],d=u===\"channelsLast\"?r[2][0]:r[3][0],h=u===\"channelsLast\"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?\"VALID\":\"EXPLICIT\"},c=ch((t-s+m+f)/n+1,a),p=ch((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function Ij(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r===\"valid\"&&(r=0),typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=bj([t,e,n,1],[a,u,l],1,[o,s,i],r,c);m=g[0],f=g[1],d=g[2]}else if(r===\"same\"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:\"SAME\"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function ch(r,t){if(!t)return Math.trunc(r);switch(t){case\"round\":return Math.round(r);case\"ceil\":return Math.ceil(r);case\"floor\":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function io(r){let[t,e,n]=uh(r);return t===1&&e===1&&n===1}function Dr(r,t){return io(r)||io(t)}function ra(r){return uh(r).every(t=>t>0)}function EE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function ve(r,t,e){if(e!=null){if(typeof t==\"string\")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t==\"number\")_(_a(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t==\"object\")t.forEach(n=>{n.forEach(o=>{_(_a(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function Cj(r,t){let n={x:C(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return T.runKernel(Vi,n,o)}var R=k({reshape_:Cj});function vj(r,t,e,n,o){let s=C(r,\"x\",\"avgPool\",\"float32\"),i=1;_(Dr(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),ve(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Yo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var xu=k({avgPool_:vj});function Sj(r,t,e,n,o,s=\"NDHWC\"){let i=C(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s===\"NDHWC\",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),_(typeof e==\"number\"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),ve(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel($i,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var wx=k({avgPool3d_:Sj});function Nj(r,t=0){_(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=fl(r,\"tensors\",\"concat\",\"string_or_numeric\");if(e[0].dtype===\"complex64\"&&e.forEach(s=>{if(s.dtype!==\"complex64\")throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${s.dtype}. `)}),e.length===1)return ln(e[0]);let n=e,o={axis:t};return T.runKernel(Fi,n,o)}var ie=k({concat_:Nj});function kj(r,t,e=!1,n=!1){let o=C(r,\"a\",\"matMul\"),s=C(t,\"b\",\"matMul\");[o,s]=Xt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(Zo,i,a)}var Bt=k({matMul_:kj});function Tj(r){let e={x:C(r,\"x\",\"sigmoid\",\"float32\")};return T.runKernel(Xs,e)}var Qr=k({sigmoid_:Tj});function _j(r,t,e){let n=C(r,\"x\",\"slice\",\"string_or_numeric\");if(n.rank===0)throw new Error(\"Slicing scalar is not possible\");let o={x:n},s={begin:t,size:e};return T.runKernel(Wi,o,s)}var Ot=k({slice_:_j});function Ej(r){let e={x:C(r,\"x\",\"tanh\",\"float32\")};return T.runKernel(ni,e)}var na=k({tanh_:Ej});function Aj(r,t,e,n,o,s){let i=C(r,\"forgetBias\",\"basicLSTMCell\"),a=C(t,\"lstmKernel\",\"basicLSTMCell\"),u=C(e,\"lstmBias\",\"basicLSTMCell\"),l=C(n,\"data\",\"basicLSTMCell\"),c=C(o,\"c\",\"basicLSTMCell\"),p=C(s,\"h\",\"basicLSTMCell\"),m=ie([l,p],1),f=Bt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),I=Ot(d,[0,g*2],x),N=Ot(d,[0,g*3],x),E=X($(Qr(b),na(w)),$(c,Qr(X(i,I)))),A=$(na(E),Qr(N));return[E,A]}var AE=k({basicLSTMCell_:Aj});function Dj(r,t,e){let n=C(r,\"x\",\"batchToSpaceND\"),o=t.reduce((a,u)=>a*u);_(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),_(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),_(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(\" * \")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return T.runKernel(Ri,s,i)}var yu=k({batchToSpaceND_:Dj});function DE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function $j(r,t,e,n,o,s){s==null&&(s=.001);let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(a.rank===u.rank,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),_(c==null||a.rank===c.rank,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),_(l==null||a.rank===l.rank,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let m={x:DE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ds,m,f);return R(d,i.shape)}var oa=k({batchNorm_:$j});function Rj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),_(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),_(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Ix=k({batchNorm2d_:Rj});function Fj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),_(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),_(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Cx=k({batchNorm3d_:Fj});function Oj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),_(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),_(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var vx=k({batchNorm4d_:Oj});function Mj(r,t,e){let n=C(r,\"x\",\"bincount\"),o=C(t,\"weights\",\"bincount\");_(n.dtype===\"int32\",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return T.runKernel(Da,s,i)}var Sx=k({bincount_:Mj});function Pj(r,t){let e=C(r,\"x\",\"bitwiseAnd\"),n=C(t,\"y\",\"bitwiseAnd\");if(!on(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!==\"int32\"||n.dtype!==\"int32\")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel($a,o)}var $E=k({bitwiseAnd_:Pj});function Lj(r,t){let e=C(r,\"s0\",\"broadcastArgs\",\"int32\"),n=C(t,\"s1\",\"broadcastArgs\",\"int32\");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return T.runKernel(ql,o)}var RE=k({broadcastArgs_:Lj});function zj(r,t){let e=C(r,\"broadcastTo\",\"x\"),n=e.shape;if(Le(t),t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return ln(e);let a={x:e},u={reps:s};return T.runKernel(oo,a,u)}var sa=k({broadcastTo_:zj});function Bj(r){let e={x:C(r,\"x\",\"ceil\",\"float32\")};return T.runKernel(Jo,e)}var Nx=k({ceil_:Bj});function Co(r,t,e){Le(r),e=e||Wl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(Jl,{},n)}function Vj(r,t,e){let n=C(r,\"x\",\"clipByValue\");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return Co(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(ho,o,s)}var vr=k({clipByValue_:Vj});function Gj(r){return ie(r,0)}var kx=k({concat1d_:Gj});function Wj(r,t){return ie(r,t)}var Tx=k({concat2d_:Wj});function Uj(r,t){return ie(r,t)}var _x=k({concat3d_:Uj});function Hj(r,t){return ie(r,t)}var Ex=k({concat4d_:Hj});function qj(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=C(r,\"x\",\"conv2d\",\"float32\"),u=C(t,\"filter\",\"conv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),ve(\"conv2d\",n,i);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(ra(s),()=>\"Error in conv2D: Dilated rates should be larger than 0.\"),_(ra(e),()=>\"Error in conv2D: Strides should be larger than 0.\");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(Qo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Nn=k({conv2d_:qj});function Kj(r,t,e,n,o=\"NWC\",s=1,i){let a=C(r,\"x\",\"conv1d\"),u=C(t,\"filter\",\"conv1d\"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),_(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),_(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),ve(\"conv1d\",n,i),_(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),_(Dr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(ra(s),()=>\"Error in conv1D: Dilated rates should be larger than 0.\"),_(ra(e),()=>\"Error in conv1D: Stride should be larger than 0.\"),_(o===\"NWC\",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Nn(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var rm=k({conv1d_:Kj});function jj(r,t,e,n,o,s=\"NHWC\",i){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),_(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),_(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),_(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s===\"NHWC\"?a[3]:a[1],p=s===\"NHWC\"?u.shape[3]:u.shape[1];_(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),_(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),ve(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(ts,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var nm=k({conv2DBackpropInput_:jj});function Xj(r,t,e,n,o,s){let i=C(r,\"x\",\"conv2dTranspose\"),a=C(t,\"filter\",\"conv2dTranspose\");return nm(e,i,a,n,o,\"NHWC\",s)}var om=k({conv2dTranspose_:Xj});function Yj(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=C(r,\"x\",\"conv3d\"),a=C(t,\"filter\",\"conv3d\"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),_(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),_(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),_(Dr(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(o===\"NDHWC\",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`),_(ra(s),()=>\"Error in conv3D: Dilated rates should be larger than 0.\"),_(ra(e),()=>\"Error in conv3D: Strides should be larger than 0.\");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(es,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Ax=k({conv3d_:Yj});function Zj(r,t,e,n,o){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=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}`),_(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),_(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),_(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=T.runKernel(Fa,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Dx=k({conv3DBackpropInput_:Zj});function Jj(r,t,e,n,o){let s=C(r,\"x\",\"conv3dTranspose\"),i=C(t,\"filter\",\"conv3dTranspose\");return Dx(e,s,i,n,o)}var $x=k({conv3dTranspose_:Jj});function Qj(r){let e={x:C(r,\"x\",\"cos\",\"float32\")};return T.runKernel(rs,e)}var bu=k({cos_:Qj});function t6(r){let e={x:C(r,\"x\",\"cosh\",\"float32\")};return T.runKernel(ns,e)}var sm=k({cosh_:t6});function e6(r,t=0,e=!1,n=!1){let s={x:C(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Oa,s,i)}var mc=k({cumprod_:e6});function r6(r,t=0,e=!1,n=!1){let s={x:C(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(os,s,i)}var im=k({cumsum_:r6});function n6(r,t,e,n=!1){let o=C(r,\"x\",\"denseBincount\"),s=C(t,\"weights\",\"denseBincount\");_(o.dtype===\"int32\",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),_(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return T.runKernel(jl,i,a)}var ph=k({denseBincount_:n6});function o6(r,t,e=\"NHWC\"){let n=C(r,\"x\",\"depthToSpace\",\"float32\"),o=e===\"NHWC\"?n.shape[1]:n.shape[2],s=e===\"NHWC\"?n.shape[2]:n.shape[3],i=e===\"NHWC\"?n.shape[3]:n.shape[1];_(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),_(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`),_(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${n.shape}`),_(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return T.runKernel(Pa,a,u)}var Rx=k({depthToSpace_:o6});function s6(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=C(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=C(t,\"filter\",\"depthwiseConv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),ve(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ss,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ia=k({depthwiseConv2d_:s6});function i6(r){let e={x:C(r,\"x\",\"diag\")};return T.runKernel(Xl,e)}var FE=k({diag_:i6});function a6(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=C(r,\"x\",\"dilation2d\"),a=C(t,\"filter\",\"dilation2d\");_(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),_(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),_(s===\"NHWC\",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(is,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Fx=k({dilation2d_:a6});var Ur={};Kt(Ur,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>OE,getReductionAxes:()=>be});function OE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function be(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(_(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Bt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var Mx=k({dot_:m6});function f6(r,...t){let e=t.map((o,s)=>C(o,`tensors${s}`,\"einsum\")),n={equation:r};return T.runKernel(Fp,e,n)}var wu=k({einsum_:f6});function d6(r){let e={x:C(r,\"x\",\"elu\",\"float32\")};return T.runKernel(ls,e)}var aa=k({elu_:d6});function h6(r,t){let e=C(r,\"x\",\"ensureShape\",\"string_or_numeric\");if(!m0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var ME=k({ensureShape_:h6});function g6(r){let t=C(r,\"x\",\"erf\");_(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=J(t,\"float32\"));let e={x:t};return T.runKernel(us,e)}var Px=k({erf_:g6});function Q0(r,t){for(let e=0;er[s]);return[e,o]}function vo(r,t){let e=t.map(n=>1);return PE(r,e,t)}function x6(r,t,e){_(Q0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function eN(r,t){if(Q0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function mh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function y6(r,t){let e=[];for(let n=t-r;n\"Axis must be <= rank of the tensor\");let n={input:e},o={dim:t};return T.runKernel(Oi,n,o)}var je=k({expandDims_:_6});function E6(r){let e={x:C(r,\"x\",\"expm1\")};return T.runKernel(ps,e)}var zx=k({expm1_:E6});function A6(r,t){let e=C(r,\"x\",\"tile\",\"string_or_numeric\");_(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return T.runKernel(oo,n,o)}var Rr=k({tile_:A6});function D6(r,t,e,n=\"float32\"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`),_(_a(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=T.runKernel(Cs,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Wx=k({localResponseNormalization_:W6});function U6(r){let e={x:C(r,\"x\",\"log\",\"float32\")};return T.runKernel(ws,e)}var Nr=k({log_:U6});function H6(r){let e={x:C(r,\"x\",\"log1p\")};return T.runKernel(Is,e)}var vu=k({log1p_:H6});function q6(r){return _(Ti(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=C(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?C(e,\"dy\",\"tf.grad\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),Hx(i),i[0]})}}function K6(r){return _(Ti(r),()=>\"The f passed in grads(f) must be a function\"),(t,e)=>{_(Array.isArray(t),()=>\"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s\");let n=fl(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?C(e,\"dy\",\"tf.grads\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Hx(i),i})}}function j6(r){return _(Ti(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{_(t instanceof Lt,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),_(e==null||e instanceof Lt,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return Hx(n),{grad:n[0],value:o}}}function X6(r){return _(Ti(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Lt),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),_(e==null||e instanceof Lt,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=T.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Hx(n.grads),n}}function Ux(r,t){_(Ti(r),()=>\"The f passed in variableGrads(f) must be a function\"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof ml),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),_(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=T.gradients(r,t,null,s);_(a.some(l=>l!=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 u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function pn(r){return T.customGrad(r)}function Hx(r){if(r.filter(e=>e==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.`)}function Y6(r){let e={x:C(r,\"x\",\"neg\")};return T.runKernel(Li,e)}var Ut=k({neg_:Y6});function Z6(r){let e={x:C(r,\"x\",\"softplus\")};return T.runKernel(Ys,e)}var li=k({softplus_:Z6});function J6(r){let t=C(r,\"x\",\"logSigmoid\");return pn(n=>({value:Ut(li(Ut(n))),gradFunc:i=>$(i,Qr(Ut(n)))}))(t)}var qx=k({logSigmoid_:J6});function Q6(r,t){let e=C(r,\"a\",\"sub\"),n=C(t,\"b\",\"sub\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(ei,o)}var at=k({sub_:Q6});function tX(r,t=-1){let e=C(r,\"logits\",\"logSoftmax\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return pn((o,s)=>{let a=Sr(o,t,!0),u=at(o,a),l=at(J(u,\"float32\"),Nr(mt(Ke(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Ke(f);return at(p,$(mt(p,t,d),h))}}})(e)}var am=k({logSoftmax_:tX});function eX(r,t=null,e=!1){let n=C(r,\"x\",\"logSumExp\"),o=fr(t,n.shape),s=Sr(n,o,!0),i=at(n,s),a=Ke(i),u=mt(a,o),l=Nr(u),c=X(R(s,l.shape),l);if(e){let p=vo(c.shape,o);return R(c,p)}return c}var Su=k({logSumExp_:eX});function rX(r,t){let e=C(r,\"a\",\"logicalAnd\",\"bool\"),n=C(t,\"b\",\"logicalAnd\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(qa,o)}var Fr=k({logicalAnd_:rX});function nX(r){let e={x:C(r,\"x\",\"logicalNot\",\"bool\")};return T.runKernel(Ka,e)}var Nu=k({logicalNot_:nX});function oX(r,t){let e=C(r,\"a\",\"logicalOr\",\"bool\"),n=C(t,\"b\",\"logicalOr\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ja,o)}var lm=k({logicalOr_:oX});function sX(r,t){let e=C(r,\"a\",\"logicalXor\",\"bool\"),n=C(t,\"b\",\"logicalXor\",\"bool\");return Mt(e.shape,n.shape),Fr(lm(r,t),Nu(Fr(r,t)))}var Kx=k({logicalXor_:sX});var jx=2147483648;function iX(r,t,e=\"left\"){let n=C(r,\"sortedSequence\",\"searchSorted\"),o=C(t,\"values\",\"searchSorted\"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error(\"Sorted input argument must be at least 2-dimensional\");if(a.shape[0]!==u.shape[0])throw new Error(\"Leading dimension of 'sortedSequence' and 'values' must match.\");if(jt(u.shape)>=jx)throw new Error(`values tensor size must less than ${jx}`);if(a.shape[1]>=jx)throw new Error(`trailing dim_size must less than ${jx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(sl,l,c)}var fh=k({searchSorted_:iX});function BE(r,t){return fh(r,t,\"left\")}function aX(r,t,e,n,o){let s=C(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),_(Dr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),ve(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Ns,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ku=k({maxPool_:aX});function lX(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=C(r,\"x\",\"maxPool3d\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s===\"NDHWC\",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),ve(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Pi,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Xx=k({maxPool3d_:lX});function uX(r,t,e,n,o=!1){let i={x:C(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(eu,i,a);return{result:u[0],indexes:u[1]}}var VE=k({maxPoolWithArgmax_:uX});function cX(r,t){let e=C(r,\"a\",\"maximum\"),n=C(t,\"b\",\"maximum\");[e,n]=Xt(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ss,o)}var kn=k({maximum_:cX});function pX(r,t=null,e=!1){let o={x:C(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return T.runKernel(ks,o,s)}var Ne=k({mean_:pX});function ke(r,t=\"float32\"){if(Le(r),t===\"complex64\"){let n=ke(r,\"float32\"),o=ke(r,\"float32\");return Sn(n,o)}let e=Ep(jt(r),t);return T.makeTensor(e,r,t)}function ar(r,t=\"float32\"){if(Le(r),t===\"complex64\"){let n=ar(r,\"float32\"),o=ke(r,\"float32\");return Sn(n,o)}let e=Xd(jt(r),t);return T.makeTensor(e,r,t)}function GE(r,t,{indexing:e=\"xy\"}={}){if(e!==\"xy\"&&e!==\"ij\")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=C(r,\"x\",\"meshgrid\",r instanceof Lt?r.dtype:\"float32\");if(t===void 0)return[n];let o=C(t,\"y\",\"meshgrid\",t instanceof Lt?t.dtype:\"float32\"),s=jt(n.shape),i=jt(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(ar([i,1],n.dtype),n),Bt(o,ar([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,ar([1,i],n.dtype)),Bt(ar([s,1],o.dtype),o)])}function mX(r,t){let e=C(r,\"a\",\"minimum\"),n=C(t,\"b\",\"minimum\");[e,n]=Xt(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(_s,o)}var lo=k({minimum_:mX});function fX(r,t,e){_(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=C(r,\"x\",\"mirrorPad\");if(n.rank===0)throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");_(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e===\"reflect\"?1:0;for(let a=0;a\"Invalid number of paddings. Must be length of 2 each.\"),_(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return T.runKernel(Es,i,s)}var Yx=k({mirrorPad_:fX});function dX(r,t){let e=C(r,\"a\",\"mod\"),n=C(t,\"b\",\"mod\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(As,o)}var Zx=k({mod_:dX});function hX(r,t=null,e=!1){r=C(r,\"x\",\"moments\");let n=fr(t,r.shape),o=Ne(r,n,e),s=o.shape;e||(s=vo(o.shape,n));let i=Wt(at(J(r,\"float32\"),R(o,s))),a=Ne(i,n,e);return{mean:o,variance:a}}var dc=k({moments_:hX});function gX(r,t,e,n){let o=C(t,\"data\",\"multiRNNCell\"),s=fl(e,\"c\",\"multiRNNCell\"),i=fl(n,\"h\",\"multiRNNCell\"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=T.runKernel(Ya,u,l);return i===1?R(c,[c.size]):c}var UE=k({multinomial_:xX});function yX(r,t){let e=C(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=C(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Za,o)}var ui=k({notEqual_:yX});function bX(r,t,e=1,n=0,o=\"int32\"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:C(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return T.runKernel($s,i,a)}var ca=k({oneHot_:bX});function wX(r){let e={x:C(r,\"x\",\"onesLike\")};return T.runKernel(zi,e)}var wr=k({onesLike_:wX});function IX(r,t){let e=C(r,\"v1\",\"outerProduct\"),n=C(t,\"v2\",\"outerProduct\");_(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Bt(o,s)}var HE=k({outerProduct_:IX});function CX(r,t,e=0){let n=C(r,\"x\",\"pad\");if(n.rank===0)throw new Error(\"pad(scalar) is not defined. Pass non-scalar to pad\");let o={paddings:t,constantValue:e},s={x:n};return T.runKernel(Rs,s,o)}var mn=k({pad_:CX});function vX(r,t,e=0){return _(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),mn(r,[t],e)}var qE=k({pad1d_:vX});function SX(r,t,e=0){return _(t.length===2&&t[0].length===2&&t[1].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),mn(r,t,e)}var KE=k({pad2d_:SX});function NX(r,t,e=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.\"),mn(r,t,e)}var jE=k({pad3d_:NX});function kX(r,t,e=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.\"),mn(r,t,e)}var XE=k({pad4d_:kX});function TX(r,t,e){let n=C(r,\"x\",\"spaceToBatchND\");_(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),_(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),_(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return T.runKernel(Ui,o,s)}var Tu=k({spaceToBatchND_:TX});function _X(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=C(r,\"x\",\"maxPool\"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(Dr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Z0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=AX([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=EX([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:Tu(u,p,d),w=(e===\"avg\"?()=>xu(x,t,s,g,i):()=>ku(x,t,s,g,i))(),I=f?w:yu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function EX(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function AX(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var Jx=k({pool_:_X});function DX(r,t){let e=C(r,\"x\",\"prelu\"),n=C(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return T.runKernel(Os,o)}var _u=k({prelu_:DX});function $X(r,t=null,e=!1){let n=C(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=J(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Ms,o,s)}var Qx=k({prod_:$X});function RX(r,t,e,n){let o=r.map((c,p)=>C(c,`tensors${p}`,\"raggedGather\",\"int32\")),s=C(t,\"paramsDenseValues\",\"raggedGather\"),i=C(e,\"indices\",\"raggedGather\",\"int32\"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=T.runKernel(Lp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var YE=k({raggedGather_:RX});function FX(r,t,e){let n=C(r,\"starts\",\"raggedRange\"),o=C(t,\"limits\",\"raggedRange\",n.dtype),s=C(e,\"deltas\",\"raggedRange\",n.dtype),i={starts:n,limits:o,deltas:s},a=T.runKernel(zp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var ZE=k({raggedRange_:FX});function OX(r,t,e,n,o){let s=C(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=C(t,\"values\",\"raggedTensorToTensor\"),a=C(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>C(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return T.runKernel(Bp,l,c)}var JE=k({raggedTensorToTensor_:OX});function MX(r,t,e){Le(r);let n=jt(r),o=null;if(e==null||e===\"float32\")o=new Float32Array(n);else if(e===\"int32\")o=new Int32Array(n);else if(e===\"bool\")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;sgA,createVideoElement:()=>XX,encodeStrings:()=>yA,expectArrayBuffersEqual:()=>jX,expectArraysClose:()=>UX,expectArraysEqual:()=>qX,expectNumbersClose:()=>xA,expectPromiseToFail:()=>HX,expectValuesInRange:()=>KX,play:()=>YX,testEpsilon:()=>ey});var WX=.001,gA=.1;function UX(r,t,e){return e==null&&(e=ey()),uN(r,t,(n,o)=>cN(n,o,e))}function ey(){return T.backend.floatPrecision()===32?WX:gA}function uN(r,t,e){let n=!0;if((sr(r)||sr(t))&&(n=!1),sr(r)&&sr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Gr(r),a=Gr(t);if(!on(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=sr(r)?r:si(r),s=sr(t)?t:si(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}.\nActual: ${o}.\nExpected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!=\"undefined\"&&expect().nothing()}function qX(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?uN(r,e,(n,o)=>n==o):uN(r,t,(n,o)=>cN(n,o,0))}function xA(r,t,e){if(e==null&&(e=ey()),!cN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function cN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function KX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function jX(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener(\"loadeddata\",n=>e(t)),t.load()})}async function YX(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var gc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=oy.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype===\"float32\"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},ry=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=oy.alea(s.toString()),this.randn=new gc(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype===\"float32\",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o==\"number\"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=oy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ZX(r,t,e=1,n=\"float32\",o){if(Le(r),e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new ry(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),dr(t,0)}var vA=k({reverse1d_:a5});function l5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),dr(e,t)}var SA=k({reverse2d_:l5});function u5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),dr(e,t)}var NA=k({reverse3d_:u5});function c5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),dr(e,t)}var kA=k({reverse4d_:c5});function p5(r){let e={x:C(r,\"x\",\"round\")};return T.runKernel(Ws,e)}var cm=k({round_:p5});function m5(r){let e={x:C(r,\"x\",\"rsqrt\",\"float32\")};return T.runKernel(Us,e)}var pm=k({rsqrt_:m5});function f5(r){let e={x:C(r,\"x\",\"selu\")};return T.runKernel(Hs,e)}var mm=k({selu_:f5});function d5(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=C(r,\"x\",\"separableConv2d\"),u=C(t,\"depthwiseFilter\",\"separableConv2d\"),l=C(e,\"pointwiseFilter\",\"separableConv2d\"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.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}.`),_(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),_(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),_(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];_(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=ia(c,u,n,o,i,s),g=Nn(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var fm=k({separableConv2d_:d5});async function h5(r,t){let e=C(r,\"x\",\"setdiff1d\"),n=C(t,\"y\",\"setdiff1d\");_(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),_(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),_(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Ot(n,[t],[e])}var gm=k({slice1d_:b5});function w5(r,t,e){let n=C(r,\"x\",\"slice2d\");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var hh=k({slice2d_:w5});function I5(r,t,e){let n=C(r,\"x\",\"slice3d\");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var xm=k({slice3d_:I5});function C5(r,t,e){let n=C(r,\"x\",\"slice4d\");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var yc=k({slice4d_:C5});function v5(r,t=-1){let e=C(r,\"logits\",\"softmax\",\"float32\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return T.runKernel(Qs,n,o)}var Eu=k({softmax_:v5});function S5(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Op,t)}var Au=k({fft_:S5});function N5(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Mp,t)}var wl=k({ifft_:N5});function k5(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=wl(o)}else{let o=[e,2*(t-1)],s=R(bl(r),[e,t]),i=R(Iu(r),[e,t]),a=dr(Ot(s,[0,1],[e,t-2]),1),u=$(dr(Ot(i,[0,1],[e,t-2]),1),pt(-1)),l=ie([s,a],1),c=ie([i,u],1),p=R(Sn(l,c),[o[0],o[1]]);n=wl(p)}if(n=bl(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var ym=k({irfft_:k5});function T5(r,t,e=0){let o={x:C(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return T.runKernel(Hi,o,s)}var hr=k({split_:T5});function _5(r,t){_(r.dtype===\"float32\",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Ot(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ie([r,ke(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(Sn(o,s),[n,e]),a=Au(i),u=Math.floor(e/2)+1,l=bl(a),c=Iu(a),p=hr(l,[u,e-u],l.shape.length-1),m=hr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(Sn(p[0],m[0]),f)}var Du=k({rfft_:_5});function E5(r,t){let e=C(r,\"a\",\"squaredDifference\"),n=C(t,\"b\",\"squaredDifference\");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(ti,o,s)}var bm=k({squaredDifference_:E5});function A5(r,t){let e=C(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,f0(e.shape,t).newShape)}var Wn=k({squeeze_:A5});function D5(r,t=0){let e=fl(r,\"tensors\",\"stack\",\"string_or_numeric\");_(e.length>=1,()=>\"Pass at least one tensor to tf.stack\"),e.length>0&&_(t<=e[0].rank,()=>\"Axis must be <= rank of the tensor\");let n=e,o={axis:t};return T.runKernel(Bi,n,o)}var Fe=k({stack_:D5});function $5(r,t=0){let n={x:C(r,\"x\",\"step\")},o={alpha:t};return T.runKernel(xo,n,o)}var So=k({step_:$5});function R5(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:C(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return T.runKernel(ll,c,p)}var ay=k({stridedSlice_:R5});function F5(r){let e={x:C(r,\"x\",\"tan\",\"float32\")};return T.runKernel(ri,e)}var ly=k({tan_:F5});function Oe(r,t){ro(r);let e=Gr(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return an(r,null,e,t)}function ci(r,t,e){if(ro(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Gr(r,e);if(n.length!==2&&n.length!==1)throw new Error(\"tensor2d() requires values to be number[][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor2d() requires shape to be provided when `values` are a flat/TypedArray\");return an(r,t,n,e)}function uy(r,t,e){if(ro(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Gr(r,e);if(n.length!==3&&n.length!==1)throw new Error(\"tensor3d() requires values to be number[][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor3d() requires shape to be provided when `values` are a flat array\");return an(r,t,n,e)}function _A(r,t,e){if(ro(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Gr(r,e);if(n.length!==4&&n.length!==1)throw new Error(\"tensor4d() requires values to be number[][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor4d() requires shape to be provided when `values` are a flat array\");return an(r,t,n,e)}function EA(r,t,e){if(ro(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Gr(r,e);if(n.length!==5&&n.length!==1)throw new Error(\"tensor5d() requires values to be number[][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor5d() requires shape to be provided when `values` are a flat array\");return an(r,t,n,e)}function AA(r,t,e){if(ro(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Gr(r,e);if(n.length!==6&&n.length!==1)throw new Error(\"tensor6d() requires values to be number[][][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor6d() requires shape to be provided when `values` are a flat array\");return t=t||n,an(r,t,n,e)}var $u={};Kt($u,{calculateShapes:()=>DA,validateInput:()=>wm,validateUpdateShape:()=>pN});function pN(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;p= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=T.runKernel(ul,s,i);return{values:a,indices:u}}var cy=k({topk_:M5});function P5(r,t=0,e=1,n,o){if(Le(r),n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new gc(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=T.runKernel(cu,n,o);return{values:s,indices:i}}var py=k({unique_:L5});function z5(r,t,e){let n=C(r,\"x\",\"unsortedSegmentSum\"),o=C(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");_(_a(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(pu,s,i)}var Cm=k({unsortedSegmentSum_:z5});function B5(r,t=0){let e=C(r,\"x\",\"unstack\",\"string_or_numeric\");_(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return T.runKernel(qi,n,o)}var gr=k({unstack_:B5});function RA(r,t){return fh(r,t,\"right\")}function my(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function fy(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),$e(a.slice(s,s+i),o.shape,\"mask's shape must match the first K dimensions of tensor's shape,\");let u=1;for(let h=s;ha).reverse()),_(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{_(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype===\"complex64\"?B(()=>{let i=bl(n),a=Iu(n);return i=T.runKernel(so,{x:i},s),a=T.runKernel(so,{x:a},s),e&&(a=Ut(a)),Sn(i,a)}):T.runKernel(so,o,s)}var Vt=k({transpose_:U5});function H5(r,t,e,n,o=!0){let s=C(r,\"v\",\"movingAverage\"),i=C(t,\"x\",\"movingAverage\"),a=C(e,\"decay\",\"movingAverage\");F0(s,i),_(on(s.shape,i.shape),()=>\"Shape mismatch in v and x\");let u=pt(1),l=at(u,a),c=$(at(i,s),l);if(o){_(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=C(n,\"step\",\"movingAverage\");c=ct(c,at(u,un(a,p)))}return X(s,c)}var q5=k({movingAverage_:H5});function K5(r,t,e){Le(e);let n=C(r,\"indices\",\"scatterND\",\"int32\"),o=C(t,\"updates\",\"scatterND\");wm(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(nl,s,i)}var j5=k({scatterND_:K5});function FA(r,t,e,n){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 o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function Y5(r,t,e,n=0){Le(e);let o=C(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=C(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=C(n,\"defaultValue\",\"sparseToDense\",s.dtype);FA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(al,a,u)}var Z5=k({sparseToDense_:Y5});function J5(r,t){let e=C(t,\"indices\",\"gatherND\",\"int32\"),o={params:C(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return T.runKernel(Va,o)}var Q5=k({gatherND_:J5});function OA(r,t){if(t==null)return r.shape.slice();if(on(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),_(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Lt?o.clone():o;let s=OA(o,e),i=1-t,a=ct(la(X(Gn(s,0,1,\"float32\",n),i)),i);return $(o,a)}var mN=k({dropout_:t8});function fN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function gh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),_(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,\"predictions's shape should be align with the targets' shape, except the last dimension.\");let s=n.shape[n.shape.length-1];_(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=d0(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hMA,depthwiseConv2d:()=>PA,matMul:()=>LA});function n8(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),_(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),_(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),_(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s===\"NHWC\"?a.shape[3]:a.shape[1],c=s===\"NHWC\"?u.shape[3]:u.shape[1];_(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),_(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),ve(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Dp,p,m)}var vm=k({conv2DBackpropFilter_:n8});function bc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return $(r,So(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function wc(r,t){let e=t,n=be(r.shape,t.shape);return n.length>0&&(e=mt(e,n)),R(e,r.shape)}function Ic(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Or(r);if(t===\"elu\")return aa(r);if(t===\"relu6\")return um(r);if(t===\"prelu\")return _u(r,e);if(t===\"leakyrelu\")return Cu(r,n);if(t===\"sigmoid\")return Qr(r);throw new Error(`Unknown fused activation ${t}.`)}var Cc=(r,t)=>!(r>0)||t===\"linear\";function o8({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||\"linear\",Cc(T.state.gradientDepth,u)===!1){_(o===\"NHWC\",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let E=Nn(r,t,e,n,o,s,i);return a!=null&&(E=X(E,a)),Ic(E,u,l,c)}let p=C(r,\"x\",\"conv2d\",\"float32\"),m=C(t,\"filter\",\"conv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),ve(\"fused conv2d\",n,i);let h=o===\"NHWC\"?f.shape[3]:f.shape[1];_(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=pc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=C(a,\"bias\",\"fused conv2d\"),[x]=Xt(x,p),o===\"NHWC\"?Mt(g.outShape,x.shape):(_(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),_(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let E=l.shape;if(_(E.length<=1||E.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${E.length}.`),E.length===1)_(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=C(l,\"prelu weights\",\"fused conv2d\")}let w=(E,A)=>{_(o===\"NHWC\",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[D,F,M,V]=A,G=bc(E,M,u);_(io(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=nm(F.shape,G,D,e,n),q=vm(F,G,D.shape,e,n),H=[W,q];if(V!=null){let K=wc(V,G);H.push(K)}return H},I={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((A,D,F)=>{let M=T.runKernel(Xi,I,N);return F([D,A,M]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m):pn((A,D,F,M)=>{let V=T.runKernel(Xi,I,N);return M([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var MA=k({fusedConv2d_:o8});function s8(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return T.runKernel($p,l,c)}var hy=k({depthwiseConv2dNativeBackpropFilter_:s8});function i8(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=T.runKernel(Rp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var gy=k({depthwiseConv2dNativeBackpropInput_:i8});function a8({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(Cc(T.state.gradientDepth,u)===!1){let N=ia(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),Ic(N,u,l,c)}let p=C(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=C(t,\"filter\",\"depthwiseConv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),_(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]),_(Dr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),ve(\"fused depthwiseConv2d\",n,i);let h=pc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=C(a,\"bias\",\"fused conv2d\"),[g]=Xt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=C(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,E)=>{_(io(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,M]=E,V=bc(N,F,u),G=gy(D.shape,V,A,e,n,s,i),W=hy(D,V,A.shape,e,n,s,i);if(M!=null){let q=wc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((E,A,D)=>{let F=T.runKernel(Yi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):pn((E,A,D,F)=>{let M=T.runKernel(Yi,w,I);return F([A,E,M,D]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m,g)}var PA=k({fusedDepthwiseConv2d_:a8});function l8({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(Cc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=X(V,o)),Ic(V,s,i,a)}let u=C(r,\"a\",\"fused matMul\"),l=C(t,\"b\",\"fused matMul\");[u,l]=Xt(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=jt(d),x=jt(h);_(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),E;o!=null&&(E=C(o,\"bias\",\"fused matMul\"),[E]=Xt(E,u),Mt(w,E.shape));let A;i!=null&&(A=C(i,\"prelu weights\",\"fused matMul\"));let D=(V,G)=>{let[W,q,H,K]=G,Y=bc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(Y,q,!1,!0),et=Bt(W,Y,!0,!1)):!e&&n?(Z=Bt(Y,q,!1,!1),et=Bt(Y,W,!0,!1)):e&&!n?(Z=Bt(q,Y,!1,!0),et=Bt(W,Y,!1,!1)):(Z=Bt(q,Y,!0,!0),et=Bt(Y,W,!0,!0)),o!=null){let nt=wc(K,Y);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},M={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?pn((G,W,q)=>{let H=T.runKernel(ji,F,M);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):pn((G,W,q,H)=>{let K=T.runKernel(ji,F,M);return H([G,W,K,q]),{value:R(K,w),gradFunc:D}})(I,N,E)}var LA=k({fusedMatMul_:l8});function u8(r){return gh(r,.54,.46)}var zA=k({hammingWindow_:u8});function c8(r){return gh(r,.5,.5)}var xy=k({hannWindow_:c8});function p8(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),_(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),_(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),_(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),_(o===\"bilinear\"||o===\"nearest\",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return T.runKernel(Ma,c,p)}var VA=k({cropAndResize_:f8});function d8(r){let t=C(r,\"image\",\"flipLeftRight\",\"float32\");_(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return T.runKernel(Ba,e,{})}var GA=k({flipLeftRight_:d8});function h8(r){let t=C(r,\"image\",\"grayscaleToRGB\"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),_(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Rr(t,o)}var WA=k({grayscaleToRGB_:h8});function g8(r){let t=C(r,\"image\",\"RGBToGrayscale\"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),_(n===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${n}.`);let o=t.dtype,s=J(t,\"float32\"),i=Oe([.2989,.587,.114]),a;switch(t.rank){case 2:a=wu(\"ij,j->i\",s,i);break;case 3:a=wu(\"ijk,k->ij\",s,i);break;case 4:a=wu(\"ijkl,l->ijk\",s,i);break;case 5:a=wu(\"ijklm,m->ijkl\",s,i);break;case 6:a=wu(\"ijklmn,n->ijklm\",s,i);break;default:throw new Error(\"Not a valid tensor rank.\")}return a=je(a,-1),J(a,o)}var UA=k({rgbToGrayscale_:g8});function x8(r,t,e=0,n=.5){let o=C(r,\"image\",\"rotateWithOffset\",\"float32\");_(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return T.runKernel(pl,s,i)}var HA=k({rotateWithOffset_:x8});function No(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),_(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),_(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),_(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.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:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function y8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=C(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(Ja,{boxes:s,scores:i},u)}var qA=k({nonMaxSuppression_:y8});function KA(r,t,e){let n=b8(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function b8(r,t,e){return I8(r,t,e||w8)}function w8(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function by(r,t,e,n,o){return dN(r,t,e,n,o,0)}function wy(r,t,e,n,o,s){return dN(r,t,e,n,o,0,!1,s,!0)}function Iy(r,t,e,n,o,s){return dN(r,t,e,n,o,s,!0)}function dN(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(jA);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let E=C8(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*v8(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&KA(l,g,jA))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function C8(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function v8(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function jA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function S8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=C(t,\"scores\",\"nonMaxSuppressionAsync\"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=by(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Oe(p,\"int32\")}var XA=S8;function N8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,\"boxes\",\"nonMaxSuppression\"),a=C(t,\"scores\",\"nonMaxSuppression\"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=T.runKernel(tl,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var YA=k({nonMaxSuppressionWithScore_:N8});async function k8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=C(t,\"scores\",\"nonMaxSuppressionAsync\"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=Iy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(m,\"int32\"),selectedScores:Oe(f)}}var ZA=k8;function T8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,\"boxes\",\"nonMaxSuppression\"),a=C(t,\"scores\",\"nonMaxSuppression\"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=T.runKernel(Qa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var JA=k({nonMaxSuppressionPadded_:T8});async function _8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=C(t,\"scores\",\"nonMaxSuppressionAsync\"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=wy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(d,\"int32\"),validOutputs:pt(h,\"int32\")}}var QA=_8;function E8(r,t,e=!1,n=!1){let o=C(r,\"images\",\"resizeBilinear\");_(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),_(n===!1||e===!1,()=>\"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Bs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Cy=k({resizeBilinear_:E8});function A8(r,t,e=!1,n=!1){let o=C(r,\"images\",\"resizeNearestNeighbor\");_(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),_(o.dtype===\"float32\"||o.dtype===\"int32\",()=>\"`images` must have `int32` or `float32` as dtype\"),_(n===!1||e===!1,()=>\"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(zs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var vy=k({resizeNearestNeighbor_:A8});function D8(r,t=\"binary\",e=!1,n=.5){let o=C(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=$(Oe([n]),255),c,p,m,f;if(_(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),_(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),_(o.dtype===\"int32\"||o.dtype===\"float32\",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),_(t===\"otsu\"||t===\"binary\",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=hr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=X(X(g,x),b)}else f=r;if(t===\"otsu\"){let g=Sx(J(cm(f),\"int32\"),ir([]),256);l=$8(g,u)}let d=e?Vn(f,l):Re(f,l);return J($(d,255),\"int32\")}function $8(r,t){let e=Oe([-1]),n=Oe([0]),o=Oe([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.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 u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return T.runKernel(cl,u,l)}var e2=k({transform_:R8});function F8(r,t,e){let n=C(r,\"a\",\"bandPart\");_(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2),a,u;typeof t==\"number\"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=C(t<0?s:t,\"numLower\",\"bandPart\")):(_(t.dtype===\"int32\",()=>\"bandPart(): numLower's dtype must be an int32.\"),a=we(yl(t,0),s,lo(t,s))),typeof e==\"number\"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=C(e<0?i:e,\"numUpper\",\"bandPart\")):(_(e.dtype===\"int32\",()=>\"bandPart(): numUpper's dtype must be an int32.\"),u=we(yl(e,0),i,lo(e,i)));let l=R(pa(0,s,1,\"int32\"),[-1,1]),c=pa(0,i,1,\"int32\"),p=at(l,c),m=Fr(Vn(p,a),cn(p,Ut(u))),f=ke([s,i],n.dtype);return R(Fe(gr(R(n,[-1,s,i])).map(d=>we(m,d,f))),o)}var r2=k({bandPart_:F8});function O8(r){let t;if(Array.isArray(r)){t=!1,_(r!=null&&r.length>0,()=>\"Gram-Schmidt process: input must not be null, undefined, or empty\");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=hr(r,r.shape[0],0).map(o=>Wn(o,[0]));_(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return o2(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=gr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=o2(u,t);o.push(l),s.push(c)});let i=R(Fe(o,0),r.shape),a=R(Fe(s,0),r.shape);return[i,a]}}function o2(r,t=!1){return T.tidy(()=>{_(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=fc(e),s=ln(r),i=ci([[1]],[1,1]),a=ln(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=xl(f),h=Ot(s,[l,l],[1,1]),g=we(Re(h,0),ci([[-1]]),ci([[1]])),x=at(h,$(g,d)),b=ct(f,x);b.shape[0]===1?a=ln(i):a=ie([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ct(Bt(g,x),d)),I=Ot(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=at(I,Bt(N,Bt(E,I)));else{let F=at(I,Bt(N,Bt(E,I)));s=ie([Ot(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=at(D,Bt(Bt(D,a),A));else{let F=at(D,Bt(Bt(D,a),A));o=ie([Ot(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var s2=k({qr_:M8});var Je;(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\"})(Je||(Je={}));function P8(r,t,e=Je.SUM_BY_NONZERO_WEIGHTS){let n=C(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=C(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:$(n,o);if(e===Je.NONE)return s;if(e===Je.SUM)return mt(s);if(e===Je.MEAN){if(o==null)return Ne(s);{let i=n.size/o.size,a=ct(mt(s),mt(o));return i>1?ct(a,pt(i)):a}}if(e===Je.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(mt(s),pt(n.size));{let i=$(o,ar(n.shape)),a=J(mt(ui(i,pt(0))),\"float32\");return ct(mt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Hr=k({computeWeightedLoss_:P8});function L8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"absoluteDifference\"),s=C(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=C(e,\"weights\",\"absoluteDifference\")),$e(o.shape,s.shape,\"Error in absoluteDifference: \");let a=_e(at(o,s));return Hr(a,i,n)}var i2=k({absoluteDifference_:L8});function z8(r,t,e,n,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"cosineDistance\"),i=C(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=C(n,\"weights\",\"cosineDistance\")),$e(s.shape,i.shape,\"Error in cosineDistance: \");let u=pt(1),l=at(u,mt($(s,i),e,!0));return Hr(l,a,o)}var a2=k({cosineDistance_:z8});function B8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"hingeLoss\"),s=C(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=C(e,\"weights\",\"hingeLoss\")),$e(o.shape,s.shape,\"Error in hingeLoss: \");let a=pt(1);o=at($(pt(2),o),a);let u=Or(at(a,$(o,s)));return Hr(u,i,n)}var l2=k({hingeLoss_:B8});function V8(r,t,e,n=1,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"huberLoss\"),i=C(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=C(e,\"weights\",\"huberLoss\")),$e(s.shape,i.shape,\"Error in huberLoss: \");let u=pt(n),l=_e(at(i,s)),c=lo(l,u),p=at(l,c),m=X($(pt(.5),Wt(c)),$(u,p));return Hr(m,a,o)}var u2=k({huberLoss_:V8});function G8(r,t,e,n=1e-7,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"logLoss\"),i=C(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=C(e,\"weights\",\"logLoss\")),$e(s.shape,i.shape,\"Error in logLoss: \");let u=pt(1),l=pt(n),c=Ut($(s,Nr(X(i,l)))),p=$(at(u,s),Nr(X(at(u,i),l))),m=at(c,p);return Hr(m,a,o)}var c2=k({logLoss_:G8});function W8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"meanSquaredError\"),s=C(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=C(e,\"weights\",\"meanSquaredError\")),$e(o.shape,s.shape,\"Error in meanSquaredError: \");let a=bm(o,s);return Hr(a,i,n)}var p2=k({meanSquaredError_:W8});function U8(r,t){let e=C(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=C(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");$e(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Or(n),s=$(n,e),i=vu(Ke(Ut(_e(n))));return X(at(o,s),i)}function H8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=C(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=C(e,\"weights\",\"sigmoidCrossEntropy\")),$e(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=pt(n),c=pt(1),p=pt(.5);s=X($(s,at(c,l)),$(p,l))}let u=U8(s,i);return Hr(u,a,o)}var m2=k({sigmoidCrossEntropy_:H8});function q8(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return pn((o,s,i)=>{let u=Su(s,[e],!0),l=at(J(s,\"float32\"),u);i([o,l]);let c=Ut($(l,o));return{value:mt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=vo(f.shape,[e]);return[$(R(f,x),at(J(h,\"float32\"),Ke(g))),$(R(f,x),at(Ke(g),J(h,\"float32\")))]}}})(r,t)}function K8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=C(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=C(e,\"weights\",\"softmaxCrossEntropy\")),$e(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=pt(n),c=pt(1),p=pt(s.shape[1]);s=X($(s,at(c,l)),ct(l,p))}let u=q8(s,i);return Hr(u,a,o)}var f2=k({softmaxCrossEntropy_:K8});function j8(r,t,e,n){let o=C(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=C(t,\"values\",\"sparseFillEmptyRows\"),i=C(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=C(n,\"defaultValue\",\"sparseFillEmptyRows\",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=T.runKernel(nu,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var d2=k({sparseFillEmptyRows_:j8});function X8(r,t,e){let n=C(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=C(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=C(e,\"newShape\",\"sparseReshape\",\"int32\");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=T.runKernel(il,i);return{outputIndices:a[0],outputShape:a[1]}}var h2=k({sparseReshape_:X8});function Y8(r,t,e){let n=C(r,\"data\",\"sparseSegmentMean\"),o=C(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=C(e,\"segmentIds\",\"sparseSegmentMean\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(ou,i)}var g2=k({sparseSegmentMean_:Y8});function Z8(r,t,e){let n=C(r,\"data\",\"sparseSegmentSum\"),o=C(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=C(e,\"segmentIds\",\"sparseSegmentSum\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(su,i)}var x2=k({sparseSegmentSum_:Z8});function J8(r,t,e,n,o,s,i,a){let u=C(r,\"data\",\"stringNGrams\",\"string\");if(u.dtype!==\"string\")throw new Error(\"Data must be of datatype string\");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=C(t,\"dataSplits\",\"stringNGrams\");if(l.dtype!==\"int32\")throw new Error(\"Data splits must be of datatype int32\");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=T.runKernel(au,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var y2=k({stringNGrams_:J8});function Q8(r,t,e=!0){let n=C(r,\"input\",\"stringSplit\",\"string\"),o=C(t,\"delimiter\",\"stringSplit\",\"string\");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=T.runKernel(lu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var b2=k({stringSplit_:Q8});function tY(r,t){let e=C(r,\"input\",\"stringToHashBucketFast\",\"string\"),n={numBuckets:t};if(t<=0)throw new Error(\"Number of buckets must be at least 1\");let o={input:e};return T.runKernel(uu,o,n)}var w2=k({stringToHashBucketFast_:tY});function eY(r,t,e,n=!0){let o=C(r,\"input\",\"staticRegexReplace\",\"string\"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(ec,{x:o},s)}var I2=k({staticRegexReplace_:eY});var rY={fft:Au,ifft:wl,rfft:Du,irfft:ym},nY={hammingWindow:zA,hannWindow:xy,frame:yy,stft:BA},fn={flipLeftRight:GA,grayscaleToRGB:WA,resizeNearestNeighbor:vy,resizeBilinear:Cy,rgbToGrayscale:UA,rotateWithOffset:HA,cropAndResize:VA,nonMaxSuppression:qA,nonMaxSuppressionAsync:XA,nonMaxSuppressionWithScore:YA,nonMaxSuppressionWithScoreAsync:ZA,nonMaxSuppressionPadded:JA,nonMaxSuppressionPaddedAsync:QA,threshold:t2,transform:e2},hN={bandPart:r2,gramSchmidt:n2,qr:s2},oY={absoluteDifference:i2,computeWeightedLoss:Hr,cosineDistance:a2,hingeLoss:l2,huberLoss:u2,logLoss:c2,meanSquaredError:p2,sigmoidCrossEntropy:m2,softmaxCrossEntropy:f2},sY={sparseFillEmptyRows:d2,sparseReshape:h2,sparseSegmentMean:g2,sparseSegmentSum:x2},iY={stringNGrams:y2,stringSplit:b2,stringToHashBucketFast:w2,staticRegexReplace:I2};var Q={};Kt(Q,{Serializable:()=>xh,SerializationMap:()=>Sy,getRegisteredName:()=>lY,registerClass:()=>xN});var aY=new Map,gN=new Map,xh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Sy=class r{constructor(){this.classNameMap={}}static getMap(){return r.instance==null&&(r.instance=new r),r.instance}static register(t){r.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function xN(r,t,e){_(r.className!=null,()=>\"Class being registered does not have the static className property defined.\"),_(typeof r.className==\"string\",()=>\"className is required to be a string, but got type \"+typeof r.className),_(r.className.length>0,()=>\"Class being registered has an empty-string as its className, which is disallowed.\"),typeof t==\"undefined\"&&(t=\"Custom\"),typeof e==\"undefined\"&&(e=r.className);let n=e,o=t+\">\"+n;return Sy.register(r),aY.set(o,r),gN.set(r,o),r}function lY(r){return gN.has(r)?gN.get(r):r.className}var qr=class extends xh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return Tt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Ux(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:pt(this.iterations_,\"int32\")}}async getWeights(){throw new Error(\"getWeights() is not implemented for this optimizer yet.\")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(qr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var vc=class extends qr{static get className(){return\"Adadelta\"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ct(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=X($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};var Sc=class extends qr{static get className(){return\"Adagrad\"}constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>Co(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Wt(i));a.assign(u);let l=X($(ct(i,Se(X(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};var Nc=class extends qr{static get className(){return\"Adam\"}constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=pt(e).variable(),this.accBeta2=pt(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=at(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X($(c,this.beta1),$(l,1-this.beta1)),f=X($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=X($(ct(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(un(this.beta1,this.iterations_+1)),this.accBeta2.assign(un(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};var kc=class extends qr{static get className(){return\"Adamax\"}constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=pt(0).variable(),this.accBeta1=pt(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=ct(-this.learningRate,X($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=_e(l),h=kn(f,d);c.assign(m),p.assign(h);let g=X($(ct(o,n),ct(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error(\"getWeights() is not implemented for Adamax yet.\")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};var Il=class extends qr{static get className(){return\"SGD\"}constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=T.registeredVariables[n];B(()=>{let a=X($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(pt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error(\"SGD optimizer does not have settable weights.\")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};var Tc=class extends Il{static get className(){return\"Momentum\"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=pt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X($(this.m,i),a);this.useNesterov?u=X($(this.c,X(a,$(l,this.m))),s):u=X($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};var _c=class extends qr{static get className(){return\"RMSProp\"}constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=T.backend.epsilon()),t==null)throw new Error(\"learningRate for RMSPropOptimizer must be defined.\")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X($(p,this.decay),$(a,1-this.decay)),f=ct($(a,this.learningRate),Se(at(c,X(Wt(m),this.epsilon)))),d=X($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=at(s,d);s.assign(h)}else{let p=X($(u,this.decay),$(Wt(a),1-this.decay)),m=X($(l,this.momentum),ct($(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=at(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};var uY=[vc,Sc,Nc,kc,Tc,_c,Il];function C2(){for(let r of uY)xN(r)}var Mr={};Kt(Mr,{CompositeArrayBuffer:()=>Wr,browserFiles:()=>S2,browserHTTPRequest:()=>_2,concatenateArrayBuffers:()=>uE,copyModel:()=>vE,decodeWeights:()=>sx,decodeWeightsStream:()=>ix,encodeWeights:()=>sE,fromMemory:()=>E2,fromMemorySync:()=>vN,getLoadHandlers:()=>fE,getModelArtifactsForJSON:()=>Yp,getModelArtifactsForJSONSync:()=>W0,getModelArtifactsInfoForJSON:()=>Ji,getSaveHandlers:()=>mE,getWeightSpecs:()=>lh,http:()=>ky,isHTTPScheme:()=>Ny,listModels:()=>IE,loadWeights:()=>k2,moveModel:()=>SE,registerLoadRouter:()=>pE,registerSaveRouter:()=>cE,removeModel:()=>CE,weightsLoaderFactory:()=>IN,withSaveHandler:()=>A2,withSaveHandlerSync:()=>D2});var cY=\"model\",pY=\".json\",mY=\".weights.bin\";function v2(r){return new Promise(t=>setTimeout(t)).then(r)}var Sm=class r{constructor(t){if(!L().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(r.URL_SCHEME)&&(t=t.slice(r.URL_SCHEME.length)),(t==null||t.length===0)&&(t=cY),this.modelJsonFileName=t+pY,this.weightDataFileName=t+mY}async save(t){if(typeof document==\"undefined\")throw new Error(\"Browser downloads are not supported in this environment since `document` is not present\");let e=Wr.join(t.weightData),n=window.URL.createObjectURL(new Blob([e],{type:\"application/octet-stream\"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserDownloads.save() does not support saving model topology in binary formats yet.\");{let o=[{paths:[\"./\"+this.weightDataFileName],weights:t.weightSpecs}],s=ax(t,o),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:\"application/json\"})),a=this.modelJsonAnchor==null?document.createElement(\"a\"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=i,await v2(()=>a.dispatchEvent(new MouseEvent(\"click\"))),t.weightData!=null){let u=this.weightDataAnchor==null?document.createElement(\"a\"):this.weightDataAnchor;u.download=this.weightDataFileName,u.href=n,await v2(()=>u.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Ji(t)}}}};Sm.URL_SCHEME=\"downloads://\";var yN=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=Yp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,i])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>G0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=G0(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},fY=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Sm.URL_SCHEME)?dY(r.slice(Sm.URL_SCHEME.length)):null;Cr.registerSaveRouter(fY);function dY(r=\"model\"){return new Sm(r)}function S2(r){return new yN(r)}function bN(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){_(u!=null&&Array.isArray(u)&&u.length>0,()=>\"promises must be a none empty array\")}function a(u,l){_(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),_(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),_(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function wN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),a=(t.onProgress==null?await Promise.all(n):await bN(n,t.onProgress,0,.5)).map(p=>p.arrayBuffer());return t.onProgress==null?await Promise.all(a):await bN(a,t.onProgress,.5,1)}function N2(r,t){var e;let n=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,o=0,s;return(e=t.onProgress)===null||e===void 0||e.call(t,0),new ReadableStream({pull:async i=>{for(var a;owN(i,{requestInit:n}))(r,t,e)}function IN(r){return async(t,e=\"\",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x=\"quantization\"in g?g.quantization.dtype:g.dtype,b=dl[x]*jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(\", \")}. \nManifest JSON has weights with names: ${a.join(\", \")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith(\"/\")?\"\":\"/\")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=new Wr(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=sx(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var hY=\"application/octet-stream\",gY=\"application/json\",yh=class{constructor(t,e){if(this.DEFAULT_METHOD=\"POST\",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(_(typeof e.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=e.fetchFunc):this.fetch=L().platform.fetch,_(t!=null&&t.length>0,()=>\"URL path for http must not be null, undefined or empty.\"),Array.isArray(t)&&_(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=e.requestInit||{},this.loadOptions=e}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:[\"./model.weights.bin\"],weights:t.weightSpecs}],o=ax(t,n);if(e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:gY}),\"model.json\"),t.weightData!=null){let i=Wr.join(t.weightData);e.body.append(\"model.weights.bin\",new Blob([i],{type:hY}),\"model.weights.bin\")}let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ji(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(\".pb\")?i+=\" 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.\":i+=\" Please make sure the server is serving valid JSON for this request.\",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let t=await this.loadModelJSON();return Yp(t,e=>this.loadWeights(e))}async loadStream(){let t=await this.loadModelJSON(),e=await this.getWeightUrls(t.weightsManifest),n=lh(t.weightsManifest),o=()=>N2(e,this.loadOptions);return Object.assign(Object.assign({},t),{weightSpecs:n,getWeightStream:o})}async getWeightUrls(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=xY(e),s=this.weightPathPrefix||n,i=[],a=[];for(let u of t)for(let l of u.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(l)):i.push(s+l+o);return this.weightUrlConverter&&i.push(...await Promise.all(a)),i}async loadWeights(t){let e=await this.getWeightUrls(t),n=lh(t),o=await wN(e,this.loadOptions);return[n,o]}};yh.URL_SCHEME_REGEX=/^https?:\\/\\//;function xY(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function Ny(r){return r.match(yh.URL_SCHEME_REGEX)!=null}var T2=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ny(n)):e=Ny(r),e)return ky(r,t)}return null};Cr.registerSaveRouter(T2);Cr.registerLoadRouter(T2);function ky(r,t){return new yh(r,t)}function _2(r,t){return ky(r,t)}var bh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ty=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},CN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function E2(r,t,e,n){let o=arguments;return new CN(vN(...o))}function vN(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new bh(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 bh({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 bh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function A2(r){return new Ty(r)}function D2(r){return new Ty(r)}var R2={};Kt(R2,{confusionMatrix:()=>$2});function yY(r,t,e){let n=C(r,\"labels\",\"confusionMatrix\"),o=C(t,\"predictions\",\"confusionMatrix\");_(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),_(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),_(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),_(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),_(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=ca(J(n,\"int32\"),e),i=ca(J(o,\"int32\"),e),a=Vt(s),u=Bt(a,i);return J(u,\"int32\")}var $2=k({confusionMatrix_:yY});var _y={};Kt(_y,{draw:()=>kY,fromPixels:()=>TY,fromPixelsAsync:()=>vY,toPixels:()=>NY});var Ec,F2=!1;function O2(r,t=3){if(t>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 e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!=\"undefined\"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!=\"undefined\"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!=\"undefined\"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!=\"undefined\"&&r instanceof ImageBitmap)a=!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(Wp(Qd,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(Qd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext(\"2d\").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Ec==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Ec=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Ec=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Ec.canvas.width=l,Ec.canvas.height=c,Ec.drawImage(r,0,0,l,c),p=Ec.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(r.dtype!==\"float32\"&&r.dtype!==\"int32\")throw new Error(`Unsupported type for toPixels: ${r.dtype}. Please use float32 or int32 tensors.`)}function SY(r){let t=(r==null?void 0:r.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function NY(r,t){let e=C(r,\"img\",\"toPixels\");if(!(r instanceof Lt)){let l=e;e=J(l,\"int32\"),l.dispose()}M2(e);let[n,o]=e.shape.slice(0,2),s=e.rank===2?1:e.shape[2],i=await e.data(),a=e.dtype===\"float32\"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.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*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){F2||Wp(Jd,T.backendName)!=null&&(console.warn(\"tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead.\"),F2=!0),t.width=o,t.height=n;let l=t.getContext(\"2d\"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}function kY(r,t,e){let n=C(r,\"img\",\"draw\");if(!(r instanceof Lt)){let i=n;n=J(i,\"int32\"),i.dispose()}M2(n),SY(e==null?void 0:e.imageOptions);let o={image:n},s={canvas:t,options:e};T.runKernel(Jd,o,s)}var TY=k({fromPixels_:O2});var Ey={};Kt(Ey,{prepareAndValidate:()=>P2});function P2(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);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[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var Be={};Kt(Be,{assertParamsValid:()=>EY,computeFlatOffset:()=>FY,computeOutShape:()=>DY,getNormalizedAxes:()=>$Y,isSliceContinous:()=>RY,maskToAxes:()=>AY,parseSliceParams:()=>NN,sliceInfo:()=>OY,startForAxis:()=>H2,startIndicesWithElidedDims:()=>G2,stopForAxis:()=>q2,stopIndicesWithElidedDims:()=>W2,stridesForAxis:()=>U2,stridesWithElidedDims:()=>z2});var SN=-2,_Y=-1;function EY(r,t,e){let n=r.shape.length;_(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),_(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function AY(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function DY(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=G2(i,f,d,n,r),p=W2(a,f,d,o,r),m=z2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=B2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=B2(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=kp(0,i,u-1),i}function q2(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=kp(0,i,u):i=kp(-1,i,u-1),i}function RY(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function FY(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{_(i!==-1,()=>\"slice() does not support negative begin indexing.\")});let s;return e==null?s=new Array(o).fill(-1):typeof e==\"number\"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(_(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function OY(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&i&i-1)throw new Error(\"Multiple ellipses in slice is not allowed.\");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(I&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=L2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=L2(m.end[w],1,m.strides[w],N,E,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&D,d=d&&(w===0&&m.strides[w]===1||D);let F,M=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],M=!0):I?(F=1,M=!0):D&&N>=0&&(m.strides[w]<0?F=-N:F=N,M=!0),M){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[I]):I===SN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==SN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function MY(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var K2=\"4.16.0\";var wh=class{static sgd(t){return new Il(t)}static momentum(t,e,n=!1){return new Tc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new _c(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Nc(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new vc(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new kc(t,e,n,o,s)}static adagrad(t,e=.1){return new Sc(t,e)}};var Ac=wh;var PY=typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r();function Ih(){return new Promise(r=>PY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>JY,ERF_A2:()=>QY,ERF_A3:()=>tZ,ERF_A4:()=>eZ,ERF_A5:()=>rZ,ERF_P:()=>ZY,PARALLELIZE_THRESHOLD:()=>Ay,RowPartitionType:()=>ma,SELU_SCALE:()=>TN,SELU_SCALEALPHA:()=>kN,applyActivation:()=>Ic,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>x6,assertParamsConsistent:()=>LY,assignToTypedArray:()=>lZ,axesAreInnerMostDims:()=>Q0,calculateShapes:()=>DA,checkEinsumDimSizes:()=>dZ,checkPadOnDimRoundingMode:()=>ve,combineLocations:()=>PE,combineRaggedTensorToTensorShapes:()=>BY,complexWithEvenIndex:()=>sZ,complexWithOddIndex:()=>iZ,computeConv2DInfo:()=>pc,computeConv3DInfo:()=>_E,computeDefaultPad:()=>J0,computeDilation2DInfo:()=>gj,computeOptimalWindowSize:()=>UY,computeOutAndReduceShapes:()=>tN,computeOutShape:()=>zY,computePool2DInfo:()=>Z0,computePool3DInfo:()=>xj,convertConv2DDataFormat:()=>EE,decodeEinsumEquation:()=>mZ,eitherStridesOrDilationsAreOne:()=>Dr,expandShapeToKeepDim:()=>vo,exponent:()=>cZ,exponents:()=>uZ,fromStringArrayToUint8:()=>OZ,fromUint8ToStringArray:()=>FZ,getAxesPermutation:()=>eN,getBroadcastDims:()=>OE,getComplexWithIndex:()=>aZ,getEinsumComputePath:()=>hZ,getEinsumPermutation:()=>fZ,getFusedBiasGradient:()=>wc,getFusedDyActivation:()=>bc,getImageCenter:()=>HY,getInnerMostAxes:()=>y6,getPermuted:()=>KY,getRaggedRank:()=>GY,getReductionAxes:()=>be,getReshaped:()=>qY,getReshapedPermuted:()=>jY,getRowPartitionTypesHelper:()=>VY,getSliceBeginCoords:()=>XY,getSliceSize:()=>YY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>bZ,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>wZ,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>IZ,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>SZ,getSparseReshapeInputOutputMismatchErrorMessage:()=>kZ,getSparseReshapeInputOutputMultipleErrorMessage:()=>NZ,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>CZ,getSparseReshapeNegativeOutputDimErrorMessage:()=>vZ,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>AZ,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>TZ,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>_Z,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>EZ,getUndoAxesPermutation:()=>mh,isIdentityPermutation:()=>gZ,log:()=>uK,mergeRealAndImagArrays:()=>nZ,prepareAndValidate:()=>P2,prepareSplitSize:()=>yZ,segment_util:()=>EN,shouldFuse:()=>Cc,slice_util:()=>Be,splitRealAndImagArrays:()=>oZ,stridesOrDilationsArePositive:()=>ra,tupleValuesAreOne:()=>io,upcastType:()=>ur,validateDefaultValueShape:()=>WY,validateInput:()=>wm,validateUpdateShape:()=>pN,warn:()=>Zi});function LY(r,t){let e=r[0].length;r.forEach((o,s)=>{_(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),_(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function zY(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function VY(r){let t={FIRST_DIM_SIZE:ma.FIRST_DIM_SIZE,VALUE_ROWIDS:ma.VALUE_ROWIDS,ROW_LENGTHS:ma.ROW_LENGTHS,ROW_SPLITS:ma.ROW_SPLITS,ROW_LIMITS:ma.ROW_LIMITS,ROW_STARTS:ma.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function GY(r){return r.length===0?0:r[0]===ma.FIRST_DIM_SIZE?r.length-1:r.length}function WY(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var Ay=30;function UY(r){return r<=Ay?r:_p(r,Math.floor(Math.sqrt(r)))}function HY(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function qY(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function jY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",pZ=/->/g,j2=\",\",X2=\"...\";function mZ(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(pZ,\"\").length)/_N.length;if(e<1)throw new Error(\"Equations without an arrow are not supported.\");if(e>1)throw new Error(`Equation must contain exactly one arrow (\"${_N}\").`);let[n,o]=r.split(_N);_(n.indexOf(X2)===-1,()=>`The ellipsis notation (\"${X2}\") is not supported yet.`);let s=n.split(j2),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error(\"Support for more than 2 input tensors is not implemented yet.\");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function dZ(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function hZ(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function xZ(r,t){let e=[];for(let n=0;n\"Number of splits must evenly divide the axis.\"),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);_(o<=1,()=>\"There should be only one negative value in split array.\");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}_(r.shape[e]===t.reduce((i,a)=>i+a),()=>\"The sum of sizes must match the size of the axis dimension.\"),n=t}return n}function bZ(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function wZ(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function IZ(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function CZ(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function vZ(r,t){return`size ${r} must be non-negative, not ${t}`}function SZ(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function NZ(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a SparseTensor with ${e}\n dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function kZ(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function TZ(){return\"segment ids must be >= 0\"}function _Z(){return\"segment ids are not increasing\"}function EZ(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function AZ(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var EN={};Kt(EN,{collectGatherOpShapeInfo:()=>RZ,computeOutShape:()=>$Z,segOpComputeOptimalWindowSize:()=>DZ});function DZ(r,t){let e=!1,n;for(r<=Ay?(n=r,e=!0):n=_p(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=_p(r,n+1);return n}function $Z(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(eKp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function OZ(r){return r.map(t=>fu(t))}var Kr={};Kt(Kr,{nonMaxSuppressionV3Impl:()=>by,nonMaxSuppressionV4Impl:()=>wy,nonMaxSuppressionV5Impl:()=>Iy,whereImpl:()=>fy});C2();var Dy={kernelName:Ei,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,So(J(e,\"float32\"),-1))}}};var Y2={kernelName:Go,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(J(e,\"float32\")),o=Se(at(pt(1),n));return Ut(ct(r,o))}}}};var Z2={kernelName:Wo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(at(Wt(J(e,\"float32\")),1));return ct(r,n)}}}};var J2={kernelName:no,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=be(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=be(n.shape,o);return u.length>0&&(a=mt(a,u)),R(a,n.shape)}}}};var Q2={kernelName:Uo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var tD={kernelName:Ai,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var eD={kernelName:Di,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var rD={kernelName:Ho,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Se(at(pt(1),Wt(J(e,\"float32\")))))}}};var nD={kernelName:qo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(pt(1),Wt(J(e,\"float32\"))));return ct(r,n)}}}};var oD={kernelName:Xo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=X(Wt(e),Wt(n)),u=$(r,ct(n,a)),l=be(e.shape,o);return l.length>0&&(u=mt(u,l)),R(u,e.shape)},b:()=>{let a=X(Wt(e),Wt(n)),u=Ut($(r,ct(e,a))),l=be(n.shape,o);return l.length>0&&(u=mt(u,l)),R(u,n.shape)}}}};var sD={kernelName:Ko,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,X(Wt(J(e,\"float32\")),1))}}};var iD={kernelName:jo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,at(pt(1),Wt(J(e,\"float32\"))))}}};function MZ(r,t,e,n,o,s){let i=C(r,\"dy\",\"avgPool3dGrad\"),a=C(t,\"input\",\"avgPool3dGrad\"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),_(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),_(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),ve(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Hl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var aD=k({avgPool3dGrad_:MZ});var lD={kernelName:$i,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>aD(r,n,o,s,i,a)}}};function PZ(r,t,e,n,o){let s=C(r,\"dy\",\"avgPoolGrad\"),i=C(t,\"input\",\"avgPoolGrad\");_(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),_(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=T.runKernel(Ul,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var uD=k({avgPoolGrad_:PZ});var cD={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>uD(r,n,o,s,i)}}};var pD={kernelName:Zo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var mD={kernelName:Ri,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>Tu(r,n,o)}}};var fD={kernelName:k_,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>mt(r,a,!0)}}};var dD={kernelName:fo,gradFunc:r=>({x:()=>r.clone()})};var hD={kernelName:Jo,gradFunc:r=>({x:()=>vt(r)})};var gD={kernelName:ho,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>we(Fr(cn(n,o),Vn(n,s)),r,vt(r))}}};var xD={kernelName:Kl,inputsToSave:[\"x\"],gradFunc:Dy.gradFunc};var yD={kernelName:Fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return hr(r,i,s).map(u=>()=>u)}};var bD={kernelName:Qo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(io(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>nm(n.shape,r,o,i,a,u),filter:()=>vm(n,r,o.shape,i,a,u)}}};var wD={kernelName:ts,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Nn(r,o,s,i,a,1,u),filter:()=>vm(r,n,o.shape,s,i,a,u)}}};function LZ(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(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}.`),_(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),_(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),_(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return T.runKernel(Ra,a,u)}var ID=k({conv3DBackpropFilter_:LZ});var CD={kernelName:es,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(io(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>Dx(i.shape,r,a,o,s),filter:()=>ID(i,r,a.shape,o,s)}}};var vD={kernelName:rs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(dm(J(e,\"float32\"))),r)}}};var SD={kernelName:ns,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(hm(J(e,\"float32\")),r)}}};var ND={kernelName:os,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=eN([o],n.rank),u=im(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var kD={kernelName:ss,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(io(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return _(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),_(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),_(Dr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),ve(\"depthwiseConv2d\",s,i),{x:()=>gy(u.shape,r,l,o,s,a,i),filter:()=>hy(u,r,l.shape,o,s,a,i)}}};var TD={kernelName:is,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>T.runKernel(Yl,s,e),filter:()=>T.runKernel(Zl,i,e)}}};var _D={kernelName:ls,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(La,n)}}};var ED={kernelName:us,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(Ke(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var AD={kernelName:cs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var DD={kernelName:Oi,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var $D={kernelName:ps,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Ke(e))}}};var RD={kernelName:ms,gradFunc:r=>({x:()=>vt(r)})};var FD={kernelName:fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,J(n,\"float32\")),u=be(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,\"float32\")),u=be(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,J(l,\"float32\")))}}}};var OD={kernelName:ds,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?pt(1):a,l=be(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Rr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,pt(-1)),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=mt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=mt(I,l)),R(I,s.shape)}}}};var LD={kernelName:Mi,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s,batchDims:i}=e,a=fr(s,n.shape)[0],u=(l,c,p)=>()=>{let m=l.shape,f=c.size,d=m.slice(0,a),h=d.length,g=m.slice(s,m.length).slice(1),x=g.length,b=MD(0,h),w=MD(h+1,h+1+x),I=PD([d,[f],g]),N=R(p,I),E=R(c,[f]),A=PD([[h],b,w]),D=Vt(N,A),F=Cm(D,E,l.shape[a]),M=mh(A);return F=Vt(F,M),F};if(i===1){let l=n.shape[0],c=n.split(l,0);return{x:()=>Fe(c.map((f,d)=>u(f,o.slice(d,1),r.slice(d,1))())).reshape(n.shape),indices:()=>o}}else return{x:u(n,o,r),indices:()=>o}}};function MD(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var BD={kernelName:go,gradFunc:r=>({x:()=>J(r,\"float32\")})};var VD={kernelName:gs,gradFunc:r=>({x:()=>vt(r)})};var GD={kernelName:xs,gradFunc:r=>({x:()=>vt(r)})};var WD={kernelName:ys,gradFunc:r=>({x:()=>vt(r)})};var UD={kernelName:bs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>we(s,r,$(r,o))}}};var HD={kernelName:Is,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,X(e,1))}}};var qD={kernelName:ws,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,J(e,\"float32\"))}}};var KD={kernelName:__,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=Ke(n);return at(r,$(mt(r,o,!0),i))}}}};function zZ(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return T.runKernel(Xa,a,u)}var jD=k({localResponseNormalizationBackprop_:zZ});var XD={kernelName:Cs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>jD(n,o,r,s,i,a,u)}}};function $y(r,t,e,n){return t.rank$(r,J($r(e,t),r.dtype))}}var AN={kernelName:vs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var YD={kernelName:Ss,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(cn(e,n),\"float32\")),b:()=>$(r,J(yl(e,n),\"float32\"))}}};function BZ(r,t,e,n,o,s,i){let a=C(r,\"dy\",\"maxPool3dGrad\"),u=C(t,\"input\",\"maxPool3dGrad\"),l=C(e,\"output\",\"maxPool3dGrad\"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.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}.`),_(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),ve(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(tu,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var ZD=k({maxPool3dGrad_:BZ});var JD={kernelName:Pi,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>ZD(r,n,o,s,i,a,u)}}};function VZ(r,t,e,n,o,s,i){let a=C(r,\"dy\",\"maxPoolGrad\"),u=C(t,\"input\",\"maxPoolGrad\"),l=C(e,\"output\",\"maxPoolGrad\");_(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),_(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),_(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),ve(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(Ql,c,p)}var QD=k({maxPoolGrad_:VZ});var t$={kernelName:Ns,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>QD(r,n,o,s,i,a)}}};var e$={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=tN(n.shape,s)[1],u=jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ct($(p,ar(n.shape,\"float32\")),u)}}}};var r$={kernelName:Ts,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var n$={kernelName:_s,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(Vn(e,n),\"float32\")),b:()=>$(r,J(Re(e,n),\"float32\"))}}};var o$={kernelName:Es,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var s$={kernelName:As,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=be(e.shape,o);return a.length>0?R(mt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(la(ct(e,n)))),u=be(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var i$={kernelName:Ds,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,J(n,\"float32\")),u=be(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,\"float32\")),u=be(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var a$={kernelName:Li,gradFunc:r=>({x:()=>Ut(r)})};var l$={kernelName:$s,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>ke(e.shape,\"float32\")}}};var u$={kernelName:zi,gradFunc:r=>({x:()=>vt(r)})};var c$={kernelName:Bi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return gr(r,n).map(s=>()=>s)}};var DN={kernelName:Rs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var p$={kernelName:Fs,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=J(i,\"float32\"),p=$(r,$(c,un(s,at(c,pt(1))))),m=be(s.shape,a);return m.length>0&&(p=mt(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=we(c,Nr(s),vt(s)),m=$(r,$(o,p)),f=be(i.shape,a);return f.length>0&&(m=mt(m,f)),R(m,i.shape)}}}};var m$={kernelName:Os,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>we(o,r,$(r,n)),alpha:()=>{let s=we(o,vt(r),$(r,e)),i=be(n.shape,r.shape);return i.length>0&&(s=mt(s,i)),R(s,n.shape)}}}};function GZ(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=mc(r,e,!0,!1),i=mc(r,e,!0,!0),a=$(s,i);return $(o,a)}function WZ(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=GZ(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var f$={kernelName:Ms,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o==\"number\"?s=[o]:s=o,{x:()=>WZ(n,r,s)}}};var d$={kernelName:as,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,J(n,\"float32\")),u=be(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,\"float32\")),u=be(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,J(l,\"float32\")))}}}};var h$={kernelName:Ps,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ut(Wt(e)))}}};var g$={kernelName:Vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(Vn(e,6),So(e));return{x:()=>$(r,J(n,\"float32\"))}}};var x$={kernelName:Ls,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,J(So(e),\"float32\"))}}};var y$={kernelName:Vi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var b$={kernelName:Bs,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(rl,o,e)}}};var w$={kernelName:zs,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(el,o,e)}}};var I$={kernelName:Gs,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>dr(r,o)}}};var C$={kernelName:Ws,gradFunc:r=>({x:()=>vt(r)})};var v$={kernelName:Us,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ct(r,$(un(e,1.5),2)))}}};var S$={kernelName:Gi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(vt(e),\"float32\"),t:()=>$(r,J(e,r.dtype)),e:()=>$(r,J(Nu(e),r.dtype))}}};var N$={kernelName:Hs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,pt(0)),o=pt(kN),s=pt(TN),i=$(r,s),a=$($(r,o),Ke(J(e,\"float32\")));return we(n,i,a)}}}};var k$={kernelName:Xs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,at(pt(1),e)))}}};var T$={kernelName:js,gradFunc:r=>({x:()=>vt(r)})};var _$={kernelName:qs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(bu(J(e,\"float32\")),r)}}};var E$={kernelName:Ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(sm(J(e,\"float32\")),r)}}};var A$={kernelName:Wi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=NN(n,o,s),l=[];for(let c=0;cmn(r,l)}}};var D$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>at(i,$(mt(i,[o],s),n))}}};var $$={kernelName:Ys,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Qr(e))}}};var $N={kernelName:Ui,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>yu(r,n,o)}}};var RN={kernelName:Hi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ie(r,n)}}};var R$={kernelName:Zs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,$(Se(J(e,\"float32\")),2))}}};var F$={kernelName:iu,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(J(e,\"float32\"),2))}}};var O$={kernelName:ti,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=pt(2);return{a:()=>$(r,$(o,at(e,n))),b:()=>$(r,$(o,at(n,e)))}}};var M$={kernelName:xo,gradFunc:r=>({x:()=>vt(r)})};var P$={kernelName:ei,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=be(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=be(n.shape,o);return u.length>0&&(a=mt(a,u)),R(Ut(a),n.shape)}}}};var L$={kernelName:Js,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,ar(n.shape,\"float32\"));return{x:()=>u}}};var z$={kernelName:ri,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Wt(bu(e)))}}};var B$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(at(pt(1),Wt(e)),r)}}};var V$={kernelName:oo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=mh(o);return{x:()=>Vt(r,s)}}};var W$={kernelName:qi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>Fe(r,o)}}};var U$={kernelName:pu,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>UZ(r,e)}}};function UZ(r,t){let e=kn(t,vt(t)),n=ua(r,e),o=cn(t,pt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var HZ=[Dy,Y2,Z2,J2,Q2,tD,eD,rD,nD,oD,sD,iD,lD,cD,pD,mD,fD,dD,hD,gD,xD,yD,wD,bD,CD,vD,SD,ND,kD,TD,d$,_D,ED,AD,DD,$D,FD,RD,OD,LD,zD,BD,VD,GD,WD,UD,HD,qD,KD,XD,AN,AN,YD,JD,t$,e$,r$,n$,o$,s$,i$,a$,l$,u$,c$,DN,DN,p$,m$,f$,h$,g$,x$,y$,b$,w$,I$,C$,v$,S$,N$,k$,T$,_$,E$,A$,D$,$$,$N,$N,RN,RN,R$,O$,F$,M$,P$,L$,z$,B$,V$,G$,W$,U$,H$];for(let r of HZ)A_(r);O().prototype.abs=function(){return this.throwIfDisposed(),_e(this)};O().prototype.acos=function(){return this.throwIfDisposed(),mx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),fx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),tm(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),cc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),ea(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),dx(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),_(this.size===1,()=>\"The array must have only 1 element.\"),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),hx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),gx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),xx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),yx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),bx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),xu(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),yu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),oa(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),sa(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Nx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),vr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Lt&&(r=[r]),ie([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),rm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),om(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Nn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),bu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),sm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),mc(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),im(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Rx(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),ia(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Fx(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Ox(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Mx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),aa(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Px(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Lx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),Ke(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),je(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),zx(this)};O().prototype.fft=function(){return this.throwIfDisposed(),Au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),la(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Qp(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),ua(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),cn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),wl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),ym(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Bx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Vx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Cu(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Vn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),yl(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Wx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),qx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),Su(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),vu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Nu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),lm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ku(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),kn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Ne(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),gl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),lo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Yx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Zx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),xl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),ui(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ca(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),wr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),mn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),un(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Qx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),sy(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Or(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),um(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),Cy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),vy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),dr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Du(this)};O().prototype.round=function(){return this.throwIfDisposed(),cm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),pm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),mm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),fm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Qr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),iy(this)};O().prototype.sin=function(){return this.throwIfDisposed(),dm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),hm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Eu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),li(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),Tu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),hr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),bm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Wn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Lt?[this,r]:[this,...r];return Fe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),So(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ay(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),at(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),mt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ly(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),na(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),cy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),py(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Cm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),gr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),we(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var uo=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},dn=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},z=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},_t=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},Ry=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}};var Ch=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var ko={};function Nm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function FN(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>FN(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n==\"object\"&&(!Array.isArray(n)&&n.type===\"ndarray\"&&typeof n.value==\"number\"?r[e]=n.value:FN(n))}}}function fa(r,t={},e={},n=\"object\",o=!1){if(typeof r==\"string\"){let s=r,i;if(s in e)i=e[s];else if(s in ko)i=ko[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new z(`${n}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in ko?[a,u]=ko.className:i in t&&([a,u]=t[i]),a==null)throw new z(`Unknown ${n}: ${i}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(ko))l[f]=ko[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},ko);for(let f of Object.keys(e))ko[f]=e[f];FN(s.config);let m=u(a,s.config,e,o);return ko=Object.assign({},p),m}else{let l=Object.assign({},ko);for(let p of Object.keys(e))ko[p]=e[p];let c=new a(s.config);return ko=Object.assign({},l),c}}}function qZ(r,t){return rt?1:0}function vh(r,t){return-1*qZ(r,t)}function Eo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function q$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function da(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Fy(r,t,e=0,n=1/0){return co(e>=0),co(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function tr(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>tr(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${K$(r)}.`)}function K$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>K$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function j$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return km.set(e,1),e}else return r}var XZ=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function rR(r){return!!r.match(XZ)}function nR(r){return r===parseInt(r.toString(),10)}function Ao(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function gn(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=Sl(r,1);return Vy(e,[1,t,1])})}function sR(r){let t=[Ao(r.shape)];return R(r,t)}function iR(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Ao(r.shape,1)];return R(r,t)}function vl(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[t,0],[e,r.shape[1]]);case 3:return xm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return yc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(r,[t,0,0,0,0,0],[e,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 LN(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[0,t],[r.shape[0],e]);case 3:return xm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return yc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:switch(n){case 1:return vl(r,t,e);case 2:return LN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return vl(r,t,e);case 2:return xm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return LN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return vl(r,t,e);case 2:return yc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return yc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return LN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Tm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ie(r,t)}function BN(r,t){switch(r.rank){case 1:return kx([r,t]);case 2:return Tx([r,t],0);case 3:return _x([r,t],0);case 4:return Ex([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Vy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Rr(r,t)}function _m(r,t=0,e=1,n,o){return xc(r,t,e,n,o)}function Do(r,t,e,n){if(r.rank<2||t.rank<2)throw new _t(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new _t(`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 = ${t.shape}`)}if(r.rank===2&&t.rank===2)return Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?zN(r.rank,n,xn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Vt(t,c),[u,-1]);let p=[...o,...l];return R(Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?zN(r.rank,n,xn()):null,activation:e}),p)}}function Gy(r,t,e){return B(()=>(Array.isArray(t)?t=Oe(t,\"int32\"):t=J(t,\"int32\"),ua(r,t,e)))}function $c(r){return $(r,r)}function zN(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function yn(r,t,e){return B(()=>(e==null&&(e=xn()),Me(e),X(r,zN(r.rank,t,e))))}function aR(r,t=1){if(t!==1)throw new _t(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return aa(r)}function lR(r){return B(()=>ct(r,X(_e(r),1)))}function Wy(r,t,e,n){return B(()=>mN(r,t,e,n))}function uR(r){return B(()=>{let t=X(.5,$(.2,r));return vr(t,0,1)})}function Ou(r,t,e=!1){return e?r():t()}var cR=[\"fanIn\",\"fanOut\",\"fanAvg\"],pR=[\"normal\",\"uniform\",\"truncatedNormal\"];function YZ(r){da(cR,\"FanMode\",r)}function ZZ(r){da(pR,\"Distribution\",r)}var bn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Em=class extends bn{apply(t,e){return ke(t,e)}};Em.className=\"Zeros\";Q.registerClass(Em);var Mu=class extends bn{apply(t,e){return ar(t,e)}};Mu.className=\"Ones\";Q.registerClass(Mu);var Am=class extends bn{constructor(t){if(super(),typeof t!=\"object\")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>$(pt(this.value),ar(t,e)))}getConfig(){return{value:this.value}}};Am.className=\"Constant\";Q.registerClass(Am);var Dm=class extends bn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return Gn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Dm.className=\"RandomUniform\";Q.registerClass(Dm);var $m=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new _t(`randomNormal does not support dType ${e}.`);return _m(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className=\"RandomNormal\";Q.registerClass($m);var Rm=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new _t(`truncatedNormal does not support dType ${e}.`);return Im(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Rm.className=\"TruncatedNormal\";Q.registerClass(Rm);var Fm=class extends bn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new z(\"Identity matrix initializer can only be used for 2D square matrices.\");return $(this.gain,fc(t[0]))})}getConfig(){return{gain:this.gain}}};Fm.className=\"Identity\";Q.registerClass(Fm);function JZ(r,t=\"channelsLast\"){let e,n;if(Me(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=Ao(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=Ao(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Ao(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var jr=class extends bn{constructor(t){if(super(),t.scale<0)throw new z(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?\"fanIn\":t.mode,YZ(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,ZZ(this.distribution),this.seed=t.seed}apply(t,e){let n=JZ(t),o=n[0],s=n[1],i=this.scale;if(this.mode===\"fanIn\"?i/=Math.max(1,o):this.mode===\"fanOut\"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution===\"normal\"){let a=Math.sqrt(i);if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new _t(`${this.getClassName()} does not support dType ${e}.`);return Im(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Gn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};jr.className=\"VarianceScaling\";Q.registerClass(jr);var Rc=class extends jr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Rc.className=\"GlorotUniform\";Q.registerClass(Rc);var Fc=class extends jr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Fc.className=\"GlorotNormal\";Q.registerClass(Fc);var Oc=class extends jr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Oc.className=\"HeNormal\";Q.registerClass(Oc);var Mc=class extends jr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Mc.className=\"HeUniform\";Q.registerClass(Mc);var Pc=class extends jr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Pc.className=\"LeCunNormal\";Q.registerClass(Pc);var Lc=class extends jr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Lc.className=\"LeCunUniform\";Q.registerClass(Lc);var Om=class extends bn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new _t(\"Shape must be at least 2D.\");if(e!==\"int32\"&&e!==\"float32\"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=_m(i,0,1,e,this.seed),u=hN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var hR=\"Variable\",kh=class{constructor(t,e=\"float32\",n=hR,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=Py(),n=n==null?hR:n,this.originalName=Ly(n),this.name=zy(this.originalName),this.trainable_=o,this.constraint=s,this.val=my(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),t7(this.val,t),this.val.id!==t.id&&(this.val.assign(t),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(t){this.trainable_=t,this.val.trainable=t}};function t7(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function Th(r){return r.map(t=>t.read())}function Lm(r){r.forEach(t=>{t[0].write(t[1])})}var Ie=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},en=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=Py(),i!=null&&(this.originalName=Ly(i),this.name=zy(this.originalName)),this.rank=e.length}},e7=0,Nl=class{constructor(t,e){this.callArgs=e,this.id=e7++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},r7=0,Et=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=r7++,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 e=t.name;if(!e){let n=this.getClassName();e=_o(n)+\"_\"+Fu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o=\"float32\"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+\"_ib-\"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new dn(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return kr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return kr(this.getNodeAtIndex(t,\"output\").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new uo(`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 uo(`Layer ${this.name} is not connected, no input to return.`);return kr(this.getNodeAtIndex(0,\"input\").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new uo(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new uo(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer output\" is ill-defined. Use \\`getOutputAt(nodeIndex)\\` instead.`);return kr(this.getNodeAtIndex(0,\"output\").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){let e=ue(t);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=ue(this.inputSpec);if(e.length!==n.length)throw new z(`Layer ${this.name} expects ${n.length} inputs, but it received ${e.length} input tensors. Input received: ${t}`);for(let o=0;oi.maxNDim)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${a}`);if(i.minNDim!=null&&a=0?u[c]:u[u.length+c];if(p!=null&&[p,null].indexOf(m)===-1)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected axis ${c} of input shape to have value ${p} but got shape ${u}.`)}}if(i.shape!=null)for(let u=0;u{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of ue(t))i.push(a.shape);this.build(kr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e);this.supportsMasking&&this.setMaskMetadata(t,i);let a=ue(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=kr(u),this.activityRegularizer!=null)throw new _t(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=n7(t),a=this.computeOutputShape(i),u,l=o7(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new en(l,c,this,ue(t),e,this.name,p)):u=new en(l,a,this,ue(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new _t(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) 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 uo(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new uo(`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 dn(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Pm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Th(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`You called setWeights(weights) on layer \"${this.name}\" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Th(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=ue(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.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 e}setMaskMetadata(t,e,n){if(!this.supportsMasking)return;let o=this.computeMask(t,n),s=ue(e),i=ue(o);if(s.length!==i.length)throw new Error(`${this.name} outputs ${s.length} tensors but ${s.length} masks for those tensors`);for(let a=0;at.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 t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function n7(r){r=ue(r);let t=[];for(let e of r)t.push(e.shape);return kr(t)}function o7(r){return\"float32\"}function VN(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(\",\")+\"|\"+t.names().sort().join(\",\"),p=qy.get(c),m;if(p==null){let d=l7(i,t);p=d.sorted,m=d.recipientCounts,qy.put(c,p),Ky.put(c,m)}m={},o||Object.assign(m,Ky.get(c));let f=new ha(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>\"Expected at least one fetch, got none\");let e=[],n={};if(r.length===1){let o=gR(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=gR(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:u7(n)}}function u7(r){let t={};for(let e in r)t[e]=r[e].size;return t}function gR(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function c7(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,xR);var wR={};Kt(wR,{maxNorm:()=>m7,minMaxNorm:()=>h7,nonNeg:()=>d7,unitNorm:()=>f7});function GN(r,t){return B(()=>Se(mt($(r,r),t,!0)))}var Bc=class extends Q.Serializable{getConfig(){return{}}},zm=class extends Bc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=GN(t,this.axis),n=vr(e,0,this.maxValue);return $(t,ct(n,X(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};zm.className=\"MaxNorm\";Q.registerClass(zm);var Bm=class extends Bc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ct(t,X(cr(),GN(t,this.axis))))}getConfig(){return{axis:this.axis}}};Bm.className=\"UnitNorm\";Q.registerClass(Bm);var Vm=class extends Bc{apply(t){return Or(t)}};Vm.className=\"NonNeg\";Q.registerClass(Vm);var Gm=class extends Bc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=GN(t,this.axis),n=X($(this.rate,vr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ct(n,X(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Gm.className=\"MinMaxNorm\";Q.registerClass(Gm);var yR={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function Ve(r){return Nm(r)}function bR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Ge(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in yR?yR[r]:r,config:{}};return bR(e)}else return r instanceof Bc?r:bR(r)}function m7(r){return new zm(r)}function f7(r){return new Bm(r)}function d7(){return new Vm}function h7(r){return new Gm(r)}var IR={};Kt(IR,{constant:()=>y7,glorotNormal:()=>N7,glorotUniform:()=>S7,heNormal:()=>k7,heUniform:()=>T7,identity:()=>C7,leCunNormal:()=>_7,leCunUniform:()=>E7,ones:()=>x7,orthogonal:()=>A7,randomNormal:()=>w7,randomUniform:()=>b7,truncatedNormal:()=>I7,varianceScaling:()=>v7,zeros:()=>g7});function g7(){return new Em}function x7(){return new Mu}function y7(r){return new Am(r)}function b7(r){return new Dm(r)}function w7(r){return new $m(r)}function I7(r){return new Rm(r)}function C7(r){return new Fm(r)}function v7(r){return new jr(r)}function S7(r){return new Rc(r)}function N7(r){return new Fc(r)}function k7(r){return new Oc(r)}function T7(r){return new Mc(r)}function _7(r){return new Pc(r)}function E7(r){return new Lc(r)}function A7(r){return new Om(r)}var eF={};Kt(eF,{Layer:()=>Et,RNN:()=>po,RNNCell:()=>Tl,activation:()=>XJ,add:()=>o9,alphaDropout:()=>V9,average:()=>s9,averagePooling1d:()=>rk,averagePooling2d:()=>nk,averagePooling3d:()=>ok,avgPool1d:()=>d9,avgPool2d:()=>g9,avgPool3d:()=>y9,avgPooling1d:()=>h9,avgPooling2d:()=>x9,avgPooling3d:()=>b9,batchNormalization:()=>p9,bidirectional:()=>R9,categoryEncoding:()=>q9,centerCrop:()=>U9,concatenate:()=>i9,conv1d:()=>BJ,conv2d:()=>VJ,conv2dTranspose:()=>GJ,conv3d:()=>WJ,conv3dTranspose:()=>UJ,convLstm2d:()=>E9,convLstm2dCell:()=>A9,cropping2D:()=>qJ,dense:()=>YJ,depthwiseConv2d:()=>jJ,dot:()=>c9,dropout:()=>ZJ,elu:()=>FJ,embedding:()=>n9,flatten:()=>QJ,gaussianDropout:()=>B9,gaussianNoise:()=>z9,globalAveragePooling1d:()=>w9,globalAveragePooling2d:()=>I9,globalMaxPool1d:()=>O9,globalMaxPool2d:()=>M9,globalMaxPooling1d:()=>ZR,globalMaxPooling2d:()=>JR,gru:()=>v9,gruCell:()=>S9,input:()=>YN,inputLayer:()=>RJ,layerNormalization:()=>m9,leakyReLU:()=>MJ,lstm:()=>N9,lstmCell:()=>k9,masking:()=>G9,maxPool1d:()=>P9,maxPool2d:()=>L9,maxPooling1d:()=>QR,maxPooling2d:()=>tF,maxPooling3d:()=>C9,maximum:()=>a9,minimum:()=>l9,multiply:()=>u9,permute:()=>r9,prelu:()=>PJ,randomWidth:()=>K9,reLU:()=>OJ,repeatVector:()=>t9,rescaling:()=>W9,reshape:()=>e9,resizing:()=>H9,rnn:()=>D9,separableConv2d:()=>HJ,simpleRNN:()=>T9,simpleRNNCell:()=>_9,softmax:()=>LJ,spatialDropout1d:()=>JJ,stackedRNNCells:()=>$9,thresholdedReLU:()=>zJ,timeDistributed:()=>F9,upSampling2d:()=>KJ,zeroPadding2d:()=>f9});async function ga(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!=\"number\"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],$(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]==\"number\"?e[n]=this.totals[n]/this.seen:B(()=>{let o=$(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Yy=class extends kl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew Zy(n,t))}var Wm=class r{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),r.checkForDuplicate(e),r.constructors[t]==null&&(r.constructors[t]=[]),r.constructors[t].push(e)}static checkForDuplicate(t){for(let e in r.constructors)r.constructors[+e].forEach(o=>{if(o===t)throw new z(\"Duplicate callback constructor.\")})}static clear(){r.constructors={}}static createCallbacks(t){let e=[];for(let n in r.constructors){let o=+n;t>=o&&e.push(...r.constructors[o])}return e.map(n=>new n)}};Wm.constructors={};function Qy(r,t,e,n,o,s,i,a,u){let l=new Yy,c=[new WN,...Wm.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Xy(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function wn(r,t={},e=!1){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function _h(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=J(r,\"float32\"));let e=mt($c(r),t,!0),n=Co(e.shape,cr()),o=Se(kn(e,n));return ct(r,o)})}function xa(r,t){return B(()=>Ne($c(at(t,r)),-1))}function Um(r,t){return B(()=>Ne(_e(at(t,r)),-1))}function Pu(r,t){return B(()=>{let e=at(r,t),n=vr(_e(r),cr(),Number.MAX_VALUE),o=_e(ct(e,n));return $(100,Ne(o,-1))})}function $7(r,t){return B(()=>{let e=vr(t,cr(),Number.MAX_VALUE),n=Nr(X(1,e)),o=vr(r,cr(),Number.MAX_VALUE),s=Nr(X(1,o));return Ne($c(at(n,s)),-1)})}function R7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne($c(e),-1)})}function F7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne(e,-1)})}function O7(r,t){return B(()=>{let e=mt($(r,t),-1),n=Sr($(at(1,r),t),-1);return kn(0,X(1,at(n,e)))})}function M7(r,t){return B(()=>{let e=Math.log(2),n=at(t,r),o=at(X(n,li($(-2,n))),e);return Ne(o,-1)})}function Vc(r,t,e=!1){return B(()=>{if(e)t=Eu(t);else{let n=mt(t,t.shape.length-1,!0);t=ct(t,n)}return t=vr(t,cr(),1-cr()),Ut(mt($(J(r,\"float32\"),Nr(t)),t.shape.length-1))})}function Hm(r,t,e=!1){return B(()=>{let n=J(la(sR(r)),\"int32\");t=vr(t,cr(),1-cr());let o=t.shape,s=R(ca(n,o[o.length-1]),o);return Vc(s,t,e)})}function P7(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Or(t),n=Ut(_e(t));return X(at(e,$(t,r)),vu(Ke(n)))})}function qm(r,t){return B(()=>{let e;return e=vr(t,cr(),1-cr()),e=Nr(ct(e,at(1,e))),Ne(P7(r,e),-1)})}function L7(r,t){return B(()=>{let e=vr(r,cr(),1),n=vr(t,cr(),1);return mt($(r,Nr(ct(e,n))),-1)})}function z7(r,t){return B(()=>{let e=Nr(X(cr(),t));return Ne(at(t,$(r,e)),-1)})}function Ah(r,t){return B(()=>{let e=_h(r,-1),n=_h(t,-1),o=$(e,n);return Ut(mt(o,-1))})}var Eh={meanSquaredError:xa,meanAbsoluteError:Um,meanAbsolutePercentageError:Pu,meanSquaredLogarithmicError:$7,squaredHinge:R7,hinge:F7,categoricalHinge:O7,logcosh:M7,categoricalCrossentropy:Vc,sparseCategoricalCrossentropy:Hm,binaryCrossentropy:qm,kullbackLeiblerDivergence:L7,poisson:z7,cosineProximity:Ah};function tb(r){if(typeof r==\"string\"){if(r in Eh)return Eh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes(\"softmaxcrossentropy\")&&(t=`Unknown loss ${r}. Use \"categoricalCrossentropy\" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return r}function Dh(r,t){return B(()=>{let e=$(.5,wr(t)),n=tn(Re(t,e),r.dtype);return Ne($r(r,n),-1)})}function $h(r,t){return B(()=>tn($r(ea(r,-1),ea(t,-1)),\"float32\"))}function SR(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,1))),\"float32\"))}function B7(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,0))),\"float32\"))}function V7(r,t){return B(()=>J(mt(Fr($r(r,0),$r(t,1))),\"float32\"))}function UN(r,t){return B(()=>{let e=SR(r,t),n=V7(r,t),o=X(e,n);return J(we(Re(o,0),ct(e,o),0),\"float32\")})}function NR(r,t){return B(()=>{let e=SR(r,t),n=B7(r,t),o=X(e,n);return J(we(Re(o,0),ct(e,o),0),\"float32\")})}function rb(r,t){return qm(r,t)}function nb(r,t){return r.rank===t.rank&&(r=Wn(r,[r.rank-1])),t=ea(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),\"float32\")}var G7=xa,W7=xa,U7=Um,H7=Um,q7=Pu,K7=Pu,Rh=Vc,j7=Ah,HN=Hm,eb={binaryAccuracy:Dh,categoricalAccuracy:$h,precision:UN,categoricalCrossentropy:Rh,sparseCategoricalCrossentropy:HN,mse:G7,MSE:W7,mae:U7,MAE:H7,mape:q7,MAPE:K7,cosine:j7};function kR(r){if(typeof r==\"string\"&&r in eb)return eb[r];if(typeof r!=\"string\"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Fh(r){if(co(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(Eh))if(Eh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(eb))if(eb[e]===r){t=e;break}return t!==void 0?t:r.name}}function _R(r){let t={Adagrad:()=>Ac.adagrad(.01),Adadelta:()=>Ac.adadelta(1,.95,cr()),Adam:()=>Ac.adam(.001,.9,.999,cr()),Adamax:()=>Ac.adamax(.002,.9,.999,cr(),0),RMSProp:()=>Ac.rmsprop(.001,.9,0,cr()),SGD:()=>Ac.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,r in t)return t[r]();throw new z(`Unknown Optimizer ${r}`)}function KN(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!qN(r))throw new Error(\"User-defined metadata is expected to be a JSON object, but is not.\");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model \"${t}\" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function qN(r){if(r===null)return!0;if(typeof r==\"object\")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!=\"string\"||!qN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!qN(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function ER(r,t,e,n=console.log){let o=Z7(r),s=[\"Layer (type)\",\"Input Shape\",\"Output shape\",\"Param #\"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push(\"Receives inputs\"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n(\"_\".repeat(t)),ob(s,e,n),n(\"=\".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function ob(r,t,e=console.log){let n=\"\";for(let o=0;o0&&(n=n.slice(0,n.length-1)+\" \"),n+=r[o],n=n.slice(0,t[o]),n+=\" \".repeat(t[o]-n.length);e(n)}function J7(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(\",\")}catch(u){o=\"multiple\"}try{n=JSON.stringify(r.outputShape)}catch(u){n=\"multiple\"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];ob(a,t,e)}function Q7(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(\",\")}catch(p){s=\"multiple\"}try{o=JSON.stringify(r.outputShape)}catch(p){o=\"multiple\"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;m{let t=Object.keys(r);if(t.length===0)return!1;let e=t[0].split(\"/\");return!isNaN(parseInt(e[e.length-1],10))},ib=class r extends Et{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let b=this.getClassName().toLowerCase();this.name=Fu(b)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],Eo(this.inputs).length!==this.inputs.length)throw new z(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(b=>b.name)}`);Eo(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;co(I===0,\"input layer has >1 nodes\"),co(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),this.inputLayersTensorIndices.push(N)}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 e={},n={},o={},s={},i={},a=[],u=(b,w,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new dn(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(r.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let M=0;M=0;)I.splice(I.indexOf(D),1);a.push(D)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(vh);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof r&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(vh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new dn(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${I.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new dn(`The name \"${b}\" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new Nl({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0,s=tJ(t);s&&this.parseWeights(t);for(let a of this.layers)for(let[u,l]of a.weights.entries()){let c=s?`${l.name.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}${u}`:l.originalName;if(n[c]!=null)throw new z(`Duplicate weight name: ${c}`);n[c]=l,o++}let i=[];for(let a in t){let u=a;if(n[a]==null){let l=a.split(\"/\");u=l.slice(0,-2).concat([l[l.length-1]]).join(\"/\")}if(n[u]!=null)i.push([n[u],t[a]]);else if(e)throw new z(`Provided weight data has no target variable: ${a}`);delete n[u]}if(e){let a=[];for(let u in n)a.push(u);if(a.length>0)throw new z(`${a.length} of ${o} weights are not set: ${a}`)}Lm(i)}parseWeights(t){for(let e in Object.keys(t)){let n=e.split(\"/\"),o=[\"vars\",\"layer_checkpoint_dependencies\"],s=n.map(i=>i.startsWith(\"_\")?i.slice(1):i).filter(i=>!o.includes(i)).join(\"/\");s!==e&&(t[s]=t[e],delete t[e])}}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Km}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=sb(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=ue(t);let n=new ha;for(let o=0;o{t=ue(t);let n;return e==null?n=To(null,t.length):n=ue(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Mm(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(vh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(vh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[I,N]=d[0];h.mask==null&&(h.mask=N),b=ue(p.call(I,h)),w=ue(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=ue(p.call(g,h)),w=ue(p.computeMask(g,x));if(p.activityRegularizer)throw new _t(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let I=0;I{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(kr(b),w)}function l(g){let x=g.name,b=wn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!q$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function eJ(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r==\"object\"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} 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 o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function ab(r,t){return eJ(r,t,\"classWeight\")}async function lb(r,t,e,n){if(t!=null||n!=null)throw new Error(\"Support sampleWeight is not implemented yet\");if(e!=null){let o=B(()=>{if(r.shape.length===1)return ln(r);if(r.shape.length===2){if(r.shape[1]>1)return ea(r,1);if(r.shape[1]===1)return R(r,[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 o.data());Tt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Oe(i,\"float32\")}else return null}function DR(r,t){return $(r,t)}var rJ=32;function FR(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=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=$R(\"input\",r.inputNames,e),i=$R(\"output\",r.outputNames,n),a=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(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function $R(r,t,e){if(e instanceof Lt)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function nJ(r){if(r.length===3)throw new _t(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function OR(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).\"),y.assert(e!=null,()=>\"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.\"),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.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 o=e.validationData!=null,s,i;if(o)if(RR(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=nJ(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>\"val_\"+g)):l=u.slice();let c=Jy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Qy(c,p,e.epochs,null,null,oJ(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let I;RR(e.validationData)?I=ue(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=ue(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?rJ:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new _t(\"Verbose mode is not implemented yet.\");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \\`batches\\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=sJ(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=FR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hX(s[h],$(d,g))),u>0&&Tt(x)}Tt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function jm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>vl(n,t,e-t)):vl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Gy(r,t.dtype===\"int32\"?t:J(t,\"int32\")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function jN(r){let t=[];r instanceof Lt&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Lt)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function iJ(r){return r instanceof Lt}function XN(r){return Array.isArray(r)}function PR(r){return!iJ(r)&&!XN(r)}function LR(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(XN(r)&&r.length>0)i=!0;else if(PR(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(PR(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(XN(r)){if(r=r,r.length!==t.length)throw new z(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=jN(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function aJ(r,t,e){let n=Eo(r.map(s=>s.shape[0]));n.sort();let o=Eo(t.map(s=>s.shape[0]));if(o.sort(),n.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(o.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(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function lJ(r,t,e){let n=[xa,qm,Vc];for(let o=0;o1)throw new z(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r==\"string\"||typeof r==\"function\")e=[r];else if(Array.isArray(r)||typeof r==\"object\")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var cJ=\"layers-model\",Un=class extends ib{constructor(t){super(t),this.isTraining=!1}summary(t,e,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).\");ER(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=_R(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof qr))throw new z(\"User-defined optimizer must be an instance of tf.Optimizer.\");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!=\"string\"&&typeof t.loss!=\"function\"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new z(`Unknown entry in loss dictionary: \"${i}\". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output \"${i}\" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(tb(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.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=${t.loss}.`);e=t.loss.map(a=>tb(a))}else{let i=tb(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+\"_loss\"))}});let o=uJ(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+\"_\"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};mi(\"metric\",()=>{for(let i=0;i{let c=\"\",p,m,f;for(let d of l){if(typeof d==\"string\"&&[\"accuracy\",\"acc\",\"crossentropy\",\"ce\"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===qm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Dh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=rb):this.lossFunctions[i]===Hm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=nb:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=HN):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=$h:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Rh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=kR(d),p=c+Fh(d);let h;mi(p,()=>{h=f}),s(i,p,h)}})(a)}}),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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;ub(o);let i=this.standardizeUserDataXY(t,e,!0,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return kr(l)}finally{$o(i[0],t),$o(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),MR(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new z(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new z(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new z(\"`outputs` is an empty Array, which is not allowed.\");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ha;if(t instanceof Lt&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new _t(\"Verbose predictLoop() is not implemented yet.\");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=jm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return kr(i.map(a=>ie(a,0)))})}predict(t,e={}){let n=jN(t);zR(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{$o(n,t)}}predictOnBatch(t){zR(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new dn(\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).\");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==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 ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error(\"sample weight is not supported yet.\");let l=null;if(o!=null){let c=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new _t(\"Verbose mode is not implemented yet.\");if(s!=null)throw new _t(\"steps mode in testLoop() is not implemented yet\");{let u=pb(i,n),l=Oe(gn(0,i));for(let c=0;c1){let i=ON(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read());return[this.optimizer_.minimize(a,!0,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;l0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new _t(\"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; ${n.validationData} is invalid.`);let M=await this.standardizeUserData(u,l,null,null,!0,f);c=M[0],p=M[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),M=o[0].shape[0];c=jm(o,F,M),i=o,o=jm(o,0,F),p=jm(s,F,M),a=s,s=jm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);this.checkTrainableWeightsConsistency();let w=this.makeTrainFunction(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>\"val_\"+F))):(N=null,x=[],E=I.slice());let A=Jy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,$o(o,t),$o(s,e),$o(i,t),$o(a,e),$o(c,u),$o(p,l),m!=null&&Tt(m)}}async fitLoop(t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=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=this.checkNumSamples(e,o,f,\"steps_per_epoch\"),x;g!=null&&(x=gn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Qy(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let M=A[D][0],V=A[D][1],G=vl(E,M,V-M);F.batch=D,F.size=V-M;let W=cb(e,G),q=t(W);for(let H=0;H_o(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]==\"string\")t[o]=_o(n[o]);else throw new Error(\"Serialization of non-string loss is not supported.\")}return t}getMetricIdentifiers(){if(typeof this.metrics==\"string\"||typeof this.metrics==\"function\")return[_o(Fh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>_o(Fh(t)));{let t={};for(let e in this.metrics)t[e]=_o(Fh(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error(\"Loading weight_metrics is not supported yet.\");if(t.loss_weights!=null)throw new Error(\"Loading loss_weights is not supported yet.\");if(t.sample_weight_mode!=null)throw new Error(\"Loading sample_weight_mode is not supported yet.\");let e=Gc(t.optimizer_config),n=wn(e),o;if(typeof t.loss==\"string\")o=Cl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Cl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Cl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Cl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Cl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=Mr.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await Mr.encodeWeights(this.getNamedWeights(e)),a={modelTopology:this.toJSON(null,!1),format:cJ,generatedBy:`TensorFlow.js tfjs-layers v${Km}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await Mr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Mr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(KN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){KN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Un.className=\"Model\";Q.registerClass(Un);var mb=class extends Un{};mb.className=\"Functional\";Q.registerClass(mb);async function BR(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Gc(e),o=wn(n,t);if(r.weightsManifest!=null){let s=await Mr.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),Tt(s)}return o}async function VR(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=Mr.getLoadHandlers(r,t);if(e.length===0)e.push(Mr.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return pJ(r,void 0,t)}async function pJ(r,t,e){if(e==null&&(e={}),r.load==null)throw new z(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=wn(Gc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new z(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=mJ(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function mJ(r,t){let e=Mr.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group===\"optimizer\"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var Wc=class r extends Un{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:Fu(\"sequential_\"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof r||t instanceof Un,n;if(e){if(n=t,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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new z(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=Hy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+\"_input\"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=VN(this.outputs[0])}this.inboundNodes=[],new Nl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:To(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Gt(t),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 Un({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className===\"Merge\")throw new z(\"Legacy serialization format not supported yet.\");s=e}else y.assert(e.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=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof r))throw new _t(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=wn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z(\"Cannot set the stopTraining property of a sequential model before it is compiled.\");this.model.stopTraining=t}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 t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};Wc.className=\"Sequential\";Q.registerClass(Wc);function fJ(r){return new Un(r)}function dJ(r){return new Wc(r)}function YN(r){return Hy(r)}function hJ(r,t){Wm.registerCallbackConstructor(r,t)}var rn=class extends Q.Serializable{getConfig(){return{}}},fb=class extends rn{apply(t,e=1){return aR(t,e)}};fb.className=\"elu\";Q.registerClass(fb);var db=class extends rn{apply(t){return mm(t)}};db.className=\"selu\";Q.registerClass(db);var hb=class extends rn{apply(t){return Or(t)}};hb.className=\"relu\";Q.registerClass(hb);var gb=class extends rn{apply(t){return B(()=>lo(6,Or(t)))}};gb.className=\"relu6\";Q.registerClass(gb);var xb=class extends rn{apply(t){return t}};xb.className=\"linear\";Q.registerClass(xb);var yb=class extends rn{apply(t){return Qr(t)}};yb.className=\"sigmoid\";Q.registerClass(yb);var bb=class extends rn{apply(t){return uR(t)}};bb.className=\"hardSigmoid\";Q.registerClass(bb);var wb=class extends rn{apply(t){return li(t)}};wb.className=\"softplus\";Q.registerClass(wb);var Ib=class extends rn{apply(t){return lR(t)}};Ib.className=\"softsign\";Q.registerClass(Ib);var Cb=class extends rn{apply(t){return na(t)}};Cb.className=\"tanh\";Q.registerClass(Cb);var Xm=class extends rn{apply(t,e=-1){return Eu(t,e)}};Xm.className=\"softmax\";Q.registerClass(Xm);var vb=class extends rn{apply(t,e=-1){return am(t,e)}};vb.className=\"logSoftmax\";Q.registerClass(vb);var Sb=class extends rn{apply(t,e=1){return B(()=>$(Qr($(t,e)),t))}};Sb.className=\"swish\";Q.registerClass(Sb);var Nb=class extends rn{apply(t){return B(()=>$(t,na(li(t))))}};Nb.className=\"mish\";Q.registerClass(Nb);function hi(r){return r.getClassName()}function ZN(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"activation\")}function gi(r){if(r==null){let t={};return t.className=\"linear\",t.config={},ZN(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},ZN(t)}else return r instanceof rn?r:ZN(r)}function JN(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 kb=class extends Q.Serializable{},Lu=class extends kb{constructor(t){super(),JN(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=ke([1]);return this.hasL1&&(e=X(e,mt($(this.l1,_e(t))))),this.hasL2&&(e=X(e,mt($(this.l2,$c(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Lu.className=\"L1L2\";Q.registerClass(Lu);function UR(r){return JN(r),new Lu({l1:r!=null?r.l1:null,l2:0})}function HR(r){return JN(r),new Lu({l2:r!=null?r.l2:null,l1:0})}var GR={l1l2:\"L1L2\"};function fe(r){return Nm(r)}function WR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function Ce(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in GR?GR[r]:r,config:{}};return WR(e)}else return r instanceof kb?r:WR(r)}var Ym=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Or(t);return this.maxValue!=null&&(n=vr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Ym.className=\"ReLU\";Q.registerClass(Ym);var Zm=class extends Et{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=St(t);return Cu(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Zm.className=\"LeakyReLU\";Q.registerClass(Zm);var Jm=class extends Et{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=ge(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=Ge(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes==\"number\")this.sharedAxes=[t.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Gt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight(\"alpha\",e,\"float32\",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o{let n=St(t),o=e.mask;if(o!=null){let s=$(at(ar(n.shape),J(o,n.dtype)),pt(-1e9));n=X(n,s)}return this.axis instanceof Array?this.axis.length>1?Ke(at(n,Su(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(t){return t}getConfig(){let t={axis:this.axis},e=super.getConfig();return Object.assign(t,e),t}};ef.className=\"Softmax\";Q.registerClass(ef);function zu(r,t,e){if(typeof r==\"number\")return To(r,t);if(r.length!==t)throw new z(`The ${e} argument must be an integer or tuple of ${t} integers. Received: ${r.length} elements.`);for(let n=0;n(Me(t),t===\"channelsFirst\"?Vt(r,[0,2,3,1]):r))}function QN(r,t){return B(()=>(Me(t),t===\"channelsFirst\"?Vt(r,[0,2,3,4,1]):r))}function xJ(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=xn()),Me(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.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(e!=null&&e.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s===\"channelsFirst\"&&(r=Vt(r,[0,2,1])),o===\"causal\")throw new _t(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=rm(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=yn(a,e)),a})}function qR(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Mh(r,s);if(o===\"causal\")throw new _t(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=Ru.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Vt(u,[0,3,1,2])),u})}function yJ(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=QN(r,s);if(o===\"causal\")throw new _t(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Ax(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=yn(a,e)),s===\"channelsFirst\"&&(a=Vt(a,[0,4,1,2,3])),a})}var Oh=class r extends Et{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",r.verifyArgs(e),this.rank=t,tr(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new _t(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=zu(e.kernelSize,t,\"kernelSize\"),this.strides=zu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,hn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Me(this.dataFormat),this.activation=gi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=ge(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ge(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(e.activityRegularizer),this.dilationRate=zu(e.dilationRate==null?1:e.dilationRate,t,\"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(t){if(co(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Fy(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:hi(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},rf=class r extends Oh{constructor(t,e){super(t,e),this.kernel=null,r.verifyArgs(e),this.filters=e.filters,tr(this.filters,\"filters\"),this.kernelInitializer=ge(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ge(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight(\"kernel\",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=St(t);let n,o=this.bias==null?null:this.bias.read(),s=Oy(this.activation.getClassName());if(s!=null&&this.rank===2)n=qR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=xJ(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=qR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=yJ(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new _t(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(t);let e=[],n=this.dataFormat===\"channelsLast\"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},Uc=class r extends rf{constructor(t){super(2,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Fy(t.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(t.kernelSize)}.`)}};Uc.className=\"Conv2D\";Q.registerClass(Uc);var Hc=class r extends rf{constructor(t){super(3,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Hc.className=\"Conv3D\";Q.registerClass(Hc);var nf=class extends Uc{constructor(t){if(super(t),this.inputSpec=[new Ie({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(t){if(t=Gt(t),t.length!==4)throw new z(\"Input should have rank 4; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 Ie({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);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 o=n.shape,s=o[0],i,a;this.dataFormat===\"channelsFirst\"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=xi(u,m,c,this.padding),h=xi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,1]));let x=om(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=yn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=xi(e[o],u,i,this.padding),e[s]=xi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};nf.className=\"Conv2DTranspose\";Q.registerClass(nf);var of=class extends Hc{constructor(t){if(super(t),this.inputSpec=[new Ie({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Gt(t),t.length!==5)throw new z(\"Input should have rank 5; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 Ie({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==5)throw new z(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat===\"channelsFirst\"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=xi(l,h,m,this.padding),w=xi(c,g,f,this.padding),I=xi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,4,1]));let E=$x(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=yn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s,i;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=xi(e[o],c,a,this.padding),e[s]=xi(e[s],p,u,this.padding),e[i]=xi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};of.className=\"Conv3DTranspose\";Q.registerClass(of);var Tb=class extends rf{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER=\"glorotUniform\",this.DEFAULT_POINTWISE_INITIALIZER=\"glorotUniform\",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new z(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z(\"Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.\");if(e.padding!=null&&e.padding!==\"same\"&&e.padding!==\"valid\")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=ge(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=Ge(e.depthwiseConstraint),this.pointwiseInitializer=ge(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=Ge(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new _t(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Vt(t,[0,2,3,1])),n=fm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Vt(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.pointwiseRegularizer=fe(this.pointwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseConstraint),t.pointwiseConstraint=Ve(this.pointwiseConstraint),t}};Tb.className=\"SeparableConv\";var sf=class extends Tb{constructor(t){super(2,t)}};sf.className=\"SeparableConv2D\";Q.registerClass(sf);var af=class r extends rf{constructor(t){super(1,t),r.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Fy(t.kernelSize,\"number\",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};af.className=\"Conv1D\";Q.registerClass(af);var lf=class extends Et{constructor(t){super(t),typeof t.cropping==\"number\"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]==\"number\"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?\"channelsLast\":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat===\"channelsFirst\"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=St(t),this.dataFormat===\"channelsLast\"){let n=Nh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Nh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Nh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Nh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};lf.className=\"Cropping2D\";Q.registerClass(lf);var uf=class extends Et{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,eR(this.interpolation)}computeOutputShape(t){if(this.dataFormat===\"channelsFirst\"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=St(t),o=n.shape;if(this.dataFormat===\"channelsFirst\"){n=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};uf.className=\"UpSampling2D\";Q.registerClass(uf);function bJ(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=xn()),Me(o);let i=Mh(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ia(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}var cf=class extends Oh{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=ge(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ge(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=Gt(t),t.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat===\"channelsFirst\"?1:3;if(t[e]==null||t[e]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight(\"depthwise_kernel\",o,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(t,e){return B(()=>{t=St(t);let n=bJ(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Tn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Tn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat===\"channelsFirst\"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseRegularizer),t}};cf.className=\"DepthwiseConv2D\";Q.registerClass(cf);function tk(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z(\"When inputs is an array, neither initialState or constants should be provided\");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function ek(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(gn(2,u));if(t=Vt(t,l),s!=null)throw new _t(\"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.\"),o!=null&&(o=J(J(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=je(o,-1)),o=Vt(o,l)),n&&(t=dr(t,0),o!=null&&(o=dr(o,0)));let c=[],p,m=e,f=t.shape[0],d=gr(t),h;o!=null&&(h=gr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=at(wr(N),N),A=X($(w[0],N),$(m[0],E)),D=m.map((F,M)=>X($(w[1][M],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=Fe(c,1)),[p,g,m]})}var po=class r extends Et{constructor(t){super(t);let e;if(t.cell==null)throw new z(\"cell property is missing for the constructor of RNN.\");if(Array.isArray(t.cell)?e=new jc({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z(\"The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).\");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new Ie({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return gn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Uy(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))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=i.map(a=>new Ie({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo(\"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(o=>ke([n,o])):this.states_=[ke([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>ke([n,o])):this.states_[0]=ke([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=tk(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new Ie({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof en){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=St(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new z(`RNN Layer has ${i} 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 a={training:o},l=ek((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=ke(t.shape);return e=mt(e,[1,2]),e=Sl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Vy(e,[1,n]):e):this.cell.stateSize>1?[Vy(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===r.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=wn(o,n);return new t(Object.assign(e,{cell:s}))}};po.className=\"RNN\";Q.registerClass(po);var Tl=class extends Et{},qc=class extends Tl{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,tr(this.units,\"units\"),this.activation=gi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,fi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,fi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t),this.kernel=this.addWeight(\"kernel\",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0wr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0wr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Do($(t,i),this.kernel.read()):s=Do(t,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=X(s,Do(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:hi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),recurrentRegularizer:fe(this.recurrentRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),recurrentConstraint:Ve(this.recurrentConstraint),biasConstraint:Ve(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};qc.className=\"SimpleRNNCell\";Q.registerClass(qc);var pf=class extends po{constructor(t){t.cell=new qc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};pf.className=\"SimpleRNN\";Q.registerClass(pf);var Kc=class extends Tl{constructor(t){if(super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.resetAfter)throw new z(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,tr(this.units,\"units\"),this.activation=gi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=gi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,fi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,fi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t);let e=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[e,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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0wr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};mf.className=\"GRU\";Q.registerClass(mf);var _l=class extends Tl{constructor(t){super(t),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=t.units,tr(this.units,\"units\"),this.activation=gi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=gi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,fi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,fi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Gt(t);let n=t[t.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 o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends bn{apply(u,l){let c=s.apply([i]),p=new Mu().apply([i]),m=s.apply([i*2]);return BN(BN(c,p),m)}},e.className=\"CustomInit\",e)}else o=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0wr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};ff.className=\"LSTM\";Q.registerClass(ff);var jc=class extends Tl{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{mi(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(wn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Th(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Wy(t(),e),a=()=>Ou(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var wJ=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z(\"ConvRNN2D cell does not support constants\");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=ke(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.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(()=>ke(s)):this.states_=[ke(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ke(s)):this.states_[0]=ke(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e===\"channelsFirst\",l=t[u?3:2],c=t[u?4:3],p=Tn(l,o[0],s,i[0],a[0]),m=Tn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className=\"ConvRNN2D\";var Xc=class extends _l{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,tr(this.filters,\"filters\"),this.kernelSize=zu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>tr(u,\"kernelSize\")),this.strides=zu(o||1,2,\"strides\"),this.strides.forEach(u=>tr(u,\"strides\")),this.padding=s||\"valid\",hn(this.padding),this.dataFormat=i||\"channelsLast\",Me(this.dataFormat),this.dilationRate=zu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>tr(u,\"dilationRate\"))}build(t){var e;t=Gt(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight(\"kernel\",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight(\"recurrent_kernel\",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends bn{apply(m,f){let d=l.apply([c]),h=ar([c]),g=l.apply([c*2]);return Tm([d,h,g])}},e.className=\"CustomInit\",e)}else u=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0wr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,lt)=>!st||!st[lt]?nt:$(st[lt],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0wr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[I,N,E,A]=hr(this.kernel.read(),a,w),[D,F,M,V]=this.useBias?hr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,E,M,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=hr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let K=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X($(Y,i),$(K,this.activation.apply(X(m,x)))),et=$(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=wJ(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=Nn(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?yn(s,n,this.dataFormat):s}recurrentConv(t,e){return Nn(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};Xc.className=\"ConvLSTM2DCell\";Q.registerClass(Xc);var df=class extends _b{constructor(t){let e=new Xc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};df.className=\"ConvLSTM2D\";Q.registerClass(df);var Yc=class extends Et{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);if(0Wy(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};Yc.className=\"Dropout\";Q.registerClass(Yc);var hf=class extends Yc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};hf.className=\"SpatialDropout1D\";Q.registerClass(hf);var gf=class extends Et{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,tr(this.units,\"units\"),this.activation=gi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ge(t.kernelConstraint),this.biasConstraint=Ge(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight(\"kernel\",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Gt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=Oy(this.activation.getClassName()),s;return o!=null?s=Do(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Do(n,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:hi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};gf.className=\"Dense\";Q.registerClass(gf);var xf=class extends Et{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(t);for(let e of t.slice(1))if(e==null)throw new z(`The shape of the input to \"Flatten\" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete \"input_shape\" or \"batch_input_shape\" argument to the first layer in your model.`);return[t[0],Ao(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=St(t);return this.activation.apply(n)})}getConfig(){let t={activation:hi(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};yf.className=\"Activation\";Q.registerClass(yf);var bf=class extends Et{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=St(t),oR(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};bf.className=\"RepeatVector\";Q.registerClass(bf);var wf=class extends Et{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=St(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};wf.className=\"Reshape\";Q.registerClass(wf);var If=class extends Et{constructor(t){if(super(t),t.dims==null)throw new Error(\"Required configuration field `dims` is missing during Permute constructor call.\");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \\`dims\\` to be an Array, but received ${t.dims} instead.`);let e=gn(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error(\"Invalid permutation `dims`: \"+JSON.stringify(t.dims)+\" `dims` must contain consecutive integers starting from 1.\");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Ie({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};If.className=\"Permute\";Q.registerClass(If);var Cf=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=St(t);return cc(ui(n,this.maskValue),-1)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),i=cc(ui(n,this.maskValue),-1,!0);return $(n,J(i,n.dtype))})}};Cf.className=\"Masking\";Q.registerClass(Cf);var vf=class extends Et{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER=\"randomUniform\",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(ue(t.inputLength))}this.inputDim=t.inputDim,tr(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,tr(this.outputDim,\"outputDim\"),this.embeddingsInitializer=ge(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=Ge(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight(\"embeddings\",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=St(t),ui(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=ue(this.inputLength);if(e.length!==t.length-1)throw new z(`\"inputLength\" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);n.dtype!==\"int32\"&&(n=tn(n,\"int32\"));let o=Gy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:fe(this.embeddingsRegularizer),activityRegularizer:fe(this.activityRegularizer),embeddingsConstraint:Ve(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};vf.className=\"Embedding\";Q.registerClass(vf);var Al=class extends Et{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new _t}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&Eo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=fi(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=gn(1,l).concat([0]);n.push(Vt(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(gn(0,a-1));i=Vt(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new z(\"`mask` should be an Array\");if(!Array.isArray(t))throw new z(\"`inputs` should be an Array\");if(e.length!==t.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:je(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[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(t))}mergeFunction(t){return B(()=>Tm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z(\"A `Concatenate` layer should be called on a list of inputs.\");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new z(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new z(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new _t(\"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 ${t.shape.length}`),typeof e==\"number\"&&(e=[e,e]),r.dtype===\"complex64\"||t.dtype===\"complex64\")throw new _t(\"batchDot is not implemented for complex64-type Tensors yet.\");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new _t(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`A \\`Dot\\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>Ph(s,t[i].shape.length)):o=[Ph(this.axes,e.shape.length),Ph(this.axes,n.shape.length)],this.normalize&&(e=_h(e,o[0]),n=_h(n,o[1])),IJ(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Ph(this.axes,t.length),Ph(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new _t(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Af.className=\"Dot\";Q.registerClass(Af);var Df=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return Ou(()=>X(_m(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Df.className=\"GaussianNoise\";Q.registerClass(Df);var $f=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return this.rate>0&&this.rate<1?Ou(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,_m(n.shape,1,s))},()=>n,e.training||!1):n})}};$f.className=\"GaussianDropout\";Q.registerClass($f);var Rf=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||St(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return Ou(()=>{let s=St(t),u=-1.6732632423543772*1.0507009873554805,l=cn(Gn(n),this.rate);l=tn(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X($(s,l),$(X(l,-1),u));return X($(m,c),p)},()=>St(t),e.training||!1)}return t})}};Rf.className=\"AlphaDropout\";Q.registerClass(Rf);function Lh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=Ix(r,t,e,n,o,s);else if(r.rank===3)i=Cx(r,t,e,n,o,s);else if(r.rank===4)i=vx(r,t,e,n,o,s);else throw new _t(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function CJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance;return[Lh(r,i,a,e,t,o),i,a]})}function vJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance,u=[];for(let d of gn(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Lh(r,l,c,m,p,o),i,a]})}function SJ(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),gn(0,r.rank-1))?CJ(r,t,e,n,o):vJ(r,t,e,n,o)}var Ff=class extends Et{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=ge(t.betaInitializer||\"zeros\"),this.gammaInitializer=ge(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=ge(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=ge(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Ge(t.betaConstraint),this.gammaConstraint=Ge(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=Gt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new Ie({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight(\"gamma\",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight(\"beta\",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight(\"moving_mean\",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight(\"moving_variance\",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=St(t),s=o.shape,i=s.length,a=gn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=To(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,gn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Lh(o,b,w,I,N,this.epsilon)}else return Lh(o,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 m();let[f,d,h]=SJ(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(at(E,w),N);b.write(at(E,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:fe(this.betaRegularizer),gammaRegularizer:fe(this.gammaRegularizer),betaConstraint:Ve(this.betaConstraint),gammaConstraint:Ve(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Ff.className=\"BatchNormalization\";Q.registerClass(Ff);var Of=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.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 e of this.axis)if(!Number.isInteger(e))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=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=ge(t.betaInitializer||\"zeros\"),this.gammaInitializer=ge(t.gammaInitializer||\"ones\"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(t);let e=t.length;typeof this.axis==\"number\"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==Eo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight(\"gamma\",n,\"float32\",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight(\"beta\",n,\"float32\",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=St(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=dc(n,this.axis,!0),l=To(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,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(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(e==null&&(e=xn()),e!==\"channelsLast\"&&e!==\"channelsFirst\")throw new z(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e===\"channelsFirst\"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],mn(r,n)})}var Mf=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?xn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding==\"number\")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]==\"number\")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e,n;return this.dataFormat===\"channelsFirst\"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>NJ(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Mf.className=\"ZeroPadding2D\";Q.registerClass(Mf);function Fb(r,t,e,n,o,s){return B(()=>{Me(o),MN(s),hn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=xn()),s==null&&(s=\"max\"),r=Mh(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=ku(r,t,e,a):i=xu(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}function KR(r,t,e,n,o,s){return B(()=>{Me(o),MN(s),hn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=xn()),s==null&&(s=\"max\"),r=QN(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Xx(r,t,e,a):i=wx(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,4,1,2,3])),i})}var Eb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize==\"number\")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]==\"number\")this.poolSize=t.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(t.poolSize)}`);if(tr(this.poolSize,\"poolSize\"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides==\"number\")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]==\"number\")this.strides=t.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(t.strides)}`);tr(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,hn(this.padding),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=Tn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=Sl(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Wn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,\"max\")}};Pf.className=\"MaxPooling1D\";Q.registerClass(Pf);var Lf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,\"avg\")}};Lf.className=\"AveragePooling1D\";Q.registerClass(Lf);var Ab=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];tr(this.poolSize,\"poolSize\"),tr(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},zf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,\"max\")}};zf.className=\"MaxPooling2D\";Q.registerClass(zf);var Bf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,\"avg\")}};Bf.className=\"AveragePooling2D\";Q.registerClass(Bf);var Db=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];tr(this.poolSize,\"poolSize\"),tr(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:5})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[4]:t[3];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),o=Tn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Vf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),KR(t,e,n,o,s,\"max\")}};Vf.className=\"MaxPooling3D\";Q.registerClass(Vf);var Gf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),KR(t,e,n,o,s,\"avg\")}};Gf.className=\"AveragePooling3D\";Q.registerClass(Gf);var $b=class extends Et{constructor(t){super(t),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new _t}},Wf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Ne(n,1)})}};Wf.className=\"GlobalAveragePooling1D\";Q.registerClass(Wf);var Uf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Uf.className=\"GlobalMaxPooling1D\";Q.registerClass(Uf);var Rb=class extends Et{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new _t}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Hf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Ne(n,[1,2]):Ne(n,[2,3])})}};Hf.className=\"GlobalAveragePooling2D\";Q.registerClass(Hf);var qf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Sr(n,[1,2]):Sr(n,[2,3])})}};qf.className=\"GlobalMaxPooling2D\";Q.registerClass(qf);var Ob=class extends Et{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=wn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Kf=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(t),t.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Gt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=St(t),ek((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Kf.className=\"TimeDistributed\";Q.registerClass(Kf);function kJ(r){da(Q$,\"BidirectionalMergeMode\",r)}var TJ=\"concat\",jf=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=wn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=wn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?TJ:t.mergeMode,kJ(this.mergeMode),t.weights)throw new _t(\"weights support is not implemented for Bidirectional layer yet.\");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode===\"concat\"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):kr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=tk(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];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.\");e.initialState=n,i.push(...n);let c=n.map(p=>new Ie({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new _t(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof en;for(let l of i)if(l instanceof en!==u)throw new z(\"The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors\");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=dr(s,1));let a;return this.mergeMode===\"concat\"?a=Tm([o,s]):this.mergeMode===\"sum\"?a=X(o,s):this.mergeMode===\"ave\"?a=$(.5,X(o,s)):this.mergeMode===\"mul\"?a=$(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){mi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),mi(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=wn(e.layer);if(delete e.layer,e.numConstants!=null)throw new _t(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};jf.className=\"Bidirectional\";Q.registerClass(jf);var Xf=class extends Et{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=St(t),t.dtype!==\"float32\"&&(t=tn(t,\"float32\")),X($(t,this.scale),this.offset)))}};Xf.className=\"Rescaling\";Q.registerClass(Xf);var{resizeBilinear:_J,cropAndResize:EJ}=fn,Yf=class extends Et{constructor(t){super(t),this.height=t.height,this.width=t.width}centerCrop(t,e,n,o,s,i,a,u){return B(()=>{let l,c=!1,p=e/i,m=n/a,f=(o+e)/i,d=(s+n)/a,h=[p,m,f,d],g=[];t.rank===3?(c=!0,l=Fe([t])):l=t;for(let N=0;N{let s=_J(t,[e,n]);return tn(s,o)})}call(t,e){return B(()=>{let n=St(t),o=n.dtype,s=n.shape,i=s[s.length-3],a=s[s.length-2],u=0;i!==this.height&&(u=Math.floor((i-this.height)/2));let l=0;return a!==this.width&&(l=Math.floor((a-this.width)/2),l===0&&(l=1)),u>=0&&l>=0?this.centerCrop(n,u,l,this.height,this.width,i,a,o):this.upsize(t,this.height,this.width,o)})}getConfig(){let t={height:this.height,width:this.width},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};Yf.className=\"CenterCrop\";Q.registerClass(Yf);function jR(r,t,e,n){let o=St(r);if(o.dtype!==\"int32\"&&(o=tn(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=je(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=je(o,-1)),o.rank>2)throw new z(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=[\"multiHot\",\"oneHot\"].includes(t),a=o,u;if(typeof n!=\"undefined\"&&t===\"count\"?u=ph(a,n,e,i):u=ph(a,[],e,i),t!==\"tfIdf\")return u;if(n)return $(u,n);throw new z(\"When outputMode is 'tfIdf', weights must be provided.\")}var Zf=class extends Et{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode=\"multiHot\"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Gt(t),t==null?[this.numTokens]:this.outputMode===\"oneHot\"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=St(t),t.dtype!==\"int32\"&&(t=tn(t,\"int32\"));let n;if(typeof e.countWeights!=\"undefined\"){if(this.outputMode!==\"count\")throw new z(`countWeights is not used when outputMode !== count.\n Received countWeights=${e.countWeights}`);n=St(e.countWeights)}let o=Sr(t),s=gl(t),i=Re(this.numTokens,o).bufferSync().get(0),a=cn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return jR(t,this.outputMode,this.numTokens,n)})}};Zf.className=\"CategoryEncoding\";Q.registerClass(Zf);var DJ=[\"bilinear\",\"nearest\"],XR=new Set(DJ),Jf=class extends Et{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(XR.has(t.interpolation))this.interpolation=t.interpolation;else throw new z(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation=\"bilinear\";this.cropToAspectRatio=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation===\"bilinear\")return fn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return fn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...XR]} are supported`)})}};Jf.className=\"Resizing\";Q.registerClass(Jf);var zh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};zh.className=\"RandomSeed\";var Bh=class extends Et{constructor(t){super(t),this.randomGenerator=new zh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Bh.className=\"BaseRandomLayer\";var $J=[\"bilinear\",\"nearest\"],YR=new Set($J),Qf=class extends Bh{constructor(t){super(t);let{factor:e,interpolation:n=\"bilinear\"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Gn([1],1+this.widthLower,1+this.widthUpper,\"float32\",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case\"bilinear\":return fn.resizeBilinear(t,i);case\"nearest\":return fn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation}\n but only ${[...YR]} are supported`)}})}};Qf.className=\"RandomWidth\";Q.registerClass(Qf);function RJ(r){return new di(r)}function FJ(r){return new Qm(r)}function OJ(r){return new Ym(r)}function MJ(r){return new Zm(r)}function PJ(r){return new Jm(r)}function LJ(r){return new ef(r)}function zJ(r){return new tf(r)}function BJ(r){return new af(r)}function VJ(r){return new Uc(r)}function GJ(r){return new nf(r)}function WJ(r){return new Hc(r)}function UJ(r){return new of(r)}function HJ(r){return new sf(r)}function qJ(r){return new lf(r)}function KJ(r){return new uf(r)}function jJ(r){return new cf(r)}function XJ(r){return new yf(r)}function YJ(r){return new gf(r)}function ZJ(r){return new Yc(r)}function JJ(r){return new hf(r)}function QJ(r){return new xf(r)}function t9(r){return new bf(r)}function e9(r){return new wf(r)}function r9(r){return new If(r)}function n9(r){return new vf(r)}function o9(r){return new Sf(r)}function s9(r){return new kf(r)}function i9(r){return new Ef(r)}function a9(r){return new Tf(r)}function l9(r){return new _f(r)}function u9(r){return new Nf(r)}function c9(r){return new Af(r)}function p9(r){return new Ff(r)}function m9(r){return new Of(r)}function f9(r){return new Mf(r)}function rk(r){return new Lf(r)}function d9(r){return rk(r)}function h9(r){return rk(r)}function nk(r){return new Bf(r)}function g9(r){return nk(r)}function x9(r){return nk(r)}function ok(r){return new Gf(r)}function y9(r){return ok(r)}function b9(r){return ok(r)}function w9(r){return new Wf(r)}function I9(r){return new Hf(r)}function ZR(r){return new Uf(r)}function JR(r){return new qf(r)}function QR(r){return new Pf(r)}function tF(r){return new zf(r)}function C9(r){return new Vf(r)}function v9(r){return new mf(r)}function S9(r){return new Kc(r)}function N9(r){return new ff(r)}function k9(r){return new _l(r)}function T9(r){return new pf(r)}function _9(r){return new qc(r)}function E9(r){return new df(r)}function A9(r){return new Xc(r)}function D9(r){return new po(r)}function $9(r){return new jc(r)}function R9(r){return new jf(r)}function F9(r){return new Kf(r)}var O9=ZR,M9=JR,P9=QR,L9=tF;function z9(r){return new Df(r)}function B9(r){return new $f(r)}function V9(r){return new Rf(r)}function G9(r){return new Cf(r)}function W9(r){return new Xf(r)}function U9(r){return new Yf(r)}function H9(r){return new Jf(r)}function q9(r){return new Zf(r)}function K9(r){return new Qf(r)}var rF={};Kt(rF,{MAPE:()=>oQ,MSE:()=>aQ,binaryAccuracy:()=>j9,binaryCrossentropy:()=>X9,categoricalAccuracy:()=>Z9,categoricalCrossentropy:()=>J9,cosineProximity:()=>eQ,mape:()=>sQ,meanAbsoluteError:()=>rQ,meanAbsolutePercentageError:()=>nQ,meanSquaredError:()=>iQ,mse:()=>lQ,precision:()=>Q9,recall:()=>tQ,sparseCategoricalAccuracy:()=>Y9});function j9(r,t){return Dh(r,t)}function X9(r,t){return rb(r,t)}function Y9(r,t){return nb(r,t)}function Z9(r,t){return $h(r,t)}function J9(r,t){return Rh(r,t)}function Q9(r,t){return UN(r,t)}function tQ(r,t){return NR(r,t)}function eQ(r,t){return Ah(r,t)}function rQ(r,t){return Um(r,t)}function nQ(r,t){return Pu(r,t)}function oQ(r,t){return Pu(r,t)}function sQ(r,t){return Pu(r,t)}function iQ(r,t){return xa(r,t)}function aQ(r,t){return xa(r,t)}function lQ(r,t){return xa(r,t)}var nF={};Kt(nF,{modelFromJSON:()=>BR});var oF={};Kt(oF,{l1:()=>cQ,l1l2:()=>uQ,l2:()=>pQ});function uQ(r){return new Lu(r)}function cQ(r){return UR(r)}function pQ(r){return HR(r)}var Pb=class extends kl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Un))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function Mb(r,t){return rt}var Lb=class extends Pb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new _t(\"restoreBestWeights = True is not implemented in EarlyStopping yet.\");this.monitor=t.monitor||\"val_loss\",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||\"auto\",this.baseline=t.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=Mb:this.mode===\"max\"?this.monitorFunc=sF:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=sF:this.monitorFunc=Mb,this.monitorFunc===Mb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Mb?1/0:-1/0}async onEpochEnd(t,e){await ga(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function mQ(r){return new Lb(r)}var fQ={earlyStopping:mQ};var dQ=L();dQ.registerFlag(\"KEEP_INTERMEDIATE_TENSORS\",()=>!1,r=>{r&&console.warn(\"Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.\")});var _n;(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_QINT16=15]=\"DT_QINT16\",r[r.DT_QUINT16=16]=\"DT_QUINT16\",r[r.DT_UINT16=17]=\"DT_UINT16\",r[r.DT_COMPLEX128=18]=\"DT_COMPLEX128\",r[r.DT_HALF=19]=\"DT_HALF\",r[r.DT_RESOURCE=20]=\"DT_RESOURCE\",r[r.DT_VARIANT=21]=\"DT_VARIANT\",r[r.DT_UINT32=22]=\"DT_UINT32\",r[r.DT_UINT64=23]=\"DT_UINT64\",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\",r[r.DT_QINT16_REF=115]=\"DT_QINT16_REF\",r[r.DT_QUINT16_REF=116]=\"DT_QUINT16_REF\",r[r.DT_UINT16_REF=117]=\"DT_UINT16_REF\",r[r.DT_COMPLEX128_REF=118]=\"DT_COMPLEX128_REF\",r[r.DT_HALF_REF=119]=\"DT_HALF_REF\",r[r.DT_RESOURCE_REF=120]=\"DT_RESOURCE_REF\",r[r.DT_VARIANT_REF=121]=\"DT_VARIANT_REF\",r[r.DT_UINT32_REF=122]=\"DT_UINT32_REF\",r[r.DT_UINT64_REF=123]=\"DT_UINT64_REF\"})(_n||(_n={}));var iF;(function(r){let t;(function(e){e[e.LEGACY=0]=\"LEGACY\",e[e.V1=1]=\"V1\",e[e.V2=2]=\"V2\"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(iF||(iF={}));var sk={};function gQ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};sk[r]=e}function zb(r){return sk[r]}function xQ(r){delete sk[r]}function v(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd,l=a<0?t.inputNames.length+a:a;if(s.type===\"tensor\")return pr(t.inputNames[l],e,n,o);if(s.type===\"tensors\"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!==\"NoOp\"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type===\"number\"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=In(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function ik(r,t,e){return t[Bb(r,e.currentContextId)]}function yi(r,t){let[e,n,o]=In(r,t);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function In(r,t){if(r===\"\")return[\"\",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(\":\"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Vh(r,t,e){let n=v(\"pad\",r,t,e);if(n===\"explicit\"){n=v(\"explicitPaddings\",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function bi(r){return r.kept?r:ln(r)}var ak={};Kt(ak,{json:()=>yQ});var yQ=[{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 lk={};Kt(lk,{json:()=>bQ});var bQ=[{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:\"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}]},{tfOpName:\"IsNan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsFinite\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsInf\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var uk={};Kt(uk,{json:()=>wQ});var wQ=[{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:\"TensorListConcatV2\",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\"}]},{tfOpName:\"TensorListLength\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}]},{tfOpName:\"TensorListResize\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"}]}];var ck={};Kt(ck,{json:()=>IQ});var IQ=[{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\",defaultValue:.2}]},{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 pk={};Kt(pk,{json:()=>CQ});var CQ=[{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\"}]},{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:\"RandomStandardNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{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:\"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:\"RandomUniformInt\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"minval\",name:\"minval\",type:\"number\"},{tfName:\"maxval\",name:\"maxval\",type:\"number\"},{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,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 mk={};Kt(mk,{json:()=>vQ});var vQ=[{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 fk={};Kt(fk,{json:()=>SQ});var SQ=[{tfOpName:\"LowerBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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:\"UpperBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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 dk={};Kt(dk,{json:()=>NQ});var NQ=[{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 hk={};Kt(hk,{json:()=>kQ});var kQ=[{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\"}]},{tfOpName:\"InitializeTable\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]},{tfOpName:\"InitializeTableV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]}];var gk={};Kt(gk,{json:()=>TQ});var TQ=[{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\"}]},{tfOpName:\"ImageProjectiveTransformV3\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"transforms\",type:\"tensor\"},{start:2,name:\"outputShape\",type:\"number[]\"},{start:3,name:\"fillValue\",type:\"number\"}],attrs:[{tfName:\"interpolation\",name:\"interpolation\",type:\"string\"},{tfName:\"fill_mode\",name:\"fillMode\",type:\"string\"}]}];var xk={};Kt(xk,{json:()=>_Q});var _Q=[{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}]},{tfOpName:\"BitwiseAnd\",category:\"logical\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}]}];var yk={};Kt(yk,{json:()=>EQ});var EQ=[{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:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2},{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}]},{tfOpName:\"Einsum\",category:\"matrices\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"equation\",name:\"equation\",type:\"string\"},{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"MatrixBandPart\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"numLower\",type:\"tensor\"},{start:1,name:\"numUpper\",type:\"tensor\"}]}];var bk={};Kt(bk,{json:()=>AQ});var AQ=[{tfOpName:\"EuclideanNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",defaultValue:!1}]},{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\"}]}];var wk={};Kt(wk,{json:()=>DQ});var DQ=[{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\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Cumprod\",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\"}]},{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 Ik={};Kt(Ik,{json:()=>$Q});var $Q=[{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}]},{tfOpName:\"TensorScatterUpdate\",category:\"slice_join\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]}];var Ck={};Kt(Ck,{json:()=>RQ});var RQ=[{tfOpName:\"SparseFillEmptyRows\",category:\"sparse\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"denseShape\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}]},{tfOpName:\"SparseReshape\",category:\"sparse\",inputs:[{start:0,name:\"inputIndices\",type:\"tensor\"},{start:1,name:\"inputShape\",type:\"tensor\"},{start:2,name:\"newShape\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SparseSegmentMean\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]},{tfOpName:\"SparseSegmentSum\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]}];var vk={};Kt(vk,{json:()=>FQ});var FQ=[{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 Sk={};Kt(Sk,{json:()=>OQ});var OQ=[{tfOpName:\"StaticRegexReplace\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"pattern\",name:\"pattern\",type:\"string\"},{tfName:\"rewrite\",name:\"rewrite\",type:\"string\"},{tfName:\"replace_global\",name:\"replaceGlobal\",type:\"bool\"}]},{tfOpName:\"StringNGrams\",category:\"string\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"dataSplits\",type:\"tensor\"}],attrs:[{tfName:\"separator\",name:\"separator\",type:\"string\"},{tfName:\"ngram_widths\",name:\"nGramWidths\",type:\"number[]\"},{tfName:\"left_pad\",name:\"leftPad\",type:\"string\"},{tfName:\"right_pad\",name:\"rightPad\",type:\"string\"},{tfName:\"pad_width\",name:\"padWidth\",type:\"number\"},{tfName:\"preserve_short_sequences\",name:\"preserveShortSequences\",type:\"bool\"}],outputs:[\"ngrams\",\"ngrams_splits\"]},{tfOpName:\"StringSplit\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"delimiter\",type:\"tensor\"}],attrs:[{tfName:\"skip_empty\",name:\"skipEmpty\",type:\"bool\"}],outputs:[\"indices\",\"values\",\"shape\"]},{tfOpName:\"StringToHashBucketFast\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"num_buckets\",name:\"numBuckets\",type:\"number\"}]}];var Nk={};Kt(Nk,{json:()=>MQ});var MQ=[{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:\"EnsureShape\",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:[]},{tfOpName:\"BroadcastArgs\",category:\"transformation\",inputs:[{start:0,name:\"s0\",type:\"tensor\"},{start:1,name:\"s1\",type:\"tensor\"}],attrs:[]}];var Gh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[ak,lk,uk,ck,pk,mk,fk,dk,hk,gk,xk,yk,bk,wk,Ik,Ck,vk,Sk,Nk],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith(\"Placeholder\")?o.push(h[g.name]):g.op===\"Const\"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,I]=yi(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);if(E!==-1){let A=`${w}:${E}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=yi(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=yi(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=zb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith(\"^\")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case\"string\":a=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=aF(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=aF(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"tensor\":case\"tensors\":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op===\"Const\"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=yi(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:kk(p.type),type:\"dtype\"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=yi(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=yi(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function PQ(r){let t=L().global;if(typeof t.atob!=\"undefined\")return t.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 lF(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):PQ(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?lF(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o==\"number\"?o:parseInt(o,10)}function kk(r){switch(typeof r==\"string\"&&(r=_n[r]),r){case _n.DT_FLOAT:case _n.DT_HALF:return\"float32\";case _n.DT_INT32:case _n.DT_INT64:case _n.DT_INT8:case _n.DT_UINT8:return\"int32\";case _n.DT_BOOL:return\"bool\";case _n.DT_DOUBLE:return\"float32\";case _n.DT_STRING:return\"string\";case _n.DT_COMPLEX64:case _n.DT_COMPLEX128:return\"complex64\";default:return null}}function aF(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?kk(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>kk(o)):e}function uF(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?uF(n.shape):e}function Kb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o==\"number\"?o:parseInt(o,10)):e}function jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>lF(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>uF(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ae={};Kt(ae,{OP_SCOPE_SUFFIX:()=>z0,abs:()=>_e,acos:()=>mx,acosh:()=>fx,add:()=>X,addN:()=>TE,all:()=>tm,any:()=>cc,argMax:()=>ea,argMin:()=>dx,asin:()=>hx,asinh:()=>gx,atan:()=>xx,atan2:()=>yx,atanh:()=>bx,avgPool:()=>xu,avgPool3d:()=>wx,basicLSTMCell:()=>AE,batchNorm:()=>oa,batchNorm2d:()=>Ix,batchNorm3d:()=>Cx,batchNorm4d:()=>vx,batchToSpaceND:()=>yu,bincount:()=>Sx,bitwiseAnd:()=>$E,booleanMaskAsync:()=>W5,broadcastArgs:()=>RE,broadcastTo:()=>sa,buffer:()=>wt,cast:()=>J,ceil:()=>Nx,clipByValue:()=>vr,clone:()=>ln,complex:()=>Sn,concat:()=>ie,concat1d:()=>kx,concat2d:()=>Tx,concat3d:()=>_x,concat4d:()=>Ex,conv1d:()=>rm,conv2d:()=>Nn,conv2dTranspose:()=>om,conv3d:()=>Ax,conv3dTranspose:()=>$x,cos:()=>bu,cosh:()=>sm,cosineWindow:()=>gh,cumprod:()=>mc,cumsum:()=>im,denseBincount:()=>ph,depthToSpace:()=>Rx,depthwiseConv2d:()=>ia,diag:()=>FE,dilation2d:()=>Fx,div:()=>ct,divNoNan:()=>Ox,dot:()=>Mx,dropout:()=>mN,einsum:()=>wu,elu:()=>aa,enclosingPowerOfTwo:()=>fN,ensureShape:()=>ME,equal:()=>$r,erf:()=>Px,euclideanNorm:()=>Lx,exp:()=>Ke,expandDims:()=>je,expm1:()=>zx,eye:()=>fc,fft:()=>Au,fill:()=>Co,floor:()=>la,floorDiv:()=>Qp,fused:()=>Ru,gather:()=>ua,gatherND:()=>Q5,greater:()=>Re,greaterEqual:()=>cn,ifft:()=>wl,imag:()=>Iu,image:()=>fn,inTopKAsync:()=>r8,irfft:()=>ym,isFinite:()=>Bx,isInf:()=>Vx,isNaN:()=>Gx,leakyRelu:()=>Cu,less:()=>yl,lessEqual:()=>Vn,linalg:()=>hN,linspace:()=>zE,localResponseNormalization:()=>Wx,log:()=>Nr,log1p:()=>vu,logSigmoid:()=>qx,logSoftmax:()=>am,logSumExp:()=>Su,logicalAnd:()=>Fr,logicalNot:()=>Nu,logicalOr:()=>lm,logicalXor:()=>Kx,losses:()=>oY,lowerBound:()=>BE,matMul:()=>Bt,max:()=>Sr,maxPool:()=>ku,maxPool3d:()=>Xx,maxPoolWithArgmax:()=>VE,maximum:()=>kn,mean:()=>Ne,meshgrid:()=>GE,min:()=>gl,minimum:()=>lo,mirrorPad:()=>Yx,mod:()=>Zx,moments:()=>dc,movingAverage:()=>q5,mul:()=>$,multiRNNCell:()=>WE,multinomial:()=>UE,neg:()=>Ut,norm:()=>xl,notEqual:()=>ui,oneHot:()=>ca,ones:()=>ar,onesLike:()=>wr,op:()=>k,outerProduct:()=>HE,pad:()=>mn,pad1d:()=>qE,pad2d:()=>KE,pad3d:()=>jE,pad4d:()=>XE,pool:()=>Jx,pow:()=>un,prelu:()=>_u,print:()=>px,prod:()=>Qx,raggedGather:()=>YE,raggedRange:()=>ZE,raggedTensorToTensor:()=>JE,rand:()=>QE,randomGamma:()=>wA,randomNormal:()=>xc,randomStandardNormal:()=>IA,randomUniform:()=>Gn,randomUniformInt:()=>CA,range:()=>pa,real:()=>bl,reciprocal:()=>sy,relu:()=>Or,relu6:()=>um,reshape:()=>R,reverse:()=>dr,reverse1d:()=>vA,reverse2d:()=>SA,reverse3d:()=>NA,reverse4d:()=>kA,rfft:()=>Du,round:()=>cm,rsqrt:()=>pm,scalar:()=>pt,scatterND:()=>j5,searchSorted:()=>fh,selu:()=>mm,separableConv2d:()=>fm,setdiff1dAsync:()=>TA,sigmoid:()=>Qr,sign:()=>iy,signal:()=>nY,sin:()=>dm,sinh:()=>hm,slice:()=>Ot,slice1d:()=>gm,slice2d:()=>hh,slice3d:()=>xm,slice4d:()=>yc,softmax:()=>Eu,softplus:()=>li,spaceToBatchND:()=>Tu,sparse:()=>sY,sparseToDense:()=>Z5,spectral:()=>rY,split:()=>hr,sqrt:()=>Se,square:()=>Wt,squaredDifference:()=>bm,squeeze:()=>Wn,stack:()=>Fe,step:()=>So,stridedSlice:()=>ay,string:()=>iY,sub:()=>at,sum:()=>mt,tan:()=>ly,tanh:()=>na,tensor:()=>ir,tensor1d:()=>Oe,tensor2d:()=>ci,tensor3d:()=>uy,tensor4d:()=>_A,tensor5d:()=>EA,tensor6d:()=>AA,tensorScatterUpdate:()=>$A,tile:()=>Rr,topk:()=>cy,transpose:()=>Vt,truncatedNormal:()=>Im,unique:()=>py,unsortedSegmentSum:()=>Cm,unstack:()=>gr,upperBound:()=>RA,variable:()=>my,where:()=>we,whereAsync:()=>dy,zeros:()=>ke,zerosLike:()=>vt});var cF=(r,t,e,n=ae)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"AddN\":return[n.addN(v(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Mul\":return[n.mul(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Sub\":return[n.sub(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Pow\":return[n.pow(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pF=(r,t,e,n=ae)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(v(\"x\",r,t,e))];case\"Acos\":return[n.acos(v(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(v(\"x\",r,t,e))];case\"Asin\":return[n.asin(v(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(v(\"x\",r,t,e))];case\"Atan\":return[n.atan(v(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(v(\"x\",r,t,e),v(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(v(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(v(\"x\",r,t,e))];case\"Complex\":return[n.complex(v(\"real\",r,t,e),v(\"imag\",r,t,e))];case\"Cos\":return[n.cos(v(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(v(\"x\",r,t,e))];case\"Elu\":return[n.elu(v(\"x\",r,t,e))];case\"Erf\":return[n.erf(v(\"x\",r,t,e))];case\"Exp\":return[n.exp(v(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(v(\"x\",r,t,e))];case\"Floor\":return[n.floor(v(\"x\",r,t,e))];case\"Log\":return[n.log(v(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(v(\"x\",r,t,e))];case\"Imag\":return[n.imag(v(\"x\",r,t,e))];case\"Neg\":return[n.neg(v(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(v(\"x\",r,t,e))];case\"Real\":return[n.real(v(\"x\",r,t,e))];case\"Relu\":return[n.relu(v(\"x\",r,t,e))];case\"Round\":return[n.round(v(\"x\",r,t,e))];case\"Selu\":return[n.selu(v(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(v(\"x\",r,t,e))];case\"Sin\":return[n.sin(v(\"x\",r,t,e))];case\"Sign\":return[n.sign(v(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(v(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(v(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(v(\"x\",r,t,e))];case\"Square\":return[n.square(v(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(v(\"x\",r,t,e))];case\"Tan\":return[n.tan(v(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(v(\"x\",r,t,e),v(\"clipValueMin\",r,t,e),v(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(v(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(pr(r.inputNames[0],t,e))];case\"LeakyRelu\":return[n.leakyRelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(pr(r.inputNames[0],t,e))];case\"IsInf\":return[n.isInf(pr(r.inputNames[0],t,e))];case\"IsFinite\":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Hn(r,t,e=\"\"){if(!(typeof r==\"number\"||typeof t==\"number\")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function mF(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function td(r,t,e){let n=Jb(r,e),o=!mF(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Jb(s.shape,n)}),!mF(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(r,t){if(typeof r==\"number\")return t;if(typeof t==\"number\")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var Qb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=pt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t},\n because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Hn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,gr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Hn(e,s.shape,\"TensorList shape mismatch: \"),De(s)}),this.idTensor=pt(0),this.maxNumElements=o,De(this.idTensor)}copy(){return new r([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, 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.`);Hn(t,this.elementShape,\"TensorList shape mismatch: \");let o=td(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return Fe(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error(\"Trying to pop from an empty list.\");let n=td(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Hn(o.shape,t,\"TensorList shape mismatch: \"),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Hn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new r([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Hn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=td(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Hn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Hn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=td(this.elementShape,this.tensors,n);return t.length===0?ir([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return Fe(s,0)})}concat(t,e){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Hn(this.elementShape,e,\"TensorList shape mismatch: \");let n=td(this.elementShape,this.tensors,e);return this.size()===0?ir([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ie(o,0)})}};function fF(r,t,e){let n=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!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Hn(o,t,\"TensorList shape mismatch: \");let s=gr(r);return new ed(s,t,n)}function dF(r,t,e,n){return new ed([],r,t,n)}function hF(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ed([],e,r.dtype,n),i=gr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function gF(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=Jb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=v(\"thenBranch\",r,t,e),o=v(\"elseBranch\",r,t,e),s=v(\"cond\",r,t,e),i=v(\"args\",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case\"While\":case\"StatelessWhile\":{let n=v(\"body\",r,t,e),o=v(\"cond\",r,t,e),s=v(\"args\",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case\"LoopCond\":{let n=v(\"pred\",r,t,e);return[bi(n)]}case\"Switch\":{let n=v(\"pred\",r,t,e),o=v(\"data\",r,t,e);return o.kept||(o=bi(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[bi(o)]}return}case\"Enter\":{let n=v(\"frameName\",r,t,e),o=v(\"tensor\",r,t,e);return e.enterFrame(n),[bi(o)]}case\"Exit\":{let n=v(\"tensor\",r,t,e);return e.exitFrame(),[bi(n)]}case\"NextIteration\":{let n=v(\"tensor\",r,t,e);return e.nextIteration(),[bi(n)]}case\"TensorArrayV3\":{let n=v(\"size\",r,t,e),o=v(\"dtype\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"dynamicSize\",r,t,e),a=v(\"clearAfterRead\",r,t,e),u=v(\"identicalElementShapes\",r,t,e),l=v(\"name\",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,pt(1)]}case\"TensorArrayWriteV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=v(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[pt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=v(\"indices\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"numElements\",r,t,e),a=hF(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=v(\"elementShape\",r,t,e),o=v(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=v(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=dF(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=v(\"tensorListId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=v(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=fF(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=v(\"dtype\",r,t,e),i=v(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"lengths\",r,t,e),i=gF(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[pt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=v(\"tensorListId\",r,t,e),o=v(\"size\",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function yF(r,t,e){let[n,o]=v(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=v(\"numArgs\",r,t,e);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&&s&&l!==1)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.\")}if(u)throw new Error(\"FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported\");let c=v(\"strides\",r,t,e),p=Vh(r,t,e),m=v(\"dataFormat\",r,t,e).toUpperCase(),f=v(\"dilations\",r,t,e),[d,h]=v(\"args\",r,t,e);i&&(h=d,d=void 0);let g=v(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var bF=(r,t,e,n=ae)=>{switch(r.op){case\"Conv1D\":{let o=v(\"stride\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilation\",r,t,e);return[n.conv1d(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=v(\"strides\",r,t,e),s=Vh(r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv2d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case\"_FusedConv2D\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=yF(r,t,e);return[n.fused.conv2d({x:v(\"x\",r,t,e),filter:v(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"FusedDepthwiseConv2dNative\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=yF(r,t,e);return[n.fused.depthwiseConv2d({x:v(\"x\",r,t,e),filter:v(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"Conv2DBackpropInput\":case\"Conv2dTranspose\":{let o=v(\"outputShape\",r,t,e),s=v(\"strides\",r,t,e),i=Vh(r,t,e);return[n.conv2dTranspose(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=v(\"strides\",r,t,e),s=Vh(r,t,e),i=v(\"dilations\",r,t,e),a=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(v(\"input\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv3d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e),a=v(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var wF=(r,t,e,n=ae)=>{switch(r.op){case\"Fill\":{let o=v(\"shape\",r,t,e),s=v(\"dtype\",r,t,e),i=v(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=v(\"logits\",r,t,e),s=v(\"numSamples\",r,t,e),i=v(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=v(\"indices\",r,t,e),s=v(\"depth\",r,t,e),i=v(\"onValue\",r,t,e),a=v(\"offValue\",r,t,e),u=v(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(v(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(v(\"shape\",r,t,e),v(\"dtype\",r,t,e),v(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(v(\"shape\",r,t,e),v(\"minval\",r,t,e),v(\"maxval\",r,t,e),v(\"dtype\",r,t,e))];case\"RandomUniformInt\":return[n.randomUniformInt(v(\"shape\",r,t,e),v(\"minval\",r,t,e),v(\"maxval\",r,t,e),v(\"seed\",r,t,e))];case\"Range\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"step\",r,t,e);return[n.range(o,s,i,v(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=v(\"shape\",r,t,e),s=v(\"mean\",r,t,e),i=v(\"stdDev\",r,t,e),a=v(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,v(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Tk(r,t,e){let n=v(\"boxes\",r,t,e),o=v(\"scores\",r,t,e),s=v(\"maxOutputSize\",r,t,e),i=v(\"iouThreshold\",r,t,e),a=v(\"scoreThreshold\",r,t,e),u=v(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var IF=async(r,t,e,n,o=ae)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=Tk(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case\"NonMaxSuppressionV4\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Tk(r,t,e),c=v(\"padToMaxOutputSize\",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case\"NonMaxSuppressionV3\":case\"NonMaxSuppressionV2\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Tk(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(v(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(v(\"x\",r,t,e),v(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var CF=(r,t,e,n=ae)=>{switch(r.op){case\"LowerBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=v(\"x\",r,t,e),s=v(\"k\",r,t,e),i=v(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=v(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=v(\"x\",r,t,e),s=v(\"axis\",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var vF=(r,t,e,n=ae)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=v(\"default\",r,t,e);return[pr(r.name,t,e)||o];case\"Placeholder\":return[pr(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=v(\"x\",r,t,e);return[bi(c)]}case\"IdentityN\":return v(\"x\",r,t,e).map(c=>bi(c));case\"Snapshot\":let s=v(\"x\",r,t,e);return[bi(s)];case\"Shape\":return[n.tensor1d(v(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return v(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(v(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(v(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=v(\"x\",r,t,e),a=v(\"data\",r,t,e),u=v(\"message\",r,t,e),l=v(\"summarize\",r,t,e);console.warn(\"The graph has a tf.print() operation,usually used for debugging, which slows down performance.\"),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return pt(this.size(),\"int32\")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=gr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case\"HashTable\":case\"HashTableV2\":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=v(\"keyDType\",r,t,e),i=v(\"valueDType\",r,t,e),a=new tw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"InitializeTable\":case\"InitializeTableV2\":case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=v(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var NF=(r,t,e,n=ae)=>{switch(r.op){case\"ResizeBilinear\":{let o=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=v(\"image\",r,t,e),s=v(\"boxes\",r,t,e),i=v(\"boxInd\",r,t,e),a=v(\"cropSize\",r,t,e),u=v(\"method\",r,t,e),l=v(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=v(\"images\",r,t,e),s=v(\"transforms\",r,t,e),i=v(\"outputShape\",r,t,e),a=v(\"fillValue\",r,t,e),u=v(\"interpolation\",r,t,e),l=v(\"fillMode\",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var kF=(r,t,e,n=ae)=>{switch(r.op){case\"Equal\":return[n.equal(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Greater\":return[n.greater(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Less\":return[n.less(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(v(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(v(\"condition\",r,t,e),v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"BitwiseAnd\":return[n.bitwiseAnd(v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var TF=(r,t,e,n=ae)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(v(\"a\",r,t,e),v(\"b\",r,t,e),v(\"transposeA\",r,t,e),v(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(v(\"equation\",r,t,e),...v(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(v(\"x\",r,t,e),v(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=v(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=v(\"numArgs\",r,t,e),l=v(\"leakyreluAlpha\",r,t,e);if(i){if(a&&u!==2)throw new Error(\"Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&u!==1)throw new Error(\"Fused MatMul with BiasAdd must have one extra argument: bias.\")}let[c,p]=v(\"args\",r,t,e);return[n.fused.matMul({a:v(\"a\",r,t,e),b:v(\"b\",r,t,e),transposeA:v(\"transposeA\",r,t,e),transposeB:v(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case\"MatrixBandPart\":return[n.linalg.bandPart(v(\"a\",r,t,e),v(\"numLower\",r,t,e),v(\"numUpper\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var _F=(r,t,e,n=ae)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(v(\"x\",r,t,e),v(\"axis\",r,t,e),v(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(v(\"x\",r,t,e),v(\"radius\",r,t,e),v(\"bias\",r,t,e),v(\"alpha\",r,t,e),v(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(v(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var EF=(r,t,e,n=ae)=>{switch(r.op){case\"RaggedGather\":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(v(\"paramsNestedSplits\",r,t,e),v(\"paramsDenseValues\",r,t,e),v(\"indices\",r,t,e),v(\"outputRaggedRank\",r,t,e));return o.concat(s)}case\"RaggedRange\":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(v(\"starts\",r,t,e),v(\"limits\",r,t,e),v(\"splits\",r,t,e));return[o,s]}case\"RaggedTensorToTensor\":return[n.raggedTensorToTensor(v(\"shape\",r,t,e),v(\"values\",r,t,e),v(\"defaultValue\",r,t,e),v(\"rowPartitionTensors\",r,t,e),v(\"rowPartitionTypes\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var AF=(r,t,e,n=ae)=>{switch(r.op){case\"Max\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.max(v(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.mean(v(\"x\",r,t,e),a,u)]}case\"Min\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.min(v(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.sum(v(\"x\",r,t,e),a,u)]}case\"All\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.all(v(\"x\",r,t,e),a,u)]}case\"Any\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.any(v(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=v(\"axis\",r,t,e);return[n.argMax(v(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=v(\"axis\",r,t,e);return[n.argMin(v(\"x\",r,t,e),a)]}case\"Prod\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.prod(v(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumprod(v(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumsum(v(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=v(\"x\",r,t,e),s=v(\"weights\",r,t,e),i=v(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=v(\"x\",r,t,e),u=v(\"weights\",r,t,e),l=v(\"size\",r,t,e),c=v(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var DF=(r,t,e,n=ae)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=v(\"n\",r,t,e),s=v(\"axis\",r,t,e),i=v(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=v(\"axis\",r,t,e),s=v(\"batchDims\",r,t,e),i=v(\"x\",r,t,e),a=v(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=v(\"dims\",r,t,e),s=[];for(let a=0;a{let o=v(\"axis\",r,t,e),s=v(\"tensors\",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error(\"the input tensors shape does not match\");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case\"Unpack\":{let o=v(\"axis\",r,t,e),s=v(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=v(\"reps\",r,t,e);return[n.tile(v(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=v(\"axis\",r,t,e),s=v(\"numOrSizeSplits\",r,t,e),i=v(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=v(\"indices\",r,t,e),s=v(\"values\",r,t,e),i=v(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=v(\"sparseIndices\",r,t,e),s=v(\"outputShape\",r,t,e),i=v(\"sparseValues\",r,t,e),a=v(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case\"TensorScatterUpdate\":{let o=v(\"indices\",r,t,e),s=v(\"values\",r,t,e),i=v(\"tensor\",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var $F=(r,t,e,n=ae)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v(\"indices\",r,t,e),v(\"values\",r,t,e),v(\"denseShape\",r,t,e),v(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v(\"inputIndices\",r,t,e),v(\"inputShape\",r,t,e),v(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var RF=(r,t,e,n=ae)=>{switch(r.op){case\"FFT\":return[n.fft(v(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(v(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(v(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var FF=(r,t,e,n=ae)=>{switch(r.op){case\"StaticRegexReplace\":return[n.string.staticRegexReplace(v(\"input\",r,t,e),v(\"pattern\",r,t,e),v(\"rewrite\",r,t,e),v(\"replaceGlobal\",r,t,e))];case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v(\"data\",r,t,e),v(\"dataSplits\",r,t,e),v(\"separator\",r,t,e),v(\"nGramWidths\",r,t,e),v(\"leftPad\",r,t,e),v(\"rightPad\",r,t,e),v(\"padWidth\",r,t,e),v(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v(\"input\",r,t,e),v(\"delimiter\",r,t,e),v(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(v(\"input\",r,t,e),v(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var OF=(r,t,e,n=ae)=>{switch(r.op){case\"Cast\":return[n.cast(v(\"x\",r,t,e),v(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=v(\"axis\",r,t,e);return[n.expandDims(v(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=v(\"axis\",r,t,e);return[n.squeeze(v(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"EnsureShape\":return[n.ensureShape(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=v(\"blockShape\",r,t,e),s=v(\"paddings\",r,t,e);return[n.spaceToBatchND(v(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=v(\"blockShape\",r,t,e),s=v(\"crops\",r,t,e);return[n.batchToSpaceND(v(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=v(\"blockSize\",r,t,e),s=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(v(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(v(\"s0\",r,t,e),v(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function _k(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>cF(i,a,u));case\"basic_math\":return o(()=>pF(i,a,u));case\"control\":return xF(i,a,u);case\"convolution\":return o(()=>bF(i,a,u));case\"creation\":return o(()=>wF(i,a,u));case\"dynamic\":return IF(i,a,u);case\"evaluation\":return o(()=>CF(i,a,u));case\"image\":return o(()=>NF(i,a,u));case\"graph\":return o(()=>vF(i,a,u));case\"logical\":return o(()=>kF(i,a,u));case\"matrices\":return o(()=>TF(i,a,u));case\"normalization\":return o(()=>_F(i,a,u));case\"ragged\":return o(()=>EF(i,a,u));case\"reduction\":return o(()=>AF(i,a,u));case\"slice_join\":return o(()=>DF(i,a,u));case\"sparse\":return o(()=>$F(i,a,u));case\"spectral\":return o(()=>RF(i,a,u));case\"string\":return o(()=>FF(i,a,u));case\"transformation\":return o(()=>OF(i,a,u));case\"hash_table\":return SF(i,a,u,n);case\"custom\":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Wh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,this.rootContext={id:0,frameName:\"\",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?\"\":`${e.frameName}-${e.iterationId}`).join(\"/\"):\"\"}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),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 t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error(\"Cannot increase frame iteration, the context is empty\")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function Ek(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>In(m)[0]));n=n||[];let c=new Set(n.map(m=>In(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Bu(m)||utt(m)||ctt(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&!l.has(m.name)&&!c.has(m.name)){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function MF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>In(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g==\"string\"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=ott(d,u);return stt(h,u),h}function ott(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var rd=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function stt(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a==\"string\"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a==\"string\"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new rd(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new rd(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new rd(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new rd(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function PF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Bu(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=\",\",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new r(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+\"--\"+o.join(this.SEPARATOR)}compile(t,e){let n=Ek(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;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 [${i}]`);if(o.length>0){let l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=MF(this.graph,n),u=PF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return De(e),e}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([e,n])=>[e,this.cloneTensorList(n)]))}execute(t,e){this.disposeIntermediateTensors(),t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(m=>this.graph.nodes[In(m)[0]]),s=e.map(m=>In(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Wh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=In(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=_k(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){if(!(Bu(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Bu(u))continue;let l=ik(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Bu(u)||s.has(u.name)}if(!(Bu(t)||i==null))for(let u of i){if(a(u))continue;let l=ik(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let e of t)e&&!e.isDisposed&&e.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,e,n=!1,o={},s={}){this.disposeIntermediateTensors(),n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepIntermediateTensors=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Wh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(m,a,i)),l=u.map(m=>m.id),c=Object.keys(t).map(m=>t[m].id),p=new Set([...l,...c,...this.weightIds]);return Object.values(a).forEach(m=>{m.forEach(f=>{f&&!f.isDisposed&&!p.has(f.id)&&f.dispose()})}),this.parent==null&&i.dispose(p),u}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(I=>this.graph.nodes[In(I)[0]]),a=n.map(I=>In(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=Ek(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=In(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==null&&!o&&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(I=>!Bu(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I=\"\";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m=\"\";if(p.node.op===\"Enter\"&&v(\"isConstant\",p.node,o,n)&&([m]=yi(p.node.name,n)),o[p.node.name]==null){let f=_k(p.node,o,n,this._resourceManager);m||([m]=yi(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(h)),n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(f)),this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=yi(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=In(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){var e,n;let o={};for(let s in t){let i=(n=(e=this._signature)===null||e===void 0?void 0:e.inputs)===null||n===void 0?void 0:n[s];i!=null?o[i.name]=t[s]:o[s]=t[s]}return o}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=In(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>{var n,o;let s=(o=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||o===void 0?void 0:o[e];return s!=null?s.name:e},{})}checkOutputs(t){t.forEach(e=>{let[n]=In(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var ptt=\"?tfjs-format=file\",mtt=\"model.json\",Hh=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(t,e={},n=Mr){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}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 t=this.handler.load();return y.isPromise(t)?t.then(e=>e.getWeightStream==null?this.loadSync(e):this.loadStreaming(e)):this.loadSync(t)}loadSync(t){let e=this.io.decodeWeights(t.weightData,t.weightSpecs);return this.loadWithWeightMap(t,e)}async loadStreaming(t){if(t.getWeightStream==null)throw new Error(\"Model artifacts missing streamWeights function\");let e=await ix(t.getWeightStream(),t.weightSpecs);return this.loadWithWeightMap(t,e)}loadWithWeightMap(t,e){this.artifacts=t;let n=this.artifacts.modelTopology,o=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(o=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}if(this.signature=o,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new Uh(Gh.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(e),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Gh.Instance.transformGraph(t.modelInitializer);this.initializer=new Uh(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t==\"string\"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error(\"GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");return t.save(this.artifacts)}addStructuredOutputNames(t){if(this.structuredOutputKeys){let e=t instanceof Lt?[t]:t,n={};return e.forEach((o,s)=>n[this.structuredOutputKeys[s]]=o),n}return t}predict(t,e){let n=this.execute(t,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(t,e){let n=await this.executeAsync(t,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(t){var e;if(!(t instanceof Lt)&&!Array.isArray(t)){let s=(e=this.signature)===null||e===void 0?void 0:e.inputs;if(s!=null)for(let i in s){let a=s[i];a.resourceId!=null&&(t[i]=this.resourceIdToCapturedInput[a.resourceId])}return t}t=Array.isArray(t)?t:[t];let n=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${t.length} input tensors provided.`);let o=0;return this.inputNodes.reduce((s,i)=>{var a,u,l;let c=(l=(u=(a=this.signature)===null||a===void 0?void 0:a.inputs)===null||u===void 0?void 0:u[i])===null||l===void 0?void 0:l.resourceId;return c!=null?s[i]=this.resourceIdToCapturedInput[c]:s[i]=t[o++],s},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=this.initializerSignature.outputs,n=Object.keys(e);for(let o=0;o1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function ftt(r,t={},e=Mr){if(r==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&&typeof r==\"string\"&&(r=htt(r));let n=new Hh(r,t,e);return await n.load(),n}function dtt(r){if(r==null)throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model\");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error(\"modelJSON must be the first element of the array\");if(!o||!(o instanceof ArrayBuffer))throw new Error(\"An ArrayBuffer of weights must be the second element of the array\");if(!(\"modelTopology\"in n))throw new Error(\"Model JSON is missing 'modelTopology'\");if(!(\"weightsManifest\"in n))throw new Error(\"Model JSON is missing 'weightsManifest'\");let s=Mr.getWeightSpecs(n.weightsManifest),i=Mr.getModelArtifactsForJSONSync(n,s,o);t=Mr.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=Mr.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new Hh(t);return e.load(),e}function htt(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${mtt}${ptt}`}var LF=\"4.16.0\";var oO={};Kt(oO,{CSVDataset:()=>sd,Dataset:()=>wi,FileDataSource:()=>ld,TextLineDataset:()=>od,URLDataSource:()=>ud,array:()=>jF,csv:()=>QF,func:()=>tO,generator:()=>eO,microphone:()=>nO,version_data:()=>Yk,webcam:()=>rO,zip:()=>XF});var KF=Gl(dh());var UF=Gl(dh());function zF(r,t){return rw(r,t)}function rw(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob==\"function\"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error(\"Circular references are not supported.\");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep map function may not return both a value and recurse=true.\");if(o.recurse)if(Vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function BF(r,t=Dk){return VF(r,t)}function VF(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error(\"Circular references are not supported.\");let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep zip function may not return both a value and recurse=true.\");if(o.recurse)if(Vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=VF(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function Dk(r){return r===null?null:Vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return rw(r,t,e)}function Vu(r){let t=!1;if(L().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=Ak();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Lt)&&!(r instanceof Promise)&&!t)}function GF(r){return r==null||gtt(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Lt||y.isTypedArray(r)}function gtt(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function WF(r){return zF(r,xtt)}function xtt(r){return r instanceof Lt?{value:r.clone(),recurse:!1}:Vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var nd=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError(\"Can't create a ring buffer of unknown capacity.\");if(t<1)throw new RangeError(\"Can't create ring buffer of capacity < 1.\");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError(\"Can't get item at a negative index.\");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError(\"Can't set item at a negative index.\");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var qh=class r extends nd{constructor(){super(r.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new Pk(this,t,e)}columnMajorBatch(t,e=!0,n=Dk){return this.rowMajorBatch(t,e).map(s=>BF(s,n))}concatenate(t,e){return new sw(Uk([this,t]),e)}take(t){return t<0||t==null?this:new Mk(this,t)}skip(t){return t<0||t==null?this:new Ok(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new Wk(this,t,e)}serial(){return new Fk(this)}},$k=class extends er{constructor(t){super(),this.items=t,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 t=this.items[this.trav];return this.trav++,{value:WF(t),done:!1}}},Rk=class extends er{constructor(t){super(),this.nextFn=t}summary(){return\"Function call\"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},Fk=class extends er{constructor(t){super(),this.upstream=t,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()}},Ok=class extends er{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},Pk=class extends er{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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 t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},Lk=class extends er{constructor(t,e){super(),this.upstream=t,this.predicate=e,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 t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;Tt(t.value)}}},zk=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Bk=class extends er{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},ow=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=await this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Zc=class extends er{constructor(){super(),this.outputQueue=new qh,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}}},Vk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return!0}},sw=class extends er{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return\"TODO: fill in upstream of chained summaries -> Chained\"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,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 e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},Dl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(Dl||(Dl={}));var Gk=class extends er{constructor(t,e=Dl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return\"{TODO: fill in upstream of zip summaries} -> Zip\"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof er?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Dl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Dl.SHORTEST:return{value:null,done:!0};case Dl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends er{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new nd(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},Wk=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=UF.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var wi=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is\n ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),En(async()=>(await n.iterator()).columnMajorBatch(t,e,ytt),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,En(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,En(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return En(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return En(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError(\"`Dataset.prefetch()` requires bufferSize to be specified.\");let e=this;return En(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,En(async()=>{let o=Kh(async()=>({value:await e.iterator(),done:!1}));return HF(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<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 o=this,s=KF.alea(e||y.now().toString());return En(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,En(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArrayForTest()}};wi.MAX_BUFFER_SIZE=1e4;function En(r,t=null){return new class extends wi{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function jF(r){return En(async()=>Uk(r),r.length)}function XF(r){if(!Vu(r))throw new Error(\"The argument to zip() must be an object or array.\");let t;if(Array.isArray(r))for(let e=0;e{let e=await nw(r,n=>{if(n instanceof wi)return{value:n.iterator(),recurse:!1};if(Vu(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return qF(e,Dl.SHORTEST)},t)}function ytt(r){if(r===null)return null;let t=r[0];return GF(t)?{value:btt(r),recurse:!1}:{value:null,recurse:!0}}function btt(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Lt?Fe(r):ir(r)}var od=class extends wi{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(`\n`).map(o=>(o.endsWith(\"\\r\")&&(o=o.slice(0,-1)),o))}};var aw='\"',jh=Symbol(\"out\"),YF=Symbol(\"field\"),lw=Symbol(\"quote\"),Hk=Symbol(\"quoteafterquote\"),ZF=Symbol(\"quoteinquote\"),sd=class extends wi{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error(\"Column names must be provided if there is no header line.\");this.fullColumnNames&&t&&y.assert(t.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 (\"+t.length.toString()+\").\"),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>\"Duplicate column names found: \"+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key \"'+o+'\" 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 n=e.value;return this.parseRow(n,!1)}else return null}constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=\",\",this.delimWhitespace=!1,this.base=new od(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>\"Delimiter should not be provided when delimWhitespace is true.\"),this.delimWhitespace=!0,this.delimiter=\" \"):this.delimiter=e.delimiter?e.delimiter:\",\"}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!L().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new r(t);return await e.start(),e}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 t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.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 t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},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(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ir(n,e)}};var cw=class r extends er{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Oe([0],\"int32\"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=ci([i,s,u,a],[1,4])}else this.cropBox=ci([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!L().get(\"IS_BROWSER\"))throw new Error(\"tf.data.webcam is only supported in browser environment.\");if(!t){if(t=document.createElement(\"video\"),!e.resizeWidth||!e.resizeHeight)throw new Error(\"Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.\");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new r(t,e);return await n.start(),n}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error(\"Could not obtain video from webcam.\");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=_y.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=je(J(t,\"float32\"),0),n;n=fn.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return R(n,o.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.\")}};var id=class{};var Xh=class extends er{split(t){return new qk(this,t)}},qk=class extends Xh{constructor(t,e){super(),this.upstream=t,this.impl=new Kk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Kk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=\"\"}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===\"\"?!1:(this.outputQueue.push(this.carryover),this.carryover=\"\",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var pw=class extends er{decodeUTF8(){return new jk(this)}},jk=class extends Xh{constructor(t){super(),this.upstream=t,this.impl=new Xk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Xk=class extends Zc{constructor(t){if(super(),this.upstream=t,L().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=Ak();this.decoder=new e(\"utf8\")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return L().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var ad=class extends pw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().get(\"IS_BROWSER\")?t instanceof File||t instanceof Blob:!1),()=>\"FileChunkIterator only supports File, Blob and Uint8Array right now.\"),this.offset=e.offset||0,this.chunkSize=e.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,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError(\"FileReader returned unknown type.\"));e(u)},s.onabort=a=>n(new Error(\"Aborted\")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function JF(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=wtt(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new ad(i,t)}else throw new Error(s.statusText)}var wtt=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 mw(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var ld=class extends id{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(mw(this.input)&&L().get(\"IS_NODE\")){let t=fw();this.input=t.readFileSync(this.input.slice(7))}return new ad(this.input,this.options)}};var ud=class extends id{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return mw(this.url)?new ld(this.url,this.fileOptions).iterator():JF(this.url,this.fileOptions)}};function QF(r,t={}){return new sd(new ud(r),t)}function tO(r){let t=Kh(r);return En(async()=>t)}function eO(r){return En(async()=>{let t=await r();return Kh(()=>t.next())})}async function rO(r,t){return cw.create(r,t)}async function nO(r){return uw.create(r)}var Yk=\"4.16.0\";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var Itt=Kr.whereImpl,cd=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Ta(this,Bn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().get(\"IS_NODE\")&&S.warn(`\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e===\"string\"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e===\"complex64\"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return S.mergeRealAndImagArrays(o,s)}return y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:[\"The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less.\"]}}where(t){tt([t],\"where\");let e=this.readSync(t.dataId);return Itt(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};cd.nextDataId=0;var Tw={};Kt(Tw,{addImpl:()=>Qk,bincountImpl:()=>fd,bincountReduceImpl:()=>dw,bitwiseAndImpl:()=>tT,castImpl:()=>Jk,ceilImpl:()=>eT,concatImpl:()=>Jc,equalImpl:()=>rT,expImpl:()=>oT,expm1Impl:()=>iT,floorDivImpl:()=>lT,floorImpl:()=>aT,gatherNdImpl:()=>hw,gatherV2Impl:()=>gw,greaterEqualImpl:()=>cT,greaterImpl:()=>uT,lessEqualImpl:()=>mT,lessImpl:()=>pT,linSpaceImpl:()=>xw,logImpl:()=>fT,maxImpl:()=>yw,maximumImpl:()=>dT,minimumImpl:()=>hT,multiplyImpl:()=>Yh,negImpl:()=>gT,notEqualImpl:()=>xT,prodImpl:()=>yT,raggedGatherImpl:()=>bw,raggedRangeImpl:()=>ww,raggedTensorToTensorImpl:()=>Iw,rangeImpl:()=>tp,rsqrtImpl:()=>wT,scatterImpl:()=>Ii,sigmoidImpl:()=>OO,simpleAbsImpl:()=>Zk,sliceImpl:()=>ep,sparseFillEmptyRowsImpl:()=>Cw,sparseReshapeImpl:()=>vw,sparseSegmentReductionImpl:()=>hd,sqrtImpl:()=>LO,squaredDifferenceImpl:()=>CT,staticRegexReplaceImpl:()=>vT,stridedSliceImpl:()=>Sw,stringNGramsImpl:()=>rp,stringSplitImpl:()=>np,stringToHashBucketFastImpl:()=>op,subImpl:()=>NT,tileImpl:()=>Nw,topKImpl:()=>kw,transposeImpl:()=>dd,uniqueImpl:()=>sp});function Zk(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,\"abs\");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=Zk(o),e.makeOutput(n,t.shape,t.dtype)},sO={kernelName:Ei,backendName:\"cpu\",kernelFunc:Ctt};function Qt(r){return(t,e,n,o,s)=>{let i=S.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let I=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let E=y.locToIndex(N,m,d);c[x]=r(n[I],o[E])}return[c,i]}}function Ir(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,\"complex64\"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,\"float32\",s),imag:e.makeTensorInfo(o.shape,\"float32\",i)},a}var iO={kernelName:Ap,backendName:\"cpu\",kernelFunc:Ir};function pd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=pd(r,t,\"float32\"),s=pd(r,t,\"float32\");return Ir({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Xr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var aO={kernelName:go,backendName:\"cpu\",kernelFunc:Xr};function Ro(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var lO={kernelName:Vp,backendName:\"cpu\",kernelFunc:Ro};function Jk(r,t,e,n){if(n===\"int32\"){let o=Int32Array.from(r);return[t,\"int32\",o]}if(n===\"bool\"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,\"bool\");return[i,\"bool\",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Xr({inputs:{x:o},backend:e});let c=pd(e,o.shape,o.dtype),p=Fo({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=Ir({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Ro({inputs:{input:o},backend:e}),p=Fo({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Xr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=Jk(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var uO={kernelName:fo,backendName:\"cpu\",kernelFunc:Fo};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype===\"string\"?S.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?S.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype===\"complex64\"||a.dtype===\"complex64\"){let l=Fo({inputs:{x:i},backend:u,attrs:{dtype:\"complex64\"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=Fo({inputs:{x:a},backend:u,attrs:{dtype:\"complex64\"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",E),M=Ir({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),u.disposeIntermediateTensorInfo(F),M}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function md(r){return(t,e,n,o,s,i)=>{let a=S.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType(\"float32\",u),m=y.getTypedArrayFromDType(\"float32\",u),f=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let M=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[M*2],g[M*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var Qk=Qt((r,t)=>r+t),vtt=md((r,t,e,n)=>({real:r+e,imag:t+n})),ya=oe(no,Qk,vtt),cO={kernelName:no,backendName:\"cpu\",kernelFunc:ya};function fd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function dw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}var tT=Qt((r,t)=>r&t),Stt=oe($a,tT),pO={kernelName:$a,backendName:\"cpu\",kernelFunc:Stt};function _r(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype===\"string\"){if(!Array.isArray(u))throw new Error(\"String tensor's value was not an instance of Array\");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var eT=_r(r=>Math.ceil(r)),Ntt=An(Jo,eT),mO={kernelName:Jo,backendName:\"cpu\",kernelFunc:Ntt};function Jc(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!==\"string\"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e===\"string\"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),nT=oe(za,rT,null,\"bool\"),fO={kernelName:za,backendName:\"cpu\",kernelFunc:nT};var oT=_r(r=>Math.exp(r)),sT=An(cs,oT,\"float32\"),dO={kernelName:cs,backendName:\"cpu\",kernelFunc:sT};var iT=_r(r=>Math.expm1(r)),ktt=An(ps,iT),hO={kernelName:ps,backendName:\"cpu\",kernelFunc:ktt};var aT=_r(r=>Math.floor(r)),Ttt=An(ms,aT),gO={kernelName:ms,backendName:\"cpu\",kernelFunc:Ttt};var lT=Qt((r,t)=>Math.floor(r/t)),_tt=oe(fs,lT,null,\"int32\"),xO={kernelName:fs,backendName:\"cpu\",kernelFunc:_tt};function hw(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),Ett=oe(Ga,uT,null,\"bool\"),yO={kernelName:Ga,backendName:\"cpu\",kernelFunc:Ett};var cT=Qt((r,t)=>r>=t?1:0),Att=oe(hs,cT,null,\"bool\"),bO={kernelName:hs,backendName:\"cpu\",kernelFunc:Att};var pT=Qt((r,t)=>rr<=t?1:0),$tt=oe(Ua,mT,null,\"bool\"),IO={kernelName:Ua,backendName:\"cpu\",kernelFunc:$tt};function xw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),Rtt=An(ws,fT),CO={kernelName:ws,backendName:\"cpu\",kernelFunc:Rtt};function yw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var dT=Qt((r,t)=>Math.max(r,t)),Ftt=oe(Ss,dT),vO={kernelName:Ss,backendName:\"cpu\",kernelFunc:Ftt};var hT=Qt((r,t)=>Math.min(r,t)),Ott=oe(_s,hT),SO={kernelName:_s,backendName:\"cpu\",kernelFunc:Ott};var Yh=Qt((r,t)=>r*t),Mtt=md((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),Qc=oe(Ds,Yh,Mtt),NO={kernelName:Ds,backendName:\"cpu\",kernelFunc:Qc};function gT(r,t,e){let n=y.createScalarValue(-1,e);return Yh([],t,n,r,e)}function Ptt(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=gT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var kO={kernelName:Li,backendName:\"cpu\",kernelFunc:Ptt};var xT=Qt((r,t)=>r!==t?1:0),Ltt=oe(Za,xT,null,\"bool\"),TO={kernelName:Za,backendName:\"cpu\",kernelFunc:Ltt};function dd(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var EO={kernelName:Ms,backendName:\"cpu\",kernelFunc:ztt};function Btt(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(\",\");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function Vtt(r,t){for(let e=0;eo)throw new Error(\"Ragged splits must not point past values\");for(let s=1;sn[s])throw new Error(\"Ragged splits must be sorted in ascending order\")}}function Gtt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);Vtt(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function AO(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error(\"starts must be a scalar or vector\");if(o.length>1)throw new Error(\"limits must be a scalar or vector\");if(i.length>1)throw new Error(\"deltas must be a scalar or vector\");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>DO)throw new Error(`Requires ((limit - start) / delta) <= ${DO}`);m[g+1]=m[g]+I}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i\"Final length of result must be equal to firstDimension.\"),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error(\"Invalid row split size.\");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error(\"Invalid row ids.\");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Oo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Oo.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Oo[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error(\"No row_partition_types given.\");let e=this.rowPartitionTypes[0];switch(e){case Oo.FIRST_DIM_SIZE:return t[0];case Oo.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Oo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Oo[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error(\"Invalid first partition input. Tensor requires at least one element.\");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=RO(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=sa(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);$O(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function $O(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function Iw(r,t,e,n,o,s,i,a,u,l){return new bT(r,t,e,n,o,s,i,a,u,l).compute()}function tp(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),qtt=An(Us,wT),FO={kernelName:Us,backendName:\"cpu\",kernelFunc:qtt};function Ii(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=u instanceof le?u:wt(c,t.dtype);typeof u==\"string\"||typeof u==\"number\"?f.values.fill(u):typeof u==\"boolean\"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),IT=At(Xs,r=>1/(1+Math.exp(-r))),MO={kernelName:Xs,backendName:\"cpu\",kernelFunc:IT};function ep(r,t,e,n,o){let s=Be.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Be.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?S.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o===\"string\"?S.fromStringArrayToUint8(c.values):c.values}function Mo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=Be.parseSliceParams(o,s,i);Be.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=ep(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var PO={kernelName:Wi,backendName:\"cpu\",kernelFunc:Mo};function Cw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(S.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(S.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,I)=>w*I,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),Ktt=At(Zs,r=>Math.sqrt(r)),zO={kernelName:Zs,backendName:\"cpu\",kernelFunc:Ktt};var CT=Qt((r,t)=>{let e=r-t;return e*e}),jtt=oe(ti,CT),BO={kernelName:ti,backendName:\"cpu\",kernelFunc:jtt};var vT=_r((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?\"g\":\"\"),o)}),Xtt=An(ec,vT),VO={kernelName:ec,backendName:\"cpu\",kernelFunc:Xtt};function Sw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType(\"int32\",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth;this.createNGrams(t,l,a,c,1,m)}}return[a,i]}};function rp(r,t,e,n,o,s,i,a){return new ST(e,n,o,s,i,a).compute(r,t)}function Ytt(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),Ztt=md((r,t,e,n)=>({real:r-e,imag:t-n})),Zh=oe(ei,NT,Ztt),GO={kernelName:ei,backendName:\"cpu\",kernelFunc:Zh};function Nw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function WO(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));WO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Jh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Jh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function kw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType(\"int32\",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew cd,1);var kT=At(ls,r=>r>=0?r:Math.exp(r)-1),HO={kernelName:ls,backendName:\"cpu\",kernelFunc:kT};function TT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],\"leakyRelu\");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType(\"float32\",i);for(let l=0;lr<0?t*r:r);function _T(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],\"prelu\");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=Jtt(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var KO={kernelName:Os,backendName:\"cpu\",kernelFunc:_T};var ET=At(Ls,r=>Math.max(0,r)),jO={kernelName:Ls,backendName:\"cpu\",kernelFunc:ET};var AT=At(Vs,r=>Math.min(Math.max(0,r),6)),XO={kernelName:Vs,backendName:\"cpu\",kernelFunc:AT};function ip(r,t,e,n,o){if(e===\"linear\")return Xr({inputs:{x:t},backend:r});if(e===\"relu\")return ET({inputs:{x:t},backend:r});if(e===\"elu\")return kT({inputs:{x:t},backend:r});if(e===\"relu6\")return AT({inputs:{x:t},backend:r});if(e===\"prelu\")return _T({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return TT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return IT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function te(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var YO={kernelName:Vi,backendName:\"cpu\",kernelFunc:te};function DT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],\"matMul\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Ur.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=te({inputs:{x:o},backend:e,attrs:{shape:I}}),A=te({inputs:{x:s},backend:e,attrs:{shape:N}}),D=i?E.shape[1]:E.shape[2],F=i?E.shape[2]:E.shape[1],M=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(E.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(E.shape),H=y.computeStrides(A.shape),[K,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],lt=F*M,ot=wt([V,F,M],E.dtype),it=ot.values,ft=e.blockSize;for(let gt=0;gtMath.acos(r)),QO={kernelName:Go,backendName:\"cpu\",kernelFunc:tet};var eet=At(Wo,r=>Math.acosh(r)),tM={kernelName:Wo,backendName:\"cpu\",kernelFunc:eet};function ret(r){let{inputs:t,backend:e}=r,n=t;tt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var oM={kernelName:Ai,backendName:\"cpu\",kernelFunc:set};function iet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,\"argMin\");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=We({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=S.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,\"int32\"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var sM={kernelName:Di,backendName:\"cpu\",kernelFunc:iet};var aet=At(Ho,r=>Math.asin(r)),iM={kernelName:Ho,backendName:\"cpu\",kernelFunc:aet};var uet=At(qo,r=>Math.asinh(r)),aM={kernelName:qo,backendName:\"cpu\",kernelFunc:uet};var cet=At(Ko,r=>Math.atan(r)),lM={kernelName:Ko,backendName:\"cpu\",kernelFunc:cet};var pet=Qt((r,t)=>Math.atan2(r,t)),met=oe(Xo,pet),uM={kernelName:Xo,backendName:\"cpu\",kernelFunc:met};var fet=At(jo,r=>Math.atanh(r)),cM={kernelName:jo,backendName:\"cpu\",kernelFunc:fet};function gd(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let I=0;IY?Y=ft:s===\"avg\"&&(Z+=ft,et++)}if(isNaN(Y))break}let nt=G+W*w+A;g[nt]=s===\"avg\"?Z/et:Y}}}return h}function _w(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,\"int32\"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gM&&(M=K,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,E,x)}}return i}function Ew(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),I=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],D=o.outShape[4];for(let F=0;FRt?Rt=Ae:s===\"avg\"&&(Dt+=Ae,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=Ct+G;I[qt]=s===\"avg\"?Dt/Math.max(Ht,1):Rt}}}}return w}function pM(r,t){let e=wt(t.outShape,\"int32\"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=st,q=K*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=gd(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var mM={kernelName:Yo,backendName:\"cpu\",kernelFunc:det};function het(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"avgPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Ew(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var fM={kernelName:$i,backendName:\"cpu\",kernelFunc:het};function get(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"avgPool3DGrad\");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=E-1-c.padInfo.left,F=N-1-c.padInfo.top,M=wt(s.shape,\"float32\"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(ft)!==ft))for(let gt=0;gt=c.outWidth||Math.floor(Ct)!==Ct)continue;let Rt=G.get(W,ot,ft,Ct,q);st+=Rt}}}M.set(st*V,W,H,K,Y,q)}return e.makeTensorInfo(M.shape,M.dtype,M.values)}var dM={kernelName:Hl,backendName:\"cpu\",kernelFunc:get};function xet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,I=x-1-c.padInfo.top,N=wt(i.shape,\"float32\"),E=1/(f*d),A=e.data.get(o.dataId).values,D=wt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,Y,et,M);H+=nt}}N.set(H*E,F,V,G,M)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var hM={kernelName:Ul,backendName:\"cpu\",kernelFunc:xet};function yet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||a.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(s==null||a.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\"),tt([o,a,u,s,i],\"batchNorm\");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var gM={kernelName:ds,backendName:\"cpu\",kernelFunc:yet};function bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],\"batchToSpaceND\");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=te({inputs:{x:o},backend:e,attrs:{shape:u}}),d=We({inputs:{x:f},backend:e,attrs:{perm:l}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var xM={kernelName:Ri,backendName:\"cpu\",kernelFunc:bet};function wet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=fd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var yM={kernelName:Da,backendName:\"cpu\",kernelFunc:wet};function Iet(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var bM={kernelName:ql,backendName:\"cpu\",kernelFunc:Iet};var Cet=At(ho,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Xr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(I=>Ro({inputs:{input:I},backend:e})),g=u.map(I=>ba({inputs:{input:I},backend:e})),x=Gu({inputs:h,backend:e,attrs:{axis:s}}),b=Gu({inputs:g,backend:e,attrs:{axis:s}}),w=Ir({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return te({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Jc(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var vM={kernelName:Fi,backendName:\"cpu\",kernelFunc:Gu};function $T(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],\"conv2d\");let p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat===\"channelsLast\",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,M=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,K=e.data.get(s.dataId).values,Y=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],Ct=et+ft*D;for(let Rt=0;Rt=m.inWidth)continue;let xe=gt+qt*E[1],re=Ct+pe*F,ye=xe;for(let de=0;de=l.inDepth)continue;let Z=K*F[0],et=V+Y*D[1];for(let nt=0;nt=l.inHeight)continue;let ft=Z+ot*F[1],gt=et+it*D[2];for(let Ct=0;Ct=l.inWidth)continue;let pe=ft+Ht*F[2],xe=gt+qt*l.inChannels,re=pe;for(let ye=0;yeMath.cos(r)),AM={kernelName:rs,backendName:\"cpu\",kernelFunc:Aet};var Det=At(ns,r=>Math.cosh(r)),DM={kernelName:ns,backendName:\"cpu\",kernelFunc:Det};function $et(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],\"float32\"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,I=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-M)*(m-1)/(g-1):0;for(let K=0;K1?F*(p-1)+K*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?M*(m-1)+st*H:.5*(M+G)*(m-1);if(lt<0||lt>m-1){for(let gt=0;gt1?M*(m-1)+Z*H:.5*(M+G)*(m-1);if(et<0||et>m-1){for(let lt=0;ltx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=S.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let M=0;M=f.inHeight)continue;let Z=K*p[0],et=V+Y*c[1];for(let nt=0;nt=f.inWidth)continue;let ft=Z+ot*p[1],gt=et+it*f.inChannels,Ct=st,Rt=ft;for(let Dt=0;Dt{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,dilationWidth:F,outShape:M}=S.computeDilation2DInfo(n.shape,o.shape,s,i,\"NHWC\",a),V=y.sizeFromShape(M),G=M.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&it=0&>st&&(st=Dt)}}}let lt=y.locToIndex([H,K,Z,nt],G,y.computeStrides(M));W[lt]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),M,n.dtype),shape:M,dtype:n.dtype}}};var GM={kernelName:Zl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Zl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=lt,st=it)}}}V[nt][st][Z]+=M[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var WM={kernelName:Yl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Yl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=ot,st=ft)}}}V[W][nt][st][Z]+=M[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Bet(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{canvas:s,options:i}=n,{contextOptions:a,imageOptions:u}=i||{},l=(u==null?void 0:u.alpha)||1,c=(a==null?void 0:a.contextType)||\"2d\";if(c!==\"2d\")throw new Error(`Context type ${a.contextType} is not supported by the CPU backend.`);let p=s.getContext(c,(a==null?void 0:a.contextAttributes)||{});if(p==null)throw new Error(`Could not get the context with ${c} type.`);let[m,f]=o.shape.slice(0,2),d=o.shape.length===2?1:o.shape[2],h=e.data.get(o.dataId).values,g=o.dtype===\"float32\"?255:1,x=new Uint8ClampedArray(f*m*4);for(let w=0;w1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${A}.`)}else if(o.dtype===\"int32\"&&(A<0||A>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${A}.`);d===1?(I[0]=A*g,I[1]=A*g,I[2]=A*g):I[E]=A*g}let N=w*4;x[N+0]=Math.round(I[0]),x[N+1]=Math.round(I[1]),x[N+2]=Math.round(I[2]),x[N+3]=Math.round(I[3])}s.width=f,s.height=m;let b=new ImageData(x,f,m);return p.putImageData(b,0,0),o}var UM={kernelName:Jd,backendName:\"cpu\",kernelFunc:Bet};function $l(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"sum\");let a;o.dtype===\"bool\"?a=Fo({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Xr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=We({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,\"int32\"),g=pd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=$l({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var qM={kernelName:Fp,backendName:\"cpu\",kernelFunc:Vet};function Get(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],\"eluGrad\");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var KM={kernelName:La,backendName:\"cpu\",kernelFunc:Get};var Wet=S.ERF_P,Uet=S.ERF_A1,Het=S.ERF_A2,qet=S.ERF_A3,Ket=S.ERF_A4,jet=S.ERF_A5,Xet=At(us,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+Wet*e);return t*(1-((((jet*n+Ket)*n+qet)*n+Het)*n+Uet)*n*Math.exp(-e*e))}),jM={kernelName:us,backendName:\"cpu\",kernelFunc:Xet};function xd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),te({inputs:{x:o},backend:e,attrs:{shape:a}})}var XM={kernelName:Oi,backendName:\"cpu\",kernelFunc:xd};var Yet=Qt((r,t)=>r/t),Qh=oe(as,Yet),tg={kernelName:as,backendName:\"cpu\",kernelFunc:Qh};function Aw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType(\"float32\",c),m=y.getTypedArrayFromDType(\"float32\",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&w=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=te({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=te({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=gw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var rP={kernelName:Mi,backendName:\"cpu\",kernelFunc:srt};function irt(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=te({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=Aw(a,!0,e),l=te({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var nP={kernelName:Mp,backendName:\"cpu\",kernelFunc:irt};var art=At(gs,r=>Number.isFinite(r)?1:0,\"bool\"),oP={kernelName:gs,backendName:\"cpu\",kernelFunc:art};var lrt=At(xs,r=>Math.abs(r)===1/0?1:0,\"bool\"),sP={kernelName:xs,backendName:\"cpu\",kernelFunc:lrt};var urt=At(ys,r=>Number.isNaN(r)?1:0,\"bool\"),iP={kernelName:ys,backendName:\"cpu\",kernelFunc:urt};function crt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=xw(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var aP={kernelName:Ha,backendName:\"cpu\",kernelFunc:crt};var prt=At(Is,r=>Math.log1p(r)),lP={kernelName:Is,backendName:\"cpu\",kernelFunc:prt};var mrt=Qt((r,t)=>r&&t),frt=oe(qa,mrt,null,\"bool\"),uP={kernelName:qa,backendName:\"cpu\",kernelFunc:frt};var drt=At(Ka,r=>r?0:1,\"bool\"),cP={kernelName:Ka,backendName:\"cpu\",kernelFunc:drt};var hrt=Qt((r,t)=>r||t),grt=oe(ja,hrt,null,\"bool\"),pP={kernelName:ja,backendName:\"cpu\",kernelFunc:grt};function xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,\"LRN\");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let I=p[x];w+=I*I}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=gd(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var hP={kernelName:Ns,backendName:\"cpu\",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"maxPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Ew(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var gP={kernelName:Pi,backendName:\"cpu\",kernelFunc:wrt};function Irt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"maxPool3DGrad\");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=pM(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=wt(s.shape,\"float32\"),M=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let lt=0;lt=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(ft)!==ft)continue;let gt=w*I*N-1-m.get(V,st,ot,ft,G),Ct=nt*I*N+lt*N+it,Rt=gt===Ct?1:0;if(Rt===0)continue;let Dt=M.get(V,st,ot,ft,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var xP={kernelName:tu,backendName:\"cpu\",kernelFunc:Irt};function Crt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,_w(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,\"float32\"),D=e.data.get(o.dataId).values,F=wt(o.shape,\"float32\",D);for(let M=0;M=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(M,Z,nt,V),lt=Y*I+et,ot=st===lt?1:0;if(ot===0)continue;let it=F.get(M,Z,nt,V);K+=it*ot}}A.set(K,M,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var yP={kernelName:Ql,backendName:\"cpu\",kernelFunc:Crt};function bP(r,t,e,n,o){let s=y.computeStrides(t),i=gd(r,t,e,s,o,\"max\"),a=_w(r,t,e,o,!0,n);return[i.values,a.values]}var wP={kernelName:eu,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,\"MaxPoolWithArgmax\");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=bP(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:\"int32\"}]}};function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=Fo({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=Qh({inputs:{a:f,b:m},backend:e});p.push(d);let h=$l({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var IP={kernelName:ks,backendName:\"cpu\",kernelFunc:vrt};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"min\");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=We({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=S.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),c=i===\"reflect\"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[E]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var vP={kernelName:Es,backendName:\"cpu\",kernelFunc:Nrt};var krt=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),Trt=oe(As,krt),SP={kernelName:As,backendName:\"cpu\",kernelFunc:Trt};var kP=Gl(dh());function MT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=OT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=te({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Zh({inputs:{a:o,b:p},backend:e}),f=sT({inputs:{x:m},backend:e}),d=$l({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Qh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var NP={kernelName:Qs,backendName:\"cpu\",kernelFunc:MT};function _rt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,\"multinomial\");let u=a?o:MT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),\"int32\");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=xd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Gu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var OP={kernelName:Bi,backendName:\"cpu\",kernelFunc:PT};function Mrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,\"pad\");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;bE+u[A]),N=y.locToIndex(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Dw={kernelName:Rs,backendName:\"cpu\",kernelFunc:Mrt};var Prt=Qt((r,t)=>Math.pow(r,t)),Lrt=oe(Fs,Prt),MP={kernelName:Fs,backendName:\"cpu\",kernelFunc:Lrt};function zrt(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=bw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var PP={kernelName:Lp,backendName:\"cpu\",kernelFunc:zrt};function Brt(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ww(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var LP={kernelName:zp,backendName:\"cpu\",kernelFunc:Brt};function Vrt(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=Iw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var zP={kernelName:Bp,backendName:\"cpu\",kernelFunc:Vrt};function Grt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=tp(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var BP={kernelName:ru,backendName:\"cpu\",kernelFunc:Grt};var Wrt=At(Ps,r=>1/r),VP={kernelName:Ps,backendName:\"cpu\",kernelFunc:Wrt};function Urt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,\"resizeBilinear\");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,I=x[0]/b[0],N=x[1]/b[1];for(let E=0;E1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,I=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],I=x[1]/b[1],N=0;for(let E=0;E1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=M+lt*u[1],it=lt*w,ft=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===ft)for(let gt=0;gt=d)continue;let Rt=ot+Ct*u[2],Dt=Ct*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[K+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var HP={kernelName:el,backendName:\"cpu\",kernelFunc:Krt};function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,\"reverse\");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Xr({inputs:{x:o},backend:e});let u=new le(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var qP={kernelName:Gs,backendName:\"cpu\",kernelFunc:jrt};var KP={kernelName:pl,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=S.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let I=0;I=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),jP={kernelName:Ws,backendName:\"cpu\",kernelFunc:Xrt};function Yrt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=Ii(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var XP={kernelName:nl,backendName:\"cpu\",kernelFunc:Yrt};function Zrt(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?rnt*r:ent*(Math.exp(r)-1)),QP={kernelName:Hs,backendName:\"cpu\",kernelFunc:nnt};var ont=At(js,r=>r<0?-1:r>0?1:0),tL={kernelName:js,backendName:\"cpu\",kernelFunc:ont};var snt=At(qs,r=>Math.sin(r)),eL={kernelName:qs,backendName:\"cpu\",kernelFunc:snt};var int=At(Ks,r=>Math.sinh(r)),rL={kernelName:Ks,backendName:\"cpu\",kernelFunc:int};var ant=11920928955078125e-23,nL=Math.log(ant)+2,lnt=At(Ys,r=>{let t=r>-nL,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var iL={kernelName:nu,backendName:\"cpu\",kernelFunc:cnt};function pnt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=vw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var aL={kernelName:il,backendName:\"cpu\",kernelFunc:pnt};function mnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=hd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var lL={kernelName:ou,backendName:\"cpu\",kernelFunc:mnt};function fnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=hd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var uL={kernelName:su,backendName:\"cpu\",kernelFunc:fnt};function dnt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case\"bool\":{let g=e.bufferSync(s),x=!!e.data.get(i.dataId).values[0];h=Ii(d,g,a,m,c,l,u,p,x,f);break}case\"float32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ii(d,g,a,m,c,l,u,p,x,f);break}case\"int32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ii(d,g,a,m,c,l,u,p,x,f);break}case\"string\":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=Ii(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var cL={kernelName:al,backendName:\"cpu\",kernelFunc:dnt};function hnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Mo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var pL={kernelName:Hi,backendName:\"cpu\",kernelFunc:hnt};var mL={kernelName:iu,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,\"square\");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),fL={kernelName:xo,backendName:\"cpu\",kernelFunc:gnt};function xnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,\"stridedSlice\");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=te({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Mo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=te({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=Sw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var dL={kernelName:ll,backendName:\"cpu\",kernelFunc:xnt};function ynt(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=rp(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var hL={kernelName:au,backendName:\"cpu\",kernelFunc:ynt};function bnt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=np(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var gL={kernelName:lu,backendName:\"cpu\",kernelFunc:bnt};function wnt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.data.get(s.dataId).values,a=op(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var xL={kernelName:uu,backendName:\"cpu\",kernelFunc:wnt};var Int=At(ri,r=>Math.tan(r)),yL={kernelName:ri,backendName:\"cpu\",kernelFunc:Int};var Cnt=At(ni,r=>Math.tanh(r)),bL={kernelName:ni,backendName:\"cpu\",kernelFunc:Cnt};function vnt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=Ii(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var wL={kernelName:ol,backendName:\"cpu\",kernelFunc:vnt};function Snt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=Nw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var IL={kernelName:oo,backendName:\"cpu\",kernelFunc:Snt};function Nnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,\"topk\");let a=e.data.get(o.dataId).values,[u,l]=kw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var CL={kernelName:ul,backendName:\"cpu\",kernelFunc:Nnt};function knt(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let M=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function _nt(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Ent(r,t){return r}function Ant(r,t){return y.clamp(0,r,t-1)}function ng(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var TL={kernelName:pu,backendName:\"cpu\",kernelFunc:Ont};var Mnt=[JO,sO,QO,tM,cO,eM,rM,nM,oM,sM,iM,aM,lM,uM,cM,mM,fM,dM,hM,ZO,gM,xM,yM,pO,bM,uO,mO,wM,iO,IM,vM,SM,NM,kM,TM,_M,EM,AM,DM,$M,RM,FM,OM,MM,PM,LM,zM,BM,VM,GM,WM,UM,qM,HO,KM,fO,jM,dO,XM,hO,YM,ZM,JM,gO,xO,QM,tP,eP,rP,yO,bO,aO,nP,CM,oP,sP,iP,qO,wO,IO,aP,CO,lP,uP,cP,pP,mP,fP,dP,vO,hP,gP,xP,yP,wP,IP,CP,SO,vP,SP,TP,NO,kO,_P,EP,AP,TO,DP,FP,OP,Dw,MP,KO,EO,PP,LP,zP,BP,lO,tg,VP,jO,XO,YO,GP,WP,UP,HP,qP,KP,jP,FO,XP,ZP,JP,QP,MO,tL,eL,rL,PO,NP,oL,sL,iL,aL,lL,uL,cL,pL,zO,mL,BO,VO,fL,dL,hL,gL,xL,GO,HM,yL,bL,wL,IL,CL,SL,_O,NL,kL,TL,$P];for(let r of Mnt)rc(r);var Id={};Kt(Id,{assertNotComplex:()=>Ci,bindCanvasToFramebuffer:()=>Hnt,bindColorTextureToFramebuffer:()=>ag,bindTextureToProgramUniformSampler:()=>QT,bindTextureUnit:()=>DL,bindVertexBufferToProgramAttribute:()=>Pw,callAndCheck:()=>ht,canBeRepresented:()=>VT,createFragmentShader:()=>WT,createFramebuffer:()=>YT,createProgram:()=>UT,createStaticIndexBuffer:()=>KT,createStaticVertexBuffer:()=>qT,createTexture:()=>jT,createVertexShader:()=>GT,getBatchDim:()=>Fl,getExtensionOrThrow:()=>yd,getFramebufferErrorMessage:()=>$L,getMaxTexturesInShader:()=>r1,getNumChannels:()=>Wnt,getProgramUniformLocation:()=>JT,getProgramUniformLocationOrThrow:()=>ZT,getRowsCols:()=>Ol,getShapeAs3D:()=>wd,getTextureShapeFromLogicalShape:()=>t1,getWebGLDisjointQueryTimerVersion:()=>n1,getWebGLErrorMessage:()=>AL,getWebGLMaxTextureSize:()=>e1,hasExtension:()=>Kn,isCapableOfRenderingToFloatTexture:()=>o1,isDownloadFloatTextureEnabled:()=>s1,isReshapeFree:()=>Uu,isWebGLFenceEnabled:()=>i1,isWebGLVersionEnabled:()=>zw,linkProgram:()=>HT,logShaderSourceAndInfoLog:()=>Mw,resetMaxTextureSize:()=>qnt,resetMaxTexturesInShader:()=>Knt,unbindColorTextureFromFramebuffer:()=>Lw,unbindTextureUnit:()=>Unt,validateFramebuffer:()=>bd,validateProgram:()=>ig,validateTextureSize:()=>XT});var ap={},$w={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function LT(r,t){ap[r]=t}function qn(r,t){if(!(r in ap)||t!=null){let n=Lnt(r,t);if(n!==null)ap[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=ap[r];return e==null||e.isContextLost()?(delete ap[r],qn(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),ap[r])}function Pnt(r){if(!L().getBool(\"IS_SAFARI\")&&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 Lnt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?Pnt(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete ap[r]},!1),L().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&($w.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",$w)||e.getContext(\"experimental-webgl\",$w):e.getContext(\"webgl2\",$w)}var Wu;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(Wu||(Wu={}));var Yr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(Yr||(Yr={}));var Pr;(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\"})(Pr||(Pr={}));function lp(r,t){return[t,r]}function _L(r,t){return r*t}function og(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function wa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function EL(r,t){let[e,n]=wa(r,t);return e*n*4}function sg(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().getNumber(\"WEBGL_VERSION\")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function ht(r,t){let e=t();return L().getBool(\"DEBUG\")&&znt(r),e}function znt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+AL(r,t))}var Bnt=596e-10,Vnt=65504;function VT(r){return!!(L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||Bntr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function GT(r,t){let e=Rl(r,()=>r.createShader(r.VERTEX_SHADER),\"Unable to create vertex WebGLShader.\");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error(\"Failed to compile vertex shader.\");return e}function WT(r,t){let e=Rl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),L().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Mw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var Gnt=/ERROR: [0-9]+:([0-9]+):/g;function Mw(r,t){let e=Gnt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(`\n`),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),\"Unable to create WebGLProgram.\")}function HT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().get(\"ENGINE_COMPILE_ONLY\")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Failed to link vertex and fragment shaders.\")}function ig(r,t){if(ht(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Shader program validation failed.\")}function qT(r,t){let e=Rl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function KT(r,t){let e=Rl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return ht(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function Wnt(){return L().getNumber(\"WEBGL_VERSION\")===2?1:4}function jT(r){return Rl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function XT(r,t){let e=L().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error(\"Requested texture size \"+n+\" is invalid.\")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error(\"Requested texture size \"+n+\" greater than WebGL maximum on this browser / GPU \"+o+\".\")}}function YT(r){return Rl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function Pw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),ht(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),ht(r,()=>r.enableVertexAttribArray(a)),!0)}function DL(r,t,e){RL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function Unt(r,t){RL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ZT(r,t,e){return Rl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function JT(r,t,e){return r.getUniformLocation(t,e)}function QT(r,t,e,n){ht(r,()=>DL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function Hnt(r){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),ht(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),ht(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function ag(r,t,e){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Lw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function bd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+$L(r,t))}function $L(r,t){switch(t){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 ${t}`}}function Rl(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function RL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function Fl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Ol(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 wd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[Fl(r),...Ol(r)]),t}function t1(r,t=!1){let e=L().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=L().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&L().getBool(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=Fl(r),u=2,l=2;r.length&&([u,l]=Ol(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Rw(r){return r%2===0}function Uu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r[r.length-1],n=t[t.length-1];if(e===n||Rw(e)&&Rw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Rw(r[0])&&Rw(t[0])}var Fw,Ow;function e1(r){if(Fw==null){let t=qn(r);Fw=t.getParameter(t.MAX_TEXTURE_SIZE)}return Fw}function qnt(){Fw=null}function Knt(){Ow=null}function r1(r){if(Ow==null){let t=qn(r);Ow=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Ow)}function n1(r){if(r===0)return 0;let t,e=qn(r);return Kn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Kn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Kn(r,t){return r.getExtension(t)!=null}function zw(r){try{if(qn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function o1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,\"OES_texture_float\"))return!1}else if(!Kn(t,\"EXT_color_buffer_float\"))return!1;return BT(t)}function s1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,\"OES_texture_float\")||!Kn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Kn(t,\"EXT_color_buffer_float\"))return BT(t);let n=\"EXT_color_buffer_half_float\";if(Kn(t,n)){let o=t.getExtension(n);return jnt(t,o)}return!1}return BT(t)}function BT(r){let t=sg(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e),r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function jnt(r,t){let e=sg(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n),r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,1,1,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function i1(r){return r!==2?!1:qn(r).fenceSync!=null}function Ci(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var kt=L();kt.registerFlag(\"HAS_WEBGL\",()=>kt.getNumber(\"WEBGL_VERSION\")>0);kt.registerFlag(\"WEBGL_VERSION\",()=>zw(2)?2:zw(1)?1:0);kt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);kt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>kt.get(\"WEBGL_VERSION\")===2);kt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);kt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);kt.registerFlag(\"WEBGL_PACK\",()=>kt.getBool(\"HAS_WEBGL\"));kt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_CLIP\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_CONV2DTRANSPOSE\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>e1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>r1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=kt.getNumber(\"WEBGL_VERSION\");return r===0?0:n1(r)});kt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>kt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!du.isMobile());kt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>o1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>kt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:kt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));kt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>s1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>i1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>kt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);kt.registerFlag(\"WEBGL_DELETE_TEXTURE_THRESHOLD\",()=>-1,r=>{if(typeof r!=\"number\")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>du.isMobile()?1:-1,r=>{if(typeof r!=\"number\")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);kt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);kt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);kt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);kt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);kt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>kt.getBool(\"IS_TEST\"));kt.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);kt.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);kt.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);kt.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);function Ue(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=L().getBool(\"WEBGL2_ISNAN_CUSTOM\")?`\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n `:\"\",u=\"\",l=`\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `):(r=\"\",t=\"attribute\",e=\"varying\",n=\"varying\",o=\"texture2D\",s=\"gl_FragColor\",i=\"\",a=`\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n `,u=`\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n `,l=`\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function vi(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join(\"\")}function up(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join(\"\")}function Xnt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function FL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=Xnt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join(\"\")}function Cd(r){let t=y.computeStrides(r).map(e=>e.toString());return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}function vd(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Bw=`\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n`;var{getBroadcastDims:OL}=S;function ML(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:\"\"};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Vw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push(\"uniform int outShape;\");break;case 2:n.push(\"uniform ivec2 outShape;\"),n.push(\"uniform int outShapeStrides;\");break;case 3:n.push(\"uniform ivec3 outShape;\"),n.push(\"uniform ivec2 outShapeStrides;\");break;case 4:n.push(\"uniform ivec4 outShape;\"),n.push(\"uniform ivec3 outShapeStrides;\");break;default:break}n.push(\"uniform ivec2 outTexShape;\")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:\"\"};`)});let o=n.join(`\n`),s=r.map(f=>Ynt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=Ue(),u=Qnt(a),l,c,p=rot(a);return t.isPacked?(l=Znt(t.logicalShape,i,e.enableShapeUniforms),c=eot(a)):(l=Jnt(t.logicalShape,i,e.enableShapeUniforms),c=tot(a)),e.packedInputs&&(p+=iot),[p,u,c,o,l,s,e.userCode].join(`\n`)}function Nd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return yot(r,t);case 1:return wot(r,t);case 2:return Cot(r,t);case 3:return Sot(r,t);case 4:return kot(r,t);case 5:return Tot(r);case 6:return _ot(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function PL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return xot(r);case 1:return bot(r,t);case 2:return Iot(r,t);case 3:return vot(r,t);default:return Not(r,t)}}function Ynt(r,t,e=!1,n){let o=\"\";e?o+=PL(r,n):o+=Nd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Eot(r,t):o+=Aot(r,t)),o}function Znt(r,t,e){switch(r.length){case 0:return LL();case 1:return aot(r,t,e);case 2:return hot(r,t,e);case 3:return uot(r,t,e);default:return pot(r,t,e)}}function Jnt(r,t,e){switch(r.length){case 0:return LL();case 1:return lot(r,t,e);case 2:return got(r,t,e);case 3:return cot(r,t,e);case 4:return mot(r,t,e);case 5:return fot(r,t);case 6:return dot(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Qnt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function tot(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function eot(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function rot(r){return`${r.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${r.varyingFs} vec2 resultUV;\n ${r.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${r.defineSpecialNaN}\n ${r.defineSpecialInf}\n ${r.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${not}\n ${oot}\n ${sot}\n `}var not=`\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,oot=`\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,sot=`\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,iot=`\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n`;function LL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function aot(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:n[1]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}function lot(r,t,e){return t[0]===1?e?`\n int getOutputCoords() {\n return int(resultUV.x * float(outTexShape[1]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.x * ${t[1]}.0);\n }\n `:t[1]===1?e?`\n int getOutputCoords() {\n return int(resultUV.y * float(outTexShape[0]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.y * ${t[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n return resTexRC.x * outTexShape[1] + resTexRC.y;\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n return resTexRC.x * ${t[1]} + resTexRC.y;\n }\n `}function uot(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[2]/2),s=o*Math.ceil(r[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${o});\n int c = imod(index, ${o}) * 2;\n\n return ivec3(b, r, c);\n }\n `}function cot(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${up([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=vi([\"r\",\"c\",\"d\"],r);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = resTexRC.x * ${t[1]} + resTexRC.y;\n ${n}\n return ivec3(r, c, d);\n }\n `}function pot(r,t,e){if(e)return`\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[r.length-1]/2),s=o*Math.ceil(r[r.length-2]/2),i=s,a=\"\",u=\"b, r, c\";for(let l=2;l=1?c=\"coords = 0;\":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(`\n`);let m=\"\";i<2&&s>0?m=\"coords\":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(\", \");let f=\"return outputValue;\",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=`\n return vec4(outputValue.xy, outputValue.xy);\n `;else if(h&&!x)i===1?f=`\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n `:f=`\n return vec4(outputValue.x);\n `;else if(a.length){let b=s-2,w=s-1;a.indexOf(b)>-1&&a.indexOf(w)>-1?f=\"return vec4(outputValue.x);\":a.indexOf(b)>-1?f=\"return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);\":a.indexOf(w)>-1&&(f=\"return vec4(outputValue.xx, outputValue.zz);\")}return`\n vec4 ${o}() {\n ${u} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${n}(${m});\n ${f}\n }\n `}function Aot(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o=\"get\"+n+\"AtOutCoords\",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return`\n float ${o}() {\n return sampleTexture(${e}, resultUV);\n }\n `;let l=zt(u),c=OL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];a===0?m=\"\":u<2&&c.length>=1?m=\"coords = 0;\":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(`\n`);let d=\"\";return u<2&&a>0?d=\"coords\":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(\", \"),`\n float ${o}() {\n ${l} coords = getOutputCoords();\n ${m}\n return get${n}(${d});\n }\n `}function zt(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 Vw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(\", \")}function BL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=ML(o,i,t),u=WT(r.gl,a),l=r.createProgram(u);return L().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},a1(r,t,l)))}function a1(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,\"NAN\",!1),L().getNumber(\"WEBGL_VERSION\")===1&&(u=r.getUniformLocation(e,\"INFINITY\",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,\"outShape\",c),a=r.getUniformLocation(e,\"outShapeStrides\",c),i=r.getUniformLocation(e,\"outTexShape\",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}function zL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function VL(r,t,e,n,o){t.program.enableShapeUniforms||(zL(t.inShapeInfos,e),zL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),r.bindVertexArray(t.webGLProgram.vao),L().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Vw(r.packedInputs,i.shape,u),m=\"\",f=\"\",d=\"\";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=S.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),I=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${a}`}else{let u=i.isUniform?\"uniform\":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+=\"_\"+n+\"_\"+o+`${L().getNumber(\"WEBGL_VERSION\")}`,s}function he(r){return L().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var Gw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?up([\"r\",\"c\",\"d\"],t):vi([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${e.output} = result;\n }\n `}};var Ww=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?up([\"r\",\"c\",\"d\"],t):vi([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${e.output} = result;\n }\n `}};var Uw=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=Yr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=`\n ${Bw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Hw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Yr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=`\n ${Bw}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${e.output} = encode_float(x);\n }\n `}};var Rot={R:0,G:1,B:2,A:3},lg=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;ag1,createBufferFromOutputTexture:()=>b1,createFloat16MatrixTexture:()=>m1,createFloat16PackedMatrixTexture:()=>h1,createFloat32MatrixTexture:()=>p1,createIndexBuffer:()=>c1,createPackedMatrixTexture:()=>d1,createUnsignedBytesMatrixTexture:()=>f1,createVertexBuffer:()=>u1,createVertexShader:()=>l1,downloadByteEncodedFloatMatrixFromOutputTexture:()=>I1,downloadFloat32MatrixFromBuffer:()=>w1,downloadMatrixFromPackedOutputTexture:()=>v1,downloadPackedMatrixFromBuffer:()=>C1,getInternalFormatForFloat16MatrixTexture:()=>jw,getInternalFormatForFloat16PackedMatrixTexture:()=>Zw,getInternalFormatForFloat32MatrixTexture:()=>Kw,getInternalFormatForPackedMatrixTexture:()=>Yw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Xw,uploadDenseMatrixToTexture:()=>x1,uploadPixelDataToTexture:()=>y1});function l1(r){let t=Ue(),e=`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`;return GT(r,e)}function u1(r){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 qT(r,t)}function c1(r){let t=new Uint16Array([0,1,2,2,1,3]);return KT(r,t)}function ug(r,t,e,n,o,s){XT(t,e);let i=jT(r),a=r.TEXTURE_2D;return ht(r,()=>r.bindTexture(a,i)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),L().getNumber(\"WEBGL_VERSION\")===1?ht(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):ht(r,()=>r.texStorage2D(a,1,n,t,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Kw(r){return r.internalFormatFloat}function p1(r,t,e,n){let[o,s]=lp(t,e);return ug(r,o,s,Kw(n),n.textureFormatFloat,r.FLOAT)}function jw(r){return r.internalFormatHalfFloat}function m1(r,t,e,n){let[o,s]=lp(t,e);return ug(r,o,s,jw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Xw(r){return r.downloadTextureFormat}function f1(r,t,e,n){let[o,s]=lp(t,e);return ug(r,o,s,Xw(n),r.RGBA,r.UNSIGNED_BYTE)}function Yw(r){return r.internalFormatPackedFloat}function d1(r,t,e,n){let[o,s]=wa(t,e);return ug(r,o,s,Yw(n),r.RGBA,r.FLOAT)}function Zw(r){return r.internalFormatPackedHalfFloat}function h1(r,t,e,n){let[o,s]=wa(t,e);return ug(r,o,s,Zw(n),r.RGBA,n.textureTypeHalfFloat)}function g1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Pw(r,t,\"clipSpacePos\",e,3,20,0)&&Pw(r,t,\"uv\",e,2,20,12)}function x1(r,t,e,n,o,s){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),L().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function y1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):L().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function b1(r,t,e,n){let o=r.createBuffer();ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return ht(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function w1(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function I1(r,t,e,n){let[o,s]=lp(t,e),i=4,a=new Uint8Array(_L(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function C1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(EL(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function v1(r,t,e){let n=new Float32Array(t*e*4);return ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var pp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber(\"WEBGL_VERSION\");if(t!=null?(this.gl=t,LT(e,t)):this.gl=qn(e),t=this.gl,L().getNumber(\"WEBGL_VERSION\")===2){let s=t;this.createVertexArray=()=>ht(s,()=>s.createVertexArray()),this.bindVertexArray=i=>ht(s,()=>s.bindVertexArray(i)),this.deleteVertexArray=i=>ht(s,()=>s.deleteVertexArray(i)),this.getVertexArray=()=>ht(s,()=>s.getParameter(s.VERTEX_ARRAY_BINDING))}else if(t!=null){let s=t.getExtension(\"OES_vertex_array_object\");if(s==null)throw new Error(\"All WebGL1 implementations are expected to offer OES_vertex_array_object.\");this.createVertexArray=()=>ht(t,()=>s.createVertexArrayOES()),this.bindVertexArray=i=>ht(t,()=>s.bindVertexArrayOES(i)),this.deleteVertexArray=i=>ht(t,()=>s.deleteVertexArrayOES(i)),this.getVertexArray=()=>ht(t,()=>t.getParameter(s.VERTEX_ARRAY_BINDING_OES))}let n=\"WEBGL_color_buffer_float\",o=\"EXT_color_buffer_half_float\";if(this.parallelCompilationExtension=this.gl.getExtension(\"KHR_parallel_shader_compile\"),L().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=yd(this.gl,s),Kn(this.gl,i))this.textureHalfFloatExtension=yd(this.gl,i);else if(L().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),Kn(this.gl,o))this.colorBufferHalfFloatExtension=yd(this.gl,o);else if(L().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\",Kn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Kn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=u1(this.gl),this.indexBuffer=c1(this.gl),this.framebuffer=YT(this.gl),this.textureConfig=sg(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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 t=this.gl;ht(t,()=>t.finish()),ht(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),ht(t,()=>t.deleteFramebuffer(this.framebuffer)),ht(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),ht(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),ht(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),p1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),m1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),f1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),y1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),x1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),h1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),d1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Lw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>I1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return C1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return w1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=b1(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(L().getBool(\"WEBGL_FENCE_API_ENABLED\")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>v1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=l1(e));let n=UT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),HT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&ig(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),g1(e,t,this.vertexBuffer)}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&(ht(this.gl,()=>this.gl.deleteProgram(t)),this.deleteVertexArray(t.vao))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&ig(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?ZT(this.gl,t,e):JT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),ht(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),QT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=wa(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")}debugValidate(){this.program!=null&&ig(this.gl,this.program),bd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;if(this.debug){let e=this.getVertexArray();console.assert(e===this.program.vao,\"VAO changed between setProgram and executeProgram!\"),this.debugValidate()}ht(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ht(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=yd(this.gl,L().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(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=Fot(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;\"setTimeoutCustom\"in L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ag(this.gl,t,this.framebuffer),this.debug&&bd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ag(this.gl,this.outputTexture,this.framebuffer),this.debug&&bd(this.gl)):Lw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;ag(o,t,this.framebuffer),this.debug&&bd(o),this.outputTexture=t,ht(o,()=>o.viewport(0,0,e,n)),ht(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),ht(this.gl,()=>this.gl.scissor(t,e,n,o))}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 Fot(r){let t=0;for(;t`${r}.${e}`)}function rr(r,t){return t===1?[r]:N1(r,t)}function Fz(r,t){if(r===1)return\"rc\";let e=\"\";for(let n=0;n ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]}`;let e=\"\";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${o};\n `}getOutput(t){let e=this.getSourceCoordsArr(t);return this.rank===1?`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}),\n cEdge ? 0. : getA(${e[1]}),\n rEdge ? 0. : getA(${e[2]}),\n rEdge || cEdge ? 0. : getA(${e[3]})`}};var Ed=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let n=\"\";for(let o=0;o<4;o++){let s=\"thisRC = rc;\";o%2===1&&(s+=\"thisRC.z += 1;\"),o>1&&(s+=\"thisRC.y += 1;\"),n+=`\n ${s}\n ${o>0?\"if(thisRC.y < rows && thisRC.z < cols){\":\"\"}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${o}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${o>0?\"}\":\"\"}\n `}this.userCode=`\n ${Oot(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?vd():Cd(t)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?\"outShape[1]\":t[1]};\n int cols = ${this.enableShapeUniforms?\"outShape[2]\":t[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}};function Oot(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?FL([\"r\",\"c\",\"d\"],\"inputShape\"):vi([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var rI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=Mz(e,n),s=Pz(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=Oz(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].pop();return this.usedTextures[s].push(u),u}let a;return o===Pr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Pr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Pr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=Mz(n,o),i=Pz(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=Oz(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().getNumber(\"WEBGL_DELETE_TEXTURE_THRESHOLD\");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l&&l.indexOf(t);if(c==null||c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l[c]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}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 t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function Mot(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function Oz(r,t,e,n,o){let s=Pot(t,n),i;if(o){let[u,l]=wa(r[0],r[1]);i=u*l}else{let[u,l]=lp(r[0],r[1]);i=u*l}let a=Mot(e,s);return i*a}function Pot(r,t){switch(r){case Pr.PACKED_2X2_FLOAT32:return Yw(t);case Pr.PACKED_2X2_FLOAT16:return Zw(t);case Pr.UNPACKED_FLOAT32:return Kw(t);case Pr.UNPACKED_FLOAT16:return jw(t);case Pr.PACKED_4X1_UNSIGNED_BYTE:return Xw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Lot(r){return L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Pr.PACKED_2X2_FLOAT32:Pr.UNPACKED_FLOAT32:r?Pr.PACKED_2X2_FLOAT16:Pr.UNPACKED_FLOAT16}function Mz(r,t){if(r===Yr.UPLOAD)return Pr.PACKED_2X2_FLOAT32;if(r===Yr.RENDER||r==null)return Lot(t);if(r===Yr.DOWNLOAD||r===Yr.PIXELS)return Pr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function Pz(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Lr=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n float unaryOperation(float x) {\n ${e}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}},xr=\"if (isnan(x)) return x;\",Lz=\"return x;\",k1=\"return abs(x);\";var zz=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",Bz=xr+`\n return (x < 0.0) ? 0.0 : x;\n`,Vz=xr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Ia=\"return x;\",Gz=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var Uz=\"return x;\",Hz=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,qz=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Kz=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,jz=\"return 1.0 / (1.0 + exp(-1.0 * x));\",Dn=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${e}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}};var nI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let e=t.length,n=rr(\"rc\",e),o=zt(e),s=Fz(e,n),i=n.slice(-2),a=e<=1?\"rc\":`vec2(${i.join(\",\")})`;this.userCode=`\n void main() {\n ${o} rc = getOutputCoords();\n vec4 packedInput = getA(${s});\n\n setOutput(getChannel(packedInput, ${a}));\n }\n `}};var Bot=Kr.whereImpl,Vot=1e-7,Got=1e-4,oI={};function Wot(r){return r in oI||(oI[r]={}),oI[r]}var Uot=L().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),Hot=600;function qot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*Hot/1024/1024}var Ad=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!L().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof pp)e=t;else{let n=qn(L().getNumber(\"WEBGL_VERSION\"),t);e=new pp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qn(L().getNumber(\"WEBGL_VERSION\"));e=new pp(n),this.binaryCache=Wot(L().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new rI(this.gpgpu),this.numMBBeforeWarning=qot(),this.texData=new Ta(this,Bn())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=wd(e),c=new lg(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((L().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||L().getBool(\"DEBUG\"))&&this.checkNumericalProblems(t),n===\"complex64\"&&t!=null)throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:Yr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(L().getBool(\"DEBUG\")&&this.checkNumericalProblems(e),o===\"complex64\")throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");this.texData.set(t,{shape:n,dtype:o,values:e,usage:Yr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new Dn(a,Ia):m=new Lr(a,Ia);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o===\"string\")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o===\"complex64\"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=S.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new Dn(o,Ia):d=new Lr(o,Ia);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(L().getBool(\"DEBUG\")&&!L().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&L().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(i!==\"complex64\"&&L().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...og(o))}this.pendingRead.set(t,[]),i!==\"complex64\"&&await this.gpgpu.createAndWaitForFence();let p;if(i===\"complex64\"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=S.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;ht(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Bn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a===\"complex64\")throw new Error(\"Does not support reading texture for complex64 dtype.\");if(i!=null){let f;u?f=new Dn(s,Ia):f=new Lr(s,Ia);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error(\"Data is not on GPU but on CPU.\"):new Error(\"There is no data on GPU or CPU.\");let c=this.decode(t,e.customTexShape),p=Bn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(\", \")}else a.kernelMs={error:\"WebGL query timers are not supported in this environment.\"};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=Uot){return L().getBool(\"WEBGL_CPU_FORWARD\")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new nI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new eI(t.shape);return this.runWebGLProgram(e,[t],t.dtype,null,!0)}packedReshape(t,e){let n=[Fl(t.shape),...Ol(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[Fl(e),...Ol(e)],i=new Ed(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>\"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.\")}let a=wd(s),u;o?u=new Ww(a):u=new Gw(a);let l=!0,c=[e!=null?e:og(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===Wu.DENSE){let x=i!=null?i:og(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype===\"complex64\")throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=L().getNumber(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Uu(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=GL(t,c,p),f=this.getAndSaveBinary(m,()=>BL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get(\"ENGINE_COMPILE_ONLY\")||VL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=L().getNumber(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().getBool(\"WEBGL_LAZILY_UNPACK\")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(L().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=B(()=>{if(!L().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=L().getBool(\"DEBUG\");L().set(\"DEBUG\",!1);let e=this.abs(pt(1e-8)).dataSync()[0];if(L().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Vot:Got}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=t1(n,u),e.texShape=p),s!=null){let m=wd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=wa(p[0],p[1])),u?f=new qw(m,g):f=new lg(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Yr.PIXELS:w.usage=Yr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let I=[[h,d]],E=this.runWebGLProgram(f,[b],o,I,!0),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().get(\"ENGINE_COMPILE_ONLY\")?this.disposeData(E.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(E.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return e!=null&&(n.values=Kot(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!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(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await Ih(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Mw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error(\"Failed to compile fragment shader.\")):new Error(\"Failed to link vertex and fragment shaders.\");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=a1(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||\"RGBA\";let{texture:o,height:s,width:i,channels:a}=t,u=Bn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error(\"The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.\");let l=u.writeTexture(o,e,n,s,i,a);return Bn().makeTensorFromDataId(l,e,n,u)}};Ad.nextDataId=0;function Kot(r,t){if(t===\"float32\"||t===\"complex64\")return r;if(t===\"int32\"||t===\"bool\"){let e=t===\"int32\"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew Ad,2);var N$e={forceHalfFloat:Yz};var Dd=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var $n=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n float binaryOperation(float a, float b) {\n ${t}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}};var Xn=`\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n`;var jn=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=he(s);let i=\"\";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=`\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n `;else if(i=`\n ${zt(s)} coords = getOutputCoords();\n `,s===1)this.enableShapeUniforms?i+=`\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `:i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{let u=rr(\"coords\",s);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= outShape[${s} - 2];\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= outShape[${s} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= ${this.outputShape[s-2]};\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= ${this.outputShape[s-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${t}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${i}\n\n setOutput(result);\n }\n `}};function nr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var Zz={kernelName:go,backendName:\"webgl\",kernelFunc:nr};function Rn(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,\"complex64\"),i=e.texData.get(s.dataId),a=nr({inputs:{x:n},backend:e}),u=nr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var Jz={kernelName:Ap,backendName:\"webgl\",kernelFunc:Rn};var T1=\"return (a < 0.) ? b * a : a;\",_1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function jot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new jn(_1,o.shape,i.shape):new $n(T1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var Qz={kernelName:bs,backendName:\"webgl\",kernelFunc:jot};var E1=\"return (a < 0.) ? b * a : a;\",A1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Xot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new jn(A1,n.shape,o.shape):new $n(E1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var t3={kernelName:Os,backendName:\"webgl\",kernelFunc:Xot};var Po=\"if (isnan(x)) return x;\";function It({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new Dn(i.shape,t):c=new Lr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ce({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype===\"complex64\"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new $n(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Rn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(u.dtype,l.dtype);if((u.dtype===\"string\"||l.dtype===\"string\"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype===\"string\"?S.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new jn(t,u.shape,l.shape,e):f=new $n(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Ml(r,t=!1){if(r===\"linear\")return t?Uz:Lz;if(r===\"relu\")return t?qz:Bz;if(r===\"elu\")return t?Hz:zz;if(r===\"relu6\")return t?Kz:Vz;if(r===\"prelu\")return t?A1:E1;if(r===\"leakyrelu\")return t?_1:T1;if(r===\"sigmoid\")return t?jz:Gz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var $d=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=[\"matrixA\",\"matrixB\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=he(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?\"i * 2, rc.y\":\"rc.y, i * 2\",f=s?\"rc.z, i * 2\":\"i * 2, rc.z\",d=o?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],h=s?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"],g=\"\",x=\"\";a&&(u?g=`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?g=`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:g=`vec4 activation(vec4 x) {\n ${a}\n }`,x=\"result = activation(result);\");let b=i?\"result += getBiasAtOutCoords();\":\"\";i&&this.variableNames.push(\"bias\"),u&&this.variableNames.push(\"preluActivationWeights\"),l&&this.variableNames.push(\"leakyreluAlpha\");let w=\"rc.x\",I=\"rc.x\";t[0]`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Uu(o.shape,u)&&!(c.texture!==null&&Uu(c.shape,u))?n3(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var o3={kernelName:Vi,backendName:\"webgl\",kernelFunc:rt};var mg=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l=\"sumValue += dot(values, ones);\";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c=\"\";s%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${a}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${a};\n if (${u===1}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${u===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${u===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}};var sI=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=\"0.0\",u=\"\";e===\"prod\"?a=\"1.0\":e===\"min\"?(a=\"1.0 / 1e-20\",u=\"min\"):e===\"max\"&&(a=\"-1.0 / 1e-20\",u=\"max\");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"sum\"?l=\"sumValue\":e===\"prod\"?l=\"prodValue\":e===\"all\"?l=\"allValue\":e===\"any\"&&(l=\"anyValue\");let c=Math.floor(n/4)*4,p=n%4,m=`\n if (${e===\"sum\"}) {\n sumValue += dot(values, ones);\n } else if (${e===\"prod\"}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${u}(values, minMaxValue);\n if (${e===\"min\"} || ${e===\"max\"}) {\n minMaxValue = ${u}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,f=\"vec4\";e===\"all\"?(a=\"1.0\",m=`\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n `,f=\"bvec4\"):e===\"any\"&&(a=\"0.0\",m=`\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n `,f=\"bvec4\");let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${a});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===2}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===3}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function Zot(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=S.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Yn(r,t,e,n){let o=Zot(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=N1(\"rc\",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],A=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],M=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u===\"leakyrelu\",H=u!=null?Ml(u,!0):null,K=G||W||q||H!=null,Y;if((f===1||d===1)&&V>$1&&K===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,lt=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[M,V,1]}}),F.push(ot));let it=d===1?2:1,ft=nt;lt&&(ft=rt({inputs:{x:nt},backend:o,attrs:{shape:[M,1,V]}}),F.push(ft));let gt=pg({inputs:{a:ot,b:ft},backend:o});Y=fp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new $d(N,E,[M,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let lt=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));st.push(lt),F.push(lt)}Y=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:Y},backend:o,attrs:{shape:I}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return dp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var l3={kernelName:ji,backendName:\"webgl\",kernelFunc:Qot};var u3=\"return abs(x);\";function tst(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!==\"complex64\"){let s=e.texData.get(n.dataId),i=Qw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Dn(n.shape,u3):o=new Lr(n.shape,u3),e.runWebGLProgram(o,[n],n.dtype)}var c3={kernelName:Ei,backendName:\"webgl\",kernelFunc:tst};var est=xr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,rst=It({opSnippet:est}),p3={kernelName:Go,backendName:\"webgl\",kernelFunc:rst};var nst=xr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,ost=It({opSnippet:nst}),m3={kernelName:Wo,backendName:\"webgl\",kernelFunc:ost};var f3=\"return a + b;\",sst=ce({opSnippet:f3,packedOpSnippet:f3,supportsComplex:!0,cpuKernelImpl:WL}),d3={kernelName:no,backendName:\"webgl\",kernelFunc:sst};var lI=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n float result = ${o};\n setOutput(result);\n }\n `}};var uI=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n vec4 result = ${o};\n setOutput(result);\n }\n `}};function cI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return nr({inputs:{x:n[0]},backend:e});if(n.length>L().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=cI({inputs:n.slice(0,u),backend:e}),c=cI({inputs:n.slice(u),backend:e});return cI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool(\"WEBGL_PACK\")?new uI(n[0].shape,s):new lI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var h3={kernelName:Uo,backendName:\"webgl\",kernelFunc:cI};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,\"all\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var g3={kernelName:Ea,backendName:\"webgl\",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,\"any\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var x3={kernelName:Aa,backendName:\"webgl\",kernelFunc:ast};var pI=class{constructor(t,e,n){this.variableNames=[\"A\"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push(\"bestIndicesA\"),this.outputShape=[s,i];let a=e===\"max\"?\">\":\"<\",u=n?\"inOffset + i;\":\"round(getBestIndicesA(batch, inOffset + i));\";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${o};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${o}; i++) {\n int inIdx = ${u};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}};var mI=class{constructor(t,e,n,o){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push(\"bestIndicesA\");let a=this.outputShape,u=a.length,l=zt(u),c=rr(\"coords\",u),p,m;if(i===1){m=u+1;let D=zt(m);p=`\n ${D} sourceLocR = ${D}(${c.join()}, 0);\n ++${c[u-1]};\n ${D} sourceLocG = ${D}(${c.join()}, 0);\n ++${c[u-2]};\n ${D} sourceLocA = ${D}(${c.join()}, 0);\n --${c[u-1]};\n ${D} sourceLocB = ${D}(${c.join()}, 0);\n --${c[u-2]};`}else m=u,p=`\n ${l} sourceLocR = coords;\n ++${c[u-1]};\n ${l} sourceLocG = coords;\n ++${c[u-2]};\n ${l} sourceLocA = coords;\n --${c[u-1]};\n ${l} sourceLocB = coords;\n --${c[u-2]};`;let f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,m),d=\".\"+f[m-1],h=f.map(D=>\"int \"+D),g=rr(\"sourceLocR\",m-1).concat(\"inIdx.r\"),x=rr(\"sourceLocG\",m-1).concat(\"inIdx.g\"),b=rr(\"sourceLocB\",m-1).concat(\"inIdx.b\"),w=rr(\"sourceLocA\",m-1).concat(\"inIdx.a\"),I=n===\"max\"?\"greaterThan\":\"lessThan\",N=o?\"\":`\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${w.join()})));`,E=`vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,A=o?\"\":`\n float getBestIndicesAChannel(${h.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${h.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${c[u-1]} < ${a[u-1]-1};\n bool hasNextRow = ${c[u-2]} < ${a[u-2]-1};\n ${p}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${e};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${E};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${N}\n vec4 candidate = ${E};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${I}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}};function y3(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new pI(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,\"int32\");if(c.shape[1]===1)return c;let p=y3(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function b3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new mI(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,\"int32\");if(l.shape.length===t.shape.length){let c=b3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function fI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().getBool(\"WEBGL_PACK_REDUCE\")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=y3(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return b3(r,t,n)}function lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=fI(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var w3={kernelName:Ai,backendName:\"webgl\",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=fI(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var I3={kernelName:Di,backendName:\"webgl\",kernelFunc:ust};var cst=xr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,pst=It({opSnippet:cst}),C3={kernelName:Ho,backendName:\"webgl\",kernelFunc:pst};var mst=xr+\"return log(x + sqrt(x * x + 1.0));\",fst=It({opSnippet:mst}),v3={kernelName:qo,backendName:\"webgl\",kernelFunc:fst};var dst=xr+`\n return atan(x);\n`,hst=It({opSnippet:dst}),S3={kernelName:Ko,backendName:\"webgl\",kernelFunc:hst};var gst=Dd+`\n return atan(a, b);\n`,xst=`\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n `+Xn+`\n return result;\n`,yst=ce({opSnippet:gst,packedOpSnippet:xst}),N3={kernelName:Xo,backendName:\"webgl\",kernelFunc:yst};var bst=xr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelName:jo,backendName:\"webgl\",kernelFunc:wst};var Si=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e===\"avg\",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b=\"0.0\";if(h||(b=\"-1.0 / 1e-20\"),n){let D=\">=\";this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${m};\n wC += ${c}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${D} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?g:x:`wR * ${m} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let w=\"max\",I=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(I=\"avgValue / max(count, 1.0)\");let N=Math.floor(i/4)*4,E=i%4,A=`\n if (${h}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${w}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${b};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${b});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${N}; wC += 4) {\n int xC = xCCorner + wC * ${c};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n getValue(batch, xR, xC + 3 * ${c}, d)\n );\n\n ${A}\n }\n\n int xC = xCCorner + ${N};\n if (${E===1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${E===2}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${E===3}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n initializationValue\n );\n\n ${A}\n }\n }\n setOutput(${I});\n }\n `}},qu=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e===\"avg\",I=\"0.0\";if(w||(I=\"-1.0 / 1e-20\"),n){let M=\">=\";this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${m}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${M} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?`(((batch * ${t.inDepth} + xD) * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`((xD * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`wD * ${d} * ${h} +\n wR * ${h} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let N=\"max\",E=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(E=\"avgValue / max(count, 1.0)\");let A=Math.floor(i/4)*4,D=i%4,F=`\n if (${w}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${N}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n const float initializationValue = ${I};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${I});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${A}; wC += 4) {\n int xC = xCCorner + wC * ${m};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n getValue(batch, xD, xR, xC + 3 * ${m}, ch)\n );\n\n ${F}\n }\n\n int xC = xCCorner + ${A};\n if (${D===1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${D===2}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${D===3}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n initializationValue\n );\n\n ${F}\n }\n }\n }\n setOutput(${E});\n }\n `}};function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Ci(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Si(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var T3={kernelName:Yo,backendName:\"webgl\",kernelFunc:Ist};function Cst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new qu(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var _3={kernelName:$i,backendName:\"webgl\",kernelFunc:Cst};var dI=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=`\n const ivec2 pads = ivec2(${c}, ${p});\n const float avgMultiplier = float(${m});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${u};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}},hI=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${h}, ${g});\n const float avgMultiplier = float(${x});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${p};\n wD += ${u}) {\n float dyD = float(dyDCorner + wD) / ${s}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${m};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${c}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function vst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new hI(m);return e.runWebGLProgram(f,[o],i.dtype)}var E3={kernelName:Hl,backendName:\"webgl\",kernelFunc:vst};function Sst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Ci([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new dI(c);return e.runWebGLProgram(p,[o],i.dtype)}var A3={kernelName:Ul,backendName:\"webgl\",kernelFunc:Sst};function Nst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return dp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var D3={kernelName:Zo,backendName:\"webgl\",kernelFunc:Nst};var gI=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${u};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}};var xI=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${u};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}};var kst=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||o.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(a==null||o.shape.length===a.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new xI(n.shape,o.shape,s.shape,c,p,u):new gI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},$3={kernelName:ds,backendName:\"webgl\",kernelFunc:kst};var yI=class{constructor(t){this.variableNames=[\"source\"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let n=Tst(this.rank),o,s=t.map((i,a)=>`sourceLoc.${R1[a]} = start[${a}] + coords.${R1[a]};`);o=`\n ${e} sourceLoc;\n ${e} coords = getOutputCoords();\n ${s.join(`\n`)}\n `,this.userCode=`\n void main() {\n ${o}\n setOutput(getSource(${n}));\n }\n `}},R1=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function Tst(r){if(r===1)return\"sourceLoc\";if(r<=6)return R1.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var bI=class{constructor(t){this.variableNames=[\"source\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let e=zt(this.rank),n=rr(\"coords\",this.rank),o=rr(\"sourceLoc\",this.rank),s=this.rank===1?\"sourceLoc\":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.y = ${i};\n --${o[this.rank-1]};\n }\n `,u=this.rank===1?\"\":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${t[this.rank-2]}) {\n ++${o[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${e}(${t.map((c,p)=>`start[${p}]`).join()});`:t.map((c,p)=>`${o[p]} = ${n[p]} + start[${p}];`).join(`\n`);this.userCode=`\n void main() {\n ${e} coords = getOutputCoords();\n ${e} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${u}\n setOutput(result);\n }\n `}};function _st(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Be.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function Ni(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Be.parseSliceParams(o,s,i);if(Be.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype===\"string\"){let p=e.texData.get(o.dataId),m=Iz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Be.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new bI(u):new yI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),_st(o,a,u,e)}var R3={kernelName:Wi,backendName:\"webgl\",kernelFunc:Ni};var Est=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((b,w)=>b*w),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=Ni({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},F3={kernelName:Ri,backendName:\"webgl\",kernelFunc:Est};function Ast(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Jw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var O3={kernelName:Da,backendName:\"webgl\",kernelFunc:Ast};var Dst=`\n int r = int(a.r) & int(b.r);\n int g = int(a.g) & int(b.g);\n int rb = int(a.b) & int(b.b);\n int ra = int(a.a) & int(b.a);\n return vec4(r, g, rb, ra);\n`,$st=`\n return float(int(a.r) & int(b.r));\n`;function Rst(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\"),i=L().getNumber(\"WEBGL_VERSION\");if(e.shouldExecuteOnCPU([n,o])||i===1){let u=e.texData.get(n.dataId).values,l=e.texData.get(o.dataId).values,[c,p]=HL(n.shape,o.shape,u,l,n.dtype),m=e.makeTensorInfo(p,n.dtype),f=e.texData.get(m.dataId);return f.values=c,m}let a;return s?a=new jn(Dst,n.shape,o.shape,!1):a=new $n($st,n.shape,o.shape),e.runWebGLProgram(a,[n,o],n.dtype)}var M3={kernelName:$a,backendName:\"webgl\",kernelFunc:Rst};function Fst(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var P3={kernelName:ql,backendName:\"webgl\",kernelFunc:Fst};var Ost=\"return float(a != b);\",F1=ce({opSnippet:Ost,cpuKernelImpl:mz,dtype:\"bool\"}),L3={kernelName:Za,backendName:\"webgl\",kernelFunc:F1};function Pl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.real},backend:e})}var z3={kernelName:Vp,backendName:\"webgl\",kernelFunc:Pl};var Mst=\"return float(int(x));\";function B3(r,t){let e=new Lr(r.shape,Mst),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function O1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return nr({inputs:{x:o},backend:e});let i=ke(o.shape),a=O1({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=Rn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=Pl({inputs:{input:o},backend:e}),a=O1({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=nr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=qL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return B3(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=F1({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var V3={kernelName:fo,backendName:\"webgl\",kernelFunc:O1};var G3=\"return ceil(x);\",Pst=It({opSnippet:G3,packedOpSnippet:G3,cpuKernelImpl:KL}),W3={kernelName:Jo,backendName:\"webgl\",kernelFunc:Pst};var wI=class{constructor(t){this.variableNames=[\"A\"],this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n `}};var II=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n `}};function Lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool(\"WEBGL_PACK_CLIP\")?a=new II(o.shape):a=new wI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var U3={kernelName:ho,backendName:\"webgl\",kernelFunc:Lst};var CI=class{constructor(t){this.variableNames=[\"real\",\"imag\"],this.outputShape=t,this.userCode=`\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n `}};function H3(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function zst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new CI(n.shape),i=[H3(n,o.complexTensorInfos.real),H3(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var q3={kernelName:Kl,backendName:\"webgl\",kernelFunc:zst};var vI=class{constructor(t){this.outputShape=[],this.outputShape=S.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) {\n return getChannel(\n getT${h}(${SI(a,l,g)}),\n vec2(${SI(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${SI(a,l,d)}),\n vec2(${SI(c,l,d)}));`,this.userCode=`\n float getValue(${a.map(h=>\"int \"+h)}) {\n ${m}\n }\n\n void main() {\n ${s} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[o-1]} = ${i[o-1]} + 1;\n if (${i[o-1]} < ${n[o-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[o-2]} = ${i[o-2]} + 1;\n if (${i[o-2]} < ${n[o-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[o-1]} = ${i[o-1]} - 1;\n if (${i[o-2]} < ${n[o-2]} &&\n ${i[o-1]} < ${n[o-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}};function SI(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function hp(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var K3={kernelName:Pp,backendName:\"webgl\",kernelFunc:hp};function Rd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let f=r.map(b=>Pl({inputs:{input:b},backend:e})),d=r.map(b=>hp({inputs:{input:b},backend:e})),h=Rd(f,t,e),g=Rd(d,t,e),x=Rn({inputs:{real:h,imag:g},backend:e});return f.forEach(b=>e.disposeIntermediateTensorInfo(b)),d.forEach(b=>e.disposeIntermediateTensorInfo(b)),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),x}let o=e.shouldExecuteOnCPU(r);if(n===\"string\"&&(o=!0),o){let f=r.map(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=jL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")&&s[0].shape.length>1;if(s.length===1){let f=i?new Lr(r[0].shape,Ia):new Dn(r[0].shape,Ia);return e.runWebGLProgram(f,r,n)}let a=L().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(s.length>a){let f=[];for(let h=0;hd.shape),t);return e.runWebGLProgram(f,s,n)}let{tensors2D:u,outShape:l}=Bst(s,t,e),c=new vI(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Bst(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function M1(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?nr({inputs:{x:u[0]},backend:e}):Rd(u,s,e)}var j3={kernelName:Fi,backendName:\"webgl\",kernelFunc:M1};var Fd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat===\"channelsLast\",x=g?1:2,b=g?2:3,w=g?3:1,I=\"\",N=\"\";n&&(o?I=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?I=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:I=`\n float activation(float x) {\n ${n}\n }\n `,N=\"result = activation(result);\");let E=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${I}\n\n const ivec2 strides = ivec2(${u}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${w}];\n\n ivec2 xRCCorner =\n ivec2(coords[${x}], coords[${b}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${c};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${p};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${g}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${h===1}) {\n\n if (${g}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${h===2}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${g}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${h===3}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${g}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${E}\n ${N}\n setOutput(result);\n }\n `}},kI=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${s}, ${i}, ${a});\n const ivec3 pads = ivec3(${e}, ${n}, ${o});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${p}; wF++) {\n int xF = xFCorner + wF * ${u};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${h===1}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${h===2}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${h===3}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};var Od=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=0 && xR < inDims[0]) {\n `;for(let g=0;g<(p+1)/2;g++){let x=g*2;if(m+=`\n xC = xCCorner + ${x*u};\n `,a===1){if(x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n `,u===1&&x>0?m+=`\n xC${x} = vec4(xTexelC${x-2}.zw, xTexelC${x}.xy);\n `:m+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${x} = vec4(previous.zw, xTexelC${x}.xy);\n } else {\n xC${x} = vec4(0.0, 0.0, xTexelC${x}.xy);\n }\n `):m+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xC${x} = xTexelC${x};\n `,x+1= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n `,u>1?m+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${x+1} = vec4(previous.zw, xTexelC${x+1}.xy);\n } else {\n xC${x+1} = vec4(0.0, 0.0, xTexelC${x+1}.xy);\n }\n `:m+=`\n xC${x+1} = vec4(xTexelC${x}.zw, xTexelC${x+1}.xy);\n `):b===1?m+=`\n xC${x+1} = xTexelC${x};\n `:m+=`\n xCOffset = xC + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x+1} = xTexelC${x+1};\n `}}else x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(xTexelC${x}.zw, xTexelC${x+1}.zw);\n `,x+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${x+1} = vec4(xTexelC${x+1}.xy, final.xy);\n `)):(m+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(\n xTexelC${x}.xy, xTexelC${x+1}.xy);\n `,x+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${s}) {\n innerDims = vec2(d1, ch);\n result[${c*2+p}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${c*2+p}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${o.output} = result;\n }\n `}};function _I(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function EI({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat===\"channelsLast\",d=!1,h=!1,g,x=[];if(s!=null){let I=_I(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=_I(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>$1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Uu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=dp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=E,F.shape=e.outShape,g=nr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=dp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function AI({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f===\"channelsLast\",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,I=[];if(s!=null){let Z=_I(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=_I(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new TI(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],D=n.runWebGLProgram(E,[r],\"float32\",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let M=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?Ml(a,!0):null,q=new $d(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,M,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],\"float32\",y.createScalarValue(i,\"float32\"));H.push(Z),I.push(Z)}let K=n.runWebGLProgram(q,H,\"float32\"),Y=rt({inputs:{x:K},backend:n,attrs:{shape:e.outShape}});I.push(K);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return Y}function Vst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,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=EI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let h=new Od(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],\"float32\",g)}else if(L().getBool(\"WEBGL_CONV_IM2COL\"))f=AI({x:o,filter:s,convInfo:m,backend:e});else{let h=new Fd(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var X3={kernelName:Qo,backendName:\"webgl\",kernelFunc:Vst};var DI=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat===\"channelsLast\";this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n ${i?`float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);`}\n }\n }\n }\n setOutput(dotProd);\n }\n `}},$I=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat===\"channelsLast\",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${p}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n\n if (${i}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}},RI=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yF = 0; yF < ${t.outDepth}; yF++) {\n int xF = wF + yF * ${e} - ${s};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${i};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${a};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}},FI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${u}, ${l}, ${c});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${e}; wF++) {\n float dyF = float(dyFCorner + wF) / ${s}.0;\n\n if (dyF < 0.0 || dyF >= ${t.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${e} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function Gst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new DI(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var Y3={kernelName:Dp,backendName:\"webgl\",kernelFunc:Gst};var OI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"strides\",type:\"vec2\"}],this.outputShape=t.inShape,this.enableShapeUniforms=he(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=`\n const ivec2 pads = ivec2(${o}, ${s});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n\n ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n vec4 result = vec4(0.);\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / strides[0];\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n int wCPerm = ${n} - 1 - wC;\n\n float dyC = float(dyCCorner + wC) / strides[1];\n bool idyCVal = (dyC >= 0.0) && (dyC < ${t.outWidth}.0)\n && (fract(dyC) == 0.0);\n int idyC = int(dyC);\n\n float dyC2 = float(dyCCorner + wC + 1) / strides[1];\n bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${t.outWidth}.0)\n && (fract(dyC2) == 0.0);\n int idyC2 = int(dyC2);\n\n if (idyCVal && idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec4 dySample2 = (idyC / 2 == idyC2 / 2) ?\n dySample : getDy(batch, idyR, idyC2, d2);\n\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n\n dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample2.xy : dySample2.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC2, d2);\n vec2 dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n }\n }\n }\n setOutput(result);\n }\n `}};function Wst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p);if(L().getBool(\"WEBGL_PACK_CONV2DTRANSPOSE\")&&p===\"channelsLast\"){let f=[[m.strideHeight,m.strideWidth]],d=new OI(m);return e.runWebGLProgram(d,[o,s],\"float32\",f)}else{let f=new $I(m);return e.runWebGLProgram(f,[o,s],\"float32\")}}var Z3={kernelName:ts,backendName:\"webgl\",kernelFunc:Wst};function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new kI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var J3={kernelName:es,backendName:\"webgl\",kernelFunc:Ust};function Hst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new RI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var Q3={kernelName:Ra,backendName:\"webgl\",kernelFunc:Hst};function qst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new FI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var tB={kernelName:Fa,backendName:\"webgl\",kernelFunc:qst};var Kst=Po+`\n return cos(x);\n`,jst=`\n vec4 result = cos(x);\n bvec4 isNaN = isnan(x);\n ${Xn}\n return result;\n`,Xst=It({opSnippet:Kst,packedOpSnippet:jst}),eB={kernelName:rs,backendName:\"webgl\",kernelFunc:Xst};var Yst=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,Zst=It({opSnippet:Yst}),rB={kernelName:ns,backendName:\"webgl\",kernelFunc:Zst};var MI=class{constructor(t,e,n,o,s){this.variableNames=[\"Image\",\"Boxes\",\"BoxInd\"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o===\"bilinear\"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,\"(y2-y1) * height_ratio\",`y1*${d} + float(y)*(height_scale)`]:[\"0.0\",\"0.0\",`0.5 * (y1+y2) * ${d}`],[w,I,N]=m>1?[`${(u-1)/(m-1)}`,\"(x2-x1) * width_ratio\",`x1*${h} + float(x)*(width_scale)`]:[\"0.0\",\"0.0\",`0.5 * (x1+x2) * ${h}`];this.userCode=`\n const float height_ratio = float(${g});\n const float width_ratio = float(${w});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${i}) {\n return;\n }\n\n float height_scale = ${x};\n float width_scale = ${I};\n\n float in_y = ${b};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${s}));\n return;\n }\n float in_x = ${N};\n if( in_x < 0.0 || in_x > ${h} ) {\n setOutput(float(${s}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}};var Jst=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new MI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},nB={kernelName:Ma,backendName:\"webgl\",kernelFunc:Jst};var gp;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(gp||(gp={}));var fg=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=[\"x\"],this.customUniforms=[{name:\"index\",type:\"float\"}];let s=this.outputShape.length,i=this.op===gp.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${oB(s,\"coords\",this.op)})`,u=this.outputShape[this.outputShape.length-1],l=\"\",c=\"\";n?(l=o?`end != ${u-1}`:\"end != 0\",c=o?\"end + 1\":\"end - 1\"):(l=o?`end + pow2 < ${u}`:\"end >= pow2\",c=o?\"end + pow2\":\"end - pow2\"),this.userCode=`\n void main() {\n ${zt(s)} coords = getOutputCoords();\n int end = ${sB(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${sB(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${oB(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function oB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function sB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function PI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=nr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new fg(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new fg(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function Qst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return PI(gp.Prod,o,e,s,i,a)}var iB={kernelName:Oa,backendName:\"webgl\",kernelFunc:Qst};function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return PI(gp.Sum,o,e,s,i,a)}var aB={kernelName:os,backendName:\"webgl\",kernelFunc:tit};function eit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Jw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=UL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var lB={kernelName:jl,backendName:\"webgl\",kernelFunc:eit};var LI=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${e};\n int offset_h = imod(h, ${e});\n int in_w = w / ${e};\n int offset_w = imod(w, ${e});\n int offset_d = (offset_h * ${e} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}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 rit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=new LI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var uB={kernelName:Pa,backendName:\"webgl\",kernelFunc:rit};var Md=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l=\"\",c=\"\";n&&(o?l=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?l=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:l=`\n float activation(float x) {\n ${n}\n }\n `,c=\"result = activation(result);\");let p=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${l}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${u};\n int q = d2 - d1 * ${u};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${p}\n ${c}\n setOutput(result);\n }\n `}};var Pd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x=0 && xR < inDims[0]) {\n `;for(let x=0;x<(m+1)/2;x++){let b=x*2;if(f+=`\n xC = xCCorner + ${b*l};\n `,u===1){if(b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n `,l===1&&b>0?f+=`\n xC${b} = vec4(xTexelC${b-2}.zw, xTexelC${b}.xy);\n `:f+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${b} = vec4(previous.zw, xTexelC${b}.xy);\n } else {\n xC${b} = vec4(0.0, 0.0, xTexelC${b}.xy);\n }\n `):f+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xC${b} = xTexelC${b};\n `,b+1= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n `,l>1?f+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${b+1} = vec4(previous.zw, xTexelC${b+1}.xy);\n } else {\n xC${b+1} = vec4(0.0, 0.0, xTexelC${b+1}.xy);\n }\n `:f+=`\n xC${b+1} = vec4(xTexelC${b}.zw, xTexelC${b+1}.xy);\n `):w===1?f+=`\n xC${b+1} = xTexelC${b};\n `:f+=`\n xCOffset = xC + ${w};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b+1} = xTexelC${b+1};\n `}}else b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(xTexelC${b}.zw, xTexelC${b+1}.zw);\n `,b+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${b+1} = vec4(xTexelC${b+1}.xy, final.xy);\n `)):(f+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(\n xTexelC${b}.xy, xTexelC${b+1}.xy);\n `,b+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Pd(p):m=new Md(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],\"float32\",f)}var cB={kernelName:ss,backendName:\"webgl\",kernelFunc:nit};var zI=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${i} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}},BI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${u}; dm++) {\n int d2 = d1 * ${u} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function oit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new zI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var pB={kernelName:$p,backendName:\"webgl\",kernelFunc:oit};function sit(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new BI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var mB={kernelName:Rp,backendName:\"webgl\",kernelFunc:sit};var VI=class{constructor(t){this.variableNames=[\"X\"],this.outputShape=[t,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n `}};function iit(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new VI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var fB={kernelName:Xl,backendName:\"webgl\",kernelFunc:iit};var GI=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=`\n const ivec2 strides = ivec2(${s}, ${i});\n const ivec2 pads = ivec2(${p}, ${m});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${e}) {\n for (int w = 0; w < ${u}; w++) {\n int wIn = wBeg + w * ${c};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}};function ait(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new GI(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var dB={kernelName:is,backendName:\"webgl\",kernelFunc:ait};function lit(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=fp({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var hB={kernelName:Fp,backendName:\"webgl\",kernelFunc:lit};var uit=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",cit=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,pit=It({opSnippet:uit,packedOpSnippet:cit}),gB={kernelName:ls,backendName:\"webgl\",kernelFunc:pit};var mit=\"return (b >= 0.0) ? a : a * (b + 1.0);\",fit=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,dit=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new jn(fit,n.shape,o.shape):new $n(mit,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},xB={kernelName:La,backendName:\"webgl\",kernelFunc:dit};var hit=`\n return vec4(equal(a, b));\n`,git=\"return float(a == b);\",xit=ce({opSnippet:git,packedOpSnippet:hit,dtype:\"bool\",cpuKernelImpl:XL}),yB={kernelName:za,backendName:\"webgl\",kernelFunc:xit};var yit=`\n // Error function is calculated approximately with elementary function.\n // See \"Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\n float p = ${S.ERF_P};\n float a1 = ${S.ERF_A1};\n float a2 = ${S.ERF_A2};\n float a3 = ${S.ERF_A3};\n float a4 = ${S.ERF_A4};\n float a5 = ${S.ERF_A5};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`,bit=It({opSnippet:yit}),bB={kernelName:us,backendName:\"webgl\",kernelFunc:bit};var wit=Po+`\n return exp(x);\n`,Iit=`\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,P1=It({opSnippet:wit,packedOpSnippet:Iit,cpuKernelImpl:YL,dtype:\"float32\"}),wB={kernelName:cs,backendName:\"webgl\",kernelFunc:P1};function WI(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var IB={kernelName:Oi,backendName:\"webgl\",kernelFunc:WI};var CB=\"return exp(x) - 1.0;\",Cit=It({opSnippet:CB,packedOpSnippet:CB,cpuKernelImpl:ZL}),vB={kernelName:ps,backendName:\"webgl\",kernelFunc:Cit};var dg=class{constructor(t,e,n){this.variableNames=[\"real\",\"imag\"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:\"1.0\",a;if(t===\"real\")a=\"return real * expR - imag * expI;\";else if(t===\"imag\")a=\"return real * expI + imag * expR;\";else throw new Error(`FFT component must be either \"real\" or \"imag\", got ${t}.`);this.userCode=`\n const float exponentMultiplier = ${s};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${o});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${o}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}};function UI(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new dg(\"real\",u,t),c=new dg(\"imag\",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,\"float32\"),f=e.runWebGLProgram(c,p,\"float32\"),d=Rn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function vit(r){let{inputs:t,backend:e}=r,{input:n}=t;return UI(n,!1,e)}var SB={kernelName:Op,backendName:\"webgl\",kernelFunc:vit};var HI=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:\"value\",type:\"float\"}],this.variableNames=[\"x\"],this.outputShape=t,this.userCode=`\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n `}};function Ll(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s===\"string\"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new HI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var NB={kernelName:Jl,backendName:\"webgl\",kernelFunc:Ll};var qI=class{constructor(t){this.variableNames=[\"Image\"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${e} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${e}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var kB={kernelName:Ba,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new qI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var TB=\"return floor(x);\",Sit=It({opSnippet:TB,packedOpSnippet:TB,cpuKernelImpl:JL}),_B={kernelName:ms,backendName:\"webgl\",kernelFunc:Sit};var Nit=`\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n`,kit=`\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n`,Tit=ce({opSnippet:Nit,packedOpSnippet:kit,dtype:\"int32\"}),EB={kernelName:fs,backendName:\"webgl\",kernelFunc:Tit};var KI=class{constructor(t){this.variableNames=[\"A\"];let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${o}.0, ${n}.0);\n\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}};var jI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${o}.0, ${n}.0);\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${e.output} = result;\n }\n `}};var AB={kernelName:Qd,backendName:\"webgl\",kernelFunc:_it},Ld,L1=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function _it(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!=\"undefined\"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!=\"undefined\"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Ld==null||h!==L1)&&(L1=h,Ld=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:L1})),Ld.canvas.width=u,Ld.canvas.height=l,Ld.drawImage(o,0,0,u,l),o=Ld.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=Yr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=L().getBool(\"WEBGL_PACK\")?new jI(p):new KI(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function Eit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,I=a!=null,N=f===\"leakyrelu\",E=()=>{let D=[o,s],F=(M,V)=>{if(V===\"NCHW\"&&M.shape.length===1&&M.shape[0]!==1){let G=rt({inputs:{x:M},backend:e,attrs:{shape:[M.shape[0],1,1]}});return b.push(G),G}return M};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let M=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));D.push(M),b.push(M)}return D};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=EI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let D=f?Ml(f,!0):null,F=new Od(g,w,D,I,N),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=E();x=e.runWebGLProgram(F,V,\"float32\",M)}else if(L().getBool(\"WEBGL_CONV_IM2COL\"))x=AI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Ml(f,!1):null,F=new Fd(g,w,D,I,N),M=E();x=e.runWebGLProgram(F,M,\"float32\")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var DB={kernelName:Xi,backendName:\"webgl\",kernelFunc:Eit};function Ait(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Ml(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m===\"leakyrelu\";if(I&&w.push(i),N&&w.push(a),E){let M=e.makeTensorInfo([],\"float32\",y.createScalarValue(f,\"float32\"));w.push(M),d.push(M)}let A;x?A=new Pd(g,I,b,N,E):A=new Md(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",D);return d.forEach(M=>e.disposeIntermediateTensorInfo(M)),F}var $B={kernelName:Yi,backendName:\"webgl\",kernelFunc:Ait};var XI=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=[\"x\",\"indices\"],this.outputShape=n;let s=zt(n.length),i=`\n int index;`;for(let a=0;a= ${this.paramsShape[a]};\n flattenIndex += index * ${this.strides[a]};`;this.userCode=`\n void main() {\n ${s} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}};function Dit(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=o.shape,i=s[s.length-1],a=y.sizeFromShape(n.shape),[u,l,c,p]=S.prepareAndValidate(n,o),m=rt({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=rt({inputs:{x:n},backend:e,attrs:{shape:[y.sizeFromShape(n.shape)/c,c]}});if(e.shouldExecuteOnCPU([n,o])||n.dtype===\"string\"){let x=e.readSync(o.dataId),b=e.bufferSync(n),w=QL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new XI(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var RB={kernelName:Va,backendName:\"webgl\",kernelFunc:Dit};var YI=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=$it(t,2);this.userCode=`\n void main() {\n ${n} resRC = getOutputCoords();\n int index = int(getIndices(resRC.x, resRC.z));\n float inBounds = (index >= 0) && (index < ${t[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${o}));\n }\n `}};function $it(r,t){let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype===\"string\"){let b=e.bufferSync(f),w=e.bufferSync(m),I=tz(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new YI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var FB={kernelName:Mi,backendName:\"webgl\",kernelFunc:z1};var Rit=\"return float(a > b);\",Fit=`\n return vec4(greaterThan(a, b));\n`,Oit=ce({opSnippet:Rit,packedOpSnippet:Fit,cpuKernelImpl:ez,dtype:\"bool\"}),OB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Oit};var Mit=\"return float(a >= b);\",Pit=`\n return vec4(greaterThanEqual(a, b));\n`,Lit=ce({opSnippet:Mit,packedOpSnippet:Pit,dtype:\"bool\",cpuKernelImpl:rz}),MB={kernelName:hs,backendName:\"webgl\",kernelFunc:Lit};function zit(r){let{inputs:t,backend:e}=r,{input:n}=t;return UI(n,!0,e)}var PB={kernelName:Mp,backendName:\"webgl\",kernelFunc:zit};var Bit=\"return float(!isnan(x) && !isinf(x));\",Vit=It({opSnippet:Bit,dtype:\"bool\"}),LB={kernelName:gs,backendName:\"webgl\",kernelFunc:Vit};var Git=\"return float(isinf(x));\",Wit=It({opSnippet:Git,dtype:\"bool\"}),zB={kernelName:xs,backendName:\"webgl\",kernelFunc:Wit};var Uit=\"return float(isnan(x));\",Hit=It({opSnippet:Uit,dtype:\"bool\"}),BB={kernelName:ys,backendName:\"webgl\",kernelFunc:Hit};var qit=\"return float(a < b);\",Kit=`\n return vec4(lessThan(a, b));\n`,jit=ce({opSnippet:qit,packedOpSnippet:Kit,cpuKernelImpl:nz,dtype:\"bool\"}),VB={kernelName:Wa,backendName:\"webgl\",kernelFunc:jit};var Xit=\"return float(a <= b);\",Yit=`\n return vec4(lessThanEqual(a, b));\n`,Zit=ce({opSnippet:Xit,packedOpSnippet:Yit,cpuKernelImpl:oz,dtype:\"bool\"}),GB={kernelName:Ua,backendName:\"webgl\",kernelFunc:Zit};function Jit(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=sz(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var WB={kernelName:Ha,backendName:\"webgl\",kernelFunc:Jit};var Qit=Po+`\n return x < 0.0 ? 0./0. : log(x);\n`,tat=`\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n`,eat=It({opSnippet:Qit,packedOpSnippet:tat,cpuKernelImpl:iz}),UB={kernelName:ws,backendName:\"webgl\",kernelFunc:eat};var rat=Po+`\n return log(1.0 + x);\n`,nat=It({opSnippet:rat}),HB={kernelName:Is,backendName:\"webgl\",kernelFunc:nat};var oat=\"return float(a >= 1.0 && b >= 1.0);\",sat=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,iat=ce({opSnippet:oat,packedOpSnippet:sat,dtype:\"bool\"}),qB={kernelName:qa,backendName:\"webgl\",kernelFunc:iat};var aat=\"return float(!(x >= 1.0));\",lat=It({opSnippet:aat}),KB={kernelName:Ka,backendName:\"webgl\",kernelFunc:lat};var uat=\"return float(a >= 1.0 || b >= 1.0);\",cat=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,pat=ce({opSnippet:uat,packedOpSnippet:cat,dtype:\"bool\"}),jB={kernelName:ja,backendName:\"webgl\",kernelFunc:pat};var ZI=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${u};\n setOutput(val);\n }\n `}};var JI=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${i};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${u};\n setOutput(result);\n }\n `}};var mat=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new JI(o.shape,s,i,a,u):new ZI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},XB={kernelName:Cs,backendName:\"webgl\",kernelFunc:mat};var QI=class{constructor(t,e,n,o,s){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${e})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${e} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${o}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${o})\n * float(${s})\n * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${s});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}};var fat=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new QI(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},YB={kernelName:Xa,backendName:\"webgl\",kernelFunc:fat};function ZB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,r.dtype,\"max\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function B1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,I=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Si(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var tV={kernelName:Ns,backendName:\"webgl\",kernelFunc:xat};function yat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new qu(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var eV={kernelName:Pi,backendName:\"webgl\",kernelFunc:yat};var tC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${s};\n wR += ${o}) {\n float dyR = float(dyRCorner + wR) / ${e}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${i}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}},eC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=`\n const ivec3 pads = ivec3(${p}, ${m}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${u};\n wD += ${s}) {\n float dyD = float(dyDCorner + wD) / ${e}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${c};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${o}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${c} +\n wR * ${c} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function bat(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new qu(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new eC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var rV={kernelName:tu,backendName:\"webgl\",kernelFunc:bat};function wat(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Ci([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new Si(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new tC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var nV={kernelName:Ql,backendName:\"webgl\",kernelFunc:wat};function oV(r,t,e,n){let o=new Si(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new Si(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var sV={kernelName:eu,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=oV(n,a,c,u);return[p,m]}};function iV(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,\"float32\",\"mean\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var aV={kernelName:ks,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;Dc[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(\",\"),a=e.map((c,p)=>c[0]+t[p]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o),l=n===\"reflect\"?0:1;if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n for (int i = 0; i < ${o}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n `}};var nC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(\",\"),a=e.map((d,h)=>d[0]+t[h]).join(\",\"),u=rr(\"rc\",o),l=rr(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=n===\"reflect\"?0:1,f=\"\";if(o===1){let d=`\n ${s} source = rc;\n if (source < start) {\n source = start * 2 - source - ${m};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${m};\n }\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n `}else{let d=`\n ${s} source = rc;\n ${s} lt = ${s}(lessThan(source, start));\n ${s} gte = ${s}(greaterThanEqual(source, end));\n ${s} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${m}) +\n gte * ((end - 1) * 2 - source + ${m});\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {\n ${d}\n result[2] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[3] = getChannel(getX(${l.join()}), ${p});\n }\n }\n `}this.userCode=`\n const ${s} start = ${s}(${i});\n const ${s} end = ${s}(${a});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}};var Nat=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new nC(n.shape,o,s):new rC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},cV={kernelName:Es,backendName:\"webgl\",kernelFunc:Nat};var kat=`if (b == 0.0) return NAN;\n return mod(a, b);`,Tat=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+Xn+`\n return result;\n`,_at=ce({opSnippet:kat,packedOpSnippet:Tat}),pV={kernelName:As,backendName:\"webgl\",kernelFunc:_at};var oC=class{constructor(t,e,n){this.variableNames=[\"probs\"],this.customUniforms=[{name:\"seed\",type:\"float\"}],this.outputShape=[t,n],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${e-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${e-1}));\n }\n `}};var Eat=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,Aat=`\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n`,V1=ce({opSnippet:Eat,packedOpSnippet:Aat,checkOutOfBounds:!0}),mV={kernelName:as,backendName:\"webgl\",kernelFunc:V1};var fV=\"return a - b;\",G1=ce({opSnippet:fV,packedOpSnippet:fV,supportsComplex:!0,cpuKernelImpl:Az}),dV={kernelName:ei,backendName:\"webgl\",kernelFunc:G1};function W1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=B1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=G1({inputs:{a:o,b:l},backend:e}),p=P1({inputs:{x:c},backend:e}),m=fp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=V1({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var hV={kernelName:Qs,backendName:\"webgl\",kernelFunc:W1};function Dat(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:W1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new oC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var gV={kernelName:Ya,backendName:\"webgl\",kernelFunc:Dat};var $at=xr+`\n return -x;\n`,Rat=`\n vec4 result = -x;\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;function Fat(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=pz(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Dn(n.shape,Rat):o=new Lr(n.shape,$at),e.runWebGLProgram(o,[n],n.dtype)}var xV={kernelName:Li,backendName:\"webgl\",kernelFunc:Fat};var Oat=Kr.nonMaxSuppressionV3Impl;function Mat(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=Oat(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var yV={kernelName:Ja,backendName:\"webgl\",kernelFunc:Mat};var Pat=Kr.nonMaxSuppressionV4Impl;function Lat(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=Pat(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var bV={kernelName:Qa,backendName:\"webgl\",kernelFunc:Lat};var zat=Kr.nonMaxSuppressionV5Impl;function Bat(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=zat(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var wV={kernelName:tl,backendName:\"webgl\",kernelFunc:Bat};var sC=class{constructor(t,e,n,o){this.variableNames=[\"indices\"],this.outputShape=[t,e],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${o}), float(${n}),\n float(index == coords.y)));\n }\n `}};var Vat=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new sC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},IV={kernelName:$s,backendName:\"webgl\",kernelFunc:Vat};function hg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=Pl({inputs:{input:n},backend:e}),s=hg({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=hg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var CV={kernelName:Ki,backendName:\"webgl\",kernelFunc:hg};function vV(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"string\")throw new Error(\"onesLike is not supported under string dtype\");if(n.dtype===\"complex64\"){let o=Pl({inputs:{input:n},backend:e}),s=vV({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=hg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var SV={kernelName:zi,backendName:\"webgl\",kernelFunc:vV};function Gat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return WI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=WI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=M1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var NV={kernelName:Bi,backendName:\"webgl\",kernelFunc:Gat};var iC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(\",\"),a=e.map((l,c)=>l[0]+t[c]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o);if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n }\n `}};var aC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(\",\"),a=e.map((h,g)=>h[0]+t[g]).join(\",\"),u=rr(\"rc\",o),l=rr(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1;\n if(${c}) {\n `,o===1?\"\":`}\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {`,o===1?\"\":` ${u[o-1]} += 1;\n if(${c}) {`],f=o===1?\"rc < start || rc >= end\":\"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))\",d=\"\";for(let h=0,g=o===1?2:4;h{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Ll({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new aC(o.shape,s,i):new iC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},kV={kernelName:Rs,backendName:\"webgl\",kernelFunc:U1};var Wat=`\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n`,Uat=`\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n `+Xn+`\n return result;\n`,Hat=ce({opSnippet:Wat,packedOpSnippet:Uat}),TV={kernelName:Fs,backendName:\"webgl\",kernelFunc:Hat};function qat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Pe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=fz(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=lc(o.dtype),w=Yn(x,b,\"prod\",e);f=rt({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var _V={kernelName:Ms,backendName:\"webgl\",kernelFunc:qat};function Kat(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=dz(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var EV={kernelName:Lp,backendName:\"webgl\",kernelFunc:Kat};function jat(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=hz(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var AV={kernelName:zp,backendName:\"webgl\",kernelFunc:jat};function Xat(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=gz(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var DV={kernelName:Bp,backendName:\"webgl\",kernelFunc:Xat};var H1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=xz(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},$V={kernelName:ru,backendName:\"webgl\",kernelFunc:H1};var Yat=\"return 1.0 / x;\",Zat=It({opSnippet:Yat}),RV={kernelName:Ps,backendName:\"webgl\",kernelFunc:Zat};var Jat=xr+`\n return (x < 0.0) ? 0.0 : x;\n`,Qat=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,tlt=It({opSnippet:Jat,packedOpSnippet:Qat}),FV={kernelName:Ls,backendName:\"webgl\",kernelFunc:tlt};var elt=xr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,rlt=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,nlt=It({opSnippet:elt,packedOpSnippet:rlt}),OV={kernelName:Vs,backendName:\"webgl\",kernelFunc:nlt};var lC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)\":m=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}};var uC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)\":m=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}};function olt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new uC(o.shape,u,l,s,i):new lC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var MV={kernelName:Bs,backendName:\"webgl\",kernelFunc:olt};var cC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${o-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function slt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new cC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var PV={kernelName:rl,backendName:\"webgl\",kernelFunc:slt};var pC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\":f=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}};var mC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))\":f=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}};function ilt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new mC(o.shape,u,l,s,i):new pC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var LV={kernelName:zs,backendName:\"webgl\",kernelFunc:ilt};var fC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${u[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${u[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${o}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${s}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function alt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new fC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var zV={kernelName:el,backendName:\"webgl\",kernelFunc:alt};var dC=class{constructor(t,e){this.variableNames=[\"x\"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${t[0]} - coord - 1));\n }\n `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(\",\"),i=zt(n);this.userCode=`\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}};var hC=class{constructor(t,e){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=rr(\"rc\",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${t[0]} - rc - 1),\n ${t[0]} - rc - 1);\n if(${s}){\n result.g = getChannel(getX(${t[0]} - (rc + 1) - 1),\n ${t[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:this.userCode=`\n void main() {\n ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${u(o.slice())};\n if(${s}){\n result.g = ${l(o.slice())};\n }\n if(${i}) {\n result.b = ${c(o.slice())};\n if(${s}) {\n result.a = ${p(o.slice())};\n }\n }\n setOutput(result);\n }\n `;function u(d){return m(d)}function l(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",m(d)}function c(d){return d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function p(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(\",\"),x=h.slice(-2).join(\",\");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function llt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return nr({inputs:{x:o},backend:e});let u=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new hC(o.shape,a):new dC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var BV={kernelName:Gs,backendName:\"webgl\",kernelFunc:llt};var gC=class{constructor(t,e){this.variableNames=[\"Image\"],this.outputShape=[],this.customUniforms=[{name:\"params\",type:\"vec4\"}];let n=t[1],o=t[2];this.outputShape=t;let s=\"\";typeof e==\"number\"?s=`float outputValue = ${e.toFixed(2)};`:s=`\n vec3 fill = vec3(${e.join(\",\")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${s}\n if(coordX >= 0 && coordX < ${o} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var VV={kernelName:pl,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new gC(n.shape,s),[l,c]=S.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var ult=`\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n`,clt=It({opSnippet:ult}),GV={kernelName:Ws,backendName:\"webgl\",kernelFunc:clt};var plt=\"return inversesqrt(x);\",mlt=It({opSnippet:plt,cpuKernelImpl:yz}),WV={kernelName:Us,backendName:\"webgl\",kernelFunc:mlt};var Ku=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${t}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${e}; j++) {\n int index = round(${m});\n flattenedIndex += index * ${x};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${d};\n found = true;\n }\n }\n setOutput(mix(${g}, sum, float(found)));\n }\n `}};var xC=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\",b=e>1?\"strides[j + 1]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n vec4 sum = vec4(0.);\n vec4 found = vec4(0.);\n for (int i = 0; i < ${t}; i+=2) {\n ivec2 flattenedIndex = ivec2(0);\n for (int j = 0; j < ${e}; j+=2) {\n ivec4 index = round(${m});\n flattenedIndex += index.xz * ${x};\n if (j + 1 < ${e}) {\n flattenedIndex += index.yw * ${b};\n }\n }\n if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] ||\n flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) {\n vec4 updVals = ${d};\n if (flattenedIndex[0] == coords[0]) {\n sum.xy += updVals.xy;\n found.xy = vec2(1.);\n } else if (flattenedIndex[0] == coords[0] + 1) {\n sum.zw += updVals.xy;\n found.zw = vec2(1.);\n }\n if (flattenedIndex[1] == coords[0]) {\n sum.xy += updVals.zw;\n found.xy = vec2(1.);\n } else if (flattenedIndex[1] == coords[0] + 1) {\n sum.zw += updVals.zw;\n found.zw = vec2(1.);\n }\n }\n }\n setOutput(mix(${g}, sum, found));\n }\n `}};function flt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g;L().getBool(\"WEBGL_PACK\")?g=new xC(u,a,f.shape.length,d.shape.length,c,m):g=new Ku(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var UV={kernelName:nl,backendName:\"webgl\",kernelFunc:flt};var yC=class{constructor(t,e,n,o){this.variableNames=[\"sortedSequence\",\"values\"],this.customUniforms=[{name:\"numInputs\",type:\"int\"}],this.outputShape=[t,n];let s=\"while (left < right) {\",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=L().getNumber(\"WEBGL_VERSION\")===2?s:i,u=o===\"left\"?\"<\":\"<=\";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${a}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${u} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}};function dlt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new yC(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var HV={kernelName:sl,backendName:\"webgl\",kernelFunc:dlt};var bC=class{constructor(t,e,n){this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s=\"resRC\",o=\"resRC\";else{let a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],u=[],l=[];for(let c=0;c= 1.0) {\n setOutput(getA(${s}));\n } else {\n setOutput(getB(${s}));\n }\n }\n `}};function hlt(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new bC(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],ur(o.dtype,s.dtype))}var qV={kernelName:Gi,backendName:\"webgl\",kernelFunc:hlt};var glt=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${S.SELU_SCALEALPHA};\n float scale = ${S.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,xlt=It({opSnippet:glt}),KV={kernelName:Hs,backendName:\"webgl\",kernelFunc:xlt};var ylt=Po+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,blt=`\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,wlt=It({opSnippet:ylt,packedOpSnippet:blt,cpuKernelImpl:wz}),jV={kernelName:Xs,backendName:\"webgl\",kernelFunc:wlt};var Ilt=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,Clt=It({opSnippet:Ilt}),XV={kernelName:js,backendName:\"webgl\",kernelFunc:Clt};var vlt=Po+`\n return sin(x);\n`,Slt=`\n vec4 result = sin(x);\n bvec4 isNaN = isnan(x);\n ${Xn}\n return result;\n`,Nlt=It({opSnippet:vlt,packedOpSnippet:Slt}),YV={kernelName:qs,backendName:\"webgl\",kernelFunc:Nlt};var klt=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Tlt=It({opSnippet:klt}),ZV={kernelName:Ks,backendName:\"webgl\",kernelFunc:Tlt};var _lt=`\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n`,Elt=It({opSnippet:_lt}),JV={kernelName:Ys,backendName:\"webgl\",kernelFunc:Elt};var Alt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},QV={kernelName:Ui,backendName:\"webgl\",kernelFunc:Alt};function Dlt(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw:\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw:\n ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=Cz(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],\"bool\",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var tG={kernelName:nu,backendName:\"webgl\",kernelFunc:Dlt};function $lt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=vz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var eG={kernelName:il,backendName:\"webgl\",kernelFunc:$lt};function Rlt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=tI(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var rG={kernelName:ou,backendName:\"webgl\",kernelFunc:Rlt};function Flt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=tI(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var nG={kernelName:su,backendName:\"webgl\",kernelFunc:Flt};function Olt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1;if(s.dtype===\"string\"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),I=bz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new Ku(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var oG={kernelName:al,backendName:\"webgl\",kernelFunc:Olt};function Mlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=Ni({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var sG={kernelName:Hi,backendName:\"webgl\",kernelFunc:Mlt};var iG=\"return sqrt(x);\",Plt=It({opSnippet:iG,packedOpSnippet:iG,cpuKernelImpl:Sz}),aG={kernelName:Zs,backendName:\"webgl\",kernelFunc:Plt};var Llt=\"return x * x;\",zlt=It({opSnippet:Llt}),lG={kernelName:iu,backendName:\"webgl\",kernelFunc:zlt};var uG=\"return (a - b) * (a - b);\",Blt=ce({opSnippet:uG,packedOpSnippet:uG}),cG={kernelName:ti,backendName:\"webgl\",kernelFunc:Blt};function Vlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=Nz(i,\"string\",n);return e.makeTensorInfo(o.shape,\"string\",a)}var pG={kernelName:ec,backendName:\"webgl\",kernelFunc:Vlt};function Glt({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=xr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new Lr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var mG={kernelName:xo,backendName:\"webgl\",kernelFunc:Glt};var wC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a=\"\";if(o===1)a=\"coords * strides + begin\";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(\",\")}this.userCode=`\n ${s} begin = ${s}(${t});\n ${s} strides = ${s}(${e});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}};function Wlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Be.computeOutShape(b,w,I),D=Ni({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=wt(o.shape,o.dtype,D),M=kz(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,M.values)}else{let D=new wC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var fG={kernelName:ll,backendName:\"webgl\",kernelFunc:Wlt};function Ult(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=Tz(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var dG={kernelName:au,backendName:\"webgl\",kernelFunc:Ult};function Hlt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=_z(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var hG={kernelName:lu,backendName:\"webgl\",kernelFunc:Hlt};function qlt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.readSync(s.dataId),a=Ez(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var gG={kernelName:uu,backendName:\"webgl\",kernelFunc:qlt};var Klt=\"return tan(x);\",jlt=It({opSnippet:Klt}),xG={kernelName:ri,backendName:\"webgl\",kernelFunc:jlt};var Xlt=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,Ylt=It({opSnippet:Xlt}),yG={kernelName:ni,backendName:\"webgl\",kernelFunc:Ylt};function Zlt(r){let{inputs:t,backend:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=t,{}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(i,s,o.shape),m=[p/l,l];if(p===0)return e.makeTensorInfo(o.shape,s.dtype);let f=rt({inputs:{x:s},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:i},backend:e,attrs:{shape:[u,l]}}),h=rt({inputs:{x:o},backend:e,attrs:{shape:m}}),g=new Ku(u,a,f.shape.length,d.shape.length,c,m,!1,!0),x=e.runWebGLProgram(g,[d,f,h],h.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:o.shape}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(x),b}var bG={kernelName:ol,backendName:\"webgl\",kernelFunc:Zlt};var IC=class{constructor(t,e){this.variableNames=[\"A\"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype===\"string\"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=Dz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new IC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var wG={kernelName:oo,backendName:\"webgl\",kernelFunc:q1};var CC=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"negativeInf\",type:\"float\"},{name:\"dir\",type:\"int\"},{name:\"inc\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n `}},vC=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"k\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n `}};function xp(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function IG(r){let t=1;for(;tu){let M=e.readSync(o.dataId),[V,G]=$z(M,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,\"int32\",[])];if(c===1)return[o,Ll({attrs:{shape:l,dtype:\"int32\",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&xp(e,f);let x=IG(s),b=IG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(M,V,G)=>{let W=I(),q=new CC(G),K=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[M],[V]],Y=w;w=e.runWebGLProgram(q,W,\"int32\",K),xp(e,Y)};for(let M=1;M=1;G/=2)N(V,G,[h,b])}for(let M=b;M>x;M/=2){let V=I(),G=new vC([h,M/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),xp(e,H);let K=x/2,Y=K*2;for(let Z=K;Z>=1;Z/=2)N(Y,Z,w.shape)}let E=w;w=Ni({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),xp(e,E);let A=z1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});xp(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),xp(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),xp(e,F),[A,w]}var CG={kernelName:ul,backendName:\"webgl\",kernelFunc:Qlt};var SC=class{constructor(t,e,n,o,s,i){this.variableNames=[\"Image\",\"Transforms\"],this.outputShape=i;let a=n===\"nearest\"?1:2,u;switch(o){case\"constant\":u=1;break;case\"reflect\":u=2;break;case\"wrap\":u=3;break;case\"nearest\":u=4;break;default:u=1;break}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${u} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${t} && 0 <= coordX && coordX < ${e}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${s});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${s});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${e}));\n float mapY = mapCoord(inY, float(${t}));\n\n if (${a} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}};function tut(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new SC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var vG={kernelName:cl,backendName:\"webgl\",kernelFunc:tut};function eut(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Ci(s,\"unique\"),console.warn(\"WARNING: \",\"UI might be locked temporarily as data is being downloaded\");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=Rz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var SG={kernelName:cu,backendName:\"webgl\",kernelFunc:eut};function rut(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var NG={kernelName:qi,backendName:\"webgl\",kernelFunc:rut};var NC=class{constructor(t,e){this.variableNames=[\"x\",\"segmentIds\"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u=\"0.0\",l=\"sumValue\",c=Math.floor(n/4)*4,p=n%4,m=`\n sumValue += dot(values, segFilter);\n `,f=\"\";s%n>0&&(f=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `);let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = ${u};\n\n float getValue(int batch, int inIdx) {\n ${f}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${d}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function nut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=S.getAxesPermutation([l],a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=S.getInnerMostAxes(1,a)[0]);let m=S.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=lc(o.dtype),g=(I,N,E,A,D)=>{let F=I.shape[0],M=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(M,D),G={windowSize:V,inSize:M,batchSize:F,numSegments:D},W=new NC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=H1({backend:e,attrs:{start:0,stop:D,step:1,dtype:\"float32\"}}),K=q1({inputs:{x:H},backend:e,attrs:{reps:[M/V]}});return u.push(H),u.push(K),g(q,N,K,A,D)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var kG={kernelName:pu,backendName:\"webgl\",kernelFunc:nut};var out=[l3,c3,p3,m3,d3,h3,g3,x3,w3,I3,C3,v3,S3,N3,k3,T3,_3,E3,A3,D3,$3,F3,O3,M3,P3,V3,W3,U3,Jz,q3,j3,X3,Y3,Z3,J3,Q3,tB,eB,rB,nB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,bB,wB,IB,vB,SB,NB,kB,_B,EB,AB,DB,$B,RB,FB,OB,MB,Zz,PB,K3,LB,zB,BB,Qz,VB,GB,WB,UB,HB,qB,KB,jB,XB,YB,JB,QB,tV,eV,rV,nV,sV,aV,lV,uV,cV,pV,gV,r3,xV,yV,bV,wV,L3,IV,SV,NV,kV,TV,t3,_V,EV,AV,DV,$V,z3,mV,RV,FV,OV,o3,MV,PV,LV,zV,BV,VV,GV,WV,UV,HV,qV,KV,jV,XV,YV,ZV,R3,hV,JV,QV,tG,eG,rG,nG,oG,sG,aG,lG,cG,pG,mG,fG,dG,hG,gG,dV,i3,xG,yG,bG,wG,CG,vG,a3,SG,NG,kG,CV];for(let r of out)rc(r);var Nt;(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\"})(Nt||(Nt={}));var ju;(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\",r[r.sigmoid=5]=\"sigmoid\",r[r.elu=6]=\"elu\"})(ju||(ju={}));var TG;function sut(r){TG=r.wasm.cwrap(ji,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function iut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"_FusedMatMul for non non-float32 tensors not yet supported.\");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=ju[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Ur.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return TG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var _G={kernelName:ji,backendName:\"wasm\",setupFunc:sut,kernelFunc:iut};function yt(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,[\"number\",\"number\",\"number\"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,Nt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var EG=yt(Ei);var AG=yt(Go);var DG=yt(Wo);function ee(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=S.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return n(p,g,l.shape.length,m,x,c.shape.length,Nt[l.dtype],b),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var aut=!0,$G=ee(no,aut);var RG;function lut(r){RG=r.wasm.cwrap(Uo,null,[\"array\",\"number\",\"number\",\"number\"])}function uut(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return RG(s,o.length,Nt[n.dtype],i),n}var FG={kernelName:Uo,backendName:\"wasm\",setupFunc:lut,kernelFunc:uut};function yp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return ir(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var OG={kernelName:go,backendName:\"wasm\",kernelFunc:yp};var MG;function cut(r){MG=r.wasm.cwrap(so,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function mo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=mut(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var PG={kernelName:so,backendName:\"wasm\",kernelFunc:mo,setupFunc:cut};function Cn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var nW={kernelName:Vi,backendName:\"wasm\",kernelFunc:mr};var oW;function Nut(r){oW=r.wasm.cwrap(Zo,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function kut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"BatchMatMul for non non-float32 tensors not yet supported.\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Ur.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=e.dataIdMap.get(E.dataId).id,F=e.dataIdMap.get(A.dataId).id,M=i?E.shape[2]:E.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,M,V],E.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(E.shape).buffer),K=new Uint8Array(new Int32Array(A.shape).buffer);return oW(D,H,E.shape.length,F,K,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var sW={kernelName:Zo,backendName:\"wasm\",setupFunc:Nut,kernelFunc:kut};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Be.parseSliceParams(t,e,n),a=Be.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Be.computeFlatOffset(s,c);return t.dtype===\"string\"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype===\"string\"){let d=ep(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Tut(u,c[0],m,s,i);else if(f===3)_ut(u,c[0],c[1],m,s,i);else if(f===4)Eut(u,c[0],c[1],c[2],m,s,i);else{let d=ep(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Tut(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=mo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(h.dataId),g}var aW={kernelName:Ri,backendName:\"wasm\",kernelFunc:Aut};var lW;function Dut(r){lW=r.wasm.cwrap(Da,null,[\"number\",\"number\",\"boolean\",\"number\",\"number\",\"number\"])}function $ut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return lW(c(o),i,a,c(s),Nt[s.dtype],c(l)),l}var uW={kernelName:Da,backendName:\"wasm\",setupFunc:Dut,kernelFunc:$ut};var Rut=!0,cW=ee($a,Rut);function Fut(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],\"int32\",void 0,new Int32Array(a))}var pW={kernelName:ql,backendName:\"wasm\",kernelFunc:Fut};function Fn(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var mW={kernelName:fo,backendName:\"wasm\",kernelFunc:Fn};var fW=yt(Jo);var dW;function Out(r){dW=r.wasm.cwrap(ho,null,[\"number\",\"number\",\"number\",\"number\"])}function Mut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return dW(a,s,i,l),u}var hW={kernelName:ho,backendName:\"wasm\",setupFunc:Out,kernelFunc:Mut};function K1(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return yp({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype===\"string\"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return mr({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Jc(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims(\"cumprod\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;DW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var $W={kernelName:Oa,backendName:\"wasm\",setupFunc:Xut,kernelFunc:Yut};var RW;function Zut(r){RW=r.wasm.cwrap(os,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Jut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype===\"float32\"||o.dtype===\"int32\",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims(\"cumsum\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;RW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var FW={kernelName:os,backendName:\"wasm\",setupFunc:Zut,kernelFunc:Jut};var OW;function Qut(r){OW=r.wasm.cwrap(\"DenseBincount\",null,[\"number\",\"array\",\"number\",\"number\",\"boolean\",\"number\",\"number\",\"boolean\",\"number\"])}function tct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return OW(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),Nt[s.dtype],a,p(c)),c}var MW={kernelName:jl,backendName:\"wasm\",setupFunc:Qut,kernelFunc:tct};var PW;function ect(r){PW=r.wasm.cwrap(Pa,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function rct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,\"float32\"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return PW(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var LW={kernelName:Pa,backendName:\"wasm\",setupFunc:ect,kernelFunc:rct};var zW;function nct(r){zW=r.wasm.cwrap(ss,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function oct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=S.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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=n.makeOutput(f.outShape,\"float32\"),G=n.dataIdMap.get(V.dataId).id;return zW(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,M,I,N,E,A,D,F,G),V}var BW={kernelName:ss,backendName:\"wasm\",setupFunc:nct,kernelFunc:oct};var VW;function sct(r){VW=r.wasm.cwrap(\"Diag\",null,[\"number\",\"number\",\"number\",\"number\"])}function ict(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return VW(e.dataIdMap.get(n.dataId).id,Nt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var GW={kernelName:Xl,backendName:\"wasm\",setupFunc:sct,kernelFunc:ict};var WW;function act(r){WW=r.wasm.cwrap(is,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function lct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c=e.makeOutput(l.outShape,o.dtype);return WW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,Nt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var UW={kernelName:is,backendName:\"wasm\",setupFunc:act,kernelFunc:lct};var HW;function uct(r){HW=r.wasm.cwrap(Zl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(s.shape,s.dtype);return HW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var qW={kernelName:Zl,backendName:\"wasm\",setupFunc:uct,kernelFunc:cct};var KW;function pct(r){KW=r.wasm.cwrap(Yl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(o.shape,o.dtype);return KW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var jW={kernelName:Yl,backendName:\"wasm\",setupFunc:pct,kernelFunc:mct};var XW=yt(ls);var YW;function fct(r){YW=r.wasm.cwrap(La,null,[\"number\",\"number\",\"number\"])}function dct(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,\"float32\"),i=a=>e.dataIdMap.get(a.dataId).id;return YW(i(o),i(n),i(s)),s}var ZW={kernelName:La,backendName:\"wasm\",setupFunc:fct,kernelFunc:dct};var hct=!1,JW=ee(za,hct,\"bool\");var QW=yt(us);var tU=yt(cs,\"float32\");function TC(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var eU={kernelName:Oi,backendName:\"wasm\",kernelFunc:TC};var rU=yt(ps,\"float32\");function X1(r){let{attrs:{shape:t,value:e},backend:n}=r,{attrs:{dtype:o}}=r;o=o||y.inferDtype(e);let s=n.makeOutput(t,o);return n.typedArrayFromHeap(s).fill(e),s}var nU={kernelName:Jl,backendName:\"wasm\",kernelFunc:X1};var oU;function gct(r){oU=r.wasm.cwrap(Ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function xct(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return oU(s,a,u,l,c,i),o}var sU={kernelName:Ba,backendName:\"wasm\",kernelFunc:xct,setupFunc:gct};var iU=yt(ms);var yct=!1,aU=ee(fs,yct);var lU;function bct(r){lU=r.wasm.cwrap(ds,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function wct(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return lU(c,p,m,f,d,o,g),h}var uU={kernelName:ds,backendName:\"wasm\",setupFunc:bct,kernelFunc:wct};var cU;function Ict(r){cU=r.wasm.cwrap(Xi,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 Cct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,K=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return cU(x,Y,Z,et,b,N,E,I,A,D,F,M,K,V,G,W,q,H,w,g,lt,d||0,st),nt}var pU={kernelName:Xi,backendName:\"wasm\",setupFunc:Ict,kernelFunc:Cct};var mU;function vct(r){mU=r.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 Sct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,K=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return mU(x,Y,Z,et,b,N,E,I,A,D,F,M,K,V,G,W,q,H,w,g,lt,d||0,st),nt}var fU={kernelName:Yi,backendName:\"wasm\",setupFunc:vct,kernelFunc:Sct};var dU;function Nct(r){dU=r.wasm.cwrap(Va,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function kct(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Ey.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return dU(f,Nt[n.dtype],h,i,p,a,g,x),l}var hU={kernelName:Va,backendName:\"wasm\",setupFunc:Nct,kernelFunc:kct};var gU;function Tct(r){gU=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function _ct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${M} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return gU(w,Nt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var xU={kernelName:Mi,backendName:\"wasm\",setupFunc:Tct,kernelFunc:_ct};var Ect=!1,yU=ee(Ga,Ect,\"bool\");var Act=!1,bU=ee(hs,Act,\"bool\");var wU=yt(gs,\"bool\");var IU=yt(xs,\"bool\");var CU=yt(ys,\"bool\");var vU;function Dct(r){vU=r.wasm.cwrap(bs,null,[\"number\",\"number\",\"number\",\"number\"])}function $ct(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,\"float32\");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;vU(o,Nt[t.dtype],e,i)}return s}var SU={kernelName:bs,backendName:\"wasm\",setupFunc:Dct,kernelFunc:$ct};var Rct=!1,NU=ee(Wa,Rct,\"bool\");var Fct=!1,kU=ee(Ua,Fct,\"bool\");var TU;function Oct(r){TU=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"number\",\"number\"])}function Mct(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],\"float32\");return TU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var _U={kernelName:Ha,backendName:\"wasm\",setupFunc:Oct,kernelFunc:Mct};var EU=yt(ws);var AU=yt(Is);var Pct=!1,DU=ee(qa,Pct,\"bool\");var $U=yt(Ka);var Lct=!1,RU=ee(ja,Lct,\"bool\");var zct=!1,FU=ee(T_,zct,\"bool\");var OU;function Bct(r){OU=r.wasm.cwrap(Cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Vct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!==\"float32\")throw new Error(\"LRN error: x must have dtype float32\");let l=e.makeOutput(o.shape,o.dtype);return OU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var MU={kernelName:Cs,backendName:\"wasm\",setupFunc:Bct,kernelFunc:Vct};var PU;function Gct(r){PU=r.wasm.cwrap(Xa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Wct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\"||i.dtype!==\"float32\")throw new Error(\"LRNGrad error: x, y, and dy must have dtype float32\");let p=e.makeOutput(o.shape,o.dtype);return PU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var LU={kernelName:Xa,backendName:\"wasm\",setupFunc:Gct,kernelFunc:Wct};var zU;function Uct(r){zU=r.wasm.cwrap(vs,null,[\"number\",\"number\",\"number\",\"number\"])}function Hct(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;zU(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var BU={kernelName:vs,backendName:\"wasm\",setupFunc:Uct,kernelFunc:Hct};var qct=!1,VU=ee(Ss,qct);var GU;function Kct(r){GU=r.wasm.cwrap(Ns,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function jct(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype===\"float32\",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=S.computePool2DInfo(o.shape,i,a,1,u,l),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,b=c.dilationWidth,w=c.strideHeight,I=c.strideWidth,N=c.inChannels,E=c.outChannels;if(c.dataFormat!==\"channelsLast\")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,\"float32\"),D=n.dataIdMap.get(A.dataId).id;return GU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var WU={kernelName:Ns,backendName:\"wasm\",setupFunc:Kct,kernelFunc:jct};var UU;function Xct(r){UU=r.wasm.cwrap(\"MaxPool3D\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Yct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return UU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var HU={kernelName:Pi,backendName:\"wasm\",setupFunc:Xct,kernelFunc:Yct};var qU;function Zct(r){qU=r.wasm.cwrap(\"MaxPool3DGrad\",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 Jct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return qU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var KU={kernelName:tu,backendName:\"wasm\",setupFunc:Zct,kernelFunc:Jct};var jU;function Qct(r){jU=r.wasm.cwrap(\"MaxPoolGrad\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function tpt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool2DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return jU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),p}var XU={kernelName:Ql,backendName:\"wasm\",setupFunc:Qct,kernelFunc:tpt};var YU;function ept(r){YU=r.wasm.cwrap(\"MaxPoolWithArgmax\",null,[\"number\",\"number\",\"number\",\"number\",\"boolean\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function rpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,includeBatchInIndex:u}=n;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,[1,1],a),p=e.makeOutput(c.outShape,o.dtype),m=e.makeOutput(c.outShape,\"int32\");return YU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,e.dataIdMap.get(m.dataId).id,Nt[o.dtype],u,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),[p,m]}var ZU={kernelName:eu,backendName:\"wasm\",setupFunc:ept,kernelFunc:rpt};var JU;function npt(r){JU=r.wasm.cwrap(ks,null,[\"number, number, number\"])}function opt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=Fn({backend:t,inputs:{x:l},attrs:{dtype:\"float32\"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,\"float32\");if(y.sizeFromShape(l.shape)!==0){let I=t.dataIdMap.get(w.dataId).id;JU(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var QU={kernelName:ks,backendName:\"wasm\",setupFunc:npt,kernelFunc:opt};var t4;function spt(r){t4=r.wasm.cwrap(Ts,null,[\"number\",\"number\",\"number\",\"number\"])}function ipt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;t4(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var e4={kernelName:Ts,backendName:\"wasm\",setupFunc:spt,kernelFunc:ipt};var apt=!1,r4=ee(_s,apt);var Y1;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(Y1||(Y1={}));var n4;function lpt(r){n4=r.wasm.cwrap(Es,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function upt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return n4(i,l,t.shape.length,Nt[t.dtype],m,f,Y1[o],u),a}var o4={kernelName:Es,backendName:\"wasm\",kernelFunc:upt,setupFunc:lpt};var s4;function cpt(r){s4=r.wasm.cwrap(Qs,null,[\"number\",\"number\",\"number\",\"number\"])}function Z1(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||s4(o,i,a,u),s}var i4={kernelName:Qs,backendName:\"wasm\",setupFunc:cpt,kernelFunc:Z1};var a4;function ppt(r){a4=r.wasm.cwrap(Ya,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mpt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!==\"float32\")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:Z1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],\"int32\");return a4(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var l4={kernelName:Ya,backendName:\"wasm\",setupFunc:ppt,kernelFunc:mpt};var u4=ee(As,!0);var fpt=!0,c4=ee(Ds,fpt);var p4=yt(Li);function zd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var m4;function dpt(r){m4=r.wasm.cwrap(Ja,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function hpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=m4(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=zd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var f4={kernelName:Ja,backendName:\"wasm\",setupFunc:dpt,kernelFunc:hpt};var d4;function gpt(r){d4=r.wasm.cwrap(Qa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function xpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=d4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=zd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var h4={kernelName:Qa,backendName:\"wasm\",setupFunc:gpt,kernelFunc:xpt};var g4;function ypt(r){g4=r.wasm.cwrap(tl,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function bpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=g4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=zd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var x4={kernelName:tl,backendName:\"wasm\",setupFunc:ypt,kernelFunc:bpt};var wpt=!1,y4=ee(Za,wpt,\"bool\");var b4;function Ipt(r){b4=r.wasm.cwrap($s,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Cpt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return b4(m,i,a,u,c),l}var w4={kernelName:$s,backendName:\"wasm\",setupFunc:Ipt,kernelFunc:Cpt};function vpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var I4={kernelName:zi,backendName:\"wasm\",kernelFunc:vpt};function Spt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return TC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=TC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=K1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var C4={kernelName:Bi,backendName:\"wasm\",kernelFunc:Spt};var v4;function Npt(r){v4=r.wasm.cwrap(Rs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function kpt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return X1({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return v4(i,c,t.shape.length,Nt[t.dtype],f,d,o,l),a}var _C={kernelName:Rs,backendName:\"wasm\",kernelFunc:kpt,setupFunc:Npt};var Tpt=!1,S4=ee(Fs,Tpt);var N4;function _pt(r){N4=r.wasm.cwrap(Os,null,[\"number\",\"number\",\"number\"])}function Ept(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!==\"float32\"&&(l=Fn({backend:e,inputs:{x:n},attrs:{dtype:\"float32\"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,\"float32\"),p=e.dataIdMap.get(c.dataId).id;return N4(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var k4={kernelName:Os,backendName:\"wasm\",setupFunc:_pt,kernelFunc:Ept};var T4;function Apt(r){T4=r.wasm.cwrap(Ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Dpt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;T4(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _4={kernelName:Ms,backendName:\"wasm\",setupFunc:Apt,kernelFunc:Dpt};var $pt=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=tp(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},E4={kernelName:ru,backendName:\"wasm\",kernelFunc:$pt};var Rpt=!0,A4=ee(as,Rpt);var D4=yt(Ps);var $4=yt(Ls);var R4=yt(Vs);var F4;function Fpt(r){F4=r.wasm.cwrap(Bs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Opt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!==\"float32\"&&(g=Fn({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return F4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var O4={kernelName:Bs,backendName:\"wasm\",setupFunc:Fpt,kernelFunc:Opt};var M4;function Mpt(r){M4=r.wasm.cwrap(rl,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function Ppt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),M4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var P4={kernelName:rl,backendName:\"wasm\",setupFunc:Mpt,kernelFunc:Ppt};var L4;function Lpt(r){L4=r.wasm.cwrap(zs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function zpt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!==\"float32\"&&(x=Fn({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return L4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var z4={kernelName:zs,backendName:\"wasm\",setupFunc:Lpt,kernelFunc:zpt};var B4;function Bpt(r){B4=r.wasm.cwrap(el,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function Vpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),B4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var V4={kernelName:el,backendName:\"wasm\",setupFunc:Bpt,kernelFunc:Vpt};var G4;function Gpt(r){G4=r.wasm.cwrap(Gs,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Wpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return yp({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);G4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var W4={kernelName:Gs,backendName:\"wasm\",kernelFunc:Wpt,setupFunc:Gpt};var U4;function Upt(r){U4=r.wasm.cwrap(pl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Hpt(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=S.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i==\"number\"?[i,i,i,x?0:b]:[...i,b],I=new Uint8Array(new Int32Array(w).buffer);return U4(l,p,m,f,d,s,h,g,I,w.length,c),u}var H4={kernelName:pl,backendName:\"wasm\",kernelFunc:Hpt,setupFunc:Upt};var q4=yt(Ws);var K4=yt(Us);var j4;function qpt(r){j4=r.wasm.cwrap(nl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Kpt(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return j4(d,g,Nt[s.dtype],u,l,c,x,m,b),a}var X4={kernelName:nl,backendName:\"wasm\",setupFunc:qpt,kernelFunc:Kpt};var Y4;function jpt(r){Y4=r.wasm.cwrap(sl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\",\"number\"])}function Xpt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,\"int32\");function u(l){return e.dataIdMap.get(l.dataId).id}return Y4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],Nt[o.dtype],i===\"left\",u(a)),a}var Z4={kernelName:sl,backendName:\"wasm\",setupFunc:jpt,kernelFunc:Xpt};var J4;function Ypt(r){J4=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Zpt(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return J4(i,a,u,f,c),l}var Q4={kernelName:Gi,backendName:\"wasm\",kernelFunc:Zpt,setupFunc:Ypt};var tH=yt(Hs);var eH;function Jpt(r){eH=r.wasm.cwrap(Xs,null,[\"number\",\"number\"])}function Qpt(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||eH(n,s),o}var rH={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:Jpt,kernelFunc:Qpt};var nH=yt(js);var oH=yt(qs);var sH=yt(Ks);var iH=yt(Ys);function tmt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let E=1+s.length;E0?u+1:0;if(c<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],\"int32\"),b=e.dataIdMap.get(x.dataId).id;mH(m,Nt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=\"\"}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function smt(r){return AC(r,!0)}var fH={kernelName:ou,backendName:\"wasm\",setupFunc:EC,kernelFunc:smt};function imt(r){return AC(r,!1)}var dH={kernelName:su,backendName:\"wasm\",setupFunc:EC,kernelFunc:imt};var hH;function amt(r){hH=r.wasm.cwrap(al,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function lmt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return hH(d,h,s.shape.length,g,Nt[i.dtype],l,c,p,x,f,b),u}var gH={kernelName:al,backendName:\"wasm\",setupFunc:amt,kernelFunc:lmt};function umt(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var xH={kernelName:Hi,backendName:\"wasm\",kernelFunc:umt};var yH=yt(Zs);var bH=yt(iu);var cmt=!0,wH=ee(ti,cmt);var IH;function pmt(r){IH=r.wasm.cwrap(xo,null,[\"number\",\"number\",\"number\",\"number\"])}function mmt(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return IH(i,o,Nt[s.dtype],u),a}var CH={kernelName:xo,backendName:\"wasm\",setupFunc:pmt,kernelFunc:mmt};var vH;function fmt(r){vH=r.wasm.cwrap(ll,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function dmt(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let E=t.makeOutput(f,\"float32\"),A=t.dataIdMap.get(o.dataId).id,D=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),M=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;vH(A,D,o.shape.length,F,M,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var SH={kernelName:ll,backendName:\"wasm\",setupFunc:fmt,kernelFunc:dmt};function hmt(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=rp(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],\"string\"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,\"int32\");return t.typedArrayFromHeap(b).set(h),[g,b]}var NH={kernelName:au,backendName:\"wasm\",kernelFunc:hmt};function gmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=np(a,u[0],i),m=c.length,f=t.makeOutput([m,2],\"int32\");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],\"string\"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],\"int32\");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var kH={kernelName:lu,backendName:\"wasm\",kernelFunc:gmt};function xmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=op(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var TH={kernelName:uu,backendName:\"wasm\",kernelFunc:xmt};var ymt=!0,_H=ee(ei,ymt);var EH;function bmt(r){EH=r.wasm.cwrap(Js,null,[\"number\",\"number\",\"number\",\"number\"])}function wmt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EH(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var AH={kernelName:Js,backendName:\"wasm\",setupFunc:bmt,kernelFunc:wmt};var DH=yt(ri);var $H=yt(ni);var RH;function Imt(r){RH=r.wasm.cwrap(ol,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function Cmt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return RH(d,g,Nt[i.dtype],u,l,c,w,m,I,b),a}var FH={kernelName:ol,backendName:\"wasm\",setupFunc:Imt,kernelFunc:Cmt};var OH;function vmt(r){OH=r.wasm.cwrap(oo,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Smt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,\"int32\"),m=t.dataIdMap.get(p.dataId).id;return PH(i,a,n.shape.length,Nt[n.dtype],o,s,c,m),[l,p]},LH={kernelName:ul,backendName:\"wasm\",setupFunc:Nmt,kernelFunc:kmt};var zH;function Tmt(r){zH=r.wasm.cwrap(cl,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function _mt(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=t.dataIdMap.get(s.dataId).id,F=i===\"nearest\"?1:2,M;switch(a){case\"constant\":M=1;break;case\"reflect\":M=2;break;case\"wrap\":M=3;break;case\"nearest\":M=4;break;default:M=1;break}return zH(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,M,u,I),w}var BH={kernelName:cl,backendName:\"wasm\",setupFunc:Tmt,kernelFunc:_mt};function Emt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=sp(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],\"int32\",void 0,u)]}var VH={kernelName:cu,backendName:\"wasm\",kernelFunc:Emt};function Amt(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var GH={kernelName:qi,backendName:\"wasm\",kernelFunc:Amt};function Dmt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var WH={kernelName:Ki,backendName:\"wasm\",kernelFunc:Dmt};var $mt=[_G,EG,AG,DG,$G,FG,zG,VG,GG,WG,UG,HG,qG,KG,jG,YG,rW,JG,tW,sW,aW,uW,cW,pW,mW,fW,hW,gW,yW,wW,CW,SW,kW,TW,_W,AW,$W,FW,MW,LW,BW,GW,UW,qW,jW,XW,ZW,JW,QW,tU,eU,rU,nU,sU,iU,aU,uU,pU,fU,hU,xU,yU,bU,OG,wU,IU,CU,SU,NU,kU,_U,AU,EU,DU,$U,RU,FU,MU,LU,BU,VU,WU,HU,KU,XU,ZU,QU,e4,r4,o4,l4,u4,c4,p4,f4,h4,x4,y4,w4,I4,C4,_C,S4,k4,_4,E4,A4,D4,$4,R4,nW,O4,P4,z4,V4,W4,H4,q4,K4,X4,Z4,Q4,tH,rH,nH,oH,sH,iW,i4,iH,aH,uH,pH,fH,dH,gH,xH,yH,bH,wH,CH,SH,NH,kH,TH,_H,AH,DH,$H,FH,MH,LH,BH,PG,VH,GH,WH];for(let r of $mt)rc(r);var J1=L();J1.registerFlag(\"WASM_HAS_SIMD_SUPPORT\",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});J1.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(J1.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 s_=Gl(KH()),QH=Gl(XH()),i_=Gl(YH());var ZH=s_.default||s_,Rmt=i_.default||i_,bg=class extends Bo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(eq),o_=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Ta(this,Bn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o===\"string\"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u)>>>0;this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s===\"string\")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Omt(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),\"PThread\"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case\"float32\":return new Float32Array(o,s,i);case\"int32\":return new Int32Array(o,s,i);case\"bool\":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Fmt(r){return(t,e)=>(y.fetch(r,{credentials:\"same-origin\"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function JH(r,t,e){if(RC!=null)return RC;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),xg!=null&&xg[n]!=null?xg[n]:e+n}async function tq(){let[r,t]=await Promise.all([L().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),L().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=QH.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?JH(r,t,gg!=null?gg:u):u+a},a_&&(o.instantiateWasm=Fmt(JH(r,t,gg!=null?gg:\"\")));let s=!1;o.onAbort=()=>{if(s||yg)return;yg=!0,n({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&&r&&RC==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+ZH.toString()],{type:\"text/javascript\"}),i=ZH(o)):i=Rmt(o),i.then(a=>{s=!0,yg=!1;let u=null;a.tfjs={init:a.cwrap(\"init\",null,[]),initWithThreadsCount:a.cwrap(\"init_with_threads_count\",null,[\"number\"]),getThreadsCount:a.cwrap(\"get_threads_count\",\"number\",[]),registerTensor:a.cwrap(\"register_tensor\",null,[\"number\",\"number\",\"number\"]),disposeData:a.cwrap(\"dispose_data\",u,[\"number\"]),dispose:a.cwrap(\"dispose\",u,[])},e({wasm:a})}).catch(n)})}function Omt(r,t){switch(t){case\"float32\":return new Float32Array(r);case\"int32\":return new Int32Array(r);case\"bool\":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var Mmt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],RC=null,gg=null,xg={},yg=!1,a_=!1;function Pmt(r,t=!1){if(B0(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),yg)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");RC=r,a_=t}function Lmt(r,t=!1){if(yg)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\")gg=r;else{xg=r;let e=Mmt.filter(n=>xg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.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.`)}a_=t}var eq=-1,o_=-1;function zmt(r){eq=r}function Bmt(){if(o_===-1)throw new Error(\"WASM backend not initialized.\");return o_}var Vmt=\"4.16.0\";var Gmt=2;Xp(\"wasm\",async()=>{let{wasm:r}=await tq();return new bg(r)},Gmt);var rq=\"4.16.0\",Wmt=\"4.16.0\",Umt=\"4.16.0\",Hmt=\"4.16.0\",qmt=\"4.16.0\",Kmt={tfjs:rq,\"tfjs-core\":rq,\"tfjs-converter\":Wmt,\"tfjs-backend-cpu\":Umt,\"tfjs-backend-webgl\":Hmt,\"tfjs-backend-wasm\":qmt};export{Ei as Abs,Go as Acos,Wo as Acosh,vc as AdadeltaOptimizer,Sc as AdagradOptimizer,Nc as AdamOptimizer,kc as AdamaxOptimizer,no as Add,Uo as AddN,Ea as All,Aa as Any,Ai as ArgMax,Di as ArgMin,Ho as Asin,qo as Asinh,Ko as Atan,Xo as Atan2,jo as Atanh,Yo as AvgPool,$i as AvgPool3D,Hl as AvgPool3DGrad,Ul as AvgPoolGrad,bg as BackendWasm,Zo as BatchMatMul,Ri as BatchToSpaceND,Da as Bincount,$a as BitwiseAnd,ql as BroadcastArgs,k_ as BroadcastTo,Pb as Callback,Xy as CallbackList,fo as Cast,Jo as Ceil,ho as ClipByValue,Ap as Complex,Kl as ComplexAbs,Fi as Concat,Qo as Conv2D,Dp as Conv2DBackpropFilter,ts as Conv2DBackpropInput,es as Conv3D,Ra as Conv3DBackpropFilterV2,Fa as Conv3DBackpropInputV2,rs as Cos,ns as Cosh,Ma as CropAndResize,Oa as Cumprod,os as Cumsum,Zy as CustomCallback,Ta as DataStorage,jl as DenseBincount,Pa as DepthToSpace,ss as DepthwiseConv2dNative,$p as DepthwiseConv2dNativeBackpropFilter,Rp as DepthwiseConv2dNativeBackpropInput,Xl as Diag,is as Dilation2D,Zl as Dilation2DBackpropFilter,Yl as Dilation2DBackpropInput,Jd as Draw,y0 as ENV,Lb as EarlyStopping,Fp as Einsum,ls as Elu,La as EluGrad,Yd as Environment,za as Equal,us as Erf,cs as Exp,Oi as ExpandDims,ps as Expm1,Op as FFT,Jl as Fill,Ba as FlipLeftRight,ms as Floor,fs as FloorDiv,Qd as FromPixels,ds as FusedBatchNorm,Xi as FusedConv2D,Yi as FusedDepthwiseConv2D,pp as GPGPUContext,Va as GatherNd,Mi as GatherV2,Hh as GraphModel,Ga as Greater,hs as GreaterEqual,Yy as History,Mp as IFFT,go as Identity,Pp as Imag,Ie as InputSpec,gs as IsFinite,xs as IsInf,ys as IsNan,Bo as KernelBackend,Cs as LRN,Xa as LRNGrad,kh as LayerVariable,Un as LayersModel,bs as LeakyRelu,Wa as Less,Ua as LessEqual,Ha as LinSpace,ws as Log,Is as Log1p,__ as LogSoftmax,qa as LogicalAnd,Ka as LogicalNot,ja as LogicalOr,T_ as LogicalXor,Qmt as LowerBound,cd as MathBackendCPU,Ad as MathBackendWebGL,tft as MatrixBandPart,vs as Max,Ns as MaxPool,Pi as MaxPool3D,tu as MaxPool3DGrad,Ql as MaxPoolGrad,eu as MaxPoolWithArgmax,Ss as Maximum,ks as Mean,Ts as Min,_s as Minimum,Es as MirrorPad,As as Mod,Tc as MomentumOptimizer,Ya as Multinomial,Ds as Multiply,Li as Neg,Ja as NonMaxSuppressionV3,Qa as NonMaxSuppressionV4,tl as NonMaxSuppressionV5,Za as NotEqual,z0 as OP_SCOPE_SUFFIX,$s as OneHot,zi as OnesLike,qr as Optimizer,wh as OptimizerConstructors,Bi as Pack,Rs as PadV2,eft as Pool,Fs as Pow,Os as Prelu,Ms as Prod,_c as RMSPropOptimizer,po as RNN,Lp as RaggedGather,zp as RaggedRange,Bp as RaggedTensorToTensor,ru as Range,E0 as Rank,Vp as Real,as as RealDiv,Ps as Reciprocal,Je as Reduction,Ls as Relu,Vs as Relu6,Vi as Reshape,Bs as ResizeBilinear,rl as ResizeBilinearGrad,zs as ResizeNearestNeighbor,el as ResizeNearestNeighborGrad,Gs as Reverse,pl as RotateWithOffset,Ws as Round,Us as Rsqrt,Il as SGDOptimizer,nl as ScatterNd,sl as SearchSorted,Gi as Select,Hs as Selu,Wc as Sequential,Xs as Sigmoid,js as Sign,qs as Sin,Ks as Sinh,Wi as Slice,Qs as Softmax,Ys as Softplus,Ui as SpaceToBatchND,nu as SparseFillEmptyRows,il as SparseReshape,ou as SparseSegmentMean,su as SparseSegmentSum,al as SparseToDense,Hi as SplitV,Zs as Sqrt,iu as Square,ti as SquaredDifference,ec as StaticRegexReplace,xo as Step,ll as StridedSlice,au as StringNGrams,lu as StringSplit,uu as StringToHashBucketFast,ei as Sub,Js as Sum,en as SymbolicTensor,ri as Tan,ni as Tanh,Lt as Tensor,le as TensorBuffer,ol as TensorScatterUpdate,oo as Tile,ul as TopK,cl as Transform,so as Transpose,cu as Unique,qi as Unpack,pu as UnsortedSegmentSum,rft as UpperBound,ml as Variable,Ki as ZerosLike,ji as _FusedMatMul,_e as abs,mx as acos,fx as acosh,X as add,TE as addN,tm as all,cc as any,ea as argMax,dx as argMin,hx as asin,gx as asinh,xx as atan,yx as atan2,bx as atanh,xu as avgPool,wx as avgPool3d,ox as backend,S as backend_util,AE as basicLSTMCell,oa as batchNorm,Ix as batchNorm2d,Cx as batchNorm3d,vx as batchNorm4d,yu as batchToSpaceND,Sx as bincount,$E as bitwiseAnd,W5 as booleanMaskAsync,RE as broadcastArgs,sa as broadcastTo,Ur as broadcast_util,_y as browser,wt as buffer,fQ as callbacks,J as cast,Nx as ceil,vr as clipByValue,ln as clone,Sn as complex,ie as concat,kx as concat1d,Tx as concat2d,_x as concat3d,Ex as concat4d,wR as constraints,rm as conv1d,Nn as conv2d,om as conv2dTranspose,Ax as conv3d,$x as conv3dTranspose,uft as copyRegisteredKernels,bu as cos,sm as cosh,gh as cosineWindow,mc as cumprod,im as cumsum,pn as customGrad,oO as data,ph as denseBincount,B0 as deprecationWarn,Rx as depthToSpace,ia as depthwiseConv2d,xQ as deregisterOp,du as device_util,FE as diag,Fx as dilation2d,wdt as disableDeprecationWarnings,Tt as dispose,Idt as disposeVariables,ct as div,Ox as divNoNan,Mx as dot,mN as dropout,wu as einsum,aa as elu,bdt as enableDebugMode,ydt as enableProdMode,fN as enclosingPowerOfTwo,Bn as engine,ME as ensureShape,L as env,$r as equal,Px as erf,Lx as euclideanNorm,Ke as exp,je as expandDims,zx as expm1,fc as eye,Au as fft,Co as fill,kdt as findBackend,Tdt as findBackendFactory,la as floor,Qp as floorDiv,Yz as forceHalfFloat,Ru as fused,ua as gather,Q5 as gatherND,Ey as gather_util,rE as getBackend,I0 as getGradient,Wp as getKernel,Xg as getKernelsForBackend,Bmt as getThreadsCount,S1 as gpgpu_util,q6 as grad,K6 as grads,Re as greater,cn as greaterEqual,wl as ifft,Iu as imag,fn as image,r8 as inTopKAsync,IR as initializers,YN as input,Mr as io,ym as irfft,Bx as isFinite,Vx as isInf,Gx as isNaN,De as keep,Kr as kernel_impls,eF as layers,Cu as leakyRelu,yl as less,Vn as lessEqual,hN as linalg,zE as linspace,ftt as loadGraphModel,dtt as loadGraphModelSync,VR as loadLayersModel,Wx as localResponseNormalization,Nr as log,vu as log1p,qx as logSigmoid,am as logSoftmax,Su as logSumExp,Fr as logicalAnd,Nu as logicalNot,lm as logicalOr,Kx as logicalXor,oY as losses,BE as lowerBound,Bt as matMul,R2 as math,Sr as max,ku as maxPool,Xx as maxPool3d,VE as maxPoolWithArgmax,kn as maximum,Ne as mean,ah as memory,GE as meshgrid,rF as metrics,gl as min,lo as minimum,Yx as mirrorPad,Zx as mod,fJ as model,nF as models,dc as moments,q5 as movingAverage,$ as mul,WE as multiRNNCell,UE as multinomial,Ut as neg,Ih as nextFrame,xl as norm,ui as notEqual,ca as oneHot,ar as ones,wr as onesLike,k as op,HE as outerProduct,mn as pad,qE as pad1d,KE as pad2d,jE as pad3d,XE as pad4d,Jx as pool,un as pow,_u as prelu,px as print,Qx as prod,Cdt as profile,YE as raggedGather,ZE as raggedRange,JE as raggedTensorToTensor,QE as rand,wA as randomGamma,xc as randomNormal,IA as randomStandardNormal,Gn as randomUniform,CA as randomUniformInt,pa as range,Sdt as ready,bl as real,sy as reciprocal,Xp as registerBackend,hJ as registerCallbackConstructor,A_ as registerGradient,rc as registerKernel,gQ as registerOp,oF as regularizers,Or as relu,um as relu6,Ndt as removeBackend,R as reshape,dr as reverse,vA as reverse1d,SA as reverse2d,NA as reverse3d,kA as reverse4d,Du as rfft,cm as round,pm as rsqrt,pt as scalar,j5 as scatterND,$u as scatter_util,fh as searchSorted,mm as selu,fm as separableConv2d,dJ as sequential,Q as serialization,$K as setBackend,_dt as setPlatform,zmt as setThreadsCount,Pmt as setWasmPath,Lmt as setWasmPaths,LT as setWebGLContext,TA as setdiff1dAsync,Tw as shared,Qr as sigmoid,iy as sign,nY as signal,dm as sin,hm as sinh,Ot as slice,gm as slice1d,hh as slice2d,xm as slice3d,yc as slice4d,Be as slice_util,Eu as softmax,li as softplus,Tu as spaceToBatchND,sY as sparse,Z5 as sparseToDense,rY as spectral,hr as split,Se as sqrt,Wt as square,bm as squaredDifference,Wn as squeeze,Fe as stack,So as step,ay as stridedSlice,iY as string,at as sub,mt as sum,lc as sumOutType,ly as tan,na as tanh,ir as tensor,Oe as tensor1d,ci as tensor2d,uy as tensor3d,_A as tensor4d,EA as tensor5d,AA as tensor6d,$A as tensorScatterUpdate,Io as tensor_util,bA as test_util,B as tidy,Rr as tile,vdt as time,cy as topk,Ac as train,Vt as transpose,Im as truncatedNormal,py as unique,lft as unregisterGradient,aft as unregisterKernel,Cm as unsortedSegmentSum,gr as unstack,ur as upcastType,RA as upperBound,y as util,j6 as valueAndGrad,X6 as valueAndGrads,my as variable,Ux as variableGrads,Kmt as version,LF as version_converter,K2 as version_core,UO as version_cpu,Km as version_layers,Vmt as version_wasm,Xz as version_webgl,N$e as webgl,Id as webgl_util,we as where,dy as whereAsync,ke as zeros,vt as zerosLike};\n", "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 = 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 = 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 = 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 = 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({ x, y, width, height });\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({ x, y, width, height });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const { x, y, right, bottom } = 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({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).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({ x, y, width, height });\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 { dy, edy, dx, edx, y, ey, x, ex, w, h };\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 = false) {\n super({ left, top, right, bottom }, 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 override 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 = 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 = 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(imgTensor: tf.Tensor4D, isCenterImage = false): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) return imgTensor;\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 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 const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount ? createPaddingTensor(remainingPaddingAmount) : null;\n const tensorsToStack = [paddingTensorPrepend, imgTensor, paddingTensorAppend]\n .filter((t) => !!t)\n .map((t) => tf.cast(t as tf.Tensor4D, '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 = false) {\n super({ x, y, width, height }, 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 override 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 override 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 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 = 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 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(sourceObj: TSource, detection: FaceDetection): 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 createVideoElement: () => document.createElement('video'),\n fetch,\n readFile,\n };\n}\n", "export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n}\n", "import { FileSystem } from './types';\nimport { isNodejs } from './isNodejs';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n if (!fs && isNodejs()) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = (err as any).toString();\n }\n }\n\n const readFile = fs\n // eslint-disable-next-line no-undef\n ? (filePath: string) => new Promise((resolve, reject) => { fs.readFile(filePath, (err: NodeJS.ErrnoException | null, buffer: string | Buffer) => (err ? reject(err) : resolve(buffer))); })\n : () => { throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); };\n return { readFile };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n const Canvas: (new () => HTMLCanvasElement) = (global as any)['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n const Video: (new () => HTMLVideoElement) = (global as any)['Video'] || global.HTMLVideoElement;\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 createVideoElement = () => {\n if (Video) return new Video();\n throw new Error('createVideoElement - missing Video 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 createVideoElement,\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 if (canvasArg instanceof CanvasRenderingContext2D) return canvasArg;\n const canvas = resolveInput(canvasArg);\n if (!(canvas instanceof Canvas)) throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n const ctx = canvas.getContext('2d', { willReadFrequently: true });\n if (!ctx) throw new Error('resolveContext2d - canvas 2d context is null');\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 { AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions } 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 resolve(null);\n return;\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 = 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 { computeReshapedDimensions, isTensor3D, isTensor4D, range } 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 = false;\n\n private _inputDimensions: number[][] = [];\n\n private _inputSize = 0;\n\n constructor(inputs: Array, treatAsBatchInput = false) {\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 // @ts-ignore\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas as HTMLCanvasElement;\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 = 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 let imgTensor = isTensor4D(input) ? input : tf.expandDims(input);\n imgTensor = padToSquare(imgTensor as tf.Tensor4D, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf['image'].resizeBilinear(imgTensor as tf.Tensor4D, [inputSize, inputSize], false, false);\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) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))) as tf.Tensor4D;\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) return inputs;\n const inputArgArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArgArray.length) throw new Error('toNetInput - empty array passed as input');\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n const inputArray = inputArgArray.map(resolveInput);\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\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 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) throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n });\n // wait for all media elements being loaded\n await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)));\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(input: TNetInput, detections: Array): Promise {\n const { Canvas } = env.getEnv();\n let canvas = input as HTMLCanvasElement;\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n if (netInput.batchSize > 1) throw new Error('extractFaces - batchSize > 1 not supported');\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas ? tensorOrCanvas : await imageTensorToCanvas(tensorOrCanvas);\n }\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections\n .map((det) => (det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det))\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n return boxes.map(({ x, y, width, height }) => {\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(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): 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 const boxes = detections.map((det) => (det instanceof FaceDetection ? det.forSize(imgWidth, imgHeight).box : det))\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n const faceTensors = boxes\n .filter((box) => box.width > 0 && box.height > 0)\n .map(({ x, y, width, height }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\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", "import { env } from '../env/index';\n\nexport function bufferToVideo(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToVideo - expected buf to be of type: Blob'));\n\n const video = env.getEnv().createVideoElement();\n video.oncanplay = () => resolve(video);\n video.onerror = reject;\n video.playsInline = true;\n video.muted = true;\n video.src = URL.createObjectURL(buf);\n video.play();\n });\n}\n", "import { bufferToVideo } from './bufferToVideo';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchVideo(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('video/')) {\n throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToVideo(blob);\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 // @ts-ignore\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 = 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 = 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) => (typeof buf === 'string' ? Buffer.from(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 = 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 = false,\n isScaleDown = 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 = 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 { extractConvParamsFactory, extractSeparableConvParamsFactory, ExtractWeightsFunction, ParamMapping } 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 = 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 = 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 = 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 = 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(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 { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } 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 { FaceFeatureExtractorParams, IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } 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 override 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 override dispose(throwOnRedispose = 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'] as const;\n\nexport class FaceExpressions {\n public neutral = 0;\n public happy = 0;\n public sad = 0;\n public angry = 0;\n public fearful = 0;\n public disgusted = 0;\n public surprised = 0;\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 = t.dataSync();\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 & { expressions: FaceExpressions }\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions(sourceObj: TSource, expressions: FaceExpressions): 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(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array, minConfidence = 0.1, textFieldAnchor?: IPoint) {\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 { Point } from '../classes';\nimport { 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\n> = TSource & {\n landmarks: TFaceLandmarks;\n unshiftedLandmarks: TFaceLandmarks;\n alignedRect: FaceDetection;\n angle: {\n roll: number | undefined;\n pitch: number | undefined;\n yaw: number | undefined;\n };\n};\n\nexport function isWithFaceLandmarks(\n obj: any,\n): obj is WithFaceLandmarks, FaceLandmarks> {\n return (\n isWithFaceDetection(obj)\n && (obj as any)['landmarks'] instanceof FaceLandmarks\n && (obj as any)['unshiftedLandmarks'] instanceof FaceLandmarks\n && (obj as any)['alignedRect'] instanceof FaceDetection\n );\n}\n\nfunction calculateFaceAngle(mesh: FaceLandmarks) {\n // Helper to convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (radians: number) => (radians * 180) / Math.PI;\n const calcLengthBetweenTwoPoints = (a: Point, b: Point) => Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);\n\n const angle = {\n roll: undefined,\n pitch: undefined,\n yaw: undefined,\n };\n\n const calcYaw = (leftPoint: Point, midPoint: Point, rightPoint: Point) => {\n // Calc x-distance from left side of the face (\"ear\") to facial midpoint (\"nose\")\n const leftToMidpoint = Math.floor(leftPoint.x - midPoint.x);\n // Calc x-distance from facial midpoint (\"nose\") to the right side of the face (\"ear\")\n const rightToMidpoint = Math.floor(midPoint.x - rightPoint.x);\n // Difference in distances coincidentally approximates to angles\n return leftToMidpoint - rightToMidpoint;\n };\n\n const calcRoll = (lever: Point, pivot: Point) => {\n // When rolling, the head seems to pivot from the nose/lips/chin area.\n // So, we'll choose any two points from the facial midline, where the first point should be the pivot, and the other \"lever\"\n // Plan/Execution: get the hypotenuse & opposite sides of a 90deg triangle ==> Calculate angle in radians\n const hypotenuse = Math.hypot(pivot.x - lever.x, pivot.y - lever.y);\n const opposite = pivot.y - lever.y;\n const angleInRadians = Math.asin(opposite / hypotenuse);\n const angleInDegrees = degrees(angleInRadians);\n const normalizeAngle = Math.floor(90 - angleInDegrees);\n // If lever more to the left of the pivot, then we're tilting left\n // \"-\" is negative direction. \"+\", or absence of a sign is positive direction\n const tiltDirection = pivot.x - lever.x < 0 ? -1 : 1;\n const result = normalizeAngle * tiltDirection;\n return result;\n };\n\n const calcPitch = (leftPoint: Point, midPoint: Point, rightPoint: Point) => {\n // Theory: While pitching, the nose is the most salient point --> That's what we'll use to make a trianle.\n // The \"base\" is between point that don't move when we pitch our head (i.e. an imaginary line running ear to ear through the nose).\n // Executuin: Get the opposite & adjacent lengths of the triangle from the ear's perspective. Use it to get angle.\n\n const base = calcLengthBetweenTwoPoints(leftPoint, rightPoint);\n // adjecent is base/2 technically.\n const baseCoords = new Point((leftPoint.x + rightPoint.x) / 2, (leftPoint.y + rightPoint.y) / 2);\n const midToBaseLength = calcLengthBetweenTwoPoints(midPoint, baseCoords);\n const angleInRadians = Math.atan(midToBaseLength / base);\n const angleInDegrees = Math.floor(degrees(angleInRadians));\n // Account for directionality.\n // pitch forwards (_i.e. tilting your head forwards) is positive (or no sign); backward is negative.\n const direction = baseCoords.y - midPoint.y < 0 ? -1 : 1;\n const result = angleInDegrees * direction;\n return result;\n };\n\n if (!mesh || !mesh.positions || mesh.positions.length !== 68) return angle;\n const pt = mesh.positions;\n angle.roll = calcRoll(pt[27], pt[66]);\n angle.pitch = calcPitch(pt[14], pt[30], pt[2]);\n angle.yaw = calcYaw(pt[14], pt[33], pt[2]);\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68>(\n sourceObj: TSource,\n unshiftedLandmarks: TFaceLandmarks,\n): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(\n sourceObj.detection.score,\n rect.rescale(imageDims.reverse()),\n imageDims,\n );\n const angle = calculateFaceAngle(unshiftedLandmarks);\n const extension = { landmarks, unshiftedLandmarks, alignedRect, angle };\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", "{\n \"name\": \"@vladmandic/face-api\",\n \"version\": \"1.7.13\",\n \"description\": \"FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS\",\n \"sideEffects\": false,\n \"main\": \"dist/face-api.node.js\",\n \"module\": \"dist/face-api.esm.js\",\n \"browser\": \"dist/face-api.esm.js\",\n \"types\": \"types/face-api.d.ts\",\n \"author\": \"Vladimir Mandic \",\n \"bugs\": {\n \"url\": \"https://github.com/vladmandic/face-api/issues\"\n },\n \"homepage\": \"https://vladmandic.github.io/face-api/demo/webcam.html\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/vladmandic/face-api.git\"\n },\n \"scripts\": {\n \"start\": \"node --no-warnings demo/node.js\",\n \"build\": \"node build.js\",\n \"dev\": \"build --profile development\",\n \"typings\": \"build --profile typings\",\n \"lint\": \"eslint src/ demo/\",\n \"test\": \"node --trace-warnings test/test-node.js\",\n \"scan\": \"npx auditjs@latest ossi --dev --quiet\"\n },\n \"keywords\": [\n \"face-api\",\n \"faceapi\",\n \"face-detection\",\n \"age-gender\",\n \"emotion-detection\",\n \"face-recognition\",\n \"face\",\n \"face-description\",\n \"tensorflow\",\n \"tensorflowjs\",\n \"tfjs\"\n ],\n \"devDependencies\": {\n \"@canvas/image\": \"^2.0.0\",\n \"@microsoft/api-extractor\": \"^7.39.1\",\n \"@tensorflow/tfjs\": \"^4.16.0\",\n \"@tensorflow/tfjs-backend-cpu\": \"^4.16.0\",\n \"@tensorflow/tfjs-backend-wasm\": \"^4.16.0\",\n \"@tensorflow/tfjs-backend-webgl\": \"^4.16.0\",\n \"@tensorflow/tfjs-backend-webgpu\": \"4.16.0\",\n \"@tensorflow/tfjs-converter\": \"^4.16.0\",\n \"@tensorflow/tfjs-core\": \"^4.16.0\",\n \"@tensorflow/tfjs-data\": \"^4.16.0\",\n \"@tensorflow/tfjs-layers\": \"^4.16.0\",\n \"@tensorflow/tfjs-node\": \"^4.16.0\",\n \"@tensorflow/tfjs-node-gpu\": \"^4.16.0\",\n \"@types/node\": \"^20.11.5\",\n \"@types/offscreencanvas\": \"^2019.7.3\",\n \"@typescript-eslint/eslint-plugin\": \"^6.19.0\",\n \"@typescript-eslint/parser\": \"^6.19.0\",\n \"@vladmandic/build\": \"^0.9.3\",\n \"@vladmandic/pilogger\": \"^0.4.9\",\n \"esbuild\": \"^0.19.11\",\n \"eslint\": \"^8.56.0\",\n \"eslint-config-airbnb-base\": \"^15.0.0\",\n \"eslint-plugin-import\": \"^2.29.1\",\n \"eslint-plugin-json\": \"^3.1.0\",\n \"eslint-plugin-node\": \"^11.1.0\",\n \"eslint-plugin-promise\": \"^6.1.1\",\n \"node-fetch\": \"^3.3.2\",\n \"rimraf\": \"^5.0.5\",\n \"seedrandom\": \"^3.0.5\",\n \"tslib\": \"^2.6.2\",\n \"typedoc\": \"^0.25.7\",\n \"typescript\": \"5.3.3\"\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: Record<`main_block_${number}`, MainBlockParams> = {};\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 { disposeUnusedWeightTensors, extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } 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: Record<`main_block_${number}`, MainBlockParams> = {};\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 = 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(255) 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 { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } 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.js';\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { AgeAndGenderPrediction, Gender, NetOutput, NetParams } 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 = (ageTensor.dataSync())[0];\n const probMale = (genderTensor.dataSync())[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 override dispose(throwOnRedispose = 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(landmarkTensor.dataSync());\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(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 { ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { isFloat } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } 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 = 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(255) 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 as tf.Tensor2D;\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 // @ts-ignore\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(() => tf.unstack(this.forwardInput(netInput)));\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 { ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory } from '../common/index';\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } 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 { ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } 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(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]) {\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(x: tf.Tensor4D, params: MobileNetV1.DepthwiseConvParams, strides: [number, number]) {\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) conv11 = out;\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) return 0.0;\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) * 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(maxOutputSize, numBoxes);\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], 2)),\n tf.add(vec[1], tf.div(sizes[1], 2)),\n ];\n return { sizes, centers };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const { sizes, centers } = 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], 5)), sizes[0]), 2);\n const add0_out = tf.add(tf.mul(tf.div(vec[0], 10), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], 5)), sizes[1]), 2);\n const add1_out = tf.add(tf.mul(tf.div(vec[1], 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(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams) {\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(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);\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(scores, [batchSize, scores.shape[1] as number]);\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return { boxes: boxesByBatch, scores: scoresByBatch };\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 = '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 if (!params) throw new Error('SsdMobilenetv1 - load model before inference');\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.div(batchTensor, 127.5), 1) as tf.Tensor4D; // input is normalized -1..1\n const features = mobileNetV1(x, params.mobilenetv1);\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\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(input: TNetInput, options: ISsdMobilenetv1Options = {}): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n const netInput = await toNetInput(input);\n const { boxes: _boxes, scores: _scores } = this.forwardInput(netInput);\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 const scoresData = Array.from(scores.dataSync());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(boxes, scoresData as number[], maxResults, iouThreshold, minConfidence);\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 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(left, top, right - left, bottom - top),\n { height: netInput.getInputHeight(0), width: netInput.getInputWidth(0) },\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 = '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, TinyYolov2ExtractBoxesResult, 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(255) 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: TinyYolov2ExtractBoxesResult[] = [];\n const scoresData = await scoresTensor.array() as number[][][][];\n const boxesData = await boxesTensor.array() as number[][][][];\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 = 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 override getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected override 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 = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport type ITinyFaceDetectorOptions = ITinyYolov2Options\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected override _name = 'TinyFaceDetectorOptions';\n}\n", "export class ComposableTask {\n // eslint-disable-next-line no-unused-vars\n public async then(onfulfilled: (value: T) => T | PromiseLike): 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 const results = await computeResults(faces);\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\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 override getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected override 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 { PredictAllAgeAndGenderTask, PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } 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> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public override 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(\n faces.map((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> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public override 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>> extends PredictAllFaceExpressionsTask {\n override 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>> extends PredictSingleFaceExpressionsTask {\n override 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 { PredictAllFaceExpressionsTask, PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } 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> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public override async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map((face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise)),\n this.extractedFaces,\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> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public override async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\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 return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask>> extends PredictAllAgeAndGenderTask {\n override 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>> extends PredictSingleAgeAndGenderTask {\n override 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 { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } 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>> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\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 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>> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\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, @typescript-eslint/no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\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 { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } 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> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))) as FaceLandmarks68[];\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n const result = parentResults\n .filter((_parentResult, i) => faceLandmarksByFace[i])\n .map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n return result;\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> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\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 const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\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 // eslint-disable-next-line no-unused-vars\n constructor(protected input: TNetInput, protected options: FaceDetectionOptions = new SsdMobilenetv1Options()) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const { input, options } = this;\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 return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n return new Promise[]>((resolve, reject) => {\n this.run()\n .then((detections) => resolve(detections.map((detection) => extendWithFaceDetection({}, detection))))\n .catch((err) => reject(err));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = 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 override 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 = 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\nexport async function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(input: TNetInput, forwardParams: ITinyYolov2Options = {}): 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 const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff * diff), 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 private _distanceThreshold: number;\n\n constructor(inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>, distanceThreshold = 0.6) {\n this._distanceThreshold = distanceThreshold;\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArray.length) throw new Error('FaceRecognizer.constructor - expected atleast one input');\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) return desc;\n if (desc instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n if (desc.descriptor && desc.descriptor instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\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) / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(label, this.computeMeanDistance(queryDescriptor, descriptors)))\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) ? bestMatch : 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.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\nexport const version = pkg.version as string;\n\n// set webgl defaults\n// if (browser) tf.ENV.set('WEBGL_USE_SHAPES_UNIFORMS', true);\n"], - "mappings": "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AAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,K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", - "names": ["tfjs_esm_exports", "__export", "Ei", "Go", "Wo", "vc", "Sc", "Nc", "kc", "no", "Uo", "Ea", "Aa", "Ai", "Di", "Ho", "qo", "Ko", "Xo", "jo", "Yo", "$i", "Hl", "Ul", "bg", "Zo", "Ri", "Da", "$a", "ql", "k_", "Pb", "Xy", "fo", "Jo", "ho", "Ap", "Kl", "Fi", "Qo", "Dp", "ts", "es", "Ra", "Fa", "rs", "ns", "Ma", "Oa", "os", "Zy", "Ta", "jl", "Pa", "ss", "$p", "Rp", "Xl", "is", "Zl", "Yl", "Jd", "y0", "Lb", "Fp", "ls", "La", "Yd", "za", "us", "cs", "Oi", "ps", "Op", "Jl", "Ba", "ms", "fs", "Qd", "ds", "Xi", "Yi", "pp", "Va", "Mi", "Hh", "Ga", "hs", "Yy", "Mp", "go", "Pp", "Ie", "gs", "xs", "ys", "Bo", "Cs", "Xa", "kh", "Un", "bs", "Wa", "Ua", "Ha", "ws", "Is", "__", "qa", "Ka", "ja", "T_", "Qmt", "cd", "Ad", "tft", "vs", "Ns", "Pi", "tu", "Ql", "eu", "Ss", "ks", "Ts", "_s", "Es", "As", "Tc", "Ya", "Ds", "Li", "Ja", "Qa", "tl", "Za", "z0", "$s", "zi", "qr", "wh", "Bi", "Rs", "eft", "Fs", "Os", "Ms", "_c", "po", "Lp", "zp", "Bp", "ru", "E0", "Vp", "as", "Ps", "Je", "Ls", "Vs", "Vi", "Bs", "rl", "zs", "el", "Gs", "pl", "Ws", "Us", "Il", "nl", "sl", "Gi", "Hs", "Wc", "Xs", "js", "qs", "Ks", "Wi", "Qs", "Ys", "Ui", "nu", "il", "ou", "su", "al", "Hi", "Zs", "iu", "ti", "ec", "xo", "ll", "au", "lu", "uu", "ei", "Js", "en", "ri", "ni", "Lt", "le", "ol", "oo", "ul", "cl", "so", "cu", "qi", "pu", "rft", "ml", "Ki", "ji", "_e", "mx", "fx", "TE", "tm", "cc", "ea", "dx", "hx", "gx", "xx", "yx", "bx", "xu", "wx", "ox", "S", "AE", "oa", "Ix", "Cx", "vx", "yu", "Sx", "$E", "W5", "RE", "sa", "Ur", "_y", "wt", "fQ", "J", "Nx", "vr", "ln", "Sn", "ie", "kx", "Tx", "_x", "Ex", "wR", "rm", "Nn", "om", "Ax", "$x", "uft", "bu", "sm", "gh", "mc", "im", "pn", "oO", "ph", "B0", "Rx", "ia", "xQ", "du", "FE", "Fx", "wdt", "Tt", "Idt", "ct", "Ox", "Mx", "mN", "wu", "aa", "bdt", "ydt", "fN", "Bn", "ME", "L", "$r", "Px", "Lx", "Ke", "je", "zx", "fc", "Au", "Co", "kdt", "Tdt", "la", "Qp", "Yz", "Ru", "ua", "Q5", "Ey", "rE", "I0", "Wp", "Xg", "Bmt", "S1", "q6", "K6", "Re", "cn", "wl", "Iu", "fn", "r8", "IR", "YN", "Mr", "ym", "Bx", "Vx", "Gx", "De", "Kr", "eF", "Cu", "yl", "Vn", "hN", "zE", "ftt", "dtt", "VR", "Wx", "Nr", "vu", "qx", "am", "Su", "Fr", "Nu", "lm", "Kx", "oY", "BE", "Bt", "R2", "Sr", "ku", "Xx", "VE", "kn", "Ne", "ah", "GE", "rF", "gl", "lo", "Yx", "Zx", "fJ", "nF", "dc", "q5", "$", "WE", "UE", "Ut", "Ih", "xl", "ui", "ca", "ar", "wr", "k", "HE", "mn", "qE", "KE", "jE", "XE", "Jx", "un", "_u", "px", "Qx", "Cdt", "YE", "ZE", "JE", "QE", "wA", "xc", "IA", "Gn", "CA", "pa", "Sdt", "bl", "sy", "Xp", "hJ", "A_", "rc", "gQ", "oF", "Or", "um", "Ndt", "R", "dr", "vA", "SA", "NA", "kA", "Du", "cm", "pm", "pt", "j5", "$u", "fh", "mm", "fm", "dJ", "Q", "$K", "_dt", "zmt", "Pmt", "Lmt", "LT", "TA", "Tw", "Qr", "iy", "nY", "dm", "hm", "Ot", "gm", "hh", "xm", "yc", "Be", "Eu", "li", "Tu", "sY", "Z5", "rY", "hr", "Se", "Wt", "bm", "Wn", "Fe", "So", "ay", "iY", "at", "mt", "lc", "ly", "na", "ir", "Oe", "ci", "uy", "_A", "EA", "AA", "$A", "Io", "bA", "B", "Rr", "vdt", "cy", "Ac", "Vt", "Im", "py", "lft", "aft", "Cm", "gr", "ur", "RA", "y", "j6", "X6", "my", "Ux", "Kmt", "LF", "K2", "UO", "Km", "Vmt", "Xz", "N$e", "Id", "we", "dy", "ke", "vt", "Mq", "p0", "Pq", "Lq", "zq", "Bq", "br", "r", "Kt", "e", "Vq", "n", "o", "Gl", "V_", "mft", "B_", "He", "yo", "t", "zn", "D_", "$_", "oc", "qe", "bo", "nc", "wo", "M_", "z_", "F_", "Ln", "L_", "Hp", "Zg", "S0", "s", "i", "a", "u", "l", "oi", "R_", "cK", "O_", "Up", "P_", "v0", "xt", "c", "p", "m", "f", "d", "NE", "kE", "eA", "tA", "nN", "nA", "rA", "oN", "sA", "oA", "sN", "aA", "iA", "iN", "uA", "lA", "aN", "h", "g", "pA", "cA", "lN", "mA", "dA", "fA", "ty", "w", "I", "N", "E", "A", "b", "F", "M", "V", "G", "W", "q", "H", "dh", "i_t", "hA", "PX", "LX", "zX", "BX", "VX", "GX", "hc", "Ak", "fw", "Q1", "UH", "HH", "qH", "KH", "DC", "e_", "t_", "it", "re", "Xe", "ye", "de", "Ee", "On", "lr", "Zn", "zr", "P", "U", "x", "D", "Yu", "Y", "dt", "wp", "Pt", "Jt", "Zt", "zo", "K", "Z", "et", "nt", "st", "lt", "ot", "Xu", "ft", "gt", "Ct", "Rt", "Dt", "Ht", "bt", "$t", "or", "eo", "qt", "pe", "xe", "Ae", "Br", "Vr", "Jn", "Qn", "Zr", "Ca", "ki", "Bd", "Wd", "Er", "va", "l_", "Vd", "zl", "bp", "Sa", "FC", "wg", "OC", "Ig", "Jr", "Cg", "MC", "PC", "Og", "qC", "Yt", "ka", "u_", "c_", "vg", "LC", "l0", "zC", "Gd", "BC", "Sg", "Ng", "Bl", "VC", "Tg", "kg", "GC", "Vg", "Ud", "WC", "g_", "Gg", "Ip", "UC", "HC", "h_", "KC", "m_", "jC", "_g", "Eg", "XC", "YC", "ZC", "d_", "JC", "QC", "tv", "Zu", "ev", "rv", "Ag", "nv", "Hd", "ov", "sv", "iv", "u0", "Wg", "f_", "qd", "av", "gv", "lv", "uv", "cv", "Dg", "$g", "pv", "mv", "Rg", "Fg", "fv", "dv", "Mn", "Np", "b_", "y_", "c0", "Oq", "hv", "p_", "xv", "yv", "bv", "wv", "Iv", "Cv", "vv", "Sv", "Nv", "kv", "Tv", "_v", "Ev", "Av", "Dv", "$v", "Rv", "Fv", "Ov", "Mv", "Pv", "Lv", "zv", "Bv", "Vv", "Gv", "Wv", "Uv", "Hv", "qv", "Kv", "jv", "Xv", "Yv", "Zv", "Jv", "Qv", "tS", "eS", "rS", "nS", "oS", "sS", "iS", "aS", "lS", "uS", "cS", "pS", "mS", "fS", "dS", "hS", "gS", "xS", "yS", "bS", "wS", "IS", "CS", "vS", "SS", "NS", "kS", "TS", "_S", "ES", "AS", "DS", "$S", "RS", "FS", "OS", "MS", "PS", "LS", "zS", "BS", "VS", "GS", "WS", "US", "HS", "qS", "KS", "jS", "XS", "YS", "ZS", "JS", "QS", "t0", "e0", "r0", "n0", "Mg", "Pg", "Kd", "o0", "s0", "Cp", "Lg", "vp", "Sp", "i0", "j", "ut", "Ft", "me", "Ye", "Ze", "se", "ne", "yr", "to", "Na", "zg", "jd", "a0", "nn", "Vl", "Bg", "nq", "oq", "sq", "iq", "aq", "lq", "uq", "cq", "pq", "mq", "fq", "dq", "hq", "gq", "xq", "yq", "bq", "wq", "Iq", "Cq", "vq", "Sq", "Nq", "kq", "Tq", "_q", "Eq", "Aq", "Dq", "$q", "Rq", "Ug", "x_", "Hg", "qg", "Fq", "XH", "pnr", "jH", "YH", "$C", "n_", "r_", "Pn", "w_", "Kg", "Gq", "kp", "Wq", "Uq", "Hq", "qq", "_", "$e", "on", "ro", "jt", "Kq", "m0", "_a", "jq", "Xq", "Yq", "Qu", "Zq", "Jq", "fr", "f0", "d0", "jg", "h0", "g0", "Qq", "Tp", "x0", "Vo", "I_", "C_", "Wl", "Ti", "_p", "_i", "v_", "Ju", "tK", "Xd", "Ep", "eK", "Le", "rK", "nK", "tc", "S_", "sK", "aK", "iK", "N_", "b0", "w0", "lK", "Zd", "Zi", "uK", "Gp", "th", "C0", "gK", "Kp", "fu", "yK", "hK", "si", "eh", "sr", "ac", "qp", "Yg", "k0", "ic", "W_", "sc", "sn", "N0", "U_", "ze", "G_", "Ar", "mu", "pK", "Jg", "mK", "fK", "dK", "xK", "Qg", "T0", "bK", "H_", "q_", "K_", "rh", "_0", "j_", "wK", "tx", "oh", "nh", "X_", "ii", "jp", "IK", "Y_", "Z_", "J_", "O", "F0", "sh", "vK", "Xt", "A0", "D0", "$0", "R0", "CK", "ex", "rx", "Q_", "SK", "O0", "nx", "ih", "T", "NK", "kK", "M0", "L0", "EK", "_K", "TK", "P0", "vn", "Gr", "eE", "tE", "C", "fl", "AK", "an", "dl", "Wr", "DK", "hu", "sE", "OK", "sx", "RK", "iE", "FK", "zK", "nE", "ix", "V0", "oE", "aE", "lE", "uE", "G0", "ax", "W0", "Yp", "Ji", "lh", "MK", "PK", "LK", "Cr", "cE", "pE", "mE", "fE", "U0", "H0", "uc", "gu", "dE", "q0", "Qi", "hE", "BK", "VK", "lx", "hl", "Zp", "gE", "GK", "WK", "UK", "HK", "xE", "yE", "qK", "KK", "ta", "bE", "jK", "ux", "Jp", "ai", "cx", "wE", "IE", "CE", "vE", "SE", "K0", "XK", "j0", "X0", "YK", "ZK", "JK", "QK", "tj", "ej", "rj", "nj", "oj", "sj", "ij", "aj", "lj", "uj", "cj", "pj", "mj", "fj", "dj", "hj", "gj", "EE", "pc", "Z0", "uh", "xj", "Y0", "_E", "em", "wj", "Ij", "yj", "J0", "ch", "bj", "io", "Dr", "ra", "ve", "Cj", "vj", "Sj", "Nj", "kj", "Tj", "_j", "Ej", "Aj", "Dj", "DE", "$j", "Rj", "Fj", "Oj", "Mj", "Pj", "Lj", "zj", "Bj", "Vj", "Gj", "Wj", "Uj", "Hj", "qj", "Kj", "jj", "nm", "Xj", "Yj", "Zj", "Dx", "Jj", "Qj", "t6", "e6", "r6", "n6", "o6", "s6", "i6", "a6", "Mt", "OE", "be", "l6", "u6", "c6", "p6", "m6", "f6", "d6", "h6", "g6", "Q0", "PE", "tN", "vo", "x6", "eN", "mh", "y6", "b6", "w6", "I6", "C6", "v6", "S6", "N6", "LE", "k6", "T6", "_6", "E6", "A6", "D6", "$6", "R6", "F6", "O6", "M6", "P6", "L6", "z6", "B6", "V6", "G6", "W6", "U6", "H6", "Hx", "Y6", "Z6", "J6", "Q6", "tX", "eX", "rX", "nX", "oX", "sX", "jx", "iX", "aX", "lX", "uX", "cX", "pX", "mX", "fX", "dX", "hX", "gX", "xX", "yX", "bX", "wX", "IX", "CX", "vX", "SX", "NX", "kX", "TX", "_X", "AX", "EX", "DX", "$X", "RX", "FX", "OX", "MX", "oy", "gA", "XX", "yA", "jX", "UX", "qX", "xA", "HX", "KX", "YX", "ey", "WX", "uN", "cN", "gc", "ry", "ny", "ZX", "JX", "QX", "t5", "e5", "r5", "n5", "o5", "s5", "i5", "a5", "l5", "u5", "c5", "p5", "m5", "f5", "d5", "h5", "g5", "x5", "y5", "b5", "w5", "I5", "C5", "v5", "S5", "N5", "k5", "T5", "_5", "E5", "A5", "D5", "$5", "R5", "F5", "DA", "wm", "pN", "O5", "M5", "P5", "L5", "z5", "B5", "fy", "V5", "G5", "U5", "H5", "K5", "FA", "Y5", "J5", "OA", "t8", "e8", "MA", "PA", "LA", "n8", "vm", "bc", "wc", "Ic", "Cc", "o8", "s8", "hy", "i8", "gy", "a8", "l8", "u8", "zA", "c8", "xy", "p8", "yy", "m8", "BA", "f8", "VA", "d8", "GA", "h8", "WA", "g8", "UA", "x8", "HA", "No", "y8", "qA", "KA", "b8", "I8", "w8", "by", "dN", "wy", "Iy", "jA", "C8", "v8", "S8", "XA", "N8", "YA", "k8", "ZA", "T8", "JA", "_8", "QA", "E8", "Cy", "A8", "vy", "D8", "$8", "t2", "R8", "e2", "F8", "r2", "O8", "n2", "M8", "o2", "s2", "P8", "Hr", "L8", "i2", "z8", "a2", "B8", "l2", "V8", "u2", "G8", "c2", "W8", "p2", "U8", "H8", "m2", "q8", "K8", "f2", "j8", "d2", "X8", "h2", "Y8", "g2", "Z8", "x2", "J8", "y2", "Q8", "b2", "tY", "w2", "eY", "I2", "xh", "Sy", "lY", "xN", "aY", "gN", "uY", "C2", "S2", "_2", "E2", "vN", "ky", "Ny", "k2", "IN", "A2", "D2", "cY", "pY", "mY", "v2", "Sm", "yN", "fY", "dY", "bN", "wN", "N2", "hY", "gY", "yh", "xY", "T2", "bh", "Ty", "CN", "$2", "yY", "kY", "TY", "vY", "NY", "Ec", "F2", "O2", "bY", "wY", "IY", "CY", "M2", "SY", "P2", "EY", "FY", "DY", "$Y", "RY", "AY", "NN", "OY", "H2", "G2", "q2", "W2", "U2", "z2", "SN", "_Y", "B2", "V2", "MY", "L2", "PY", "JY", "QY", "tZ", "eZ", "rZ", "ZY", "Ay", "ma", "TN", "kN", "LY", "lZ", "dZ", "BY", "sZ", "iZ", "UY", "zY", "mZ", "cZ", "uZ", "OZ", "FZ", "aZ", "hZ", "fZ", "HY", "KY", "GY", "qY", "jY", "VY", "XY", "YY", "bZ", "wZ", "IZ", "SZ", "kZ", "NZ", "CZ", "vZ", "AZ", "TZ", "_Z", "EZ", "gZ", "nZ", "yZ", "EN", "oZ", "WY", "_N", "pZ", "j2", "X2", "xZ", "RZ", "$Z", "DZ", "Dy", "Y2", "Z2", "J2", "Q2", "tD", "eD", "rD", "nD", "oD", "sD", "iD", "MZ", "aD", "lD", "PZ", "uD", "cD", "pD", "mD", "fD", "dD", "hD", "gD", "xD", "yD", "bD", "wD", "LZ", "ID", "CD", "vD", "SD", "ND", "kD", "TD", "_D", "ED", "AD", "DD", "$D", "RD", "FD", "OD", "LD", "MD", "PD", "zD", "BD", "VD", "GD", "WD", "UD", "HD", "qD", "KD", "zZ", "jD", "XD", "$y", "AN", "YD", "BZ", "ZD", "JD", "VZ", "QD", "t$", "e$", "r$", "n$", "o$", "s$", "i$", "a$", "l$", "u$", "c$", "DN", "p$", "m$", "GZ", "WZ", "f$", "d$", "h$", "g$", "x$", "y$", "b$", "w$", "I$", "C$", "v$", "S$", "N$", "k$", "T$", "_$", "E$", "A$", "D$", "$$", "$N", "RN", "R$", "F$", "O$", "M$", "P$", "L$", "z$", "B$", "V$", "G$", "W$", "U$", "UZ", "H$", "HZ", "uo", "dn", "z", "_t", "Ry", "Ch", "To", "co", "ON", "kr", "ue", "_o", "Cl", "ko", "Nm", "FN", "fa", "qZ", "vh", "Eo", "q$", "da", "Fy", "tr", "K$", "j$", "Oy", "KZ", "Py", "My", "Fu", "X$", "Y$", "Z$", "J$", "Q$", "km", "Me", "eR", "hn", "MN", "Sh", "tR", "mi", "jZ", "Ly", "rR", "zy", "XZ", "nR", "Ao", "Dc", "fi", "gn", "PN", "cr", "xn", "tn", "Sl", "oR", "Vy", "sR", "iR", "vl", "LN", "Nh", "Tm", "BN", "_m", "Do", "zN", "Gy", "$c", "yn", "aR", "lR", "Wy", "uR", "Ou", "cR", "pR", "YZ", "ZZ", "bn", "Em", "Mu", "Am", "Dm", "$m", "Rm", "Fm", "JZ", "jr", "Rc", "Fc", "Oc", "Mc", "Pc", "Lc", "Om", "mR", "fR", "Te", "ge", "Uy", "Mm", "St", "Gt", "Pm", "hR", "t7", "Th", "Lm", "e7", "Nl", "r7", "Et", "s7", "i7", "n7", "o7", "VN", "di", "Hy", "a7", "ha", "qy", "Ky", "xR", "zc", "l7", "c7", "gR", "u7", "p7", "m7", "h7", "d7", "f7", "GN", "Bc", "zm", "Bm", "Vm", "Gm", "yR", "Ve", "bR", "Ge", "y7", "N7", "S7", "k7", "T7", "C7", "_7", "E7", "x7", "A7", "w7", "b7", "I7", "v7", "g7", "Tl", "XJ", "o9", "V9", "s9", "rk", "nk", "ok", "d9", "g9", "y9", "h9", "x9", "b9", "p9", "R9", "q9", "U9", "i9", "BJ", "VJ", "GJ", "WJ", "UJ", "E9", "A9", "qJ", "YJ", "jJ", "c9", "ZJ", "FJ", "n9", "QJ", "B9", "z9", "w9", "I9", "O9", "M9", "ZR", "JR", "v9", "S9", "RJ", "m9", "MJ", "N9", "k9", "G9", "P9", "L9", "QR", "tF", "C9", "a9", "l9", "u9", "r9", "PJ", "K9", "OJ", "t9", "W9", "e9", "H9", "D9", "HJ", "T9", "_9", "LJ", "JJ", "$9", "zJ", "F9", "KJ", "f9", "ga", "jy", "CR", "D7", "kl", "WN", "Jy", "Wm", "Qy", "wn", "_h", "xa", "Um", "Pu", "$7", "R7", "F7", "O7", "M7", "Vc", "Hm", "P7", "qm", "L7", "z7", "Ah", "Eh", "tb", "Dh", "$h", "SR", "B7", "V7", "UN", "NR", "rb", "nb", "G7", "W7", "U7", "H7", "q7", "K7", "Rh", "j7", "HN", "eb", "kR", "Fh", "_R", "KN", "qN", "ER", "Z7", "ob", "J7", "Q7", "Y7", "AR", "Gc", "sb", "tJ", "ib", "eJ", "ab", "lb", "DR", "rJ", "FR", "$R", "nJ", "OR", "RR", "oJ", "sJ", "MR", "ub", "jm", "cb", "pb", "jN", "$o", "iJ", "XN", "PR", "LR", "aJ", "lJ", "zR", "uJ", "cJ", "mb", "BR", "pJ", "mJ", "rn", "fb", "db", "hb", "gb", "xb", "yb", "bb", "wb", "Ib", "Cb", "Xm", "vb", "Sb", "Nb", "hi", "ZN", "gi", "JN", "kb", "Lu", "UR", "HR", "GR", "fe", "WR", "Ce", "Ym", "Zm", "Jm", "Qm", "tf", "ef", "zu", "Tn", "xi", "Mh", "QN", "xJ", "qR", "yJ", "Oh", "rf", "Uc", "Hc", "nf", "of", "Tb", "sf", "af", "lf", "uf", "bJ", "cf", "tk", "ek", "jc", "qc", "El", "pf", "Kc", "mf", "_l", "ff", "wJ", "_b", "Xc", "df", "Yc", "hf", "gf", "xf", "yf", "bf", "wf", "If", "Cf", "vf", "Al", "Sf", "Nf", "kf", "Tf", "_f", "Ef", "Ph", "IJ", "Af", "Df", "$f", "Rf", "Lh", "CJ", "vJ", "SJ", "Ff", "Of", "NJ", "Mf", "Fb", "KR", "Eb", "Pf", "Lf", "Ab", "zf", "Bf", "Db", "Vf", "Gf", "$b", "Wf", "Uf", "Rb", "Hf", "qf", "Ob", "Kf", "kJ", "TJ", "jf", "Xf", "_J", "EJ", "Yf", "jR", "Zf", "DJ", "XR", "Jf", "zh", "Bh", "$J", "YR", "Qf", "oQ", "aQ", "j9", "X9", "Z9", "J9", "eQ", "sQ", "rQ", "nQ", "iQ", "lQ", "Q9", "tQ", "Y9", "cQ", "uQ", "pQ", "Mb", "sF", "mQ", "dQ", "_n", "iF", "sk", "zb", "v", "pr", "In", "Bb", "ik", "yi", "Vh", "bi", "ak", "yQ", "lk", "bQ", "uk", "wQ", "ck", "IQ", "pk", "CQ", "mk", "vQ", "fk", "SQ", "dk", "NQ", "hk", "kQ", "gk", "TQ", "xk", "_Q", "yk", "EQ", "bk", "AQ", "wk", "DQ", "Ik", "$Q", "Ck", "RQ", "vk", "FQ", "Sk", "OQ", "Nk", "MQ", "Gh", "Vb", "jb", "Wb", "Kb", "Gb", "Yb", "qb", "Xb", "Ub", "Hb", "aF", "kk", "PQ", "lF", "uF", "Zb", "ae", "cF", "pF", "Hn", "mF", "td", "Jb", "Qb", "ed", "fF", "dF", "hF", "gF", "xF", "yF", "bF", "wF", "Tk", "IF", "CF", "vF", "tw", "SF", "NF", "kF", "TF", "_F", "EF", "AF", "DF", "$F", "RF", "FF", "OF", "_k", "Wh", "Ek", "Bu", "utt", "ctt", "MF", "ott", "stt", "rd", "PF", "itt", "att", "ltt", "Uh", "ew", "ptt", "mtt", "htt", "sd", "wi", "ld", "od", "ud", "jF", "QF", "tO", "eO", "nO", "Yk", "rO", "XF", "KF", "UF", "zF", "rw", "Vu", "BF", "Dk", "VF", "nw", "GF", "gtt", "WF", "xtt", "nd", "qh", "Uk", "$k", "Kh", "Rk", "HF", "sw", "qF", "Dl", "Gk", "er", "Bk", "Lk", "zk", "ow", "Vk", "Pk", "Mk", "Ok", "iw", "Wk", "Fk", "Zc", "En", "ytt", "btt", "aw", "jh", "YF", "lw", "Hk", "ZF", "uw", "cw", "id", "Xh", "qk", "Kk", "pw", "jk", "Xk", "ad", "JF", "wtt", "mw", "tt", "Itt", "Qk", "fd", "dw", "tT", "Jk", "eT", "Jc", "rT", "oT", "iT", "lT", "aT", "hw", "gw", "cT", "uT", "mT", "pT", "xw", "fT", "yw", "dT", "hT", "Yh", "gT", "xT", "yT", "bw", "ww", "Iw", "tp", "wT", "Ii", "OO", "Zk", "ep", "Cw", "vw", "hd", "LO", "CT", "vT", "Sw", "rp", "np", "op", "NT", "Nw", "kw", "dd", "sp", "Ctt", "sO", "Qt", "Ir", "iO", "pd", "Xr", "aO", "Ro", "lO", "Fo", "uO", "oe", "md", "vtt", "ya", "cO", "Stt", "pO", "_r", "At", "An", "Ntt", "mO", "nT", "fO", "sT", "dO", "ktt", "hO", "Ttt", "gO", "_tt", "xO", "Ett", "yO", "Att", "bO", "Dtt", "wO", "$tt", "IO", "Rtt", "CO", "Ftt", "vO", "Ott", "SO", "Mtt", "Qc", "NO", "Ptt", "kO", "Ltt", "TO", "We", "_O", "ztt", "EO", "Btt", "Vtt", "Gtt", "Wtt", "AO", "Utt", "Htt", "DO", "Oo", "bT", "RO", "$O", "qtt", "FO", "IT", "MO", "Mo", "PO", "Ktt", "zO", "jtt", "BO", "Xtt", "VO", "ST", "Ytt", "Ztt", "Zh", "GO", "Jh", "WO", "kT", "HO", "TT", "qO", "Jtt", "_T", "KO", "ET", "jO", "AT", "XO", "ip", "te", "YO", "DT", "ZO", "Qtt", "JO", "tet", "QO", "eet", "tM", "ret", "eM", "net", "rM", "oet", "nM", "set", "oM", "iet", "sM", "aet", "iM", "uet", "aM", "cet", "lM", "pet", "met", "uM", "fet", "cM", "gd", "_w", "Ew", "pM", "det", "mM", "het", "fM", "get", "dM", "xet", "hM", "yet", "gM", "bet", "xM", "wet", "yM", "Iet", "bM", "Cet", "wM", "vet", "IM", "ba", "CM", "Gu", "vM", "$T", "SM", "Net", "NM", "ket", "kM", "Tet", "TM", "_et", "_M", "Eet", "EM", "Aet", "AM", "Det", "DM", "$et", "$M", "Ret", "RM", "Fet", "FM", "Oet", "OM", "Met", "MM", "RT", "PM", "Pet", "LM", "Let", "zM", "zet", "BM", "VM", "GM", "WM", "Bet", "UM", "$l", "HM", "Vet", "qM", "Get", "KM", "Wet", "Uet", "Het", "qet", "Ket", "jet", "Xet", "jM", "xd", "XM", "Yet", "Qh", "tg", "Aw", "Zet", "Jet", "FT", "Qet", "trt", "YM", "eg", "ert", "ZM", "JM", "rrt", "QM", "nrt", "tP", "ort", "eP", "srt", "rP", "irt", "nP", "art", "oP", "lrt", "sP", "urt", "iP", "crt", "aP", "prt", "lP", "mrt", "frt", "uP", "drt", "cP", "hrt", "grt", "pP", "xrt", "mP", "yrt", "fP", "OT", "dP", "brt", "hP", "wrt", "gP", "Irt", "xP", "Crt", "yP", "bP", "wP", "vrt", "IP", "Srt", "CP", "Nrt", "vP", "krt", "Trt", "SP", "kP", "MT", "NP", "_rt", "TP", "Ert", "Art", "_P", "Drt", "$rt", "EP", "Rrt", "Frt", "AP", "Ort", "DP", "rg", "$P", "RP", "FP", "PT", "OP", "Mrt", "Dw", "Prt", "Lrt", "MP", "zrt", "PP", "Brt", "LP", "Vrt", "zP", "Grt", "BP", "Wrt", "VP", "Urt", "GP", "Hrt", "WP", "qrt", "UP", "Krt", "HP", "jrt", "qP", "KP", "Xrt", "jP", "Yrt", "XP", "Zrt", "Jrt", "YP", "Qrt", "ZP", "tnt", "JP", "ent", "rnt", "nnt", "QP", "ont", "tL", "snt", "eL", "int", "rL", "ant", "nL", "lnt", "oL", "unt", "sL", "cnt", "iL", "pnt", "aL", "mnt", "lL", "fnt", "uL", "dnt", "cL", "hnt", "pL", "mL", "gnt", "fL", "xnt", "dL", "ynt", "hL", "bnt", "gL", "wnt", "xL", "Int", "yL", "Cnt", "bL", "vnt", "wL", "Snt", "IL", "Nnt", "CL", "knt", "vL", "Dnt", "$nt", "SL", "Tnt", "_nt", "Ant", "Ent", "ng", "Rnt", "NL", "Fnt", "kL", "Ont", "TL", "Mnt", "Ci", "Hnt", "ag", "QT", "DL", "Pw", "ht", "VT", "WT", "YT", "UT", "KT", "qT", "jT", "GT", "Fl", "yd", "$L", "r1", "Wnt", "JT", "ZT", "Ol", "wd", "t1", "n1", "AL", "e1", "Kn", "o1", "s1", "Uu", "i1", "zw", "HT", "Mw", "qnt", "Knt", "Lw", "Unt", "bd", "ig", "XT", "ap", "$w", "qn", "Lnt", "Pnt", "Wu", "Yr", "Pr", "lp", "_L", "og", "wa", "EL", "sg", "znt", "Bnt", "Vnt", "Rl", "Gnt", "RL", "Rw", "Fw", "Ow", "BT", "jnt", "kt", "Ue", "vi", "up", "Xnt", "FL", "Cd", "vd", "Bw", "OL", "ML", "Vw", "Ynt", "Qnt", "rot", "Znt", "eot", "Jnt", "tot", "iot", "Nd", "yot", "wot", "Cot", "Sot", "kot", "Tot", "_ot", "PL", "xot", "bot", "Iot", "vot", "Not", "Eot", "Aot", "LL", "aot", "hot", "uot", "pot", "lot", "got", "cot", "mot", "fot", "dot", "not", "oot", "sot", "cp", "kd", "Td", "_d", "zt", "BL", "a1", "zL", "VL", "GL", "he", "Gw", "Ww", "Uw", "Hw", "Rot", "lg", "qw", "g1", "b1", "m1", "h1", "p1", "c1", "d1", "f1", "u1", "l1", "I1", "w1", "v1", "C1", "jw", "Zw", "Kw", "Yw", "Xw", "x1", "y1", "ug", "Fot", "WL", "Jw", "UL", "HL", "qL", "KL", "jL", "XL", "YL", "ZL", "JL", "QL", "tz", "ez", "rz", "nz", "oz", "sz", "iz", "az", "lz", "uz", "cz", "pz", "mz", "fz", "dz", "hz", "gz", "xz", "yz", "bz", "wz", "Qw", "Iz", "Cz", "vz", "tI", "Sz", "Nz", "kz", "Tz", "_z", "Ez", "Az", "Dz", "$z", "mp", "Rz", "N1", "rr", "Fz", "eI", "Ed", "Oot", "rI", "Mz", "Pz", "Oz", "Mot", "Pot", "Lot", "Lr", "xr", "Lz", "k1", "zz", "Bz", "Vz", "Ia", "Gz", "Uz", "Hz", "qz", "Kz", "jz", "Dn", "nI", "Bot", "Vot", "Got", "oI", "Wot", "Uot", "Hot", "qot", "Kot", "Dd", "$n", "Xn", "jn", "nr", "Zz", "Rn", "Jz", "T1", "_1", "jot", "Qz", "E1", "A1", "Xot", "t3", "Po", "It", "ce", "Ml", "$d", "D1", "cg", "e3", "pg", "r3", "n3", "rt", "o3", "mg", "sI", "Zot", "Yn", "iI", "Jot", "aI", "Hu", "s3", "fp", "i3", "Pe", "a3", "$1", "dp", "Qot", "l3", "u3", "tst", "c3", "est", "rst", "p3", "nst", "ost", "m3", "f3", "sst", "d3", "lI", "uI", "cI", "h3", "ist", "g3", "ast", "x3", "pI", "mI", "y3", "b3", "fI", "lst", "w3", "ust", "I3", "cst", "pst", "C3", "mst", "fst", "v3", "dst", "hst", "S3", "gst", "xst", "yst", "N3", "bst", "wst", "k3", "Si", "qu", "Ist", "T3", "Cst", "_3", "dI", "hI", "vst", "E3", "Sst", "A3", "Nst", "D3", "gI", "xI", "kst", "$3", "yI", "Tst", "R1", "bI", "_st", "Ni", "R3", "Est", "F3", "Ast", "O3", "Dst", "$st", "Rst", "M3", "Fst", "P3", "Ost", "F1", "L3", "Pl", "z3", "Mst", "B3", "O1", "V3", "G3", "Pst", "W3", "wI", "II", "Lst", "U3", "CI", "H3", "zst", "q3", "vI", "NI", "SI", "hp", "K3", "Rd", "Bst", "M1", "j3", "Fd", "kI", "Od", "TI", "_I", "EI", "AI", "Vst", "X3", "DI", "$I", "RI", "FI", "Gst", "Y3", "OI", "Wst", "Z3", "Ust", "J3", "Hst", "Q3", "qst", "tB", "Kst", "jst", "Xst", "eB", "Yst", "Zst", "rB", "MI", "Jst", "nB", "gp", "fg", "oB", "sB", "PI", "Qst", "iB", "tit", "aB", "eit", "lB", "LI", "rit", "uB", "Md", "Pd", "nit", "cB", "zI", "BI", "oit", "pB", "sit", "mB", "VI", "iit", "fB", "GI", "ait", "dB", "lit", "hB", "uit", "cit", "pit", "gB", "mit", "fit", "dit", "xB", "hit", "git", "xit", "yB", "yit", "bit", "bB", "wit", "Iit", "P1", "wB", "WI", "IB", "CB", "Cit", "vB", "dg", "UI", "vit", "SB", "HI", "Ll", "NB", "qI", "kB", "TB", "Sit", "_B", "Nit", "kit", "Tit", "EB", "KI", "jI", "AB", "_it", "Ld", "L1", "Eit", "DB", "Ait", "$B", "XI", "Dit", "RB", "YI", "$it", "z1", "FB", "Rit", "Fit", "Oit", "OB", "Mit", "Pit", "Lit", "MB", "zit", "PB", "Bit", "Vit", "LB", "Git", "Wit", "zB", "Uit", "Hit", "BB", "qit", "Kit", "jit", "VB", "Xit", "Yit", "Zit", "GB", "Jit", "WB", "Qit", "tat", "eat", "UB", "rat", "nat", "HB", "oat", "sat", "iat", "qB", "aat", "lat", "KB", "uat", "cat", "pat", "jB", "ZI", "JI", "mat", "XB", "QI", "fat", "YB", "ZB", "B1", "JB", "dat", "hat", "gat", "QB", "xat", "tV", "yat", "eV", "tC", "eC", "bat", "rV", "wat", "nV", "oV", "sV", "iV", "aV", "Iat", "lV", "Cat", "vat", "Sat", "uV", "rC", "nC", "Nat", "cV", "kat", "Tat", "_at", "pV", "oC", "Eat", "Aat", "V1", "mV", "fV", "G1", "dV", "W1", "hV", "Dat", "gV", "$at", "Rat", "Fat", "xV", "Oat", "Mat", "yV", "Pat", "Lat", "bV", "zat", "Bat", "wV", "sC", "Vat", "IV", "hg", "CV", "vV", "SV", "Gat", "NV", "iC", "aC", "U1", "kV", "Wat", "Uat", "Hat", "TV", "qat", "_V", "Kat", "EV", "jat", "AV", "Xat", "DV", "H1", "$V", "Yat", "Zat", "RV", "Jat", "Qat", "tlt", "FV", "elt", "rlt", "nlt", "OV", "lC", "uC", "olt", "MV", "cC", "slt", "PV", "pC", "mC", "ilt", "LV", "fC", "alt", "zV", "dC", "hC", "llt", "BV", "gC", "VV", "ult", "clt", "GV", "plt", "mlt", "WV", "Ku", "xC", "flt", "UV", "yC", "dlt", "HV", "bC", "hlt", "qV", "glt", "xlt", "KV", "ylt", "blt", "wlt", "jV", "Ilt", "Clt", "XV", "vlt", "Slt", "Nlt", "YV", "klt", "Tlt", "ZV", "_lt", "Elt", "JV", "Alt", "QV", "Dlt", "tG", "$lt", "eG", "Rlt", "rG", "Flt", "nG", "Olt", "oG", "Mlt", "sG", "iG", "Plt", "aG", "Llt", "zlt", "lG", "uG", "Blt", "cG", "Vlt", "pG", "Glt", "mG", "wC", "Wlt", "fG", "Ult", "dG", "Hlt", "hG", "qlt", "gG", "Klt", "jlt", "xG", "Xlt", "Ylt", "yG", "Zlt", "bG", "IC", "Jlt", "q1", "wG", "CC", "vC", "xp", "IG", "Qlt", "CG", "SC", "tut", "vG", "eut", "SG", "rut", "NG", "NC", "nut", "kG", "out", "Nt", "ju", "TG", "sut", "iut", "_G", "yt", "EG", "AG", "DG", "ee", "aut", "$G", "RG", "lut", "uut", "FG", "yp", "OG", "MG", "cut", "mo", "mut", "put", "PG", "Cn", "LG", "fut", "dut", "zG", "BG", "hut", "gut", "VG", "kC", "GG", "WG", "UG", "HG", "qG", "KG", "jG", "XG", "xut", "yut", "YG", "ZG", "but", "wut", "JG", "QG", "Iut", "Cut", "tW", "eW", "vut", "Sut", "rW", "mr", "nW", "oW", "Nut", "kut", "sW", "Lo", "Tut", "_ut", "Eut", "iW", "Aut", "aW", "lW", "Dut", "$ut", "uW", "Rut", "cW", "Fut", "pW", "Fn", "mW", "fW", "dW", "Out", "Mut", "hW", "K1", "gW", "xW", "Put", "Lut", "yW", "bW", "zut", "But", "wW", "IW", "Vut", "Gut", "CW", "vW", "Wut", "Uut", "SW", "NW", "Hut", "qut", "kW", "TW", "_W", "j1", "EW", "Kut", "jut", "AW", "DW", "Xut", "Yut", "$W", "RW", "Zut", "Jut", "FW", "OW", "Qut", "tct", "MW", "PW", "ect", "rct", "LW", "zW", "nct", "oct", "BW", "VW", "sct", "ict", "GW", "WW", "act", "lct", "UW", "HW", "uct", "cct", "qW", "KW", "pct", "mct", "jW", "XW", "YW", "fct", "dct", "ZW", "hct", "JW", "QW", "tU", "TC", "eU", "rU", "X1", "nU", "oU", "gct", "xct", "sU", "iU", "yct", "aU", "lU", "bct", "wct", "uU", "cU", "Ict", "Cct", "pU", "mU", "vct", "Sct", "fU", "dU", "Nct", "kct", "hU", "gU", "Tct", "_ct", "xU", "Ect", "yU", "Act", "bU", "wU", "IU", "CU", "vU", "Dct", "$ct", "SU", "Rct", "NU", "Fct", "kU", "TU", "Oct", "Mct", "_U", "EU", "AU", "Pct", "DU", "$U", "Lct", "RU", "zct", "FU", "OU", "Bct", "Vct", "MU", "PU", "Gct", "Wct", "LU", "zU", "Uct", "Hct", "BU", "qct", "VU", "GU", "Kct", "jct", "WU", "UU", "Xct", "Yct", "HU", "qU", "Zct", "Jct", "KU", "jU", "Qct", "tpt", "XU", "YU", "ept", "rpt", "ZU", "JU", "npt", "opt", "QU", "t4", "spt", "ipt", "e4", "apt", "r4", "Y1", "n4", "lpt", "upt", "o4", "s4", "cpt", "Z1", "i4", "a4", "ppt", "mpt", "l4", "u4", "fpt", "c4", "p4", "zd", "m4", "dpt", "hpt", "f4", "d4", "gpt", "xpt", "h4", "g4", "ypt", "bpt", "x4", "wpt", "y4", "b4", "Ipt", "Cpt", "w4", "vpt", "I4", "Spt", "C4", "v4", "Npt", "kpt", "_C", "Tpt", "S4", "N4", "_pt", "Ept", "k4", "T4", "Apt", "Dpt", "_4", "$pt", "E4", "Rpt", "A4", "D4", "$4", "R4", "F4", "Fpt", "Opt", "O4", "M4", "Mpt", "Ppt", "P4", "L4", "Lpt", "zpt", "z4", "B4", "Bpt", "Vpt", "V4", "G4", "Gpt", "Wpt", "W4", "U4", "Upt", "Hpt", "H4", "q4", "K4", "j4", "qpt", "Kpt", "X4", "Y4", "jpt", "Xpt", "Z4", "J4", "Ypt", "Zpt", "Q4", "tH", "eH", "Jpt", "Qpt", "rH", "nH", "oH", "sH", "iH", "tmt", "aH", "lH", "emt", "rmt", "uH", "cH", "nmt", "omt", "pH", "mH", "EC", "AC", "smt", "fH", "imt", "dH", "hH", "amt", "lmt", "gH", "umt", "xH", "yH", "bH", "cmt", "wH", "IH", "pmt", "mmt", "CH", "vH", "fmt", "dmt", "SH", "hmt", "NH", "gmt", "kH", "xmt", "TH", "ymt", "_H", "EH", "bmt", "wmt", "AH", "DH", "$H", "RH", "Imt", "Cmt", "FH", "OH", "vmt", "Smt", "MH", "PH", "Nmt", "kmt", "LH", "zH", "Tmt", "_mt", "BH", "Emt", "VH", "Amt", "GH", "Dmt", "WH", "$mt", "J1", "s_", "QH", "i_", "ZH", "Rmt", "eq", "o_", "Omt", "Fmt", "JH", "RC", "xg", "tq", "gg", "a_", "yg", "Mmt", "Gmt", "rq", "Wmt", "Umt", "Hmt", "qmt", "draw_exports", "__export", "AnchorPosition", "DrawBox", "DrawBoxOptions", "DrawFaceLandmarks", "DrawFaceLandmarksOptions", "DrawTextField", "DrawTextFieldOptions", "drawContour", "drawDetections", "drawFaceExpressions", "drawFaceLandmarks", "drawContour", "ctx", "points", "isClosed", "x", "y", "prevIdx", "from", "to", "utils_exports", "__export", "computeReshapedDimensions", "getCenterPoint", "isDimensions", "isEven", "isFloat", "isTensor", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isValidNumber", "isValidProbablitiy", "range", "round", "Dimensions", "_Dimensions", "width", "height", "isValidNumber", "isTensor", "tensor", "dim", "Lt", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isFloat", "num", "isEven", "round", "prec", "f", "isDimensions", "obj", "computeReshapedDimensions", "width", "height", "inputSize", "scale", "Dimensions", "getCenterPoint", "pts", "sum", "pt", "Point", "range", "start", "step", "_", "i", "isValidNumber", "isValidProbablitiy", "Point", "_Point", "x", "y", "pt", "Box", "_Box", "rect", "isValidNumber", "box", "callee", "allowNegativeDimensions", "_box", "isBbox", "isRect", "x", "y", "width", "height", "Point", "val", "diff", "s", "scaleX", "isDimensions", "scaleY", "padX", "padY", "imgWidth", "imgHeight", "right", "bottom", "clippedX", "clippedY", "newWidth", "newHeight", "clippedWidth", "clippedHeight", "sx", "sy", "imageHeight", "imageWidth", "w", "h", "dx", "dy", "edx", "edy", "ex", "ey", "region", "BoundingBox", "Box", "left", "top", "right", "bottom", "allowNegativeDimensions", "ObjectDetection", "_ObjectDetection", "score", "classScore", "className", "relativeBox", "imageDims", "Dimensions", "Box", "width", "height", "FaceDetection", "_FaceDetection", "ObjectDetection", "score", "relativeBox", "imageDims", "width", "height", "iou", "box1", "box2", "isIOU", "width", "height", "interSection", "minBbox", "pts", "xs", "pt", "ys", "minX", "min", "x", "minY", "y", "maxX", "max", "maxY", "BoundingBox", "nonMaxSuppression", "boxes", "scores", "iouThreshold", "isIOU", "indicesSortedByScore", "score", "boxIndex", "c1", "c2", "c", "pick", "curr", "indices", "outputs", "i", "idx", "currBox", "idxBox", "iou", "_", "j", "normalize", "x", "meanRgb", "B", "r", "g", "b", "avg_r", "Co", "avg_g", "avg_b", "avg_rgb", "ie", "at", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "Co", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "J", "ie", "shuffleArray", "inputArray", "array", "i", "j", "x", "sigmoid", "x", "inverseSigmoid", "Rect", "Box", "x", "y", "width", "height", "allowNegativeDimensions", "relX", "relY", "relScale", "FaceLandmarks", "relativeFaceLandmarkPositions", "imgDims", "shift", "Point", "width", "height", "Dimensions", "pt", "x", "y", "detection", "options", "box", "FaceDetection", "Box", "useDlibAlignment", "minBoxPadding", "centers", "leftEyeCenter", "rightEyeCenter", "mouthCenter", "distToMouth", "eyeToMouthDist", "size", "refPoint", "getCenterPoint", "Rect", "padding", "minBbox", "FaceLandmarks5", "FaceLandmarks", "pts", "getCenterPoint", "FaceLandmarks68", "FaceLandmarks", "getCenterPoint", "FaceMatch", "label", "distance", "withDistance", "round", "LabeledBox", "Box", "box", "callee", "isValidNumber", "label", "LabeledFaceDescriptors", "_LabeledFaceDescriptors", "label", "descriptors", "desc", "d", "json", "PredictedBox", "LabeledBox", "box", "callee", "isValidProbablitiy", "label", "score", "classScore", "isWithFaceDetection", "obj", "FaceDetection", "extendWithFaceDetection", "sourceObj", "detection", "createBrowserEnv", "fetch", "isNodejs", "createFileSystem", "fs", "requireFsError", "isNodejs", "err", "filePath", "resolve", "reject", "buffer", "createNodejsEnv", "Canvas", "Image", "Video", "createCanvasElement", "createImageElement", "createVideoElement", "fetch", "fileSystem", "createFileSystem", "isBrowser", "environment", "getEnv", "setEnv", "env", "initialize", "isBrowser", "createBrowserEnv", "isNodejs", "createNodejsEnv", "monkeyPatch", "Canvas", "Image", "createFileSystem", "resolveInput", "arg", "env", "getContext2dOrThrow", "canvasArg", "Canvas", "CanvasRenderingContext2D", "env", "canvas", "resolveInput", "ctx", "AnchorPosition", "DrawTextFieldOptions", "options", "anchorPosition", "backgroundColor", "fontColor", "fontSize", "fontStyle", "padding", "DrawTextField", "_DrawTextField", "text", "anchor", "ctx", "l", "w0", "w1", "canvasDims", "isShiftLeft", "isShiftTop", "textFieldWidth", "textFieldHeight", "x", "y", "width", "height", "newX", "newY", "canvasArg", "canvas", "resolveInput", "getContext2dOrThrow", "maxTextWidth", "textHeight", "upperLeft", "textLine", "i", "DrawBoxOptions", "options", "boxColor", "lineWidth", "label", "drawLabelOptions", "defaultDrawLabelOptions", "DrawTextFieldOptions", "DrawBox", "box", "Box", "canvasArg", "ctx", "getContext2dOrThrow", "x", "y", "width", "height", "DrawTextField", "drawDetections", "canvasArg", "detections", "det", "score", "FaceDetection", "isWithFaceDetection", "box", "Box", "label", "round", "DrawBox", "isMediaLoaded", "media", "Image", "Video", "env", "awaitMediaLoaded", "media", "resolve", "reject", "env", "isMediaLoaded", "onError", "e", "onLoad", "bufferToImage", "buf", "resolve", "reject", "reader", "img", "env", "getMediaDimensions", "input", "Image", "Video", "env", "Dimensions", "createCanvas", "width", "height", "createCanvasElement", "env", "canvas", "createCanvasFromMedia", "media", "dims", "ImageData", "isMediaLoaded", "getMediaDimensions", "getContext2dOrThrow", "imageTensorToCanvas", "imgTensor", "canvas", "targetCanvas", "env", "height", "width", "numChannels", "isTensor4D", "imgTensor3D", "B", "_y", "isMediaElement", "input", "Image", "Canvas", "Video", "env", "imageToSquare", "input", "inputSize", "centerImage", "Image", "Canvas", "env", "createCanvas", "dims", "getMediaDimensions", "scale", "width", "height", "targetCanvas", "inputCanvas", "createCanvasFromMedia", "offset", "dx", "dy", "getContext2dOrThrow", "NetInput", "inputs", "treatAsBatchInput", "input", "idx", "isTensor3D", "isTensor4D", "batchSize", "canvas", "env", "createCanvasFromMedia", "range", "_", "batchIdx", "width", "height", "computeReshapedDimensions", "inputSize", "isCenterInputs", "B", "inputTensors", "Lt", "imgTensor", "je", "padToSquare", "fn", "_y", "imageToSquare", "Fe", "t", "J", "toNetInput", "inputs", "NetInput", "inputArgArray", "getIdxHint", "idx", "inputArray", "resolveInput", "input", "i", "isMediaElement", "isTensor3D", "isTensor4D", "batchSize", "awaitMediaLoaded", "extractFaces", "input", "detections", "Canvas", "env", "canvas", "netInput", "toNetInput", "tensorOrCanvas", "imageTensorToCanvas", "ctx", "getContext2dOrThrow", "det", "FaceDetection", "box", "x", "y", "width", "height", "faceImg", "createCanvas", "extractFaceTensors", "imageTensor", "detections", "isTensor3D", "isTensor4D", "B", "imgHeight", "imgWidth", "numChannels", "det", "FaceDetection", "box", "x", "y", "width", "height", "xm", "fetchOrThrow", "url", "init", "fetch", "env", "res", "fetchImage", "uri", "res", "fetchOrThrow", "blob", "bufferToImage", "fetchJson", "uri", "fetchOrThrow", "fetchNetWeights", "uri", "fetchOrThrow", "bufferToVideo", "buf", "resolve", "reject", "video", "env", "fetchVideo", "uri", "res", "fetchOrThrow", "blob", "bufferToVideo", "getModelUris", "uri", "defaultModelName", "defaultManifestFilename", "protocol", "parts", "s", "manifestFile", "modelBaseUri", "loadWeightMap", "uri", "defaultModelName", "manifestUri", "modelBaseUri", "getModelUris", "manifest", "fetchJson", "Mr", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "ml", "path", "variable", "ir", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "Mr", "manifest", "paramMappings", "params", "weights", "result", "res", "Lt", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "fm", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Or", "Nn", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "Nn", "Or", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "_A", "bias", "Oe", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "ci", "fc_bias", "Oe", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "_A", "pointwise_filter", "bias", "Oe", "SeparableConvParams", "loadSeparableConvParamsFactory", "extractWeightEntry", "prefix", "extractWeightEntryFactory", "weightMap", "paramMappings", "originalPath", "paramRank", "mappedPath", "tensor", "isTensor", "extractWeightsFactory", "weights", "remainingWeights", "extractWeights", "numWeights", "ret", "getRemainingWeights", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractDenseBlock3Params", "channelsIn", "channelsOut", "mappedPrefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock4Params", "extractorsFactory", "dense0", "dense1", "dense2", "dense3", "loadConvParamsFactory", "extractWeightEntry", "prefix", "filters", "bias", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractDenseBlock3Params", "prefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractDenseBlock4Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "FaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock4", "xu", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "Bt", "extractParams", "weights", "channelsIn", "channelsOut", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "fc", "extractFCParamsFactory", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "seperateWeightMaps", "weightMap", "featureExtractorMap", "classifierMap", "key", "map", "FaceProcessor", "NeuralNetwork", "_name", "faceFeatureExtractor", "input", "params", "B", "bottleneckFeatures", "NetInput", "fullyConnectedLayer", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "cIn", "cOut", "classifierWeightSize", "featureExtractorWeights", "classifierWeights", "FACE_EXPRESSION_LABELS", "FaceExpressions", "probabilities", "expression", "idx", "e0", "e1", "FaceExpressionNet", "FaceProcessor", "faceFeatureExtractor", "FaceFeatureExtractor", "input", "B", "Eu", "toNetInput", "netInput", "out", "probabilitesByBatch", "gr", "t", "data", "predictionsByBatch", "probabilites", "FaceExpressions", "isWithFaceExpressions", "obj", "FaceExpressions", "extendWithFaceExpressions", "sourceObj", "expressions", "drawFaceExpressions", "canvasArg", "faceExpressions", "minConfidence", "textFieldAnchor", "e", "expr", "FaceExpressions", "isWithFaceExpressions", "resultsToDisplay", "exprLocal", "anchor", "isWithFaceDetection", "Point", "DrawTextField", "round", "isWithFaceLandmarks", "obj", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "calculateFaceAngle", "mesh", "degrees", "radians", "calcLengthBetweenTwoPoints", "a", "b", "angle", "calcYaw", "leftPoint", "midPoint", "rightPoint", "leftToMidpoint", "rightToMidpoint", "calcRoll", "lever", "pivot", "hypotenuse", "opposite", "angleInRadians", "angleInDegrees", "normalizeAngle", "tiltDirection", "calcPitch", "base", "baseCoords", "Point", "midToBaseLength", "direction", "pt", "extendWithFaceLandmarks", "sourceObj", "unshiftedLandmarks", "shift", "landmarks", "rect", "imageDims", "alignedRect", "DrawFaceLandmarksOptions", "options", "drawLines", "drawPoints", "lineWidth", "lineColor", "pointSize", "pointColor", "DrawFaceLandmarks", "faceLandmarks", "canvasArg", "ctx", "getContext2dOrThrow", "FaceLandmarks68", "drawContour", "drawPoint", "pt", "drawFaceLandmarks", "f", "landmarks", "FaceLandmarks", "isWithFaceLandmarks", "version", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractReductionBlockParams", "channelsIn", "channelsOut", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "channels", "separable_conv2", "extractParams", "weights", "numMainBlocks", "getRemainingWeights", "extractWeightsFactory", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractReductionBlockParams", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "separable_conv2", "extractParamsFromWeightMap", "numMainBlocks", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "disposeUnusedWeightTensors", "conv", "x", "params", "stride", "Nn", "reductionBlock", "isActivateInput", "out", "Or", "depthwiseSeparableConv", "ku", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "J", "normalized", "normalize", "range", "idx", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractFCParams", "extractFCParamsFactory", "age", "gender", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "Gender", "AgeGenderNet", "NeuralNetwork", "faceFeatureExtractor", "TinyXception", "input", "params", "B", "bottleneckFeatures", "NetInput", "pooled", "xu", "age", "fullyConnectedLayer", "gender", "Eu", "toNetInput", "netInput", "out", "ages", "gr", "genders", "ageAndGenderTensors", "ageTensor", "i", "predictionsByBatch", "genderTensor", "probMale", "isMale", "genderProbability", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "featureExtractorWeights", "classifierWeights", "FaceLandmark68NetBase", "FaceProcessor", "output", "inputSize", "originalDimensions", "inputDimensions", "width", "height", "scale", "batchSize", "B", "createInterleavedTensor", "fillX", "fillY", "Fe", "Co", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "gr", "landmarksForBatch", "landmarkTensor", "landmarksArray", "xCoords", "i", "isEven", "yCoords", "FaceLandmarks68", "Point", "t", "FaceLandmark68Net", "FaceLandmark68NetBase", "faceFeatureExtractor", "FaceFeatureExtractor", "extractParamsFromWeightMapTiny", "weightMap", "paramMappings", "extractDenseBlock3Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "extractParamsTiny", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock3Params", "extractorsFactory", "dense0", "dense1", "dense2", "TinyFaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock3", "xu", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "$", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "Nn", "scale", "Or", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Vt", "_A", "extractConvParams", "mappedPrefix", "filters", "bias", "Oe", "extractScaleLayerParams", "numWeights", "biases", "extractConvLayerParams", "conv", "scale", "extractResidualLayerParams", "isDown", "conv1", "conv2", "extractParams", "getRemainingWeights", "extractWeightsFactory", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "ci", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractScaleLayerParams", "prefix", "weights", "biases", "extractConvLayerParams", "filters", "bias", "scale", "extractResidualLayerParams", "extractParamsFromWeightMap", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "isTensor2D", "params", "disposeUnusedWeightTensors", "residual", "x", "params", "out", "conv", "convNoRelu", "Or", "residualDown", "convDown", "pooled", "xu", "zeros", "ke", "isPad", "padShapeX", "zerosW", "ie", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "convDown", "ku", "residual", "residualDown", "globalAvg", "Bt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "gr", "faceDescriptorsForBatch", "t", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createFaceRecognitionNet", "weights", "net", "FaceRecognitionNet", "extendWithFaceDescriptor", "sourceObj", "descriptor", "isWithAge", "obj", "extendWithAge", "sourceObj", "age", "isWithGender", "obj", "isValidProbablitiy", "extendWithGender", "sourceObj", "gender", "genderProbability", "extractorsFactory", "extractWeights", "paramMappings", "extractDepthwiseConvParams", "numChannels", "mappedPrefix", "filters", "_A", "batch_norm_scale", "Oe", "batch_norm_offset", "batch_norm_mean", "batch_norm_variance", "extractConvParams", "channelsIn", "channelsOut", "filterSize", "isPointwiseConv", "bias", "extractPointwiseConvParams", "extractConvPairParams", "depthwise_conv", "pointwise_conv", "extractMobilenetV1Params", "conv_0", "conv_1", "conv_2", "conv_3", "conv_4", "conv_5", "conv_6", "conv_7", "conv_8", "conv_9", "conv_10", "conv_11", "conv_12", "conv_13", "extractPredictionLayerParams", "box_encoding_0_predictor", "class_predictor_0", "box_encoding_1_predictor", "class_predictor_1", "box_encoding_2_predictor", "class_predictor_2", "box_encoding_3_predictor", "class_predictor_3", "box_encoding_4_predictor", "class_predictor_4", "box_encoding_5_predictor", "class_predictor_5", "extractParams", "weights", "getRemainingWeights", "extractWeightsFactory", "mobilenetv1", "prediction_layer", "output_layer", "uy", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractPointwiseConvParams", "prefix", "idx", "mappedPrefix", "filters", "batch_norm_offset", "extractConvPairParams", "prefixDepthwiseConv", "mappedPrefixDepthwiseConv", "mappedPrefixPointwiseConv", "batch_norm_scale", "batch_norm_mean", "batch_norm_variance", "extractMobilenetV1Params", "extractConvParams", "bias", "extractBoxPredictorParams", "box_encoding_predictor", "class_predictor", "extractPredictionLayerParams", "extractParamsFromWeightMap", "extra_dim", "isTensor3D", "params", "disposeUnusedWeightTensors", "pointwiseConvLayer", "x", "params", "strides", "B", "out", "Nn", "vr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "ia", "oa", "vr", "getStridesForLayerIdx", "layerIdx", "idx", "mobileNetV1", "conv11", "pointwiseConvLayer", "param", "depthwiseConvStrides", "IOU", "boxes", "i", "j", "boxesData", "yminI", "xminI", "ymaxI", "xmaxI", "yminJ", "xminJ", "ymaxJ", "xmaxJ", "areaI", "areaJ", "intersectionYmin", "intersectionXmin", "intersectionYmax", "intersectionXmax", "intersectionArea", "nonMaxSuppression", "scores", "maxOutputSize", "iouThreshold", "scoreThreshold", "numBoxes", "outputSize", "candidates", "score", "boxIndex", "c", "c1", "c2", "suppressFunc", "x", "selected", "originalScore", "iou", "getCenterCoordinatesAndSizesLayer", "x", "vec", "gr", "Vt", "sizes", "at", "centers", "ct", "decodeBoxesLayer", "x0", "x1", "div0_out", "$", "Ke", "add0_out", "div1_out", "add1_out", "Fe", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Rr", "scoresAndClasses", "Qr", "Ot", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "B", "batchSize", "boxPredictionEncoding", "R", "convLayer", "classPrediction", "predictionLayer", "x", "conv11", "params", "B", "conv0", "pointwiseConvLayer", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "boxPrediction0", "boxPredictionLayer", "boxPrediction1", "boxPrediction2", "boxPrediction3", "boxPrediction4", "boxPrediction5", "boxPredictions", "ie", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "x", "at", "ct", "features", "mobileNetV1", "boxPredictions", "classPredictions", "predictionLayer", "outputLayer", "toNetInput", "options", "maxResults", "minConfidence", "SsdMobilenetv1Options", "netInput", "_boxes", "_scores", "boxes", "scores", "i", "scoresData", "indices", "nonMaxSuppression", "reshapedDims", "inputSize", "padX", "padY", "boxesData", "results", "idx", "top", "bottom", "val", "left", "right", "FaceDetection", "Rect", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createSsdMobilenetv1", "weights", "net", "SsdMobilenetv1", "createFaceDetectionNet", "FaceDetectionNet", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "DEFAULT_MODEL_NAME", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "isNumber", "arg", "validateConfig", "config", "c", "a", "leaky", "x", "B", "min", "$", "pt", "Or", "at", "convWithBatchNorm", "x", "params", "B", "out", "mn", "Nn", "at", "$", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "mn", "fm", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Oe", "truediv", "extractConvWithBatchNormParams", "channelsIn", "channelsOut", "conv", "bn", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractParams", "weights", "config", "boxEncodingSize", "filterSizes", "getRemainingWeights", "extractWeightsFactory", "params", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "conv0", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "conv8", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractBatchNormParams", "prefix", "sub", "truediv", "extractConvParams", "filters", "bias", "extractConvWithBatchNormParams", "conv", "bn", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractParamsFromWeightMap", "config", "params", "numFilters", "disposeUnusedWeightTensors", "TinyYolov2Options", "inputSize", "scoreThreshold", "_TinyYolov2Base", "NeuralNetwork", "config", "validateConfig", "x", "params", "out", "convWithBatchNorm", "ku", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "J", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "gr", "inputDimensions", "results", "boxes", "res", "scores", "classScores", "classNames", "nonMaxSuppression", "box", "idx", "ObjectDetection", "weightMap", "extractParamsFromWeightMap", "weights", "filterSizes", "numFilters", "extractParams", "outputTensor", "inputBlobDimensions", "width", "height", "correctionFactorX", "correctionFactorY", "numCells", "numBoxes", "boxesTensor", "scoresTensor", "classScoresTensor", "reshaped", "Eu", "pt", "scoresData", "boxesData", "row", "col", "anchor", "score", "sigmoid", "ctX", "ctY", "widthLocal", "heightLocal", "y", "pos", "classScore", "label", "BoundingBox", "classesTensor", "classesData", "_", "i", "max", "curr", "TinyYolov2Base", "TinyYolov2", "TinyYolov2Base", "withSeparableConvs", "config", "IOU_THRESHOLD", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "BOX_ANCHORS", "input", "forwardParams", "det", "FaceDetection", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "DEFAULT_MODEL_NAME", "weightMap", "createTinyYolov2", "weights", "withSeparableConvs", "net", "TinyYolov2", "TinyFaceDetectorOptions", "TinyYolov2Options", "ComposableTask", "onfulfilled", "extractAllFacesAndComputeResults", "parentResults", "input", "computeResults", "extractedFaces", "getRectForAlignment", "alignedRect", "faceBoxes", "parentResult", "isWithFaceLandmarks", "faces", "Lt", "extractFaceTensors", "extractFaces", "results", "f", "extractSingleFaceAndComputeResult", "computeResult", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "MEAN_RGB", "TinyFaceDetector", "TinyYolov2Base", "config", "IOU_THRESHOLD", "BOX_ANCHORS", "MEAN_RGB", "input", "forwardParams", "det", "FaceDetection", "weightMap", "nets", "SsdMobilenetv1", "TinyFaceDetector", "TinyYolov2", "FaceLandmark68Net", "FaceLandmark68TinyNet", "FaceRecognitionNet", "FaceExpressionNet", "AgeGenderNet", "ssdMobilenetv1", "input", "options", "tinyFaceDetector", "tinyYolov2", "detectFaceLandmarks", "detectFaceLandmarksTiny", "computeFaceDescriptor", "recognizeFaceExpressions", "predictAgeAndGender", "loadSsdMobilenetv1Model", "url", "loadTinyFaceDetectorModel", "loadTinyYolov2Model", "loadFaceLandmarkModel", "loadFaceLandmarkTinyModel", "loadFaceRecognitionModel", "loadFaceExpressionModel", "loadAgeGenderModel", "loadFaceDetectionModel", "locateFaces", "detectLandmarks", "PredictFaceExpressionsTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllFaceExpressionsTask", "parentResults", "faceExpressionsByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "extendWithFaceExpressions", "PredictAllAgeAndGenderTask", "PredictSingleFaceExpressionsTask", "faceExpressions", "extractSingleFaceAndComputeResult", "PredictSingleAgeAndGenderTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "PredictAgeAndGenderTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllAgeAndGenderTask", "parentResults", "ageAndGenderByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "age", "gender", "genderProbability", "extendWithAge", "extendWithGender", "PredictAllFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "ComputeFaceDescriptorsTaskBase", "ComposableTask", "parentTask", "input", "ComputeAllFaceDescriptorsTask", "parentResults", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "descriptor", "i", "extendWithFaceDescriptor", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "DetectFaceLandmarksTaskBase", "ComposableTask", "parentTask", "input", "useTinyLandmarkNet", "nets", "DetectAllFaceLandmarksTask", "parentResults", "detections", "res", "faces", "Lt", "extractFaceTensors", "extractFaces", "faceLandmarksByFace", "face", "f", "_parentResult", "i", "parentResult", "extendWithFaceLandmarks", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "DetectSingleFaceLandmarksTask", "detection", "landmarks", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "DetectFacesTaskBase", "ComposableTask", "input", "options", "SsdMobilenetv1Options", "DetectAllFacesTask", "result", "TinyFaceDetectorOptions", "nets", "TinyYolov2Options", "resolve", "reject", "detections", "detection", "extendWithFaceDetection", "err", "useTinyLandmarkNet", "DetectAllFaceLandmarksTask", "PredictAllFaceExpressionsTask", "PredictAllAgeAndGenderTask", "DetectSingleFaceTask", "faceDetections", "faceDetectionWithHighestScore", "faceDetection", "DetectSingleFaceLandmarksTask", "PredictSingleFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "detectSingleFace", "input", "options", "SsdMobilenetv1Options", "DetectSingleFaceTask", "detectAllFaces", "DetectAllFacesTask", "allFacesSsdMobilenetv1", "input", "minConfidence", "detectAllFaces", "SsdMobilenetv1Options", "allFacesTinyYolov2", "forwardParams", "TinyYolov2Options", "allFaces", "euclideanDistance", "arr1", "arr2", "desc1", "desc2", "val", "i", "res", "diff", "FaceMatcher", "_FaceMatcher", "inputs", "distanceThreshold", "inputArray", "count", "createUniqueLabel", "desc", "LabeledFaceDescriptors", "queryDescriptor", "descriptors", "d", "euclideanDistance", "d1", "d2", "label", "FaceMatch", "best", "curr", "bestMatch", "ld", "json", "labeledDescriptors", "createTinyFaceDetector", "weights", "net", "TinyFaceDetector", "resizeResults", "results", "dimensions", "width", "height", "Dimensions", "obj", "isWithFaceLandmarks", "resizedDetection", "resizedLandmarks", "extendWithFaceLandmarks", "extendWithFaceDetection", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "version"] + "sourcesContent": ["/*\n Face-API\n homepage: \n author: '\n*/\n\nvar zq=Object.create;var f0=Object.defineProperty;var Bq=Object.getOwnPropertyDescriptor;var Vq=Object.getOwnPropertyNames;var Gq=Object.getPrototypeOf,Wq=Object.prototype.hasOwnProperty;var br=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)f0(r,e,{get:t[e],enumerable:!0})},Uq=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of Vq(t))!Wq.call(r,o)&&o!==e&&f0(r,o,{get:()=>t[o],enumerable:!(n=Bq(t,o))||n.enumerable});return r};var Gl=(r,t,e)=>(e=r!=null?zq(Gq(r)):{},Uq(t||!r||!r.__esModule?f0(e,\"default\",{value:r,enumerable:!0}):e,r));var W_=br((gft,G_)=>{G_.exports=He;var yo=null;try{yo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function He(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}He.prototype.__isLong__;Object.defineProperty(He.prototype,\"__isLong__\",{value:!0});function zn(r){return(r&&r.__isLong__)===!0}He.isLong=zn;var R_={},F_={};function oc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=F_[r],n)?n:(e=qe(r,(r|0)<0?-1:0,!0),o&&(F_[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=R_[r],n)?n:(e=qe(r,r<0?-1:0,!1),o&&(R_[r]=e),e))}He.fromInt=oc;function bo(r,t){if(isNaN(r))return t?nc:wo;if(t){if(r<0)return nc;if(r>=L_)return V_}else{if(r<=-M_)return Ln;if(r+1>=M_)return B_}return r<0?bo(-r,t).neg():qe(r%Hp|0,r/Hp|0,t)}He.fromNumber=bo;function qe(r,t,e){return new He(r,t,e)}He.fromBits=qe;var Jg=Math.pow;function k0(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return wo;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return k0(r.substring(1),t,e).neg();for(var o=bo(Jg(e,8)),s=wo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Hp+(this.low>>>0):this.high*Hp+(this.low>>>0)};xt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c=\"0\"+c;a=\"\"+c+a}};xt.getHighBits=function(){return this.high};xt.getHighBitsUnsigned=function(){return this.high>>>0};xt.getLowBits=function(){return this.low};xt.getLowBitsUnsigned=function(){return this.low>>>0};xt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ln)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&!(t&1<=0};xt.isOdd=function(){return(this.low&1)===1};xt.isEven=function(){return(this.low&1)===0};xt.equals=function(t){return zn(t)||(t=oi(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};xt.eq=xt.equals;xt.notEquals=function(t){return!this.eq(t)};xt.neq=xt.notEquals;xt.ne=xt.notEquals;xt.lessThan=function(t){return this.comp(t)<0};xt.lt=xt.lessThan;xt.lessThanOrEqual=function(t){return this.comp(t)<=0};xt.lte=xt.lessThanOrEqual;xt.le=xt.lessThanOrEqual;xt.greaterThan=function(t){return this.comp(t)>0};xt.gt=xt.greaterThan;xt.greaterThanOrEqual=function(t){return this.comp(t)>=0};xt.gte=xt.greaterThanOrEqual;xt.ge=xt.greaterThanOrEqual;xt.compare=function(t){if(zn(t)||(t=oi(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};xt.comp=xt.compare;xt.negate=function(){return!this.unsigned&&this.eq(Ln)?Ln:this.not().add(Up)};xt.neg=xt.negate;xt.add=function(t){zn(t)||(t=oi(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,qe(m<<16|f,c<<16|p,this.unsigned)};xt.subtract=function(t){return zn(t)||(t=oi(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return wo;if(zn(t)||(t=oi(t)),yo){var e=yo.mul(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(t.isZero())return wo;if(this.eq(Ln))return t.isOdd()?Ln:wo;if(t.eq(Ln))return this.isOdd()?Ln:wo;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(P_)&&t.lt(P_))return bo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,qe(f<<16|d,p<<16|m,this.unsigned)};xt.mul=xt.multiply;xt.divide=function(t){if(zn(t)||(t=oi(t)),t.isZero())throw Error(\"division by zero\");if(yo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?yo.div_u:yo.div_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?nc:wo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return nc;if(t.gt(this.shru(1)))return z_;s=nc}else{if(this.eq(Ln)){if(t.eq(Up)||t.eq(N0))return Ln;if(t.eq(Ln))return Up;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(wo)?t.isNegative()?Up:N0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Ln))return this.unsigned?nc:wo;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=wo}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Jg(2,a-48),l=bo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=bo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Up),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(zn(t)||(t=oi(t)),yo){var e=(this.unsigned?yo.rem_u:yo.rem_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};xt.mod=xt.modulo;xt.rem=xt.modulo;xt.not=function(){return qe(~this.low,~this.high,this.unsigned)};xt.and=function(t){return zn(t)||(t=oi(t)),qe(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return zn(t)||(t=oi(t)),qe(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return zn(t)||(t=oi(t)),qe(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return zn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?qe(this.low<>>32-t,this.unsigned):qe(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):qe(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};xt.shr=xt.shiftRight;xt.shiftRightUnsigned=function(t){if(zn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return qe(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?qe(e,0,this.unsigned):qe(e>>>t-32,0,this.unsigned)};xt.shru=xt.shiftRightUnsigned;xt.shr_u=xt.shiftRightUnsigned;xt.toSigned=function(){return this.unsigned?qe(this.low,this.high,!1):this};xt.toUnsigned=function(){return this.unsigned?this:qe(this.low,this.high,!0)};xt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};xt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};xt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};He.fromBytes=function(t,e,n){return n?He.fromBytesLE(t,e):He.fromBytesBE(t,e)};He.fromBytesLE=function(t,e){return new He(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};He.fromBytesBE=function(t,e){return new He(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var TE=br(()=>{});var _E=br(()=>{});var nA=br((rA,sN)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(\" \"),u.s1=l(\" \"),u.s2=l(\" \"),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c==\"object\"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(rA,typeof sN==\"object\"&&sN,typeof define==\"function\"&&define)});var sA=br((oA,iN)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(oA,typeof iN==\"object\"&&iN,typeof define==\"function\"&&define)});var aA=br((iA,aN)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(iA,typeof aN==\"object\"&&aN,typeof define==\"function\"&&define)});var uA=br((lA,lN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=\"\"+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(lA,typeof lN==\"object\"&&lN,typeof define==\"function\"&&define)});var pA=br((cA,uN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+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,a.i=p,f+(l^l>>>16)|0};function u(l,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;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(cA,typeof uN==\"object\"&&uN,typeof define==\"function\"&&define)});var fA=br((mA,cN)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(mA,typeof cN==\"object\"&&cN,typeof define==\"function\"&&define)});var dA=br(()=>{});var gA=br((hA,ty)=>{(function(r,t,e){var n=256,o=6,s=52,i=\"random\",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var M=D.g(o),V=a,G=0;M=l;)M/=2,V/=2,G>>>=1;return(M+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(M,V,G,W){return W&&(W.S&&d(W,D),M.state=function(){return d(D,{})}),G?(e[i]=M,V):M})(F,A,\"global\"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var BX=nA(),VX=sA(),GX=aA(),WX=uA(),UX=pA(),HX=fA(),hc=gA();hc.alea=BX;hc.xor128=VX;hc.xorwow=GX;hc.xorshift7=WX;hc.xor4096=UX;hc.tychei=HX;xA.exports=hc});var $k=br(()=>{});var hw=br(()=>{});var e_=br(()=>{});var KH=br(()=>{});var jH=br(()=>{});var XH=br(()=>{});var YH=br((RC,n_)=>{var r_=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};function e(){return it.buffer!=re&&Xe(it.buffer),be}function n(){return it.buffer!=re&&Xe(it.buffer),de}function o(){return it.buffer!=re&&Xe(it.buffer),Ee}function s(){return it.buffer!=re&&Xe(it.buffer),On}function i(){return it.buffer!=re&&Xe(it.buffer),lr}function a(){return it.buffer!=re&&Xe(it.buffer),Zn}function u(){return it.buffer!=re&&Xe(it.buffer),Br}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(P,U){c=P,p=U});var m;typeof process!=\"undefined\"&&process.listeners&&(m={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var f=Object.assign({},l),d=[],h=\"./this.program\",g=(P,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",I=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function E(P){return l.locateFile?l.locateFile(P,N):N+P}var A,D,F,M;function V(P){if(P instanceof Yu)return;Y(\"exiting due to exception: \"+P)}if(w){var G=hw(),W=e_();b?N=W.dirname(N)+\"/\":N=__dirname+\"/\",A=(U,dt)=>(U=wp(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:\"utf8\")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Pt)=>{U=wp(U)?new URL(U):W.normalize(U),G.readFile(U,function(Jt,Zt){Jt?Pt(Jt):dt(Zt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof Yu))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,dt)=>{if(zo())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let P;try{P=KH()}catch(U){throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=P.Worker}else(x||b)&&(b?N=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(N=document.currentScript.src),typeof r!=\"undefined\"&&r&&(N=r),N.indexOf(\"blob:\")!==0?N=N.substr(0,N.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):N=\"\",w||(A=P=>{var U=new XMLHttpRequest;return U.open(\"GET\",P,!1),U.send(null),U.responseText},b&&(F=P=>{var U=new XMLHttpRequest;return U.open(\"GET\",P,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),D=(P,U,dt)=>{var Pt=new XMLHttpRequest;Pt.open(\"GET\",P,!0),Pt.responseType=\"arraybuffer\",Pt.onload=()=>{if(Pt.status==200||Pt.status==0&&Pt.response){U(Pt.response);return}dt()},Pt.onerror=dt,Pt.send(null)}),M=P=>document.title=P);w&&typeof performance==\"undefined\"&&(global.performance=jH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=P=>G.writeSync(1,P+`\n`),H=P=>G.writeSync(2,P+`\n`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,nt=Atomics.store,st=Atomics.compareExchange,lt;l.wasmBinary&&(lt=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Xu(\"no native wasm support detected\");var it,ft,gt=!1,Ct;function Rt(P,U){P||Xu(U)}var Dt=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Ht(P,U,dt){U>>>=0;for(var Pt=U+dt,Jt=U;P[Jt]&&!(Jt>=Pt);)++Jt;if(Jt-U>16&&P.buffer&&Dt)return Dt.decode(P.buffer instanceof SharedArrayBuffer?P.slice(U,Jt):P.subarray(U,Jt));for(var Zt=\"\";U>10,56320|eo&1023)}}return Zt}function qt(P,U){return P>>>=0,P?Ht(n(),P,U):\"\"}function pe(P,U,dt,Pt){if(dt>>>=0,!(Pt>0))return 0;for(var Jt=dt,Zt=dt+Pt-1,bt=0;bt=55296&&$t<=57343){var or=P.charCodeAt(++bt);$t=65536+(($t&1023)<<10)|or&1023}if($t<=127){if(dt>=Zt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Zt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Zt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Zt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Jt}function ye(P,U,dt){return pe(P,n(),U,dt)}var re,be,de,Ee,Ae,On,lr,Zn,Br;I&&(re=l.buffer);function Xe(P){re=P,l.HEAP8=be=new Int8Array(P),l.HEAP16=Ee=new Int16Array(P),l.HEAP32=On=new Int32Array(P),l.HEAPU8=de=new Uint8Array(P),l.HEAPU16=Ae=new Uint16Array(P),l.HEAPU32=lr=new Uint32Array(P),l.HEAPF32=Zn=new Float32Array(P),l.HEAPF64=Br=new Float64Array(P)}var Vr=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,re=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Vr/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw Y(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\"),w&&Y(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)\"),Error(\"bad memory\");it&&(re=it.buffer),Vr=re.byteLength,Xe(re);var Gr,Jn=[],Qn=[],Qr=[],Ca=!1;function zo(){return ot}function Ti(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Vd(l.preRun.shift());Ud(Jn)}function Er(){Ca=!0,!I&&Ud(Qn)}function va(){if(!I){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)c_(l.postRun.shift());Ud(Qr)}}function Vd(P){Jn.unshift(P)}function Gd(P){Qn.unshift(P)}function c_(P){Qr.unshift(P)}var zl=0,bp=null,Sa=null;function MC(P){zl++,l.monitorRunDependencies&&l.monitorRunDependencies(zl)}function Ig(P){if(zl--,l.monitorRunDependencies&&l.monitorRunDependencies(zl),zl==0&&(bp!==null&&(clearInterval(bp),bp=null),Sa)){var U=Sa;Sa=null,U()}}function Xu(P){l.onAbort&&l.onAbort(P),P=\"Aborted(\"+P+\")\",Y(P),gt=!0,Ct=1,P+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(P);throw p(U),U}var PC=\"data:application/octet-stream;base64,\";function Cg(P){return P.startsWith(PC)}function wp(P){return P.startsWith(\"file://\")}var tn;tn=\"tfjs-backend-wasm-threaded-simd.wasm\",Cg(tn)||(tn=E(tn));function vg(P){try{if(P==tn&<)return new Uint8Array(lt);if(F)return F(P);throw\"both async and sync fetching of the wasm failed\"}catch(U){Xu(U)}}function LC(){if(!lt&&(x||b)){if(typeof fetch==\"function\"&&!wp(tn))return fetch(tn,{credentials:\"same-origin\"}).then(function(P){if(!P.ok)throw\"failed to load wasm binary file at '\"+tn+\"'\";return P.arrayBuffer()}).catch(function(){return vg(tn)});if(D)return new Promise(function(P,U){D(tn,function(dt){P(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return vg(tn)})}function zC(){var P={env:Mg,wasi_snapshot_preview1:Mg};function U(bt,$t){var or=bt.exports;if(l.asm=or,jC(l.asm._emscripten_tls_init),Gr=l.asm.__indirect_function_table,Gd(l.asm.__wasm_call_ctors),ft=$t,!I){var eo=Yt.unusedWorkers.length;Yt.unusedWorkers.forEach(function(ka){Yt.loadWasmModuleToWorker(ka,function(){--eo||Ig(\"wasm-instantiate\")})})}}I||MC(\"wasm-instantiate\");function dt(bt){U(bt.instance,bt.module)}function Pt(bt){return LC().then(function($t){return WebAssembly.instantiate($t,P)}).then(function($t){return $t}).then(bt,function($t){Y(\"failed to asynchronously prepare wasm: \"+$t),Xu($t)})}function Jt(){return!lt&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Cg(tn)&&!wp(tn)&&!w&&typeof fetch==\"function\"?fetch(tn,{credentials:\"same-origin\"}).then(function(bt){var $t=WebAssembly.instantiateStreaming(bt,P);return $t.then(dt,function(or){return Y(\"wasm streaming compile failed: \"+or),Y(\"falling back to ArrayBuffer instantiation\"),Pt(dt)})}):Pt(dt)}if(l.instantiateWasm)try{var Zt=l.instantiateWasm(P,U);return Zt}catch(bt){Y(\"Module.instantiateWasm callback failed with error: \"+bt),p(bt)}return Jt().catch(p),{}}var p_,m_,Sg={};function Yu(P){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+P+\")\",this.status=P}function BC(P){var U=Yt.pthreads[P];delete Yt.pthreads[P],U.terminate(),c0(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function VC(P){var U=Yt.pthreads[P];U.postMessage({cmd:\"cancel\"})}function Wd(P){var U=Yt.pthreads[P];Rt(U),Yt.returnWorkerToPool(U)}function GC(P){var U=Yt.getNewWorker();if(!U)return 6;Yt.runningWorkers.push(U),Yt.pthreads[P.pthread_ptr]=U,U.pthread_ptr=P.pthread_ptr;var dt={cmd:\"run\",start_routine:P.startRoutine,arg:P.arg,pthread_ptr:P.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,P.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var Ng={varargs:void 0,get:function(){Ng.varargs+=4;var P=s()[Ng.varargs-4>>>2];return P},getStr:function(P){var U=qt(P);return U}};function kg(P){if(I)return Bl(1,1,P);Ct=P,zo()||(Yt.terminateAllThreads(),l.onExit&&l.onExit(P),gt=!0),g(P,new Yu(P))}function WC(P,U){if(Ct=P,!U&&I)throw _g(P),\"unwind\";kg(P)}var Tg=WC;function UC(P){if(P instanceof Yu||P==\"unwind\")return Ct;g(1,P)}var Yt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Yt.initWorker():Yt.initMainThread()},initMainThread:function(){for(var P=8;P--;)Yt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(P){Ct=P},terminateAllThreads:function(){for(var P of Object.values(Yt.pthreads))Yt.returnWorkerToPool(P);for(var P of Yt.unusedWorkers)P.terminate();Yt.unusedWorkers=[]},returnWorkerToPool:function(P){var U=P.pthread_ptr;delete Yt.pthreads[U],Yt.unusedWorkers.push(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(P),1),P.pthread_ptr=0,w&&P.unref(),c0(U)},receiveObjectTransfer:function(P){},threadInitTLS:function(){Yt.tlsInitFunctions.forEach(P=>P())},loadWasmModuleToWorker:function(P,U){P.onmessage=Zt=>{var bt=Zt.data,$t=bt.cmd;if(P.pthread_ptr&&(Yt.currentProxiedOperationCallerThread=P.pthread_ptr),bt.targetThread&&bt.targetThread!=Gg()){var or=Yt.pthreads[bt.targetThread];or?or.postMessage(bt,bt.transferList):Y('Internal error! Worker sent a message \"'+$t+'\" to target pthread '+bt.targetThread+\", but that thread no longer exists!\"),Yt.currentProxiedOperationCallerThread=void 0;return}$t===\"processProxyingQueue\"?Hd(bt.queue):$t===\"spawnThread\"?GC(bt):$t===\"cleanupThread\"?Wd(bt.thread):$t===\"killThread\"?BC(bt.thread):$t===\"cancelThread\"?VC(bt.thread):$t===\"loaded\"?(P.loaded=!0,w&&P.unref(),U&&U(P),P.runPthread&&P.runPthread()):$t===\"print\"?j(\"Thread \"+bt.threadId+\": \"+bt.text):$t===\"printErr\"?Y(\"Thread \"+bt.threadId+\": \"+bt.text):$t===\"alert\"?alert(\"Thread \"+bt.threadId+\": \"+bt.text):bt.target===\"setimmediate\"?P.postMessage(bt):$t===\"callHandler\"?l[bt.handler](...bt.args):$t&&Y(\"worker sent an unknown command \"+$t),Yt.currentProxiedOperationCallerThread=void 0},P.onerror=Zt=>{var bt=\"worker sent an error!\";throw Y(bt+\" \"+Zt.filename+\":\"+Zt.lineno+\": \"+Zt.message),Zt},w&&(P.on(\"message\",function(Zt){P.onmessage({data:Zt})}),P.on(\"error\",function(Zt){P.onerror(Zt)}),P.on(\"detachedExit\",function(){}));var dt=[],Pt=[\"onExit\",\"onAbort\",\"print\",\"printErr\"];for(var Jt of Pt)l.hasOwnProperty(Jt)&&dt.push(Jt);P.postMessage({cmd:\"load\",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:ft})},allocateUnusedWorker:function(){var P,U=E(\"tfjs-backend-wasm-threaded-simd.worker.js\");P=new Worker(U),Yt.unusedWorkers.push(P)},getNewWorker:function(){return Yt.unusedWorkers.length==0&&(Yt.allocateUnusedWorker(),Yt.loadWasmModuleToWorker(Yt.unusedWorkers[0])),Yt.unusedWorkers.pop()}};l.PThread=Yt;function Ud(P){for(;P.length>0;)P.shift()(l)}function HC(){var P=Gg(),U=s()[P+52>>>2],dt=s()[P+56>>>2],Pt=U-dt;y_(U,Pt),Wg(U)}l.establishStackSpace=HC;function _g(P){if(I)return Bl(2,0,P);try{Tg(P)}catch(U){UC(U)}}var Ip=[];function qC(P){var U=Ip[P];return U||(P>=Ip.length&&(Ip.length=P+1),Ip[P]=U=Gr.get(P)),U}function KC(P,U){var dt=qC(P)(U);zo()?Yt.setExitStatus(dt):x_(dt)}l.invokeEntryPoint=KC;function jC(P){Yt.tlsInitFunctions.push(P)}function XC(P){d_(P,!b,1,!x),Yt.threadInitTLS()}function YC(P){I?postMessage({cmd:\"cleanupThread\",thread:P}):Wd(P)}function Eg(P,U,dt,Pt){return I?Bl(3,1,P,U,dt,Pt):Ag(P,U,dt,Pt)}function Ag(P,U,dt,Pt){if(typeof SharedArrayBuffer==\"undefined\")return Y(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Jt=[],Zt=0;if(I&&(Jt.length===0||Zt))return Eg(P,U,dt,Pt);if(Zt)return Zt;var bt={startRoutine:dt,pthread_ptr:P,arg:Pt,transferList:Jt};return I?(bt.cmd=\"spawnThread\",postMessage(bt,Jt),0):GC(bt)}function ZC(){return 65536}var JC=!0;function QC(){return JC}function Hd(P){Atomics.store(s(),P>>2,1),Gg()&&g_(P),Atomics.compareExchange(s(),P>>2,1,0)}l.executeNotifiedProxyingQueue=Hd;function tv(P,U,dt,Pt){if(P==U)setTimeout(()=>Hd(Pt));else if(I)postMessage({targetThread:P,cmd:\"processProxyingQueue\",queue:Pt});else{var Jt=Yt.pthreads[P];if(!Jt)return;Jt.postMessage({cmd:\"processProxyingQueue\",queue:Pt})}return 1}function ev(P,U,dt){return-1}function rv(){Xu(\"\")}function Zu(P){Zu.shown||(Zu.shown={}),Zu.shown[P]||(Zu.shown[P]=1,w&&(P=\"warning: \"+P),Y(P))}function nv(){w||b||Zu(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function ov(){return Date.now()}function Dg(){return 4294901760}function sv(){return Dg()}var qd;w?qd=()=>{var P=process.hrtime();return P[0]*1e3+P[1]/1e6}:qd=()=>performance.timeOrigin+performance.now();function iv(P,U,dt){n().copyWithin(P>>>0,U>>>0,U+dt>>>0)}function av(){return w?XH().cpus().length:navigator.hardwareConcurrency}function lv(P){var U=p0(),dt=P();return Wg(U),dt}function Bl(P,U){var dt=arguments.length-2,Pt=arguments;return lv(()=>{for(var Jt=dt,Zt=Ug(Jt*8),bt=Zt>>3,$t=0;$t>>0]=or}return h_(P,Jt,Zt,U)})}var Kd=[];function uv(P,U,dt){Kd.length=U;for(var Pt=dt>>3,Jt=0;Jt>>0];var Zt=P<0,bt=Zt?Sg[-P-1]:yv[P];return bt.apply(null,Kd)}function cv(P){try{return it.grow(P-re.byteLength+65535>>>16),Xe(it.buffer),1}catch(U){}}function pv(P){var U=n().length;if(P=P>>>0,P<=U)return!1;var dt=Dg();if(P>dt)return!1;let Pt=(or,eo)=>or+(eo-or%eo)%eo;for(var Jt=1;Jt<=4;Jt*=2){var Zt=U*(1+.2/Jt);Zt=Math.min(Zt,P+100663296);var bt=Math.min(dt,Pt(Math.max(P,Zt),65536)),$t=cv(bt);if($t)return!0}return!1}function mv(){throw\"unwind\"}function $g(P){return I?Bl(4,1,P):52}function Rg(P,U,dt,Pt,Jt){return I?Bl(5,1,P,U,dt,Pt,Jt):70}var fv=[null,[],[]];function dv(P,U){var dt=fv[P];U===0||U===10?((P===1?j:Y)(Ht(dt,0)),dt.length=0):dt.push(U)}function Fg(P,U,dt,Pt){if(I)return Bl(6,1,P,U,dt,Pt);for(var Jt=0,Zt=0;Zt>>2],$t=i()[U+4>>>2];U+=8;for(var or=0;or<$t;or++)dv(P,n()[bt+or>>>0]);Jt+=$t}return i()[Pt>>>2]=Jt,0}function Og(P){var U=l[\"_\"+P];return U}function hv(P,U){e().set(P,U>>>0)}function gv(P,U,dt,Pt,Jt){var Zt={string:Mn=>{var Np=0;if(Mn!=null&&Mn!==0){var I_=(Mn.length<<2)+1;Np=Ug(I_),ye(Mn,Np,I_)}return Np},array:Mn=>{var Np=Ug(Mn.length);return hv(Mn,Np),Np}};function bt(Mn){return U===\"string\"?qt(Mn):U===\"boolean\"?!!Mn:Mn}var $t=Og(P),or=[],eo=0;if(Pt)for(var ka=0;kabt===\"number\"||bt===\"boolean\"),Zt=U!==\"string\";return Zt&&Jt&&!Pt?Og(P):function(){return gv(P,U,dt,arguments,Pt)}}Yt.init();var yv=[null,kg,_g,Eg,$g,Rg,Fg],Mg={__emscripten_init_main_thread_js:XC,__emscripten_thread_cleanup:YC,__pthread_create_js:Ag,_emscripten_default_pthread_stack_size:ZC,_emscripten_get_now_is_monotonic:QC,_emscripten_notify_task_queue:tv,_emscripten_set_offscreencanvas_size:ev,abort:rv,emscripten_check_blocking_allowed:nv,emscripten_date_now:ov,emscripten_get_heap_max:sv,emscripten_get_now:qd,emscripten_memcpy_big:iv,emscripten_num_logical_cores:av,emscripten_receive_on_main_thread_js:uv,emscripten_resize_heap:pv,emscripten_unwind_to_js_event_loop:mv,exit:Tg,fd_close:$g,fd_seek:Rg,fd_write:Fg,memory:it||l.wasmMemory},f_=zC(),bv=l.___wasm_call_ctors=function(){return(bv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},wv=l._init=function(){return(wv=l._init=l.asm.init).apply(null,arguments)},Iv=l._init_with_threads_count=function(){return(Iv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},Cv=l._get_threads_count=function(){return(Cv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},vv=l._register_tensor=function(){return(vv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},Sv=l._dispose_data=function(){return(Sv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},Nv=l._dispose=function(){return(Nv=l._dispose=l.asm.dispose).apply(null,arguments)},kv=l._Abs=function(){return(kv=l._Abs=l.asm.Abs).apply(null,arguments)},Tv=l._Acos=function(){return(Tv=l._Acos=l.asm.Acos).apply(null,arguments)},_v=l._Acosh=function(){return(_v=l._Acosh=l.asm.Acosh).apply(null,arguments)},Ev=l._Add=function(){return(Ev=l._Add=l.asm.Add).apply(null,arguments)},Av=l._AddN=function(){return(Av=l._AddN=l.asm.AddN).apply(null,arguments)},Dv=l._All=function(){return(Dv=l._All=l.asm.All).apply(null,arguments)},$v=l._Any=function(){return($v=l._Any=l.asm.Any).apply(null,arguments)},Rv=l._ArgMax=function(){return(Rv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},Fv=l._ArgMin=function(){return(Fv=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Ov=l._Asin=function(){return(Ov=l._Asin=l.asm.Asin).apply(null,arguments)},Mv=l._Asinh=function(){return(Mv=l._Asinh=l.asm.Asinh).apply(null,arguments)},Pv=l._Atan=function(){return(Pv=l._Atan=l.asm.Atan).apply(null,arguments)},Lv=l._Atan2=function(){return(Lv=l._Atan2=l.asm.Atan2).apply(null,arguments)},zv=l._Atanh=function(){return(zv=l._Atanh=l.asm.Atanh).apply(null,arguments)},Bv=l._AvgPool=function(){return(Bv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},Vv=l._AvgPool3D=function(){return(Vv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Gv=l._AvgPool3DGrad=function(){return(Gv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},Wv=l._AvgPoolGrad=function(){return(Wv=l._AvgPoolGrad=l.asm.AvgPoolGrad).apply(null,arguments)},Uv=l._BatchMatMul=function(){return(Uv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Hv=l._Bincount=function(){return(Hv=l._Bincount=l.asm.Bincount).apply(null,arguments)},qv=l._BitwiseAnd=function(){return(qv=l._BitwiseAnd=l.asm.BitwiseAnd).apply(null,arguments)},Kv=l._Ceil=function(){return(Kv=l._Ceil=l.asm.Ceil).apply(null,arguments)},jv=l._ClipByValue=function(){return(jv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Xv=l._Conv2D=function(){return(Xv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},Yv=l._Conv2DBackpropInput=function(){return(Yv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Zv=l._Conv3D=function(){return(Zv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},Jv=l._Conv3DBackpropFilterV2=function(){return(Jv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Qv=l._Conv3DBackpropInputV2=function(){return(Qv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},tS=l._Cos=function(){return(tS=l._Cos=l.asm.Cos).apply(null,arguments)},eS=l._Cosh=function(){return(eS=l._Cosh=l.asm.Cosh).apply(null,arguments)},rS=l._CropAndResize=function(){return(rS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},nS=l._Cumprod=function(){return(nS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},oS=l._Cumsum=function(){return(oS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},sS=l._DenseBincount=function(){return(sS=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},iS=l._DepthToSpace=function(){return(iS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},aS=l._DepthwiseConv2dNative=function(){return(aS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},lS=l._Diag=function(){return(lS=l._Diag=l.asm.Diag).apply(null,arguments)},uS=l._Dilation2D=function(){return(uS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},cS=l._Dilation2DBackpropFilter=function(){return(cS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},pS=l._Dilation2DBackpropInput=function(){return(pS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},mS=l._Elu=function(){return(mS=l._Elu=l.asm.Elu).apply(null,arguments)},fS=l._EluGrad=function(){return(fS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},dS=l._Equal=function(){return(dS=l._Equal=l.asm.Equal).apply(null,arguments)},hS=l._Erf=function(){return(hS=l._Erf=l.asm.Erf).apply(null,arguments)},gS=l._Exp=function(){return(gS=l._Exp=l.asm.Exp).apply(null,arguments)},xS=l._Expm1=function(){return(xS=l._Expm1=l.asm.Expm1).apply(null,arguments)},yS=l._FlipLeftRight=function(){return(yS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},bS=l._Floor=function(){return(bS=l._Floor=l.asm.Floor).apply(null,arguments)},wS=l._FloorDiv=function(){return(wS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},IS=l._FusedBatchNorm=function(){return(IS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},CS=l._FusedConv2D=function(){return(CS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},vS=l._FusedDepthwiseConv2D=function(){return(vS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},SS=l._Gather=function(){return(SS=l._Gather=l.asm.Gather).apply(null,arguments)},NS=l._GatherNd=function(){return(NS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},kS=l._Greater=function(){return(kS=l._Greater=l.asm.Greater).apply(null,arguments)},TS=l._GreaterEqual=function(){return(TS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},_S=l._IsFinite=function(){return(_S=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},ES=l._IsInf=function(){return(ES=l._IsInf=l.asm.IsInf).apply(null,arguments)},AS=l._IsNan=function(){return(AS=l._IsNan=l.asm.IsNan).apply(null,arguments)},DS=l._LRN=function(){return(DS=l._LRN=l.asm.LRN).apply(null,arguments)},$S=l._LRNGrad=function(){return($S=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},RS=l._LeakyRelu=function(){return(RS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},FS=l._Less=function(){return(FS=l._Less=l.asm.Less).apply(null,arguments)},OS=l._LessEqual=function(){return(OS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},MS=l._LinSpace=function(){return(MS=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},PS=l._Log=function(){return(PS=l._Log=l.asm.Log).apply(null,arguments)},LS=l._Log1p=function(){return(LS=l._Log1p=l.asm.Log1p).apply(null,arguments)},zS=l._LogicalAnd=function(){return(zS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},BS=l._LogicalNot=function(){return(BS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},VS=l._LogicalOr=function(){return(VS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},GS=l._LogicalXor=function(){return(GS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},WS=l._Max=function(){return(WS=l._Max=l.asm.Max).apply(null,arguments)},US=l._MaxPool=function(){return(US=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},HS=l._MaxPool3D=function(){return(HS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},qS=l._MaxPool3DGrad=function(){return(qS=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},KS=l._MaxPoolGrad=function(){return(KS=l._MaxPoolGrad=l.asm.MaxPoolGrad).apply(null,arguments)},jS=l._MaxPoolWithArgmax=function(){return(jS=l._MaxPoolWithArgmax=l.asm.MaxPoolWithArgmax).apply(null,arguments)},XS=l._Maximum=function(){return(XS=l._Maximum=l.asm.Maximum).apply(null,arguments)},YS=l._Mean=function(){return(YS=l._Mean=l.asm.Mean).apply(null,arguments)},ZS=l._Min=function(){return(ZS=l._Min=l.asm.Min).apply(null,arguments)},JS=l._Minimum=function(){return(JS=l._Minimum=l.asm.Minimum).apply(null,arguments)},QS=l._MirrorPad=function(){return(QS=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},t0=l._Mod=function(){return(t0=l._Mod=l.asm.Mod).apply(null,arguments)},e0=l._Multinomial=function(){return(e0=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},r0=l._Multiply=function(){return(r0=l._Multiply=l.asm.Multiply).apply(null,arguments)},n0=l._Neg=function(){return(n0=l._Neg=l.asm.Neg).apply(null,arguments)},o0=l._NonMaxSuppressionV3=function(){return(o0=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},s0=l._NonMaxSuppressionV4=function(){return(s0=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Pg=l._NonMaxSuppressionV5=function(){return(Pg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},Lg=l._NotEqual=function(){return(Lg=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},jd=l._OneHot=function(){return(jd=l._OneHot=l.asm.OneHot).apply(null,arguments)},i0=l._PadV2=function(){return(i0=l._PadV2=l.asm.PadV2).apply(null,arguments)},a0=l._Pow=function(){return(a0=l._Pow=l.asm.Pow).apply(null,arguments)},Cp=l._Prelu=function(){return(Cp=l._Prelu=l.asm.Prelu).apply(null,arguments)},zg=l._Prod=function(){return(zg=l._Prod=l.asm.Prod).apply(null,arguments)},vp=l._RealDiv=function(){return(vp=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},Sp=l._Reciprocal=function(){return(Sp=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},l0=l._Relu=function(){return(l0=l._Relu=l.asm.Relu).apply(null,arguments)},X=l._Relu6=function(){return(X=l._Relu6=l.asm.Relu6).apply(null,arguments)},ct=l._ResizeBilinear=function(){return(ct=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Ft=l._ResizeBilinearGrad=function(){return(Ft=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},me=l._ResizeNearestNeighbor=function(){return(me=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ye=l._ResizeNearestNeighborGrad=function(){return(Ye=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},Ze=l._Reverse=function(){return(Ze=l._Reverse=l.asm.Reverse).apply(null,arguments)},se=l._RotateWithOffset=function(){return(se=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},ne=l._Round=function(){return(ne=l._Round=l.asm.Round).apply(null,arguments)},yr=l._Rsqrt=function(){return(yr=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},to=l._ScatterNd=function(){return(to=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Na=l._SearchSorted=function(){return(Na=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},Bg=l._SelectV2=function(){return(Bg=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},Xd=l._Selu=function(){return(Xd=l._Selu=l.asm.Selu).apply(null,arguments)},u0=l._Sigmoid=function(){return(u0=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},on=l._Sign=function(){return(on=l._Sign=l.asm.Sign).apply(null,arguments)},Vl=l._Sin=function(){return(Vl=l._Sin=l.asm.Sin).apply(null,arguments)},Vg=l._Sinh=function(){return(Vg=l._Sinh=l.asm.Sinh).apply(null,arguments)},iq=l._Softmax=function(){return(iq=l._Softmax=l.asm.Softmax).apply(null,arguments)},aq=l._Softplus=function(){return(aq=l._Softplus=l.asm.Softplus).apply(null,arguments)},lq=l._SparseFillEmptyRows=function(){return(lq=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},uq=l._SparseReshape=function(){return(uq=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},cq=l._SparseSegmentReduction=function(){return(cq=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},pq=l._SparseToDense=function(){return(pq=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},mq=l._Sqrt=function(){return(mq=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},fq=l._Square=function(){return(fq=l._Square=l.asm.Square).apply(null,arguments)},dq=l._SquaredDifference=function(){return(dq=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},hq=l._Step=function(){return(hq=l._Step=l.asm.Step).apply(null,arguments)},gq=l._StridedSlice=function(){return(gq=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},xq=l._Sub=function(){return(xq=l._Sub=l.asm.Sub).apply(null,arguments)},yq=l._Sum=function(){return(yq=l._Sum=l.asm.Sum).apply(null,arguments)},bq=l._Tan=function(){return(bq=l._Tan=l.asm.Tan).apply(null,arguments)},wq=l._Tanh=function(){return(wq=l._Tanh=l.asm.Tanh).apply(null,arguments)},Iq=l._TensorScatterUpdate=function(){return(Iq=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},Cq=l._Tile=function(){return(Cq=l._Tile=l.asm.Tile).apply(null,arguments)},vq=l._TopK=function(){return(vq=l._TopK=l.asm.TopK).apply(null,arguments)},Sq=l._Transform=function(){return(Sq=l._Transform=l.asm.Transform).apply(null,arguments)},Nq=l._Transpose=function(){return(Nq=l._Transpose=l.asm.Transpose).apply(null,arguments)},kq=l.__FusedMatMul=function(){return(kq=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},Tq=l._malloc=function(){return(Tq=l._malloc=l.asm.malloc).apply(null,arguments)},_q=l._free=function(){return(_q=l._free=l.asm.free).apply(null,arguments)},Eq=l.__emscripten_tls_init=function(){return(Eq=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Gg=l._pthread_self=function(){return(Gg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},Aq=l.___errno_location=function(){return(Aq=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},d_=l.__emscripten_thread_init=function(){return(d_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},Dq=l.__emscripten_thread_crashed=function(){return(Dq=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},$q=l._emscripten_main_thread_process_queued_calls=function(){return($q=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},Rq=l._emscripten_main_browser_thread_id=function(){return(Rq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},h_=l._emscripten_run_in_main_runtime_thread_js=function(){return(h_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Fq=l._emscripten_dispatch_to_thread_=function(){return(Fq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},g_=l.__emscripten_proxy_execute_task_queue=function(){return(g_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},c0=l.__emscripten_thread_free_data=function(){return(c0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},x_=l.__emscripten_thread_exit=function(){return(x_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},y_=l._emscripten_stack_set_limits=function(){return(y_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},p0=l.stackSave=function(){return(p0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Wg=l.stackRestore=function(){return(Wg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Ug=l.stackAlloc=function(){return(Ug=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},Oq=l.dynCall_iijjiiii=function(){return(Oq=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},Mq=l.dynCall_jiji=function(){return(Mq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=zo,l.wasmMemory=it,l.cwrap=xv,l.ExitStatus=Yu,l.PThread=Yt;var Hg;Sa=function P(){Hg||b_(),Hg||(Sa=P)};function b_(P){if(P=P||d,zl>0)return;if(I){c(l),Er(),startWorker(l);return}if(Ti(),zl>0)return;function U(){Hg||(Hg=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),va()))}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){l.setStatus(\"\")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();b_();var qg;m&&(qg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(P){return!m.uncaughtException.indexOf(P)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(P){return!m.unhandledRejection.indexOf(P)>-1})});var Kg;if(typeof WasmBackendModule!=\"undefined\")Kg=WasmBackendModule;else if(typeof t!=\"undefined\")Kg=t;else throw new Error(\"Could not find wasm module in post.js\");if(qg){var Pq=Kg._dispose;Kg._dispose=function(){Pq(),qg.uncaughtException.forEach(function(P){process.removeListener(\"uncaughtException\",P)}),qg.unhandledRejection.forEach(function(P){process.removeListener(\"unhandledRejection\",P)})}}return t.ready}})();typeof RC==\"object\"&&typeof n_==\"object\"?n_.exports=r_:typeof define==\"function\"&&define.amd?define([],function(){return r_}):typeof RC==\"object\"&&(RC.WasmBackendModuleThreadedSimd=r_)});var JH=br((fnr,ZH)=>{ZH.exports.wasmWorkerContents=`\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\")+\"//# sourceURL=\"+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}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;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({\"cmd\":\"loaded\"})};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:\"callHandler\",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd===\"run\"){Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};`});var QH=br((FC,s_)=>{var o_=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!=\"undefined\"?t:{},n,o;e.ready=new Promise(function(X,ct){n=X,o=ct});var s;typeof process!=\"undefined\"&&process.listeners&&(s={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var i=Object.assign({},e),a=[],u=\"./this.program\",l=(X,ct)=>{throw ct},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(X){return e.locateFile?e.locateFile(X,f):f+X}var h,g,x,b;function w(X){if(X instanceof bp)return;A(\"exiting due to exception: \"+X)}if(m){var I=hw(),N=e_();p?f=N.dirname(f)+\"/\":f=__dirname+\"/\",h=(X,ct)=>(X=Ti(X)?new URL(X):N.normalize(X),I.readFileSync(X,ct?void 0:\"utf8\")),x=X=>{var ct=h(X,!0);return ct.buffer||(ct=new Uint8Array(ct)),ct},g=(X,ct,Ft)=>{X=Ti(X)?new URL(X):N.normalize(X),I.readFile(X,function(me,Ye){me?Ft(me):ct(Ye.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(X){if(!(X instanceof bp))throw X}),process.on(\"unhandledRejection\",function(X){throw X}),l=(X,ct)=>{if(de())throw process.exitCode=X,ct;w(ct),process.exit(X)},e.inspect=function(){return\"[Emscripten Module object]\"}}else(c||p)&&(p?f=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf(\"blob:\")!==0?f=f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):f=\"\",h=X=>{var ct=new XMLHttpRequest;return ct.open(\"GET\",X,!1),ct.send(null),ct.responseText},p&&(x=X=>{var ct=new XMLHttpRequest;return ct.open(\"GET\",X,!1),ct.responseType=\"arraybuffer\",ct.send(null),new Uint8Array(ct.response)}),g=(X,ct,Ft)=>{var me=new XMLHttpRequest;me.open(\"GET\",X,!0),me.responseType=\"arraybuffer\",me.onload=()=>{if(me.status==200||me.status==0&&me.response){ct(me.response);return}Ft()},me.onerror=Ft,me.send(null)},b=X=>document.title=X);var E=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var D=4,F;e.wasmBinary&&(F=e.wasmBinary);var M=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Qr(\"no native wasm support detected\");var V,G=!1,W;function q(X,ct){X||Qr(ct)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function j(X,ct,Ft){ct>>>=0;for(var me=ct+Ft,Ye=ct;X[Ye]&&!(Ye>=me);)++Ye;if(Ye-ct>16&&X.buffer&&H)return H.decode(X.subarray(ct,Ye));for(var Ze=\"\";ct>10,56320|to&1023)}}return Ze}function Y(X,ct){return X>>>=0,X?j(lt,X,ct):\"\"}function Z(X,ct,Ft,me){if(Ft>>>=0,!(me>0))return 0;for(var Ye=Ft,Ze=Ft+me-1,se=0;se=55296&&ne<=57343){var yr=X.charCodeAt(++se);ne=65536+((ne&1023)<<10)|yr&1023}if(ne<=127){if(Ft>=Ze)break;ct[Ft++>>>0]=ne}else if(ne<=2047){if(Ft+1>=Ze)break;ct[Ft++>>>0]=192|ne>>6,ct[Ft++>>>0]=128|ne&63}else if(ne<=65535){if(Ft+2>=Ze)break;ct[Ft++>>>0]=224|ne>>12,ct[Ft++>>>0]=128|ne>>6&63,ct[Ft++>>>0]=128|ne&63}else{if(Ft+3>=Ze)break;ct[Ft++>>>0]=240|ne>>18,ct[Ft++>>>0]=128|ne>>12&63,ct[Ft++>>>0]=128|ne>>6&63,ct[Ft++>>>0]=128|ne&63}}return ct[Ft>>>0]=0,Ft-Ye}function et(X,ct,Ft){return Z(X,lt,ct,Ft)}var nt,st,lt,ot,it,ft,gt,Ct,Rt;function Dt(X){nt=X,e.HEAP8=st=new Int8Array(X),e.HEAP16=ot=new Int16Array(X),e.HEAP32=ft=new Int32Array(X),e.HEAPU8=lt=new Uint8Array(X),e.HEAPU16=it=new Uint16Array(X),e.HEAPU32=gt=new Uint32Array(X),e.HEAPF32=Ct=new Float32Array(X),e.HEAPF64=Rt=new Float64Array(X)}var Ht=e.INITIAL_MEMORY||16777216,qt,pe=[],ye=[],re=[],be=!1;function de(){return M}function Ee(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());Sa(pe)}function Ae(){be=!0,Sa(ye)}function On(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Br(e.postRun.shift());Sa(re)}function lr(X){pe.unshift(X)}function Zn(X){ye.unshift(X)}function Br(X){re.unshift(X)}var Xe=0,Vr=null,Gr=null;function Jn(X){Xe++,e.monitorRunDependencies&&e.monitorRunDependencies(Xe)}function Qn(X){if(Xe--,e.monitorRunDependencies&&e.monitorRunDependencies(Xe),Xe==0&&(Vr!==null&&(clearInterval(Vr),Vr=null),Gr)){var ct=Gr;Gr=null,ct()}}function Qr(X){e.onAbort&&e.onAbort(X),X=\"Aborted(\"+X+\")\",A(X),G=!0,W=1,X+=\". Build with -sASSERTIONS for more info.\";var ct=new WebAssembly.RuntimeError(X);throw o(ct),ct}var Ca=\"data:application/octet-stream;base64,\";function zo(X){return X.startsWith(Ca)}function Ti(X){return X.startsWith(\"file://\")}var Er;Er=\"tfjs-backend-wasm.wasm\",zo(Er)||(Er=d(Er));function va(X){try{if(X==Er&&F)return new Uint8Array(F);if(x)return x(X);throw\"both async and sync fetching of the wasm failed\"}catch(ct){Qr(ct)}}function Vd(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!Ti(Er))return fetch(Er,{credentials:\"same-origin\"}).then(function(X){if(!X.ok)throw\"failed to load wasm binary file at '\"+Er+\"'\";return X.arrayBuffer()}).catch(function(){return va(Er)});if(g)return new Promise(function(X,ct){g(Er,function(Ft){X(new Uint8Array(Ft))},ct)})}return Promise.resolve().then(function(){return va(Er)})}function Gd(){var X={env:Wd,wasi_snapshot_preview1:Wd};function ct(se,ne){var yr=se.exports;e.asm=yr,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,Zn(e.asm.__wasm_call_ctors),Qn(\"wasm-instantiate\")}Jn(\"wasm-instantiate\");function Ft(se){ct(se.instance)}function me(se){return Vd().then(function(ne){return WebAssembly.instantiate(ne,X)}).then(function(ne){return ne}).then(se,function(ne){A(\"failed to asynchronously prepare wasm: \"+ne),Qr(ne)})}function Ye(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!zo(Er)&&!Ti(Er)&&!m&&typeof fetch==\"function\"?fetch(Er,{credentials:\"same-origin\"}).then(function(se){var ne=WebAssembly.instantiateStreaming(se,X);return ne.then(Ft,function(yr){return A(\"wasm streaming compile failed: \"+yr),A(\"falling back to ArrayBuffer instantiation\"),me(Ft)})}):me(Ft)}if(e.instantiateWasm)try{var Ze=e.instantiateWasm(X,ct);return Ze}catch(se){A(\"Module.instantiateWasm callback failed with error: \"+se),o(se)}return Ye().catch(o),{}}var c_,zl;function bp(X){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+X+\")\",this.status=X}function Sa(X){for(;X.length>0;)X.shift()(e)}function MC(){Qr(\"\")}function Ig(){return 4294901760}function Xu(){return Ig()}function PC(X,ct,Ft){lt.copyWithin(X>>>0,ct>>>0,ct+Ft>>>0)}function Cg(X){try{return V.grow(X-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ct){}}function wp(X){var ct=lt.length;X=X>>>0;var Ft=Ig();if(X>Ft)return!1;let me=(yr,to)=>yr+(to-yr%to)%to;for(var Ye=1;Ye<=4;Ye*=2){var Ze=ct*(1+.2/Ye);Ze=Math.min(Ze,X+100663296);var se=Math.min(Ft,me(Math.max(X,Ze),65536)),ne=Cg(se);if(ne)return!0}return!1}var tn={varargs:void 0,get:function(){tn.varargs+=4;var X=ft[tn.varargs-4>>>2];return X},getStr:function(X){var ct=Y(X);return ct}};function vg(X){return 52}function LC(X,ct,Ft,me,Ye){return 70}var zC=[null,[],[]];function p_(X,ct){var Ft=zC[X];ct===0||ct===10?((X===1?E:A)(j(Ft,0)),Ft.length=0):Ft.push(ct)}function m_(X,ct,Ft,me){for(var Ye=0,Ze=0;Ze>>2],ne=gt[ct+4>>>2];ct+=8;for(var yr=0;yr>>0]);Ye+=ne}return gt[me>>>2]=Ye,0}function Sg(X){var ct=e[\"_\"+X];return ct}function Yu(X,ct){st.set(X,ct>>>0)}function BC(X,ct,Ft,me,Ye){var Ze={string:on=>{var Vl=0;if(on!=null&&on!==0){var Vg=(on.length<<2)+1;Vl=jd(Vg),et(on,Vl,Vg)}return Vl},array:on=>{var Vl=jd(on.length);return Yu(on,Vl),Vl}};function se(on){return ct===\"string\"?Y(on):ct===\"boolean\"?!!on:on}var ne=Sg(X),yr=[],to=0;if(me)for(var Na=0;Nase===\"number\"||se===\"boolean\"),Ze=ct!==\"string\";return Ze&&Ye&&!me?Sg(X):function(){return BC(X,ct,Ft,arguments,me)}}var Wd={abort:MC,emscripten_get_heap_max:Xu,emscripten_memcpy_big:PC,emscripten_resize_heap:wp,fd_close:vg,fd_seek:LC,fd_write:m_},GC=Gd(),Ng=e.___wasm_call_ctors=function(){return(Ng=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},kg=e._init=function(){return(kg=e._init=e.asm.init).apply(null,arguments)},WC=e._init_with_threads_count=function(){return(WC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Tg=e._get_threads_count=function(){return(Tg=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},UC=e._register_tensor=function(){return(UC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Yt=e._dispose_data=function(){return(Yt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Ud=e._dispose=function(){return(Ud=e._dispose=e.asm.dispose).apply(null,arguments)},HC=e._Abs=function(){return(HC=e._Abs=e.asm.Abs).apply(null,arguments)},_g=e._Acos=function(){return(_g=e._Acos=e.asm.Acos).apply(null,arguments)},Ip=e._Acosh=function(){return(Ip=e._Acosh=e.asm.Acosh).apply(null,arguments)},qC=e._Add=function(){return(qC=e._Add=e.asm.Add).apply(null,arguments)},KC=e._AddN=function(){return(KC=e._AddN=e.asm.AddN).apply(null,arguments)},jC=e._All=function(){return(jC=e._All=e.asm.All).apply(null,arguments)},XC=e._Any=function(){return(XC=e._Any=e.asm.Any).apply(null,arguments)},YC=e._ArgMax=function(){return(YC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Eg=e._ArgMin=function(){return(Eg=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Ag=e._Asin=function(){return(Ag=e._Asin=e.asm.Asin).apply(null,arguments)},ZC=e._Asinh=function(){return(ZC=e._Asinh=e.asm.Asinh).apply(null,arguments)},JC=e._Atan=function(){return(JC=e._Atan=e.asm.Atan).apply(null,arguments)},QC=e._Atan2=function(){return(QC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Hd=e._Atanh=function(){return(Hd=e._Atanh=e.asm.Atanh).apply(null,arguments)},tv=e._AvgPool=function(){return(tv=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},ev=e._AvgPool3D=function(){return(ev=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},rv=e._AvgPool3DGrad=function(){return(rv=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},Zu=e._AvgPoolGrad=function(){return(Zu=e._AvgPoolGrad=e.asm.AvgPoolGrad).apply(null,arguments)},nv=e._BatchMatMul=function(){return(nv=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},ov=e._Bincount=function(){return(ov=e._Bincount=e.asm.Bincount).apply(null,arguments)},Dg=e._BitwiseAnd=function(){return(Dg=e._BitwiseAnd=e.asm.BitwiseAnd).apply(null,arguments)},sv=e._Ceil=function(){return(sv=e._Ceil=e.asm.Ceil).apply(null,arguments)},qd=e._ClipByValue=function(){return(qd=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},iv=e._Conv2D=function(){return(iv=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},av=e._Conv2DBackpropInput=function(){return(av=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},lv=e._Conv3D=function(){return(lv=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},Bl=e._Conv3DBackpropFilterV2=function(){return(Bl=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Kd=e._Conv3DBackpropInputV2=function(){return(Kd=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},uv=e._Cos=function(){return(uv=e._Cos=e.asm.Cos).apply(null,arguments)},cv=e._Cosh=function(){return(cv=e._Cosh=e.asm.Cosh).apply(null,arguments)},pv=e._CropAndResize=function(){return(pv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},mv=e._Cumprod=function(){return(mv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},$g=e._Cumsum=function(){return($g=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},Rg=e._DenseBincount=function(){return(Rg=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},fv=e._DepthToSpace=function(){return(fv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},dv=e._DepthwiseConv2dNative=function(){return(dv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fg=e._Diag=function(){return(Fg=e._Diag=e.asm.Diag).apply(null,arguments)},Og=e._Dilation2D=function(){return(Og=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},hv=e._Dilation2DBackpropFilter=function(){return(hv=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},gv=e._Dilation2DBackpropInput=function(){return(gv=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},xv=e._Elu=function(){return(xv=e._Elu=e.asm.Elu).apply(null,arguments)},yv=e._EluGrad=function(){return(yv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},Mg=e._Equal=function(){return(Mg=e._Equal=e.asm.Equal).apply(null,arguments)},f_=e._Erf=function(){return(f_=e._Erf=e.asm.Erf).apply(null,arguments)},bv=e._Exp=function(){return(bv=e._Exp=e.asm.Exp).apply(null,arguments)},wv=e._Expm1=function(){return(wv=e._Expm1=e.asm.Expm1).apply(null,arguments)},Iv=e._FlipLeftRight=function(){return(Iv=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},Cv=e._Floor=function(){return(Cv=e._Floor=e.asm.Floor).apply(null,arguments)},vv=e._FloorDiv=function(){return(vv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},Sv=e._FusedBatchNorm=function(){return(Sv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},Nv=e._FusedConv2D=function(){return(Nv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},kv=e._FusedDepthwiseConv2D=function(){return(kv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Tv=e._Gather=function(){return(Tv=e._Gather=e.asm.Gather).apply(null,arguments)},_v=e._GatherNd=function(){return(_v=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Ev=e._Greater=function(){return(Ev=e._Greater=e.asm.Greater).apply(null,arguments)},Av=e._GreaterEqual=function(){return(Av=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Dv=e._IsFinite=function(){return(Dv=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},$v=e._IsInf=function(){return($v=e._IsInf=e.asm.IsInf).apply(null,arguments)},Rv=e._IsNan=function(){return(Rv=e._IsNan=e.asm.IsNan).apply(null,arguments)},Fv=e._LRN=function(){return(Fv=e._LRN=e.asm.LRN).apply(null,arguments)},Ov=e._LRNGrad=function(){return(Ov=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},Mv=e._LeakyRelu=function(){return(Mv=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Pv=e._Less=function(){return(Pv=e._Less=e.asm.Less).apply(null,arguments)},Lv=e._LessEqual=function(){return(Lv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},zv=e._LinSpace=function(){return(zv=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Bv=e._Log=function(){return(Bv=e._Log=e.asm.Log).apply(null,arguments)},Vv=e._Log1p=function(){return(Vv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Gv=e._LogicalAnd=function(){return(Gv=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Wv=e._LogicalNot=function(){return(Wv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Uv=e._LogicalOr=function(){return(Uv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Hv=e._LogicalXor=function(){return(Hv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},qv=e._Max=function(){return(qv=e._Max=e.asm.Max).apply(null,arguments)},Kv=e._MaxPool=function(){return(Kv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},jv=e._MaxPool3D=function(){return(jv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Xv=e._MaxPool3DGrad=function(){return(Xv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},Yv=e._MaxPoolGrad=function(){return(Yv=e._MaxPoolGrad=e.asm.MaxPoolGrad).apply(null,arguments)},Zv=e._MaxPoolWithArgmax=function(){return(Zv=e._MaxPoolWithArgmax=e.asm.MaxPoolWithArgmax).apply(null,arguments)},Jv=e._Maximum=function(){return(Jv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Qv=e._Mean=function(){return(Qv=e._Mean=e.asm.Mean).apply(null,arguments)},tS=e._Min=function(){return(tS=e._Min=e.asm.Min).apply(null,arguments)},eS=e._Minimum=function(){return(eS=e._Minimum=e.asm.Minimum).apply(null,arguments)},rS=e._MirrorPad=function(){return(rS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},nS=e._Mod=function(){return(nS=e._Mod=e.asm.Mod).apply(null,arguments)},oS=e._Multinomial=function(){return(oS=e._Multinomial=e.asm.Multinomial).apply(null,arguments)},sS=e._Multiply=function(){return(sS=e._Multiply=e.asm.Multiply).apply(null,arguments)},iS=e._Neg=function(){return(iS=e._Neg=e.asm.Neg).apply(null,arguments)},aS=e._NonMaxSuppressionV3=function(){return(aS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},lS=e._NonMaxSuppressionV4=function(){return(lS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},uS=e._NonMaxSuppressionV5=function(){return(uS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},cS=e._NotEqual=function(){return(cS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},pS=e._OneHot=function(){return(pS=e._OneHot=e.asm.OneHot).apply(null,arguments)},mS=e._PadV2=function(){return(mS=e._PadV2=e.asm.PadV2).apply(null,arguments)},fS=e._Pow=function(){return(fS=e._Pow=e.asm.Pow).apply(null,arguments)},dS=e._Prelu=function(){return(dS=e._Prelu=e.asm.Prelu).apply(null,arguments)},hS=e._Prod=function(){return(hS=e._Prod=e.asm.Prod).apply(null,arguments)},gS=e._RealDiv=function(){return(gS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},xS=e._Reciprocal=function(){return(xS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},yS=e._Relu=function(){return(yS=e._Relu=e.asm.Relu).apply(null,arguments)},bS=e._Relu6=function(){return(bS=e._Relu6=e.asm.Relu6).apply(null,arguments)},wS=e._ResizeBilinear=function(){return(wS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},IS=e._ResizeBilinearGrad=function(){return(IS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},CS=e._ResizeNearestNeighbor=function(){return(CS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},vS=e._ResizeNearestNeighborGrad=function(){return(vS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},SS=e._Reverse=function(){return(SS=e._Reverse=e.asm.Reverse).apply(null,arguments)},NS=e._RotateWithOffset=function(){return(NS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},kS=e._Round=function(){return(kS=e._Round=e.asm.Round).apply(null,arguments)},TS=e._Rsqrt=function(){return(TS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},_S=e._ScatterNd=function(){return(_S=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},ES=e._SearchSorted=function(){return(ES=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},AS=e._SelectV2=function(){return(AS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},DS=e._Selu=function(){return(DS=e._Selu=e.asm.Selu).apply(null,arguments)},$S=e._Sigmoid=function(){return($S=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},RS=e._Sign=function(){return(RS=e._Sign=e.asm.Sign).apply(null,arguments)},FS=e._Sin=function(){return(FS=e._Sin=e.asm.Sin).apply(null,arguments)},OS=e._Sinh=function(){return(OS=e._Sinh=e.asm.Sinh).apply(null,arguments)},MS=e._Softmax=function(){return(MS=e._Softmax=e.asm.Softmax).apply(null,arguments)},PS=e._Softplus=function(){return(PS=e._Softplus=e.asm.Softplus).apply(null,arguments)},LS=e._SparseFillEmptyRows=function(){return(LS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},zS=e._SparseReshape=function(){return(zS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},BS=e._SparseSegmentReduction=function(){return(BS=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},VS=e._SparseToDense=function(){return(VS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},GS=e._Sqrt=function(){return(GS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},WS=e._Square=function(){return(WS=e._Square=e.asm.Square).apply(null,arguments)},US=e._SquaredDifference=function(){return(US=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},HS=e._Step=function(){return(HS=e._Step=e.asm.Step).apply(null,arguments)},qS=e._StridedSlice=function(){return(qS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},KS=e._Sub=function(){return(KS=e._Sub=e.asm.Sub).apply(null,arguments)},jS=e._Sum=function(){return(jS=e._Sum=e.asm.Sum).apply(null,arguments)},XS=e._Tan=function(){return(XS=e._Tan=e.asm.Tan).apply(null,arguments)},YS=e._Tanh=function(){return(YS=e._Tanh=e.asm.Tanh).apply(null,arguments)},ZS=e._TensorScatterUpdate=function(){return(ZS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},JS=e._Tile=function(){return(JS=e._Tile=e.asm.Tile).apply(null,arguments)},QS=e._TopK=function(){return(QS=e._TopK=e.asm.TopK).apply(null,arguments)},t0=e._Transform=function(){return(t0=e._Transform=e.asm.Transform).apply(null,arguments)},e0=e._Transpose=function(){return(e0=e._Transpose=e.asm.Transpose).apply(null,arguments)},r0=e.__FusedMatMul=function(){return(r0=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},n0=e._malloc=function(){return(n0=e._malloc=e.asm.malloc).apply(null,arguments)},o0=e._free=function(){return(o0=e._free=e.asm.free).apply(null,arguments)},s0=e.___errno_location=function(){return(s0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Pg=e.stackSave=function(){return(Pg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Lg=e.stackRestore=function(){return(Lg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},jd=e.stackAlloc=function(){return(jd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},i0=e.dynCall_iijjiiii=function(){return(i0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},a0=e.dynCall_jiji=function(){return(a0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=VC;var Cp;Gr=function X(){Cp||zg(),Cp||(Gr=X)};function zg(X){if(X=X||a,Xe>0||(Ee(),Xe>0))return;function ct(){Cp||(Cp=!0,e.calledRun=!0,!G&&(Ae(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),On()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),ct()},1)):ct()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();zg();var vp;s&&(vp={uncaughtException:process.listeners(\"uncaughtException\").filter(function(X){return!s.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(X){return!s.unhandledRejection.indexOf(X)>-1})});var Sp;if(typeof t!=\"undefined\")Sp=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")Sp=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(vp){var l0=Sp._dispose;Sp._dispose=function(){l0(),vp.uncaughtException.forEach(function(X){process.removeListener(\"uncaughtException\",X)}),vp.unhandledRejection.forEach(function(X){process.removeListener(\"unhandledRejection\",X)})}}return t.ready}})();typeof FC==\"object\"&&typeof s_==\"object\"?s_.exports=o_:typeof define==\"function\"&&define.amd?define([],function(){return o_}):typeof FC==\"object\"&&(FC.WasmBackendModule=o_)});var Ta=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},Bo=class{refCount(t){return Pn(\"refCount\")}incRef(t){return Pn(\"incRef\")}timerAvailable(){return!0}time(t){return Pn(\"time\")}read(t){return Pn(\"read\")}readSync(t){return Pn(\"readSync\")}readToGPU(t,e){return Pn(\"readToGPU\")}numDataIds(){return Pn(\"numDataIds\")}disposeData(t,e){return Pn(\"disposeData\")}write(t,e,n){return Pn(\"write\")}move(t,e,n,o,s){return Pn(\"move\")}createTensorFromGPUData(t,e,n){return Pn(\"createTensorFromGPUData\")}memory(){return Pn(\"memory\")}floatPrecision(){return Pn(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Pn(\"dispose\")}};function Pn(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 C_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,jg(r,t,e)}function Hq(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,jg(r,e,n),jg(t,e,n)}function kp(r,t,e){return Math.max(r,Math.min(t,e))}function qq(r){return r%2===0?r:r+1}function jg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function Kq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function ro(r){_(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function jt(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function eK(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function fr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),_(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),_(r.every(n=>_a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function h0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function g0(r,t){return Xg(r,t)}function Xg(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else if(r===\"string\")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function x0(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r==\"string\"||r instanceof String}function v_(r){return typeof r==\"boolean\"}function S_(r){return typeof r==\"number\"}function Wl(r){return Array.isArray(r)?Wl(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":S_(r)?\"float32\":Vo(r)?\"string\":v_(r)?\"bool\":\"float32\"}function _i(r){return!!(r&&r.constructor&&r.call&&r.apply)}function _p(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function N_(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?\" for a complex tensor\":\"\"}.`);return N_(0,r,t,e)}function nK(r,t){if(Array.isArray(r))return r;if(t===\"float32\")return r instanceof Float32Array?r:new Float32Array(r);if(t===\"int32\")return r instanceof Int32Array?r:new Int32Array(r);if(t===\"bool\"||t===\"string\")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function Yd(r,t){let e=Ep(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Ju(r,new Float32Array(e));if(t===\"int32\")return Ju(r,new Int32Array(e));if(t===\"bool\")return Ju(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Le(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function sK(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(\":\");this.urlFlags[o]=cK(o,s)})}};function lK(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(uK(t,n[0],n[1]),n.join(\"=\"))),t}function uK(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function cK(r,t){let e=t.toLowerCase();return e===\"true\"||e===\"false\"?e===\"true\":`${+e}`===e?+e:t}function L(){return w0}var w0=null;function T_(r){w0=r}var I0;function C0(){if(I0==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\");I0=r}return I0}function pK(){let r=C0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Jd(r,t){let e=pK();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var Ai=\"Abs\",Go=\"Acos\",Wo=\"Acosh\",no=\"Add\",Uo=\"AddN\",Ea=\"All\",Aa=\"Any\",Di=\"ArgMax\",$i=\"ArgMin\",Ho=\"Asin\",qo=\"Asinh\",Ko=\"Atan\",jo=\"Atanh\",Xo=\"Atan2\",Yo=\"AvgPool\",Ul=\"AvgPoolGrad\",Ri=\"AvgPool3D\",Hl=\"AvgPool3DGrad\",Zo=\"BatchMatMul\",Fi=\"BatchToSpaceND\",Da=\"Bincount\",$a=\"BitwiseAnd\",__=\"BroadcastTo\",ql=\"BroadcastArgs\",fo=\"Cast\",Jo=\"Ceil\",ho=\"ClipByValue\",Ap=\"Complex\",Kl=\"ComplexAbs\",Oi=\"Concat\",Qo=\"Conv2D\",Dp=\"Conv2DBackpropFilter\",ts=\"Conv2DBackpropInput\",es=\"Conv3D\",Ra=\"Conv3DBackpropFilterV2\",Fa=\"Conv3DBackpropInputV2\",rs=\"Cos\",ns=\"Cosh\",Oa=\"Cumprod\",os=\"Cumsum\",Ma=\"CropAndResize\",jl=\"DenseBincount\",Pa=\"DepthToSpace\",ss=\"DepthwiseConv2dNative\",$p=\"DepthwiseConv2dNativeBackpropFilter\",Rp=\"DepthwiseConv2dNativeBackpropInput\",Xl=\"Diag\",is=\"Dilation2D\",Yl=\"Dilation2DBackpropInput\",Zl=\"Dilation2DBackpropFilter\",Qd=\"Draw\",as=\"RealDiv\",Fp=\"Einsum\",ls=\"Elu\",La=\"EluGrad\",us=\"Erf\",za=\"Equal\",cs=\"Exp\",Mi=\"ExpandDims\",ps=\"Expm1\",Op=\"FFT\",Jl=\"Fill\",Ba=\"FlipLeftRight\",ms=\"Floor\",fs=\"FloorDiv\",ds=\"FusedBatchNorm\",Pi=\"GatherV2\",Va=\"GatherNd\",Ga=\"Greater\",hs=\"GreaterEqual\",go=\"Identity\",Mp=\"IFFT\",Pp=\"Imag\",gs=\"IsFinite\",xs=\"IsInf\",ys=\"IsNan\",bs=\"LeakyRelu\",Wa=\"Less\",Ua=\"LessEqual\",Ha=\"LinSpace\",ws=\"Log\",Is=\"Log1p\",qa=\"LogicalAnd\",Ka=\"LogicalNot\",ja=\"LogicalOr\",E_=\"LogicalXor\",A_=\"LogSoftmax\",nft=\"LowerBound\",Cs=\"LRN\",Xa=\"LRNGrad\",oft=\"MatrixBandPart\",vs=\"Max\",Ss=\"Maximum\",Ns=\"MaxPool\",Ql=\"MaxPoolGrad\",Li=\"MaxPool3D\",tu=\"MaxPool3DGrad\",eu=\"MaxPoolWithArgmax\",ks=\"Mean\",Ts=\"Min\",_s=\"Minimum\",Es=\"MirrorPad\",As=\"Mod\",Ya=\"Multinomial\",Ds=\"Multiply\",zi=\"Neg\",Za=\"NotEqual\",Ja=\"NonMaxSuppressionV3\",Qa=\"NonMaxSuppressionV4\",tl=\"NonMaxSuppressionV5\",Bi=\"OnesLike\",$s=\"OneHot\",Vi=\"Pack\",Rs=\"PadV2\",sft=\"Pool\",Fs=\"Pow\",Os=\"Prelu\",Ms=\"Prod\",Lp=\"RaggedGather\",zp=\"RaggedRange\",Bp=\"RaggedTensorToTensor\",ru=\"Range\",Vp=\"Real\",Ps=\"Reciprocal\",Ls=\"Relu\",Gi=\"Reshape\",zs=\"ResizeNearestNeighbor\",el=\"ResizeNearestNeighborGrad\",Bs=\"ResizeBilinear\",rl=\"ResizeBilinearGrad\",Vs=\"Relu6\",Gs=\"Reverse\",Ws=\"Round\",Us=\"Rsqrt\",nl=\"ScatterNd\",ol=\"TensorScatterUpdate\",sl=\"SearchSorted\",Wi=\"Select\",Hs=\"Selu\",Ui=\"Slice\",qs=\"Sin\",Ks=\"Sinh\",js=\"Sign\",Xs=\"Sigmoid\",Ys=\"Softplus\",Zs=\"Sqrt\",Js=\"Sum\",Hi=\"SpaceToBatchND\",qi=\"SplitV\",Qs=\"Softmax\",nu=\"SparseFillEmptyRows\",il=\"SparseReshape\",ou=\"SparseSegmentMean\",su=\"SparseSegmentSum\",al=\"SparseToDense\",ti=\"SquaredDifference\",iu=\"Square\",ec=\"StaticRegexReplace\",ll=\"StridedSlice\",au=\"StringNGrams\",lu=\"StringSplit\",uu=\"StringToHashBucketFast\",ei=\"Sub\",ri=\"Tan\",ni=\"Tanh\",oo=\"Tile\",ul=\"TopK\",cl=\"Transform\",so=\"Transpose\",cu=\"Unique\",Ki=\"Unpack\",pu=\"UnsortedSegmentSum\",ift=\"UpperBound\",ji=\"ZerosLike\",xo=\"Step\",th=\"FromPixels\",pl=\"RotateWithOffset\",Xi=\"_FusedMatMul\",Yi=\"FusedConv2D\",Zi=\"FusedDepthwiseConv2D\";function Ji(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.warn(...r)}function mK(...r){L().getBool(\"IS_TEST\")||L().getBool(\"PROD\")||console.log(...r)}var Gp=Jd(\"kernelRegistry\",()=>new Map),eh=Jd(\"gradRegistry\",()=>new Map);function Wp(r,t){let e=S0(r,t);return Gp.get(e)}function v0(r){return eh.get(r)}function Yg(r){let t=Gp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split(\"_\");a===r&&e.push(i)}return e}function rc(r){let{kernelName:t,backendName:e}=r,n=S0(t,e);Gp.has(n)&&Ji(`The kernel '${t}' for backend '${e}' is already registered`),Gp.set(n,r)}function $_(r){let{kernelName:t}=r;eh.has(t)&&L().getBool(\"DEBUG\")&&Ji(`Overriding the gradient for '${t}'`),eh.set(t,r)}function pft(r,t){let e=S0(r,t);if(!Gp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Gp.delete(e)}function mft(r){if(!eh.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);eh.delete(r)}function fft(r,t){Yg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});rc(o)})}function S0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>sn,arraysEqualWithNull:()=>d0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Le,assertNonNull:()=>ro,assertShapesMatch:()=>$e,bytesFromStringArray:()=>b0,bytesPerElement:()=>Tp,checkConversionForErrors:()=>x0,clamp:()=>kp,computeStrides:()=>Ei,convertBackendValuesAndArrayBuffer:()=>nK,createScalarValue:()=>bK,createShuffledIndices:()=>Qq,decodeString:()=>Kp,distSquared:()=>Xq,encodeString:()=>fu,fetch:()=>IK,fingerPrint64:()=>yK,flatten:()=>si,getArrayFromDType:()=>Xg,getTypedArrayFromDType:()=>g0,hasEncodingLoss:()=>rK,hexToLong:()=>rh,indexToLoc:()=>iK,inferDtype:()=>Wl,inferFromImplicitShape:()=>eK,isBoolean:()=>v_,isFunction:()=>_i,isInt:()=>_a,isNumber:()=>S_,isPromise:()=>tc,isScalarShape:()=>Yq,isString:()=>Vo,isTypedArray:()=>sr,isValidDtype:()=>y0,locToIndex:()=>sK,makeOnesTypedArray:()=>Yd,makeZerosNestedTypedArray:()=>oK,makeZerosTypedArray:()=>Ep,nearestDivisor:()=>_p,nearestLargerEven:()=>qq,now:()=>ac,parseAxisParam:()=>fr,randUniform:()=>jq,repeatedTry:()=>tK,rightPad:()=>Qu,shuffle:()=>C_,shuffleCombo:()=>Hq,sizeFromShape:()=>jt,sizeToSquarishShape:()=>Jq,squeezeShape:()=>h0,sum:()=>Kq,swap:()=>jg,tanh:()=>Zq,toNestedArray:()=>Ju,toTypedArray:()=>qp});function Zg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var _0=Gl(W_());var ic=_0.default||_0;function rh(r){return ic.fromString(r,!0,16)}var H_=rh(\"c3a5c85c97cb3127\"),sc=rh(\"b492b66fbe98f273\"),an=rh(\"9ae16a3b2f90404f\");function T0(r){return r.xor(r.shru(47))}function q_(r,t,e){let n=r.slice(t,t+e);return ic.fromBytes(Array.from(n),!0,!0)}function ze(r,t){return q_(r,t,8)}function U_(r,t){return q_(r,t,4)}function Ar(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function mu(r,t,e=rh(\"9ddfea08eb382d69\")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function dK(r,t,e,n,o,s){o=o.add(r),s=Ar(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Ar(o,44)),[o.add(n),s.add(i)]}function Qg(r,t,e,n){return dK(ze(r,t),ze(r,t+8),ze(r,t+16),ze(r,t+24),e,n)}function hK(r,t=r.length){if(t>=8){let e=an.add(t*2),n=ze(r,0).add(an),o=ze(r,t-8),s=Ar(o,37).mul(e).add(n),i=Ar(n,25).add(o).mul(e);return mu(s,i,e)}if(t>=4){let e=an.add(t*2),n=U_(r,0);return mu(n.shl(3).add(t),U_(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return T0(an.mul(s).xor(H_.mul(i))).mul(an)}return an}function gK(r,t=r.length){let e=an.add(t*2),n=ze(r,0).mul(sc),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(an);return mu(Ar(n.add(o),43).add(Ar(s,30)).add(i),n.add(Ar(o.add(an),18)).add(s),e)}function xK(r,t=r.length){let e=an.add(t*2),n=ze(r,0).mul(an),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(an),a=Ar(n.add(o),43).add(Ar(s,30)).add(i),u=mu(a,n.add(Ar(o.add(an),18)).add(s),e),l=ze(r,16).mul(e),c=ze(r,24),p=a.add(ze(r,t-32)).mul(e),m=u.add(ze(r,t-24)).mul(e);return mu(Ar(l.add(c),43).add(Ar(p,30)).add(m),l.add(Ar(c.add(n),18)).add(p),e)}function yK(r,t=r.length){let e=ic.fromNumber(81,!0);if(t<=32)return t<=16?hK(r,t):gK(r,t);if(t<=64)return xK(r,t);let n=e,o=e.mul(sc).add(113),s=T0(o.mul(an).add(113)).mul(an),i=[ic.UZERO,ic.UZERO],a=[ic.UZERO,ic.UZERO];n=n.mul(an).add(ze(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(sc),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(sc),n=n.xor(a[1]),o=o.add(i[0]).add(ze(r,u+40)),s=Ar(s.add(a[0]),33).mul(sc),i=Qg(r,u,i[1].mul(sc),n.add(a[0])),a=Qg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=sc.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(p),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(ze(r,u+40))),s=Ar(s.add(a[0]),33).mul(p),i=Qg(r,u,i[1].mul(p),n.add(a[0])),a=Qg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],mu(mu(i[0],a[0],p).add(T0(o).mul(H_)).add(s),mu(i[1],a[1],p).add(n),p)}function bK(r,t){return t===\"string\"?fu(r):qp([r],t)}function wK(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function qp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=si(r)),L().getBool(\"DEBUG\")&&x0(r,t),wK(r,t))return r;if(t==null||t===\"float32\"||t===\"complex64\")return new Float32Array(r);if(t===\"int32\")return new Int32Array(r);if(t===\"bool\"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=ac();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:ac()-a})}if(L().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{CK(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():\"\")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function CK(r,t,e){if(t!==\"float32\")return!1;for(let n=0;n0?h:\"\"} `}}console.log(`%c${u}\t%c${a}\t%c${l}D ${p}\t%c${c}\t%c${m}\t%c${i}`,\"font-weight:bold\",\"color:red\",\"color:blue\",\"color: orange\",\"color: green\",\"color: steelblue\")}};function K_(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!==\"float32\")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!sn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var X_=20,nh=3,A0=7;function Y_(r,t,e,n){let o=Ei(t),s=vK(r,t,e,o),i=t.length,a=ex(r,t,e,o,s),u=[\"Tensor\"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(\" values:\")),u.push(a.map(l=>\" \"+l).join(`\n`)),u.join(`\n`)}function vK(r,t,e,n){let o=jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?sh(r):r;if(a>1)for(let l=0;lX_){let g=nh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-nh)*i,a*i));return e===\"complex64\"&&(x=sh(x),b=sh(b)),[\"[\"+x.map((w,I)=>oh(w,o[I],e)).join(\", \")+\", ..., \"+b.map((w,I)=>oh(w,o[a-nh+I],e)).join(\", \")+\"]\"]}return[\"[\"+(e===\"complex64\"?sh(r):Array.from(r)).map((g,x)=>oh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>X_){for(let h=0;h0?m[0]+f:\"\");for(let h=1;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e===\"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||Xg(e,this.size),this.strides=Ei(t)}set(t,...e){e.length===0&&(e=[0]),_(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oKp(n))}catch(n){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}}return t}dataToGPU(t){return this.throwIfDisposed(),ii().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ii().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Kp(e))}catch(e){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}return t}async bytes(){this.throwIfDisposed();let t=await ii().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),ii().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return jp.print(this,t)}clone(){return this.throwIfDisposed(),jp.clone(this)}toString(t=!1){let e=this.dataSync();return Y_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),jp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ii().makeVariable(this,t,e,n)}};Object.defineProperty(Lt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Jd(\"Tensor\",()=>Lt)}O();var ml=class extends Lt{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!sn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ii().disposeTensor(this),this.dataId=t.dataId,ii().incRef(this,null)}dispose(){ii().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ml,Symbol.hasInstance,{value:r=>r instanceof Lt&&r.assign!=null&&r.assign instanceof Function});var Io={};Kt(Io,{assertTypesMatch:()=>M0,getTensorsInContainer:()=>ih,isTensorInList:()=>kK,makeTypesMatch:()=>Xt});var D0;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(D0||(D0={}));var $0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})($0||($0={}));var R0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(R0||(R0={}));var F0;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(F0||(F0={}));var O0;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(O0||(O0={}));var NK={float32:F0,int32:$0,bool:R0,complex64:O0};function ur(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return NK[r][t]}function lc(r){return ur(r,\"int32\")}function rx(r){return r!=null&&typeof r==\"object\"&&\"texture\"in r&&r.texture instanceof WebGLTexture}function nx(r){return typeof GPUBuffer!=\"undefined\"&&r!=null&&typeof r==\"object\"&&\"buffer\"in r&&r.buffer instanceof GPUBuffer}function Xt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function M0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function kK(r,t){return t.some(e=>e.id===r.id)}function ih(r){let t=[];return eE(r,t,new Set),t}function eE(r,t,e){if(r==null)return;if(r instanceof Lt){t.push(r);return}if(!TK(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),eE(s,t,e))}}function TK(r){return Array.isArray(r)||typeof r==\"object\"}function P0(r){return r.kernelName!=null}var ox=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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ah=class r{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ox}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){Yg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof Bo)&&typeof n.then==\"function\"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error(\"Cannot return a Promise inside of tidy.\"),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return r.nextTensorId++}nextVariableId(){return r.nextVariableId++}clone(t){let e=T.runKernel(go,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return T.runKernel(fo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Wp(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool(\"IS_TEST\")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype===\"complex64\"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=P0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(P0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Wp(d,this.backendName);_(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}else{let{forwardFunc:d}=t,h=g=>{o&&(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=P0(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool(\"DEBUG\")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool(\"DEBUG\")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=v0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(_(Array.isArray(e),()=>\"saveAllInputs is true, expected inputs to be an array.\"),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error(\"Values passed to engine.makeTensor() are null\");n=n||\"float32\",o=o||this.backend;let s=t;n===\"string\"&&Vo(t[0])&&(s=t.map(u=>fu(u)));let i=o.write(s,e,n),a=new Lt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=b0(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||\"float32\";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Lt(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new ml(t,e,n,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(t,e){this.state.numTensors++,t.dtype===\"string\"&&this.state.numStringTensors++;let n=0;t.dtype!==\"complex64\"&&t.dtype!==\"string\"&&(n=t.size*Tp(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof ml||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype===\"string\"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!==\"complex64\"&&t.dtype!==\"string\"){let n=t.size*Tp(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=v0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Ep(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:\"unnamed scope\",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=ih(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(_(e.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 s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy(\"forward\",t));_(s instanceof Lt,()=>\"The result y returned by f() must be a tensor.\");let i=K_(this.state.activeTape,e,s);if(!o&&i.length===0&&e.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 a={};a[s.id]=n==null?_K(s.shape):n,j_(a,i,l=>this.tidy(l),EK);let u=e.map(l=>a[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:s,grads:u}})}customGrad(t){return _(_i(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{_(e.every(a=>a instanceof Lt),()=>\"The args passed in customGrad(f)(x1, x2,...) must all be tensors\");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),_(n.value instanceof Lt,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),_(_i(n.gradFunc),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.\"),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];_(c.length===e.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(...).\"),_(c.every(m=>m instanceof Lt),()=>\"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:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=ac(),n=await this.backend.time(t);return n.wallMs=ac()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new ox;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ah.nextTensorId=0;ah.nextVariableId=0;function _K(r){let t=Yd(jt(r),\"float32\");return T.makeTensor(t,r,\"float32\")}function L0(){let r=C0();if(r._tfengine==null){let t=new Zd(r);r._tfengine=new ah(t)}return T_(r._tfengine.ENV),J_(()=>r._tfengine),r._tfengine}var T=L0();function EK(r,t){let e={a:r,b:t};return T.runKernel(no,e)}var du={};Kt(du,{isBrowser:()=>B0,isMobile:()=>$K,mockIsMobile:()=>DK});function AK(){return typeof navigator!=\"undefined\"&&navigator!=null}var z0;function DK(r){z0=r}function $K(r){if(z0!==void 0)return z0;if(r||AK()){if(r||(r=navigator),r.product===\"ReactNative\")return!0;let t=r.userAgent||r.vendor||(typeof window!=\"undefined\"?window.opera:\"\");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(t.substr(0,4))}return!1}function B0(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var vn=L();vn.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.\")});vn.registerFlag(\"IS_BROWSER\",()=>B0());vn.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");vn.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));vn.registerFlag(\"IS_SAFARI\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));vn.registerFlag(\"PROD\",()=>!1);vn.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>vn.getBool(\"DEBUG\"));vn.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);vn.registerFlag(\"IS_TEST\",()=>!1);vn.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>vn.getBool(\"DEBUG\"));vn.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);vn.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);vn.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Wr(r,t){let e=r;if(sr(r))return t===\"string\"?[]:[r.length];if(rx(r)){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}else if(nx(r))return[r.buffer.size/(t==null?4:Tp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||sr(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&nE(r,n,[]),n}function nE(r,t,e){if(e=e||[],!Array.isArray(r)&&!sr(r)){_(t.length===0,()=>`Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}_(t.length>0,()=>`Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`),_(r.length===t[0],()=>`Element arr[${e.join(\"][\")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),rE(n,o,t,e),r==null||!sr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\"){let u=r==null?\"null\":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Wr(r,o);!sr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?qp(r,o):si(r,[],!0);return T.makeTensor(a,s,o)}function fl(r,t,e,n=\"numeric\"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \\`Tensor[]\\` or \\`TensorLike[]\\``);return r.map((s,i)=>C(s,`${t}[${i}]`,e,n))}var V0=\"__op\";function k(r){let t=Object.keys(r);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 e=t[0],n=r[e];e.endsWith(\"_\")&&(e=e.substring(0,e.length-1)),e=e+V0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return tc(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function RK(r,t){let e=C(r,\"real\",\"complex\"),n=C(t,\"imag\",\"complex\");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return T.runKernel(Ap,o)}var Sn=k({complex_:RK});function ln(r,t,e,n){if(n==null)n=Wl(r);else if(n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(nx(r)||rx(r)){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!sr(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(t!=null){Le(t);let o=jt(t),s=jt(e);_(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!sr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?qp(r,n):si(r,[],!0),T.makeTensor(r,t,n)}function ir(r,t,e){let n=Wr(r,e);return ln(r,t,n,e)}var dl={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Ur=class r{static join(t){return new r(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(n=>sr(n)?n.buffer:n),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=FK(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function FK(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}function Cdt(){L().set(\"PROD\",!0)}function vdt(){L().set(\"DEBUG\",!0)}function Sdt(){L().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function G0(r){L().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}tE(G0);function Ndt(){T.disposeVariables()}function Bn(){return T}function lh(){return T.memory()}function kdt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){ih(r).forEach(e=>e.dispose())}function De(r){return T.keep(r)}function Tdt(r){return T.time(r)}function OK(r){return T.setBackend(r)}function _dt(){return T.ready()}function oE(){return T.backendName}function Edt(r){T.removeBackend(r)}function Adt(r){return T.findBackend(r)}function Ddt(r){return T.findBackendFactory(r)}function Xp(r,t,e=1){return T.registerBackend(r,t,e)}function sx(){return T.backend}function $dt(r,t){L().setPlatform(r,t)}var hu=4;async function aE(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+hu*m.length,d=new Uint8Array(f),h=0;for(let g=0;ge.slice(o+a,o+u));n[s.name]=lE(s,e.slice(o,o+i)),o+=i}return n}function MK(r,t){let e=jt(r.shape),n;if(\"quantization\"in r){let o=r.quantization;n=dl[o.dtype]}else if(r.dtype===\"string\"){let o=0;for(let s=0;s(o=await sE(n,o,c),o.slice(l,c)));o=await sE(n,o,i);let a=o.slice(0,i);o=o.slice(i);let u=lE(s,a);if(e[s.name]=u,oE()===\"webgpu\"){let l=sx();\"uploadToGPU\"in l&&jt(u.shape)>=L().get(\"WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD\")&&l.uploadToGPU(u.dataId)}}return e}function LK(r){if(r===null)throw new Error(`Invalid input value: ${JSON.stringify(r)}`);let t=0,e=[];r.forEach(s=>{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var W0=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function iE(r){return W0?Buffer.byteLength(r,\"utf8\"):new Blob([r]).size}function uE(r){if(W0)return Buffer.from(r).toString(\"base64\");let t=new Uint8Array(r),e=\"\";for(let n=0,o=t.length;n{let n=e<<13,o=0;for(;!(n&8388608);)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function BK(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function VK(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function GK(){let r=zK(),t=BK(),e=VK();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Cr=class r{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return r.instance==null&&(r.instance=new r),r.instance}static registerSaveRouter(t){r.getInstance().saveRouters.push(t)}static registerLoadRouter(t){r.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return r.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return r.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?r.getInstance().loadRouters:r.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},mE=r=>Cr.registerSaveRouter(r),fE=r=>Cr.registerLoadRouter(r),dE=r=>Cr.getSaveHandlers(r),hE=(r,t)=>Cr.getLoadHandlers(r,t);var q0=\"tensorflowjs\",K0=1,uc=\"models_store\",gu=\"model_info_store\";function gE(){if(!L().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,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error(\"The current browser does not appear to support IndexedDB.\");return t}function j0(r){let t=r.result;t.createObjectStore(uc,{keyPath:\"modelPath\"}),t.createObjectStore(gu,{keyPath:\"modelPath\"})}var ta=class{constructor(t){if(this.indexedDB=gE(),t==null||!t)throw new Error(\"For IndexedDB, modelPath must not be null, undefined or empty.\");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open(q0,K0);s.onupgradeneeded=()=>j0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(uc,\"readonly\"),l=a.objectStore(uc).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{e.weightData=Ur.join(e.weightData);let a=Qi(e),u=i.transaction(gu,\"readwrite\"),l=u.objectStore(gu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(uc,\"readwrite\");let m=p.objectStore(uc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(gu);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};ta.URL_SCHEME=\"indexeddb://\";var xE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ta.URL_SCHEME)?WK(r.slice(ta.URL_SCHEME.length)):null;Cr.registerSaveRouter(xE);Cr.registerLoadRouter(xE);function WK(r){return new ta(r)}function UK(r){return r.startsWith(ta.URL_SCHEME)?r.slice(ta.URL_SCHEME.length):r}var ux=class{constructor(){this.indexedDB=gE()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(q0,K0);n.onupgradeneeded=()=>j0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(gu,\"readonly\"),a=s.objectStore(gu).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=UK(t),new Promise((e,n)=>{let o=this.indexedDB.open(q0,K0);o.onupgradeneeded=()=>j0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(gu,\"readwrite\"),a=i.objectStore(gu),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(uc,\"readwrite\");let f=l.objectStore(uc).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var hl=\"/\",Zp=\"tensorflowjs_models\",yE=\"info\",HK=\"model_topology\",qK=\"weight_specs\",KK=\"weight_data\",jK=\"model_metadata\";function bE(r){return{info:[Zp,r,yE].join(hl),topology:[Zp,r,HK].join(hl),weightSpecs:[Zp,r,qK].join(hl),weightData:[Zp,r,KK].join(hl),modelMetadata:[Zp,r,jK].join(hl)}}function wE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function XK(r){let t=r.split(hl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(hl)}function YK(r){return r.startsWith(ea.URL_SCHEME)?r.slice(ea.URL_SCHEME.length):r}var ea=class{constructor(t){if(!L().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,t==null||!t)throw new Error(\"For local storage, modelPath must not be null, undefined or empty.\");this.modelPath=t,this.keys=bE(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Qi(t),s=Ur.join(t.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,uE(s));let i={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(i)),{modelArtifactsInfo:o}}catch(i){throw wE(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!==\"JSON\")throw new Error(\"BrowserLocalStorage does not support loading non-JSON model topology yet.\");let e={},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.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=cE(i),e}};ea.URL_SCHEME=\"localstorage://\";var IE=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ea.URL_SCHEME)?ZK(r.slice(ea.URL_SCHEME.length)):null;Cr.registerSaveRouter(IE);Cr.registerLoadRouter(IE);function ZK(r){return new ea(r)}var cx=class{constructor(){_(L().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 t={},e=Zp+hl,n=hl+yE;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(Jp)&&(t=t.slice(0,t.indexOf(Jp))),_(t.length>0,()=>\"scheme must not be an empty string.\");let n=r.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(r.getInstance().managers)}};function px(r){if(r.indexOf(Jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${ai.getSchemes().join(\",\")}`);return{scheme:r.split(Jp)[0],path:r.split(Jp)[1]}}async function CE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Cr.getLoadHandlers(r);_(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),_(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Cr.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 (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=px(r).scheme,u=px(r).path,l=a===px(r).scheme,c=await o.load();e&&l&&await ai.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await ai.getManager(a).removeModel(u),p.modelArtifactsInfo}async function vE(){let r=ai.getSchemes(),t={};for(let e of r){let n=await ai.getManager(e).listModels();for(let o in n){let s=e+Jp+o;t[s]=n[o]}}return t}async function SE(r){let t=px(r);return ai.getManager(t.scheme).removeModel(t.path)}async function NE(r,t){return CE(r,t,!1)}async function kE(r,t){return CE(r,t,!0)}var X0=class{constructor(){this.messageName=\"setTimeoutCustom\",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window==\"undefined\"||!L().getBool(\"USE_SETTIMEOUTCUSTOM\")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},\"*\")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener(\"message\",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(t){return Zg(t)}};if(L().get(\"IS_BROWSER\")){L().setPlatform(\"browser\",new X0);try{ai.registerManager(ea.URL_SCHEME,new cx)}catch(r){}try{ai.registerManager(ta.URL_SCHEME,new ux)}catch(r){}}var JK={importFetch:()=>TE()},Y0;var Z0=class{constructor(){this.util=_E(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(Y0==null&&(Y0=JK.importFetch()),Y0(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?\"\":new this.util.TextDecoder(e).decode(t)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get(\"IS_NODE\")&&!L().get(\"IS_BROWSER\")&&L().setPlatform(\"node\",new Z0);function wt(r,t=\"float32\",e){return t=t||\"float32\",Le(r),new le(r,t,e)}function QK(r,t){let e=C(r,\"x\",\"cast\");if(!y0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t===\"string\"&&e.dtype!==\"string\"||t!==\"string\"&&e.dtype===\"string\")throw new Error(\"Only strings can be casted to strings\");let n={x:e},o={dtype:t};return T.runKernel(fo,n,o)}var J=k({cast_:QK});function tj(r){let e={x:C(r,\"x\",\"clone\",\"string_or_numeric\")};return T.runKernel(go,e)}var un=k({clone_:tj});function mx(r,t=!1){console.log(r.toString(t))}L0();var ej={buffer:wt,cast:J,clone:un,print:mx};Q_(ej);function rj(r,t){let e=C(r,\"a\",\"add\"),n=C(t,\"b\",\"add\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(no,o)}var K=k({add_:rj});function nj(r,t){let e=C(r,\"a\",\"floorDiv\"),n=C(t,\"b\",\"floorDiv\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(fs,o)}var Qp=k({floorDiv_:nj});function oj(r,t){let e=C(r,\"a\",\"div\"),n=C(t,\"b\",\"div\");if([e,n]=Xt(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return Qp(e,n);let o={a:e,b:n},s={};return T.runKernel(as,o,s)}var ut=k({div_:oj});function sj(r,t){let e=C(r,\"a\",\"mul\"),n=C(t,\"b\",\"mul\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Ds,o)}var $=k({mul_:sj});function ij(r){let t=C(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return T.runKernel(Kl,e)}else{let e={x:t};return T.runKernel(Ai,e)}}var _e=k({abs_:ij});function aj(r){let e={x:C(r,\"x\",\"acos\")};return T.runKernel(Go,e)}var fx=k({acos_:aj});function lj(r){let e={x:C(r,\"x\",\"acosh\")};return T.runKernel(Wo,e)}var dx=k({acosh_:lj});function uj(r){_(Array.isArray(r),()=>\"The argument passed to tf.addN() must be a list of tensors\"),_(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>C(o,`tensors${s}`,\"addN\")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(o=>{if(!sn(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return T.runKernel(Uo,n)}var EE=k({addN_:uj});function cj(r,t=null,e=!1){let o={x:C(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Ea,o,s)}var tm=k({all_:cj});function pj(r,t=null,e=!1){let o={x:C(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(Aa,o,s)}var cc=k({any_:pj});function mj(r,t=0){let n={x:C(r,\"x\",\"argMax\")},o={axis:t};return T.runKernel(Di,n,o)}var ra=k({argMax_:mj});function fj(r,t=0){let n={x:C(r,\"x\",\"argMin\")},o={axis:t};return T.runKernel($i,n,o)}var hx=k({argMin_:fj});function dj(r){let e={x:C(r,\"x\",\"asin\")};return T.runKernel(Ho,e)}var gx=k({asin_:dj});function hj(r){let e={x:C(r,\"x\",\"asinh\")};return T.runKernel(qo,e)}var xx=k({asinh_:hj});function gj(r){let e={x:C(r,\"x\",\"atan\")};return T.runKernel(Ko,e)}var yx=k({atan_:gj});function xj(r,t){let e=C(r,\"a\",\"atan2\"),n=C(t,\"b\",\"atan2\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Xo,o)}var bx=k({atan2_:xj});function yj(r){let e={x:C(r,\"x\",\"atanh\")};return T.runKernel(jo,e)}var wx=k({atanh_:yj});function bj(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=DE(o);return pc(r,a,e,s,n,null,null,u)}function Q0(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=ch(t),l;if(i===\"channelsLast\")l=[a,u,r[3],r[3]];else if(i===\"channelsFirst\")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return pc(r,l,e,n,o,s,!1,i)}function wj(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=J0(t),c,p;if(i===\"NDHWC\")p=\"channelsLast\",c=[a,u,l,r[4],r[4]];else if(i===\"NCDHW\")p=\"channelsFirst\",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return AE(r,c,e,n,o,!1,p,s)}function pc(r,t,e,n,o,s,i=!1,a=\"channelsLast\"){let[u,l,c,p]=[-1,-1,-1,-1];if(a===\"channelsLast\")[u,l,c,p]=r;else if(a===\"channelsFirst\")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=ch(e),[x,b]=ch(n),w=em(m,x),I=em(f,b),{padInfo:N,outHeight:E,outWidth:A}=vj(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,D,E,A]:a===\"channelsLast\"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function AE(r,t,e,n,o,s=!1,i=\"channelsLast\",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i===\"channelsLast\")[u,l,c,p,m]=r;else if(i===\"channelsFirst\")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=J0(e),[I,N,E]=J0(n),A=em(f,I),D=em(d,N),F=em(h,E),{padInfo:M,outDepth:V,outHeight:G,outWidth:W}=Sj(o,l,c,p,x,b,w,A,D,F,a),q=s?g*m:g,H;return i===\"channelsFirst\"?H=[u,q,V,G,W]:i===\"channelsLast\"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:M,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function Ij(r,t,e,n,o){n==null&&(n=tN(r,t,e));let s=r[0],i=r[1],a=ph((s-t+2*n)/e+1,o),u=ph((i-t+2*n)/e+1,o);return[a,u]}function Cj(r,t,e,n,o,s){o==null&&(o=tN(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=ph((r[a]-t[a]+2*o)/n[a]+1,s));return i}function tN(r,t,e,n=1){let o=em(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function ch(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function J0(r){return typeof r==\"number\"?[r,r,r]:r}function em(r,t){return t<=1?r:r+(r-1)*(t-1)}function vj(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r==\"number\"){l={top:r,bottom:r,left:r,right:r,type:r===0?\"VALID\":\"NUMBER\"};let f=Ij([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r===\"same\"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:\"SAME\"}}else if(r===\"valid\")l={top:0,bottom:0,left:0,right:0,type:\"VALID\"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r==\"object\"){let m=u===\"channelsLast\"?r[1][0]:r[2][0],f=u===\"channelsLast\"?r[1][1]:r[2][1],d=u===\"channelsLast\"?r[2][0]:r[3][0],h=u===\"channelsLast\"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?\"VALID\":\"EXPLICIT\"},c=ph((t-s+m+f)/n+1,a),p=ph((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function Sj(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r===\"valid\"&&(r=0),typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=Cj([t,e,n,1],[a,u,l],1,[o,s,i],r,c);m=g[0],f=g[1],d=g[2]}else if(r===\"same\"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:\"SAME\"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function ph(r,t){if(!t)return Math.trunc(r);switch(t){case\"round\":return Math.round(r);case\"ceil\":return Math.ceil(r);case\"floor\":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function io(r){let[t,e,n]=ch(r);return t===1&&e===1&&n===1}function Dr(r,t){return io(r)||io(t)}function na(r){return ch(r).every(t=>t>0)}function DE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Se(r,t,e){if(e!=null){if(typeof t==\"string\")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t==\"number\")_(_a(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t==\"object\")t.forEach(n=>{n.forEach(o=>{_(_a(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function Nj(r,t){let n={x:C(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return T.runKernel(Gi,n,o)}var R=k({reshape_:Nj});function kj(r,t,e,n,o){let s=C(r,\"x\",\"avgPool\",\"float32\"),i=1;_(Dr(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Se(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Yo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var xu=k({avgPool_:kj});function Tj(r,t,e,n,o,s=\"NDHWC\"){let i=C(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s===\"NDHWC\",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),_(typeof e==\"number\"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),Se(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Ri,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Ix=k({avgPool3d_:Tj});function _j(r,t=0){_(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=fl(r,\"tensors\",\"concat\",\"string_or_numeric\");if(e[0].dtype===\"complex64\"&&e.forEach(s=>{if(s.dtype!==\"complex64\")throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${s.dtype}. `)}),e.length===1)return un(e[0]);let n=e,o={axis:t};return T.runKernel(Oi,n,o)}var ie=k({concat_:_j});function Ej(r,t,e=!1,n=!1){let o=C(r,\"a\",\"matMul\"),s=C(t,\"b\",\"matMul\");[o,s]=Xt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(Zo,i,a)}var Bt=k({matMul_:Ej});function Aj(r){let e={x:C(r,\"x\",\"sigmoid\",\"float32\")};return T.runKernel(Xs,e)}var en=k({sigmoid_:Aj});function Dj(r,t,e){let n=C(r,\"x\",\"slice\",\"string_or_numeric\");if(n.rank===0)throw new Error(\"Slicing scalar is not possible\");let o={x:n},s={begin:t,size:e};return T.runKernel(Ui,o,s)}var Ot=k({slice_:Dj});function $j(r){let e={x:C(r,\"x\",\"tanh\",\"float32\")};return T.runKernel(ni,e)}var li=k({tanh_:$j});function Rj(r,t,e,n,o,s){let i=C(r,\"forgetBias\",\"basicLSTMCell\"),a=C(t,\"lstmKernel\",\"basicLSTMCell\"),u=C(e,\"lstmBias\",\"basicLSTMCell\"),l=C(n,\"data\",\"basicLSTMCell\"),c=C(o,\"c\",\"basicLSTMCell\"),p=C(s,\"h\",\"basicLSTMCell\"),m=ie([l,p],1),f=Bt(m,a),d=K(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),I=Ot(d,[0,g*2],x),N=Ot(d,[0,g*3],x),E=K($(en(b),li(w)),$(c,en(K(i,I)))),A=$(li(E),en(N));return[E,A]}var $E=k({basicLSTMCell_:Rj});function Fj(r,t,e){let n=C(r,\"x\",\"batchToSpaceND\"),o=t.reduce((a,u)=>a*u);_(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),_(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),_(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(\" * \")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return T.runKernel(Fi,s,i)}var yu=k({batchToSpaceND_:Fj});function RE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function Oj(r,t,e,n,o,s){s==null&&(s=.001);let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(a.rank===u.rank,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),_(c==null||a.rank===c.rank,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),_(l==null||a.rank===l.rank,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let m={x:RE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ds,m,f);return R(d,i.shape)}var oa=k({batchNorm_:Oj});function Mj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),_(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),_(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Cx=k({batchNorm2d_:Mj});function Pj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),_(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),_(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var vx=k({batchNorm3d_:Pj});function Lj(r,t,e,n,o,s){let i=C(r,\"x\",\"batchNorm\"),a=C(t,\"mean\",\"batchNorm\"),u=C(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=C(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=C(n,\"offset\",\"batchNorm\")),_(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),_(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),_(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Sx=k({batchNorm4d_:Lj});function zj(r,t,e){let n=C(r,\"x\",\"bincount\"),o=C(t,\"weights\",\"bincount\");_(n.dtype===\"int32\",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return T.runKernel(Da,s,i)}var Nx=k({bincount_:zj});function Bj(r,t){let e=C(r,\"x\",\"bitwiseAnd\"),n=C(t,\"y\",\"bitwiseAnd\");if(!sn(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!==\"int32\"||n.dtype!==\"int32\")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel($a,o)}var FE=k({bitwiseAnd_:Bj});function Vj(r,t){let e=C(r,\"s0\",\"broadcastArgs\",\"int32\"),n=C(t,\"s1\",\"broadcastArgs\",\"int32\");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return T.runKernel(ql,o)}var OE=k({broadcastArgs_:Vj});function Gj(r,t){let e=C(r,\"broadcastTo\",\"x\"),n=e.shape;if(Le(t),t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return un(e);let a={x:e},u={reps:s};return T.runKernel(oo,a,u)}var sa=k({broadcastTo_:Gj});function Wj(r){let e={x:C(r,\"x\",\"ceil\",\"float32\")};return T.runKernel(Jo,e)}var kx=k({ceil_:Wj});function Co(r,t,e){Le(r),e=e||Wl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(Jl,{},n)}function Uj(r,t,e){let n=C(r,\"x\",\"clipByValue\");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return Co(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(ho,o,s)}var vr=k({clipByValue_:Uj});function Hj(r){return ie(r,0)}var Tx=k({concat1d_:Hj});function qj(r,t){return ie(r,t)}var _x=k({concat2d_:qj});function Kj(r,t){return ie(r,t)}var Ex=k({concat3d_:Kj});function jj(r,t){return ie(r,t)}var Ax=k({concat4d_:jj});function Xj(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=C(r,\"x\",\"conv2d\",\"float32\"),u=C(t,\"filter\",\"conv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Se(\"conv2d\",n,i);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(na(s),()=>\"Error in conv2D: Dilated rates should be larger than 0.\"),_(na(e),()=>\"Error in conv2D: Strides should be larger than 0.\");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(Qo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Nn=k({conv2d_:Xj});function Yj(r,t,e,n,o=\"NWC\",s=1,i){let a=C(r,\"x\",\"conv1d\"),u=C(t,\"filter\",\"conv1d\"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),_(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),_(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Se(\"conv1d\",n,i),_(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),_(Dr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(na(s),()=>\"Error in conv1D: Dilated rates should be larger than 0.\"),_(na(e),()=>\"Error in conv1D: Stride should be larger than 0.\"),_(o===\"NWC\",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Nn(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var rm=k({conv1d_:Yj});function Zj(r,t,e,n,o,s=\"NHWC\",i){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),_(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),_(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),_(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s===\"NHWC\"?a[3]:a[1],p=s===\"NHWC\"?u.shape[3]:u.shape[1];_(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),_(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Se(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(ts,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var nm=k({conv2DBackpropInput_:Zj});function Jj(r,t,e,n,o,s){let i=C(r,\"x\",\"conv2dTranspose\"),a=C(t,\"filter\",\"conv2dTranspose\");return nm(e,i,a,n,o,\"NHWC\",s)}var om=k({conv2dTranspose_:Jj});function Qj(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=C(r,\"x\",\"conv3d\"),a=C(t,\"filter\",\"conv3d\"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),_(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),_(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),_(Dr(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(o===\"NDHWC\",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`),_(na(s),()=>\"Error in conv3D: Dilated rates should be larger than 0.\"),_(na(e),()=>\"Error in conv3D: Strides should be larger than 0.\");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(es,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Dx=k({conv3d_:Qj});function t6(r,t,e,n,o){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=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}`),_(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),_(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),_(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=T.runKernel(Fa,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var $x=k({conv3DBackpropInput_:t6});function e6(r,t,e,n,o){let s=C(r,\"x\",\"conv3dTranspose\"),i=C(t,\"filter\",\"conv3dTranspose\");return $x(e,s,i,n,o)}var Rx=k({conv3dTranspose_:e6});function r6(r){let e={x:C(r,\"x\",\"cos\",\"float32\")};return T.runKernel(rs,e)}var bu=k({cos_:r6});function n6(r){let e={x:C(r,\"x\",\"cosh\",\"float32\")};return T.runKernel(ns,e)}var sm=k({cosh_:n6});function o6(r,t=0,e=!1,n=!1){let s={x:C(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Oa,s,i)}var mc=k({cumprod_:o6});function s6(r,t=0,e=!1,n=!1){let s={x:C(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(os,s,i)}var im=k({cumsum_:s6});function i6(r,t,e,n=!1){let o=C(r,\"x\",\"denseBincount\"),s=C(t,\"weights\",\"denseBincount\");_(o.dtype===\"int32\",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),_(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return T.runKernel(jl,i,a)}var mh=k({denseBincount_:i6});function a6(r,t,e=\"NHWC\"){let n=C(r,\"x\",\"depthToSpace\",\"float32\"),o=e===\"NHWC\"?n.shape[1]:n.shape[2],s=e===\"NHWC\"?n.shape[2]:n.shape[3],i=e===\"NHWC\"?n.shape[3]:n.shape[1];_(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),_(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`),_(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${n.shape}`),_(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return T.runKernel(Pa,a,u)}var Fx=k({depthToSpace_:a6});function l6(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=C(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=C(t,\"filter\",\"depthwiseConv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Se(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ss,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ia=k({depthwiseConv2d_:l6});function u6(r){let e={x:C(r,\"x\",\"diag\")};return T.runKernel(Xl,e)}var ME=k({diag_:u6});function c6(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=C(r,\"x\",\"dilation2d\"),a=C(t,\"filter\",\"dilation2d\");_(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),_(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),_(s===\"NHWC\",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(is,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ox=k({dilation2d_:c6});var Hr={};Kt(Hr,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>PE,getReductionAxes:()=>we});function PE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function we(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(_(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Bt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var Px=k({dot_:h6});function g6(r,...t){let e=t.map((o,s)=>C(o,`tensors${s}`,\"einsum\")),n={equation:r};return T.runKernel(Fp,e,n)}var wu=k({einsum_:g6});function x6(r){let e={x:C(r,\"x\",\"elu\",\"float32\")};return T.runKernel(ls,e)}var aa=k({elu_:x6});function y6(r,t){let e=C(r,\"x\",\"ensureShape\",\"string_or_numeric\");if(!d0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var LE=k({ensureShape_:y6});function b6(r){let t=C(r,\"x\",\"erf\");_(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=J(t,\"float32\"));let e={x:t};return T.runKernel(us,e)}var am=k({erf_:b6});function eN(r,t){for(let e=0;er[s]);return[e,o]}function vo(r,t){let e=t.map(n=>1);return zE(r,e,t)}function w6(r,t,e){_(eN(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function nN(r,t){if(eN(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function fh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function I6(r,t){let e=[];for(let n=t-r;n\"Axis must be <= rank of the tensor\");let n={input:e},o={dim:t};return T.runKernel(Mi,n,o)}var je=k({expandDims_:D6});function $6(r){let e={x:C(r,\"x\",\"expm1\")};return T.runKernel(ps,e)}var zx=k({expm1_:$6});function R6(r,t){let e=C(r,\"x\",\"tile\",\"string_or_numeric\");_(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return T.runKernel(oo,n,o)}var Rr=k({tile_:R6});function F6(r,t,e,n=\"float32\"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`),_(_a(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=T.runKernel(Cs,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Wx=k({localResponseNormalization_:q6});function K6(r){let e={x:C(r,\"x\",\"log\",\"float32\")};return T.runKernel(ws,e)}var Nr=k({log_:K6});function j6(r){let e={x:C(r,\"x\",\"log1p\")};return T.runKernel(Is,e)}var vu=k({log1p_:j6});function X6(r){return _(_i(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=C(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?C(e,\"dy\",\"tf.grad\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),Hx(i),i[0]})}}function Y6(r){return _(_i(r),()=>\"The f passed in grads(f) must be a function\"),(t,e)=>{_(Array.isArray(t),()=>\"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s\");let n=fl(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?C(e,\"dy\",\"tf.grads\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Hx(i),i})}}function Z6(r){return _(_i(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{_(t instanceof Lt,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),_(e==null||e instanceof Lt,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return Hx(n),{grad:n[0],value:o}}}function J6(r){return _(_i(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Lt),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),_(e==null||e instanceof Lt,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=T.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Hx(n.grads),n}}function Ux(r,t){_(_i(r),()=>\"The f passed in variableGrads(f) must be a function\"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof ml),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),_(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=T.gradients(r,t,null,s);_(a.some(l=>l!=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 u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function pn(r){return T.customGrad(r)}function Hx(r){if(r.filter(e=>e==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.`)}function Q6(r){let e={x:C(r,\"x\",\"neg\")};return T.runKernel(zi,e)}var Ut=k({neg_:Q6});function tX(r){let e={x:C(r,\"x\",\"softplus\")};return T.runKernel(Ys,e)}var ui=k({softplus_:tX});function eX(r){let t=C(r,\"x\",\"logSigmoid\");return pn(n=>({value:Ut(ui(Ut(n))),gradFunc:i=>$(i,en(Ut(n)))}))(t)}var qx=k({logSigmoid_:eX});function rX(r,t){let e=C(r,\"a\",\"sub\"),n=C(t,\"b\",\"sub\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(ei,o)}var at=k({sub_:rX});function nX(r,t=-1){let e=C(r,\"logits\",\"logSoftmax\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return pn((o,s)=>{let a=Sr(o,t,!0),u=at(o,a),l=at(J(u,\"float32\"),Nr(mt(Ke(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Ke(f);return at(p,$(mt(p,t,d),h))}}})(e)}var lm=k({logSoftmax_:nX});function oX(r,t=null,e=!1){let n=C(r,\"x\",\"logSumExp\"),o=fr(t,n.shape),s=Sr(n,o,!0),i=at(n,s),a=Ke(i),u=mt(a,o),l=Nr(u),c=K(R(s,l.shape),l);if(e){let p=vo(c.shape,o);return R(c,p)}return c}var Su=k({logSumExp_:oX});function sX(r,t){let e=C(r,\"a\",\"logicalAnd\",\"bool\"),n=C(t,\"b\",\"logicalAnd\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(qa,o)}var Fr=k({logicalAnd_:sX});function iX(r){let e={x:C(r,\"x\",\"logicalNot\",\"bool\")};return T.runKernel(Ka,e)}var Nu=k({logicalNot_:iX});function aX(r,t){let e=C(r,\"a\",\"logicalOr\",\"bool\"),n=C(t,\"b\",\"logicalOr\",\"bool\");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ja,o)}var um=k({logicalOr_:aX});function lX(r,t){let e=C(r,\"a\",\"logicalXor\",\"bool\"),n=C(t,\"b\",\"logicalXor\",\"bool\");return Mt(e.shape,n.shape),Fr(um(r,t),Nu(Fr(r,t)))}var Kx=k({logicalXor_:lX});var jx=2147483648;function uX(r,t,e=\"left\"){let n=C(r,\"sortedSequence\",\"searchSorted\"),o=C(t,\"values\",\"searchSorted\"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error(\"Sorted input argument must be at least 2-dimensional\");if(a.shape[0]!==u.shape[0])throw new Error(\"Leading dimension of 'sortedSequence' and 'values' must match.\");if(jt(u.shape)>=jx)throw new Error(`values tensor size must less than ${jx}`);if(a.shape[1]>=jx)throw new Error(`trailing dim_size must less than ${jx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(sl,l,c)}var dh=k({searchSorted_:uX});function GE(r,t){return dh(r,t,\"left\")}function cX(r,t,e,n,o){let s=C(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),_(Dr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Se(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Ns,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ku=k({maxPool_:cX});function pX(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=C(r,\"x\",\"maxPool3d\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s===\"NDHWC\",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Se(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Li,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Xx=k({maxPool3d_:pX});function mX(r,t,e,n,o=!1){let i={x:C(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(eu,i,a);return{result:u[0],indexes:u[1]}}var WE=k({maxPoolWithArgmax_:mX});function fX(r,t){let e=C(r,\"a\",\"maximum\"),n=C(t,\"b\",\"maximum\");[e,n]=Xt(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ss,o)}var kn=k({maximum_:fX});function dX(r,t=null,e=!1){let o={x:C(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return T.runKernel(ks,o,s)}var Ne=k({mean_:dX});function ke(r,t=\"float32\"){if(Le(r),t===\"complex64\"){let n=ke(r,\"float32\"),o=ke(r,\"float32\");return Sn(n,o)}let e=Ep(jt(r),t);return T.makeTensor(e,r,t)}function ar(r,t=\"float32\"){if(Le(r),t===\"complex64\"){let n=ar(r,\"float32\"),o=ke(r,\"float32\");return Sn(n,o)}let e=Yd(jt(r),t);return T.makeTensor(e,r,t)}function UE(r,t,{indexing:e=\"xy\"}={}){if(e!==\"xy\"&&e!==\"ij\")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=C(r,\"x\",\"meshgrid\",r instanceof Lt?r.dtype:\"float32\");if(t===void 0)return[n];let o=C(t,\"y\",\"meshgrid\",t instanceof Lt?t.dtype:\"float32\"),s=jt(n.shape),i=jt(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(ar([i,1],n.dtype),n),Bt(o,ar([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,ar([1,i],n.dtype)),Bt(ar([s,1],o.dtype),o)])}function hX(r,t){let e=C(r,\"a\",\"minimum\"),n=C(t,\"b\",\"minimum\");[e,n]=Xt(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(_s,o)}var lo=k({minimum_:hX});function gX(r,t,e){_(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=C(r,\"x\",\"mirrorPad\");if(n.rank===0)throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");_(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e===\"reflect\"?1:0;for(let a=0;a\"Invalid number of paddings. Must be length of 2 each.\"),_(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return T.runKernel(Es,i,s)}var Yx=k({mirrorPad_:gX});function xX(r,t){let e=C(r,\"a\",\"mod\"),n=C(t,\"b\",\"mod\");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(As,o)}var Zx=k({mod_:xX});function yX(r,t=null,e=!1){r=C(r,\"x\",\"moments\");let n=fr(t,r.shape),o=Ne(r,n,e),s=o.shape;e||(s=vo(o.shape,n));let i=Wt(at(J(r,\"float32\"),R(o,s))),a=Ne(i,n,e);return{mean:o,variance:a}}var dc=k({moments_:yX});function bX(r,t,e,n){let o=C(t,\"data\",\"multiRNNCell\"),s=fl(e,\"c\",\"multiRNNCell\"),i=fl(n,\"h\",\"multiRNNCell\"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=T.runKernel(Ya,u,l);return i===1?R(c,[c.size]):c}var qE=k({multinomial_:wX});function IX(r,t){let e=C(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=C(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Za,o)}var ci=k({notEqual_:IX});function CX(r,t,e=1,n=0,o=\"int32\"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:C(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return T.runKernel($s,i,a)}var ca=k({oneHot_:CX});function vX(r){let e={x:C(r,\"x\",\"onesLike\")};return T.runKernel(Bi,e)}var wr=k({onesLike_:vX});function SX(r,t){let e=C(r,\"v1\",\"outerProduct\"),n=C(t,\"v2\",\"outerProduct\");_(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Bt(o,s)}var KE=k({outerProduct_:SX});function NX(r,t,e=0){let n=C(r,\"x\",\"pad\");if(n.rank===0)throw new Error(\"pad(scalar) is not defined. Pass non-scalar to pad\");let o={paddings:t,constantValue:e},s={x:n};return T.runKernel(Rs,s,o)}var mn=k({pad_:NX});function kX(r,t,e=0){return _(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),mn(r,[t],e)}var jE=k({pad1d_:kX});function TX(r,t,e=0){return _(t.length===2&&t[0].length===2&&t[1].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),mn(r,t,e)}var XE=k({pad2d_:TX});function _X(r,t,e=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.\"),mn(r,t,e)}var YE=k({pad3d_:_X});function EX(r,t,e=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.\"),mn(r,t,e)}var ZE=k({pad4d_:EX});function AX(r,t,e){let n=C(r,\"x\",\"spaceToBatchND\");_(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),_(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),_(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return T.runKernel(Hi,o,s)}var Tu=k({spaceToBatchND_:AX});function DX(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=C(r,\"x\",\"maxPool\"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(Dr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Q0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=RX([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=$X([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:Tu(u,p,d),w=(e===\"avg\"?()=>xu(x,t,s,g,i):()=>ku(x,t,s,g,i))(),I=f?w:yu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function $X(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function RX(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var Jx=k({pool_:DX});function FX(r,t){let e=C(r,\"x\",\"prelu\"),n=C(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return T.runKernel(Os,o)}var _u=k({prelu_:FX});function OX(r,t=null,e=!1){let n=C(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=J(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Ms,o,s)}var Qx=k({prod_:OX});function MX(r,t,e,n){let o=r.map((c,p)=>C(c,`tensors${p}`,\"raggedGather\",\"int32\")),s=C(t,\"paramsDenseValues\",\"raggedGather\"),i=C(e,\"indices\",\"raggedGather\",\"int32\"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=T.runKernel(Lp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var JE=k({raggedGather_:MX});function PX(r,t,e){let n=C(r,\"starts\",\"raggedRange\"),o=C(t,\"limits\",\"raggedRange\",n.dtype),s=C(e,\"deltas\",\"raggedRange\",n.dtype),i={starts:n,limits:o,deltas:s},a=T.runKernel(zp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var QE=k({raggedRange_:PX});function LX(r,t,e,n,o){let s=C(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=C(t,\"values\",\"raggedTensorToTensor\"),a=C(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>C(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return T.runKernel(Bp,l,c)}var tA=k({raggedTensorToTensor_:LX});function zX(r,t,e){Le(r);let n=jt(r),o=null;if(e==null||e===\"float32\")o=new Float32Array(n);else if(e===\"int32\")o=new Int32Array(n);else if(e===\"bool\")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;syA,createVideoElement:()=>JX,encodeStrings:()=>wA,expectArrayBuffersEqual:()=>ZX,expectArraysClose:()=>KX,expectArraysEqual:()=>XX,expectNumbersClose:()=>bA,expectPromiseToFail:()=>jX,expectValuesInRange:()=>YX,play:()=>QX,testEpsilon:()=>ey});var qX=.001,yA=.1;function KX(r,t,e){return e==null&&(e=ey()),pN(r,t,(n,o)=>mN(n,o,e))}function ey(){return T.backend.floatPrecision()===32?qX:yA}function pN(r,t,e){let n=!0;if((sr(r)||sr(t))&&(n=!1),sr(r)&&sr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Wr(r),a=Wr(t);if(!sn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=sr(r)?r:si(r),s=sr(t)?t:si(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}.\nActual: ${o}.\nExpected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!=\"undefined\"&&expect().nothing()}function XX(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?pN(r,e,(n,o)=>n==o):pN(r,t,(n,o)=>mN(n,o,0))}function bA(r,t,e){if(e==null&&(e=ey()),!mN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function mN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function YX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function ZX(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener(\"loadeddata\",n=>e(t)),t.load()})}async function QX(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var gc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=oy.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype===\"float32\"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},ry=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=oy.alea(s.toString()),this.randn=new gc(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype===\"float32\",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o==\"number\"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=oy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function t5(r,t,e=1,n=\"float32\",o){if(Le(r),e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new ry(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),dr(t,0)}var NA=k({reverse1d_:c5});function p5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),dr(e,t)}var kA=k({reverse2d_:p5});function m5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),dr(e,t)}var TA=k({reverse3d_:m5});function f5(r,t){let e=C(r,\"x\",\"reverse\");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),dr(e,t)}var _A=k({reverse4d_:f5});function d5(r){let e={x:C(r,\"x\",\"round\")};return T.runKernel(Ws,e)}var pm=k({round_:d5});function h5(r){let e={x:C(r,\"x\",\"rsqrt\",\"float32\")};return T.runKernel(Us,e)}var mm=k({rsqrt_:h5});function g5(r){let e={x:C(r,\"x\",\"selu\")};return T.runKernel(Hs,e)}var fm=k({selu_:g5});function x5(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=C(r,\"x\",\"separableConv2d\"),u=C(t,\"depthwiseFilter\",\"separableConv2d\"),l=C(e,\"pointwiseFilter\",\"separableConv2d\"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.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}.`),_(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),_(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),_(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];_(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=ia(c,u,n,o,i,s),g=Nn(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var dm=k({separableConv2d_:x5});async function y5(r,t){let e=C(r,\"x\",\"setdiff1d\"),n=C(t,\"y\",\"setdiff1d\");_(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),_(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),_(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Ot(n,[t],[e])}var xm=k({slice1d_:C5});function v5(r,t,e){let n=C(r,\"x\",\"slice2d\");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var gh=k({slice2d_:v5});function S5(r,t,e){let n=C(r,\"x\",\"slice3d\");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var ym=k({slice3d_:S5});function N5(r,t,e){let n=C(r,\"x\",\"slice4d\");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var yc=k({slice4d_:N5});function k5(r,t=-1){let e=C(r,\"logits\",\"softmax\",\"float32\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return T.runKernel(Qs,n,o)}var Eu=k({softmax_:k5});function T5(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Op,t)}var Au=k({fft_:T5});function _5(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Mp,t)}var wl=k({ifft_:_5});function E5(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=wl(o)}else{let o=[e,2*(t-1)],s=R(bl(r),[e,t]),i=R(Iu(r),[e,t]),a=dr(Ot(s,[0,1],[e,t-2]),1),u=$(dr(Ot(i,[0,1],[e,t-2]),1),pt(-1)),l=ie([s,a],1),c=ie([i,u],1),p=R(Sn(l,c),[o[0],o[1]]);n=wl(p)}if(n=bl(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var bm=k({irfft_:E5});function A5(r,t,e=0){let o={x:C(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return T.runKernel(qi,o,s)}var hr=k({split_:A5});function D5(r,t){_(r.dtype===\"float32\",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Ot(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ie([r,ke(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(Sn(o,s),[n,e]),a=Au(i),u=Math.floor(e/2)+1,l=bl(a),c=Iu(a),p=hr(l,[u,e-u],l.shape.length-1),m=hr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(Sn(p[0],m[0]),f)}var Du=k({rfft_:D5});function $5(r,t){let e=C(r,\"a\",\"squaredDifference\"),n=C(t,\"b\",\"squaredDifference\");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(ti,o,s)}var wm=k({squaredDifference_:$5});function R5(r,t){let e=C(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,h0(e.shape,t).newShape)}var Wn=k({squeeze_:R5});function F5(r,t=0){let e=fl(r,\"tensors\",\"stack\",\"string_or_numeric\");_(e.length>=1,()=>\"Pass at least one tensor to tf.stack\"),e.length>0&&_(t<=e[0].rank,()=>\"Axis must be <= rank of the tensor\");let n=e,o={axis:t};return T.runKernel(Vi,n,o)}var Fe=k({stack_:F5});function O5(r,t=0){let n={x:C(r,\"x\",\"step\")},o={alpha:t};return T.runKernel(xo,n,o)}var So=k({step_:O5});function M5(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:C(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return T.runKernel(ll,c,p)}var ay=k({stridedSlice_:M5});function P5(r){let e={x:C(r,\"x\",\"tan\",\"float32\")};return T.runKernel(ri,e)}var ly=k({tan_:P5});function Oe(r,t){ro(r);let e=Wr(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return ln(r,null,e,t)}function pi(r,t,e){if(ro(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Wr(r,e);if(n.length!==2&&n.length!==1)throw new Error(\"tensor2d() requires values to be number[][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor2d() requires shape to be provided when `values` are a flat/TypedArray\");return ln(r,t,n,e)}function uy(r,t,e){if(ro(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Wr(r,e);if(n.length!==3&&n.length!==1)throw new Error(\"tensor3d() requires values to be number[][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor3d() requires shape to be provided when `values` are a flat array\");return ln(r,t,n,e)}function AA(r,t,e){if(ro(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Wr(r,e);if(n.length!==4&&n.length!==1)throw new Error(\"tensor4d() requires values to be number[][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor4d() requires shape to be provided when `values` are a flat array\");return ln(r,t,n,e)}function DA(r,t,e){if(ro(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Wr(r,e);if(n.length!==5&&n.length!==1)throw new Error(\"tensor5d() requires values to be number[][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor5d() requires shape to be provided when `values` are a flat array\");return ln(r,t,n,e)}function $A(r,t,e){if(ro(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Wr(r,e);if(n.length!==6&&n.length!==1)throw new Error(\"tensor6d() requires values to be number[][][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor6d() requires shape to be provided when `values` are a flat array\");return t=t||n,ln(r,t,n,e)}var $u={};Kt($u,{calculateShapes:()=>RA,validateInput:()=>Im,validateUpdateShape:()=>fN});function fN(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;p= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=T.runKernel(ul,s,i);return{values:a,indices:u}}var cy=k({topk_:z5});function B5(r,t=0,e=1,n,o){if(Le(r),n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new gc(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=T.runKernel(cu,n,o);return{values:s,indices:i}}var py=k({unique_:V5});function G5(r,t,e){let n=C(r,\"x\",\"unsortedSegmentSum\"),o=C(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");_(_a(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(pu,s,i)}var vm=k({unsortedSegmentSum_:G5});function W5(r,t=0){let e=C(r,\"x\",\"unstack\",\"string_or_numeric\");_(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return T.runKernel(Ki,n,o)}var gr=k({unstack_:W5});function OA(r,t){return dh(r,t,\"right\")}function my(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function fy(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),$e(a.slice(s,s+i),o.shape,\"mask's shape must match the first K dimensions of tensor's shape,\");let u=1;for(let h=s;ha).reverse()),_(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{_(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype===\"complex64\"?B(()=>{let i=bl(n),a=Iu(n);return i=T.runKernel(so,{x:i},s),a=T.runKernel(so,{x:a},s),e&&(a=Ut(a)),Sn(i,a)}):T.runKernel(so,o,s)}var Vt=k({transpose_:K5});function j5(r,t,e,n,o=!0){let s=C(r,\"v\",\"movingAverage\"),i=C(t,\"x\",\"movingAverage\"),a=C(e,\"decay\",\"movingAverage\");M0(s,i),_(sn(s.shape,i.shape),()=>\"Shape mismatch in v and x\");let u=pt(1),l=at(u,a),c=$(at(i,s),l);if(o){_(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=C(n,\"step\",\"movingAverage\");c=ut(c,at(u,qr(a,p)))}return K(s,c)}var X5=k({movingAverage_:j5});function Y5(r,t,e){Le(e);let n=C(r,\"indices\",\"scatterND\",\"int32\"),o=C(t,\"updates\",\"scatterND\");Im(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(nl,s,i)}var Z5=k({scatterND_:Y5});function MA(r,t,e,n){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 o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function Q5(r,t,e,n=0){Le(e);let o=C(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=C(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=C(n,\"defaultValue\",\"sparseToDense\",s.dtype);MA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(al,a,u)}var t8=k({sparseToDense_:Q5});function e8(r,t){let e=C(t,\"indices\",\"gatherND\",\"int32\"),o={params:C(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return T.runKernel(Va,o)}var r8=k({gatherND_:e8});function PA(r,t){if(t==null)return r.shape.slice();if(sn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),_(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Lt?o.clone():o;let s=PA(o,e),i=1-t,a=ut(la(K(Gn(s,0,1,\"float32\",n),i)),i);return $(o,a)}var dN=k({dropout_:n8});function hN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function xh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),_(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,\"predictions's shape should be align with the targets' shape, except the last dimension.\");let s=n.shape[n.shape.length-1];_(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=g0(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hLA,depthwiseConv2d:()=>zA,matMul:()=>BA});function i8(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),_(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),_(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),_(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s===\"NHWC\"?a.shape[3]:a.shape[1],c=s===\"NHWC\"?u.shape[3]:u.shape[1];_(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),_(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Se(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Dp,p,m)}var Sm=k({conv2DBackpropFilter_:i8});function bc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return $(r,So(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function wc(r,t){let e=t,n=we(r.shape,t.shape);return n.length>0&&(e=mt(e,n)),R(e,r.shape)}function Ic(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Or(r);if(t===\"elu\")return aa(r);if(t===\"relu6\")return cm(r);if(t===\"prelu\")return _u(r,e);if(t===\"leakyrelu\")return Cu(r,n);if(t===\"sigmoid\")return en(r);throw new Error(`Unknown fused activation ${t}.`)}var Cc=(r,t)=>!(r>0)||t===\"linear\";function a8({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||\"linear\",Cc(T.state.gradientDepth,u)===!1){_(o===\"NHWC\",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let E=Nn(r,t,e,n,o,s,i);return a!=null&&(E=K(E,a)),Ic(E,u,l,c)}let p=C(r,\"x\",\"conv2d\",\"float32\"),m=C(t,\"filter\",\"conv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Se(\"fused conv2d\",n,i);let h=o===\"NHWC\"?f.shape[3]:f.shape[1];_(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=pc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=C(a,\"bias\",\"fused conv2d\"),[x]=Xt(x,p),o===\"NHWC\"?Mt(g.outShape,x.shape):(_(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),_(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let E=l.shape;if(_(E.length<=1||E.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${E.length}.`),E.length===1)_(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=C(l,\"prelu weights\",\"fused conv2d\")}let w=(E,A)=>{_(o===\"NHWC\",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[D,F,M,V]=A,G=bc(E,M,u);_(io(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=nm(F.shape,G,D,e,n),q=Sm(F,G,D.shape,e,n),H=[W,q];if(V!=null){let j=wc(V,G);H.push(j)}return H},I={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((A,D,F)=>{let M=T.runKernel(Yi,I,N);return F([D,A,M]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m):pn((A,D,F,M)=>{let V=T.runKernel(Yi,I,N);return M([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var LA=k({fusedConv2d_:a8});function l8(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return T.runKernel($p,l,c)}var hy=k({depthwiseConv2dNativeBackpropFilter_:l8});function u8(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=T.runKernel(Rp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var gy=k({depthwiseConv2dNativeBackpropInput_:u8});function c8({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(Cc(T.state.gradientDepth,u)===!1){let N=ia(r,t,e,n,o,s,i);return a!=null&&(N=K(N,a)),Ic(N,u,l,c)}let p=C(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=C(t,\"filter\",\"depthwiseConv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),_(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]),_(Dr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Se(\"fused depthwiseConv2d\",n,i);let h=pc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=C(a,\"bias\",\"fused conv2d\"),[g]=Xt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=C(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,E)=>{_(io(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,M]=E,V=bc(N,F,u),G=gy(D.shape,V,A,e,n,s,i),W=hy(D,V,A.shape,e,n,s,i);if(M!=null){let q=wc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((E,A,D)=>{let F=T.runKernel(Zi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):pn((E,A,D,F)=>{let M=T.runKernel(Zi,w,I);return F([A,E,M,D]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m,g)}var zA=k({fusedDepthwiseConv2d_:c8});function p8({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(Cc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=K(V,o)),Ic(V,s,i,a)}let u=C(r,\"a\",\"fused matMul\"),l=C(t,\"b\",\"fused matMul\");[u,l]=Xt(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=jt(d),x=jt(h);_(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),E;o!=null&&(E=C(o,\"bias\",\"fused matMul\"),[E]=Xt(E,u),Mt(w,E.shape));let A;i!=null&&(A=C(i,\"prelu weights\",\"fused matMul\"));let D=(V,G)=>{let[W,q,H,j]=G,Y=bc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(Y,q,!1,!0),et=Bt(W,Y,!0,!1)):!e&&n?(Z=Bt(Y,q,!1,!1),et=Bt(Y,W,!0,!1)):e&&!n?(Z=Bt(q,Y,!1,!0),et=Bt(W,Y,!1,!1)):(Z=Bt(q,Y,!0,!0),et=Bt(Y,W,!0,!0)),o!=null){let nt=wc(j,Y);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},M={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?pn((G,W,q)=>{let H=T.runKernel(Xi,F,M);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):pn((G,W,q,H)=>{let j=T.runKernel(Xi,F,M);return H([G,W,j,q]),{value:R(j,w),gradFunc:D}})(I,N,E)}var BA=k({fusedMatMul_:p8});function m8(r){return xh(r,.54,.46)}var VA=k({hammingWindow_:m8});function f8(r){return xh(r,.5,.5)}var xy=k({hannWindow_:f8});function d8(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),_(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),_(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),_(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),_(o===\"bilinear\"||o===\"nearest\",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return T.runKernel(Ma,c,p)}var WA=k({cropAndResize_:g8});function x8(r){let t=C(r,\"image\",\"flipLeftRight\",\"float32\");_(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return T.runKernel(Ba,e,{})}var UA=k({flipLeftRight_:x8});function y8(r){let t=C(r,\"image\",\"grayscaleToRGB\"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),_(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Rr(t,o)}var HA=k({grayscaleToRGB_:y8});function b8(r){let t=C(r,\"image\",\"RGBToGrayscale\"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),_(n===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${n}.`);let o=t.dtype,s=J(t,\"float32\"),i=Oe([.2989,.587,.114]),a;switch(t.rank){case 2:a=wu(\"ij,j->i\",s,i);break;case 3:a=wu(\"ijk,k->ij\",s,i);break;case 4:a=wu(\"ijkl,l->ijk\",s,i);break;case 5:a=wu(\"ijklm,m->ijkl\",s,i);break;case 6:a=wu(\"ijklmn,n->ijklm\",s,i);break;default:throw new Error(\"Not a valid tensor rank.\")}return a=je(a,-1),J(a,o)}var qA=k({rgbToGrayscale_:b8});function w8(r,t,e=0,n=.5){let o=C(r,\"image\",\"rotateWithOffset\",\"float32\");_(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return T.runKernel(pl,s,i)}var KA=k({rotateWithOffset_:w8});function No(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),_(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),_(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),_(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.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:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function I8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=C(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(Ja,{boxes:s,scores:i},u)}var jA=k({nonMaxSuppression_:I8});function XA(r,t,e){let n=C8(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function C8(r,t,e){return S8(r,t,e||v8)}function v8(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function by(r,t,e,n,o){return gN(r,t,e,n,o,0)}function wy(r,t,e,n,o,s){return gN(r,t,e,n,o,0,!1,s,!0)}function Iy(r,t,e,n,o,s){return gN(r,t,e,n,o,s,!0)}function gN(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(YA);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let E=N8(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*k8(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&XA(l,g,YA))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function N8(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function k8(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function YA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function T8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=C(t,\"scores\",\"nonMaxSuppressionAsync\"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=by(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Oe(p,\"int32\")}var ZA=T8;function _8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,\"boxes\",\"nonMaxSuppression\"),a=C(t,\"scores\",\"nonMaxSuppression\"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=T.runKernel(tl,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var JA=k({nonMaxSuppressionWithScore_:_8});async function E8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=C(t,\"scores\",\"nonMaxSuppressionAsync\"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=Iy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(m,\"int32\"),selectedScores:Oe(f)}}var QA=E8;function A8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,\"boxes\",\"nonMaxSuppression\"),a=C(t,\"scores\",\"nonMaxSuppression\"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=T.runKernel(Qa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var t2=k({nonMaxSuppressionPadded_:A8});async function D8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=C(t,\"scores\",\"nonMaxSuppressionAsync\"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=wy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(d,\"int32\"),validOutputs:pt(h,\"int32\")}}var e2=D8;function $8(r,t,e=!1,n=!1){let o=C(r,\"images\",\"resizeBilinear\");_(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),_(n===!1||e===!1,()=>\"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Bs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Cy=k({resizeBilinear_:$8});function R8(r,t,e=!1,n=!1){let o=C(r,\"images\",\"resizeNearestNeighbor\");_(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),_(o.dtype===\"float32\"||o.dtype===\"int32\",()=>\"`images` must have `int32` or `float32` as dtype\"),_(n===!1||e===!1,()=>\"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(zs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var vy=k({resizeNearestNeighbor_:R8});function F8(r,t=\"binary\",e=!1,n=.5){let o=C(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=$(Oe([n]),255),c,p,m,f;if(_(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),_(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),_(o.dtype===\"int32\"||o.dtype===\"float32\",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),_(t===\"otsu\"||t===\"binary\",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=hr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=K(K(g,x),b)}else f=r;if(t===\"otsu\"){let g=Nx(J(pm(f),\"int32\"),ir([]),256);l=O8(g,u)}let d=e?Vn(f,l):Re(f,l);return J($(d,255),\"int32\")}function O8(r,t){let e=Oe([-1]),n=Oe([0]),o=Oe([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.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 u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return T.runKernel(cl,u,l)}var n2=k({transform_:M8});function P8(r,t,e){let n=C(r,\"a\",\"bandPart\");_(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2),a,u;typeof t==\"number\"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=C(t<0?s:t,\"numLower\",\"bandPart\")):(_(t.dtype===\"int32\",()=>\"bandPart(): numLower's dtype must be an int32.\"),a=Ie(yl(t,0),s,lo(t,s))),typeof e==\"number\"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=C(e<0?i:e,\"numUpper\",\"bandPart\")):(_(e.dtype===\"int32\",()=>\"bandPart(): numUpper's dtype must be an int32.\"),u=Ie(yl(e,0),i,lo(e,i)));let l=R(pa(0,s,1,\"int32\"),[-1,1]),c=pa(0,i,1,\"int32\"),p=at(l,c),m=Fr(Vn(p,a),cn(p,Ut(u))),f=ke([s,i],n.dtype);return R(Fe(gr(R(n,[-1,s,i])).map(d=>Ie(m,d,f))),o)}var o2=k({bandPart_:P8});function L8(r){let t;if(Array.isArray(r)){t=!1,_(r!=null&&r.length>0,()=>\"Gram-Schmidt process: input must not be null, undefined, or empty\");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=hr(r,r.shape[0],0).map(o=>Wn(o,[0]));_(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return i2(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=gr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=i2(u,t);o.push(l),s.push(c)});let i=R(Fe(o,0),r.shape),a=R(Fe(s,0),r.shape);return[i,a]}}function i2(r,t=!1){return T.tidy(()=>{_(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=fc(e),s=un(r),i=pi([[1]],[1,1]),a=un(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=xl(f),h=Ot(s,[l,l],[1,1]),g=Ie(Re(h,0),pi([[-1]]),pi([[1]])),x=at(h,$(g,d)),b=ut(f,x);b.shape[0]===1?a=un(i):a=ie([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ut(Bt(g,x),d)),I=Ot(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=at(I,Bt(N,Bt(E,I)));else{let F=at(I,Bt(N,Bt(E,I)));s=ie([Ot(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=at(D,Bt(Bt(D,a),A));else{let F=at(D,Bt(Bt(D,a),A));o=ie([Ot(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var a2=k({qr_:z8});var Je;(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\"})(Je||(Je={}));function B8(r,t,e=Je.SUM_BY_NONZERO_WEIGHTS){let n=C(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=C(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:$(n,o);if(e===Je.NONE)return s;if(e===Je.SUM)return mt(s);if(e===Je.MEAN){if(o==null)return Ne(s);{let i=n.size/o.size,a=ut(mt(s),mt(o));return i>1?ut(a,pt(i)):a}}if(e===Je.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ut(mt(s),pt(n.size));{let i=$(o,ar(n.shape)),a=J(mt(ci(i,pt(0))),\"float32\");return ut(mt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Kr=k({computeWeightedLoss_:B8});function V8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"absoluteDifference\"),s=C(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=C(e,\"weights\",\"absoluteDifference\")),$e(o.shape,s.shape,\"Error in absoluteDifference: \");let a=_e(at(o,s));return Kr(a,i,n)}var l2=k({absoluteDifference_:V8});function G8(r,t,e,n,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"cosineDistance\"),i=C(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=C(n,\"weights\",\"cosineDistance\")),$e(s.shape,i.shape,\"Error in cosineDistance: \");let u=pt(1),l=at(u,mt($(s,i),e,!0));return Kr(l,a,o)}var u2=k({cosineDistance_:G8});function W8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"hingeLoss\"),s=C(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=C(e,\"weights\",\"hingeLoss\")),$e(o.shape,s.shape,\"Error in hingeLoss: \");let a=pt(1);o=at($(pt(2),o),a);let u=Or(at(a,$(o,s)));return Kr(u,i,n)}var c2=k({hingeLoss_:W8});function U8(r,t,e,n=1,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"huberLoss\"),i=C(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=C(e,\"weights\",\"huberLoss\")),$e(s.shape,i.shape,\"Error in huberLoss: \");let u=pt(n),l=_e(at(i,s)),c=lo(l,u),p=at(l,c),m=K($(pt(.5),Wt(c)),$(u,p));return Kr(m,a,o)}var p2=k({huberLoss_:U8});function H8(r,t,e,n=1e-7,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"labels\",\"logLoss\"),i=C(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=C(e,\"weights\",\"logLoss\")),$e(s.shape,i.shape,\"Error in logLoss: \");let u=pt(1),l=pt(n),c=Ut($(s,Nr(K(i,l)))),p=$(at(u,s),Nr(K(at(u,i),l))),m=at(c,p);return Kr(m,a,o)}var m2=k({logLoss_:H8});function q8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,\"labels\",\"meanSquaredError\"),s=C(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=C(e,\"weights\",\"meanSquaredError\")),$e(o.shape,s.shape,\"Error in meanSquaredError: \");let a=wm(o,s);return Kr(a,i,n)}var f2=k({meanSquaredError_:q8});function K8(r,t){let e=C(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=C(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");$e(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Or(n),s=$(n,e),i=vu(Ke(Ut(_e(n))));return K(at(o,s),i)}function j8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=C(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=C(e,\"weights\",\"sigmoidCrossEntropy\")),$e(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=pt(n),c=pt(1),p=pt(.5);s=K($(s,at(c,l)),$(p,l))}let u=K8(s,i);return Kr(u,a,o)}var d2=k({sigmoidCrossEntropy_:j8});function X8(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return pn((o,s,i)=>{let u=Su(s,[e],!0),l=at(J(s,\"float32\"),u);i([o,l]);let c=Ut($(l,o));return{value:mt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=vo(f.shape,[e]);return[$(R(f,x),at(J(h,\"float32\"),Ke(g))),$(R(f,x),at(Ke(g),J(h,\"float32\")))]}}})(r,t)}function Y8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=C(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=C(e,\"weights\",\"softmaxCrossEntropy\")),$e(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=pt(n),c=pt(1),p=pt(s.shape[1]);s=K($(s,at(c,l)),ut(l,p))}let u=X8(s,i);return Kr(u,a,o)}var h2=k({softmaxCrossEntropy_:Y8});function Z8(r,t,e,n){let o=C(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=C(t,\"values\",\"sparseFillEmptyRows\"),i=C(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=C(n,\"defaultValue\",\"sparseFillEmptyRows\",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=T.runKernel(nu,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var g2=k({sparseFillEmptyRows_:Z8});function J8(r,t,e){let n=C(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=C(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=C(e,\"newShape\",\"sparseReshape\",\"int32\");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=T.runKernel(il,i);return{outputIndices:a[0],outputShape:a[1]}}var x2=k({sparseReshape_:J8});function Q8(r,t,e){let n=C(r,\"data\",\"sparseSegmentMean\"),o=C(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=C(e,\"segmentIds\",\"sparseSegmentMean\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(ou,i)}var y2=k({sparseSegmentMean_:Q8});function tY(r,t,e){let n=C(r,\"data\",\"sparseSegmentSum\"),o=C(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=C(e,\"segmentIds\",\"sparseSegmentSum\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(su,i)}var b2=k({sparseSegmentSum_:tY});function eY(r,t,e,n,o,s,i,a){let u=C(r,\"data\",\"stringNGrams\",\"string\");if(u.dtype!==\"string\")throw new Error(\"Data must be of datatype string\");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=C(t,\"dataSplits\",\"stringNGrams\");if(l.dtype!==\"int32\")throw new Error(\"Data splits must be of datatype int32\");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=T.runKernel(au,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var w2=k({stringNGrams_:eY});function rY(r,t,e=!0){let n=C(r,\"input\",\"stringSplit\",\"string\"),o=C(t,\"delimiter\",\"stringSplit\",\"string\");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=T.runKernel(lu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var I2=k({stringSplit_:rY});function nY(r,t){let e=C(r,\"input\",\"stringToHashBucketFast\",\"string\"),n={numBuckets:t};if(t<=0)throw new Error(\"Number of buckets must be at least 1\");let o={input:e};return T.runKernel(uu,o,n)}var C2=k({stringToHashBucketFast_:nY});function oY(r,t,e,n=!0){let o=C(r,\"input\",\"staticRegexReplace\",\"string\"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(ec,{x:o},s)}var v2=k({staticRegexReplace_:oY});var sY={fft:Au,ifft:wl,rfft:Du,irfft:bm},iY={hammingWindow:VA,hannWindow:xy,frame:yy,stft:GA},fn={flipLeftRight:UA,grayscaleToRGB:HA,resizeNearestNeighbor:vy,resizeBilinear:Cy,rgbToGrayscale:qA,rotateWithOffset:KA,cropAndResize:WA,nonMaxSuppression:jA,nonMaxSuppressionAsync:ZA,nonMaxSuppressionWithScore:JA,nonMaxSuppressionWithScoreAsync:QA,nonMaxSuppressionPadded:t2,nonMaxSuppressionPaddedAsync:e2,threshold:r2,transform:n2},xN={bandPart:o2,gramSchmidt:s2,qr:a2},aY={absoluteDifference:l2,computeWeightedLoss:Kr,cosineDistance:u2,hingeLoss:c2,huberLoss:p2,logLoss:m2,meanSquaredError:f2,sigmoidCrossEntropy:d2,softmaxCrossEntropy:h2},lY={sparseFillEmptyRows:g2,sparseReshape:x2,sparseSegmentMean:y2,sparseSegmentSum:b2},uY={stringNGrams:w2,stringSplit:I2,stringToHashBucketFast:C2,staticRegexReplace:v2};var Q={};Kt(Q,{Serializable:()=>yh,SerializationMap:()=>Sy,getRegisteredName:()=>pY,registerClass:()=>bN});var cY=new Map,yN=new Map,yh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Sy=class r{constructor(){this.classNameMap={}}static getMap(){return r.instance==null&&(r.instance=new r),r.instance}static register(t){r.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function bN(r,t,e){_(r.className!=null,()=>\"Class being registered does not have the static className property defined.\"),_(typeof r.className==\"string\",()=>\"className is required to be a string, but got type \"+typeof r.className),_(r.className.length>0,()=>\"Class being registered has an empty-string as its className, which is disallowed.\"),typeof t==\"undefined\"&&(t=\"Custom\"),typeof e==\"undefined\"&&(e=r.className);let n=e,o=t+\">\"+n;return Sy.register(r),cY.set(o,r),yN.set(r,o),r}function pY(r){return yN.has(r)?yN.get(r):r.className}var jr=class extends yh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return Tt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Ux(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:pt(this.iterations_,\"int32\")}}async getWeights(){throw new Error(\"getWeights() is not implemented for this optimizer yet.\")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(jr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var vc=class extends jr{static get className(){return\"Adadelta\"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=K($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ut(ge(K(l,this.epsilon)),ge(K(u,this.epsilon))),a),m=K($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=K($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};var Sc=class extends jr{static get className(){return\"Adagrad\"}constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>Co(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=K(a,Wt(i));a.assign(u);let l=K($(ut(i,ge(K(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};var Nc=class extends jr{static get className(){return\"Adam\"}constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=pt(e).variable(),this.accBeta2=pt(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=at(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=K($(c,this.beta1),$(l,1-this.beta1)),f=K($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ut(m,n),h=ut(f,o);c.assign(m),p.assign(f);let g=K($(ut(d,K(ge(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(qr(this.beta1,this.iterations_+1)),this.accBeta2.assign(qr(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};var kc=class extends jr{static get className(){return\"Adamax\"}constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=pt(0).variable(),this.accBeta1=pt(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=ut(-this.learningRate,K($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=K($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=_e(l),h=kn(f,d);c.assign(m),p.assign(h);let g=K($(ut(o,n),ut(m,K(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(K(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error(\"getWeights() is not implemented for Adamax yet.\")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};var Il=class extends jr{static get className(){return\"SGD\"}constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=T.registeredVariables[n];B(()=>{let a=K($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(pt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error(\"SGD optimizer does not have settable weights.\")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};var Tc=class extends Il{static get className(){return\"Momentum\"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=pt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=K($(this.m,i),a);this.useNesterov?u=K($(this.c,K(a,$(l,this.m))),s):u=K($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};var _c=class extends jr{static get className(){return\"RMSProp\"}constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=T.backend.epsilon()),t==null)throw new Error(\"learningRate for RMSPropOptimizer must be defined.\")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=K($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=K($(p,this.decay),$(a,1-this.decay)),f=ut($(a,this.learningRate),ge(at(c,K(Wt(m),this.epsilon)))),d=K($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=at(s,d);s.assign(h)}else{let p=K($(u,this.decay),$(Wt(a),1-this.decay)),m=K($(l,this.momentum),ut($(a,this.learningRate),ge(K(p,this.epsilon))));u.assign(p),l.assign(m);let f=at(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};var mY=[vc,Sc,Nc,kc,Tc,_c,Il];function S2(){for(let r of mY)bN(r)}var Mr={};Kt(Mr,{CompositeArrayBuffer:()=>Ur,browserFiles:()=>k2,browserHTTPRequest:()=>A2,concatenateArrayBuffers:()=>pE,copyModel:()=>NE,decodeWeights:()=>ix,decodeWeightsStream:()=>ax,encodeWeights:()=>aE,fromMemory:()=>D2,fromMemorySync:()=>NN,getLoadHandlers:()=>hE,getModelArtifactsForJSON:()=>Yp,getModelArtifactsForJSONSync:()=>H0,getModelArtifactsInfoForJSON:()=>Qi,getSaveHandlers:()=>dE,getWeightSpecs:()=>uh,http:()=>ky,isHTTPScheme:()=>Ny,listModels:()=>vE,loadWeights:()=>_2,moveModel:()=>kE,registerLoadRouter:()=>fE,registerSaveRouter:()=>mE,removeModel:()=>SE,weightsLoaderFactory:()=>vN,withSaveHandler:()=>$2,withSaveHandlerSync:()=>R2});var fY=\"model\",dY=\".json\",hY=\".weights.bin\";function N2(r){return new Promise(t=>setTimeout(t)).then(r)}var Nm=class r{constructor(t){if(!L().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(r.URL_SCHEME)&&(t=t.slice(r.URL_SCHEME.length)),(t==null||t.length===0)&&(t=fY),this.modelJsonFileName=t+dY,this.weightDataFileName=t+hY}async save(t){if(typeof document==\"undefined\")throw new Error(\"Browser downloads are not supported in this environment since `document` is not present\");let e=Ur.join(t.weightData),n=window.URL.createObjectURL(new Blob([e],{type:\"application/octet-stream\"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserDownloads.save() does not support saving model topology in binary formats yet.\");{let o=[{paths:[\"./\"+this.weightDataFileName],weights:t.weightSpecs}],s=lx(t,o),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:\"application/json\"})),a=this.modelJsonAnchor==null?document.createElement(\"a\"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=i,await N2(()=>a.dispatchEvent(new MouseEvent(\"click\"))),t.weightData!=null){let u=this.weightDataAnchor==null?document.createElement(\"a\"):this.weightDataAnchor;u.download=this.weightDataFileName,u.href=n,await N2(()=>u.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Qi(t)}}}};Nm.URL_SCHEME=\"downloads://\";var wN=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=Yp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,i])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>U0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=U0(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},gY=r=>L().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Nm.URL_SCHEME)?xY(r.slice(Nm.URL_SCHEME.length)):null;Cr.registerSaveRouter(gY);function xY(r=\"model\"){return new Nm(r)}function k2(r){return new wN(r)}function IN(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){_(u!=null&&Array.isArray(u)&&u.length>0,()=>\"promises must be a none empty array\")}function a(u,l){_(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),_(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),_(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function CN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),a=(t.onProgress==null?await Promise.all(n):await IN(n,t.onProgress,0,.5)).map(p=>p.arrayBuffer());return t.onProgress==null?await Promise.all(a):await IN(a,t.onProgress,.5,1)}function T2(r,t){var e;let n=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,o=0,s;return(e=t.onProgress)===null||e===void 0||e.call(t,0),new ReadableStream({pull:async i=>{for(var a;oCN(i,{requestInit:n}))(r,t,e)}function vN(r){return async(t,e=\"\",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x=\"quantization\"in g?g.quantization.dtype:g.dtype,b=dl[x]*jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(\", \")}. \nManifest JSON has weights with names: ${a.join(\", \")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith(\"/\")?\"\":\"/\")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=new Ur(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=ix(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var yY=\"application/octet-stream\",bY=\"application/json\",bh=class{constructor(t,e){if(this.DEFAULT_METHOD=\"POST\",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(_(typeof e.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=e.fetchFunc):this.fetch=L().platform.fetch,_(t!=null&&t.length>0,()=>\"URL path for http must not be null, undefined or empty.\"),Array.isArray(t)&&_(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=e.requestInit||{},this.loadOptions=e}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:[\"./model.weights.bin\"],weights:t.weightSpecs}],o=lx(t,n);if(e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:bY}),\"model.json\"),t.weightData!=null){let i=Ur.join(t.weightData);e.body.append(\"model.weights.bin\",new Blob([i],{type:yY}),\"model.weights.bin\")}let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Qi(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(\".pb\")?i+=\" 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.\":i+=\" Please make sure the server is serving valid JSON for this request.\",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let t=await this.loadModelJSON();return Yp(t,e=>this.loadWeights(e))}async loadStream(){let t=await this.loadModelJSON(),e=await this.getWeightUrls(t.weightsManifest),n=uh(t.weightsManifest),o=()=>T2(e,this.loadOptions);return Object.assign(Object.assign({},t),{weightSpecs:n,getWeightStream:o})}async getWeightUrls(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=wY(e),s=this.weightPathPrefix||n,i=[],a=[];for(let u of t)for(let l of u.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(l)):i.push(s+l+o);return this.weightUrlConverter&&i.push(...await Promise.all(a)),i}async loadWeights(t){let e=await this.getWeightUrls(t),n=uh(t),o=await CN(e,this.loadOptions);return[n,o]}};bh.URL_SCHEME_REGEX=/^https?:\\/\\//;function wY(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function Ny(r){return r.match(bh.URL_SCHEME_REGEX)!=null}var E2=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ny(n)):e=Ny(r),e)return ky(r,t)}return null};Cr.registerSaveRouter(E2);Cr.registerLoadRouter(E2);function ky(r,t){return new bh(r,t)}function A2(r,t){return ky(r,t)}var wh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ty=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},SN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function D2(r,t,e,n){let o=arguments;return new SN(NN(...o))}function NN(r,t,e,n){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:t,weightData:e,trainingConfig:n}))}function $2(r){return new Ty(r)}function R2(r){return new Ty(r)}var O2={};Kt(O2,{confusionMatrix:()=>F2});function IY(r,t,e){let n=C(r,\"labels\",\"confusionMatrix\"),o=C(t,\"predictions\",\"confusionMatrix\");_(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),_(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),_(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),_(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),_(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=ca(J(n,\"int32\"),e),i=ca(J(o,\"int32\"),e),a=Vt(s),u=Bt(a,i);return J(u,\"int32\")}var F2=k({confusionMatrix_:IY});var _y={};Kt(_y,{draw:()=>EY,fromPixels:()=>AY,fromPixelsAsync:()=>kY,toPixels:()=>_Y});var Ec,M2=!1;function P2(r,t=3){if(t>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 e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!=\"undefined\"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!=\"undefined\"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!=\"undefined\"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!=\"undefined\"&&r instanceof ImageBitmap)a=!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(Wp(th,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(th,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext(\"2d\").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Ec==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Ec=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Ec=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Ec.canvas.width=l,Ec.canvas.height=c,Ec.drawImage(r,0,0,l,c),p=Ec.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(r.dtype!==\"float32\"&&r.dtype!==\"int32\")throw new Error(`Unsupported type for toPixels: ${r.dtype}. Please use float32 or int32 tensors.`)}function TY(r){let t=(r==null?void 0:r.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function _Y(r,t){let e=C(r,\"img\",\"toPixels\");if(!(r instanceof Lt)){let l=e;e=J(l,\"int32\"),l.dispose()}L2(e);let[n,o]=e.shape.slice(0,2),s=e.rank===2?1:e.shape[2],i=await e.data(),a=e.dtype===\"float32\"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.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*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){M2||Wp(Qd,T.backendName)!=null&&(console.warn(\"tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead.\"),M2=!0),t.width=o,t.height=n;let l=t.getContext(\"2d\"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}function EY(r,t,e){let n=C(r,\"img\",\"draw\");if(!(r instanceof Lt)){let i=n;n=J(i,\"int32\"),i.dispose()}L2(n),TY(e==null?void 0:e.imageOptions);let o={image:n},s={canvas:t,options:e};T.runKernel(Qd,o,s)}var AY=k({fromPixels_:P2});var Ey={};Kt(Ey,{prepareAndValidate:()=>z2});function z2(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);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[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var Be={};Kt(Be,{assertParamsValid:()=>$Y,computeFlatOffset:()=>PY,computeOutShape:()=>FY,getNormalizedAxes:()=>OY,isSliceContinous:()=>MY,maskToAxes:()=>RY,parseSliceParams:()=>TN,sliceInfo:()=>LY,startForAxis:()=>K2,startIndicesWithElidedDims:()=>U2,stopForAxis:()=>j2,stopIndicesWithElidedDims:()=>H2,stridesForAxis:()=>q2,stridesWithElidedDims:()=>V2});var kN=-2,DY=-1;function $Y(r,t,e){let n=r.shape.length;_(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),_(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function RY(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function FY(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=U2(i,f,d,n,r),p=H2(a,f,d,o,r),m=V2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=G2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=G2(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=kp(0,i,u-1),i}function j2(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=kp(0,i,u):i=kp(-1,i,u-1),i}function MY(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function PY(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{_(i!==-1,()=>\"slice() does not support negative begin indexing.\")});let s;return e==null?s=new Array(o).fill(-1):typeof e==\"number\"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(_(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function LY(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&i&i-1)throw new Error(\"Multiple ellipses in slice is not allowed.\");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(I&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=B2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=B2(m.end[w],1,m.strides[w],N,E,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&D,d=d&&(w===0&&m.strides[w]===1||D);let F,M=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],M=!0):I?(F=1,M=!0):D&&N>=0&&(m.strides[w]<0?F=-N:F=N,M=!0),M){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[I]):I===kN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==kN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function zY(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var X2=\"4.21.0\";var Ih=class{static sgd(t){return new Il(t)}static momentum(t,e,n=!1){return new Tc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new _c(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Nc(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new vc(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new kc(t,e,n,o,s)}static adagrad(t,e=.1){return new Sc(t,e)}};var Ac=Ih;var BY=typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r();function Ch(){return new Promise(r=>BY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>eZ,ERF_A2:()=>rZ,ERF_A3:()=>nZ,ERF_A4:()=>oZ,ERF_A5:()=>sZ,ERF_P:()=>tZ,PARALLELIZE_THRESHOLD:()=>Ay,RowPartitionType:()=>ma,SELU_SCALE:()=>EN,SELU_SCALEALPHA:()=>_N,applyActivation:()=>Ic,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>w6,assertParamsConsistent:()=>VY,assignToTypedArray:()=>pZ,axesAreInnerMostDims:()=>eN,calculateShapes:()=>RA,checkEinsumDimSizes:()=>xZ,checkPadOnDimRoundingMode:()=>Se,combineLocations:()=>zE,combineRaggedTensorToTensorShapes:()=>WY,complexWithEvenIndex:()=>lZ,complexWithOddIndex:()=>uZ,computeConv2DInfo:()=>pc,computeConv3DInfo:()=>AE,computeDefaultPad:()=>tN,computeDilation2DInfo:()=>bj,computeOptimalWindowSize:()=>KY,computeOutAndReduceShapes:()=>rN,computeOutShape:()=>GY,computePool2DInfo:()=>Q0,computePool3DInfo:()=>wj,convertConv2DDataFormat:()=>DE,decodeEinsumEquation:()=>hZ,eitherStridesOrDilationsAreOne:()=>Dr,expandShapeToKeepDim:()=>vo,exponent:()=>fZ,exponents:()=>mZ,fromStringArrayToUint8:()=>LZ,fromUint8ToStringArray:()=>PZ,getAxesPermutation:()=>nN,getBroadcastDims:()=>PE,getComplexWithIndex:()=>cZ,getEinsumComputePath:()=>yZ,getEinsumPermutation:()=>gZ,getFusedBiasGradient:()=>wc,getFusedDyActivation:()=>bc,getImageCenter:()=>jY,getInnerMostAxes:()=>I6,getPermuted:()=>YY,getRaggedRank:()=>HY,getReductionAxes:()=>we,getReshaped:()=>XY,getReshapedPermuted:()=>ZY,getRowPartitionTypesHelper:()=>UY,getSliceBeginCoords:()=>JY,getSliceSize:()=>QY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>CZ,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>vZ,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>SZ,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>TZ,getSparseReshapeInputOutputMismatchErrorMessage:()=>EZ,getSparseReshapeInputOutputMultipleErrorMessage:()=>_Z,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>NZ,getSparseReshapeNegativeOutputDimErrorMessage:()=>kZ,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>RZ,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>AZ,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>DZ,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>$Z,getUndoAxesPermutation:()=>fh,isIdentityPermutation:()=>bZ,log:()=>mK,mergeRealAndImagArrays:()=>iZ,prepareAndValidate:()=>z2,prepareSplitSize:()=>IZ,segment_util:()=>DN,shouldFuse:()=>Cc,slice_util:()=>Be,splitRealAndImagArrays:()=>aZ,stridesOrDilationsArePositive:()=>na,tupleValuesAreOne:()=>io,upcastType:()=>ur,validateDefaultValueShape:()=>qY,validateInput:()=>Im,validateUpdateShape:()=>fN,warn:()=>Ji});function VY(r,t){let e=r[0].length;r.forEach((o,s)=>{_(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),_(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function GY(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function UY(r){let t={FIRST_DIM_SIZE:ma.FIRST_DIM_SIZE,VALUE_ROWIDS:ma.VALUE_ROWIDS,ROW_LENGTHS:ma.ROW_LENGTHS,ROW_SPLITS:ma.ROW_SPLITS,ROW_LIMITS:ma.ROW_LIMITS,ROW_STARTS:ma.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function HY(r){return r.length===0?0:r[0]===ma.FIRST_DIM_SIZE?r.length-1:r.length}function qY(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var Ay=30;function KY(r){return r<=Ay?r:_p(r,Math.floor(Math.sqrt(r)))}function jY(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function XY(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function ZY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",dZ=/->/g,Y2=\",\",Z2=\"...\";function hZ(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(dZ,\"\").length)/AN.length;if(e<1)throw new Error(\"Equations without an arrow are not supported.\");if(e>1)throw new Error(`Equation must contain exactly one arrow (\"${AN}\").`);let[n,o]=r.split(AN);_(n.indexOf(Z2)===-1,()=>`The ellipsis notation (\"${Z2}\") is not supported yet.`);let s=n.split(Y2),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error(\"Support for more than 2 input tensors is not implemented yet.\");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function xZ(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function yZ(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function wZ(r,t){let e=[];for(let n=0;n\"Number of splits must evenly divide the axis.\"),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);_(o<=1,()=>\"There should be only one negative value in split array.\");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}_(r.shape[e]===t.reduce((i,a)=>i+a),()=>\"The sum of sizes must match the size of the axis dimension.\"),n=t}return n}function CZ(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function vZ(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function SZ(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function NZ(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function kZ(r,t){return`size ${r} must be non-negative, not ${t}`}function TZ(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function _Z(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a SparseTensor with ${e}\n dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function EZ(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function AZ(){return\"segment ids must be >= 0\"}function DZ(){return\"segment ids are not increasing\"}function $Z(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function RZ(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var DN={};Kt(DN,{collectGatherOpShapeInfo:()=>MZ,computeOutShape:()=>OZ,segOpComputeOptimalWindowSize:()=>FZ});function FZ(r,t){let e=!1,n;for(r<=Ay?(n=r,e=!0):n=_p(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=_p(r,n+1);return n}function OZ(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(eKp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function LZ(r){return r.map(t=>fu(t))}var Xr={};Kt(Xr,{nonMaxSuppressionV3Impl:()=>by,nonMaxSuppressionV4Impl:()=>wy,nonMaxSuppressionV5Impl:()=>Iy,whereImpl:()=>fy});S2();var Dy={kernelName:Ai,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,So(J(e,\"float32\"),-1))}}};var J2={kernelName:Go,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(J(e,\"float32\")),o=ge(at(pt(1),n));return Ut(ut(r,o))}}}};var Q2={kernelName:Wo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ge(at(Wt(J(e,\"float32\")),1));return ut(r,n)}}}};var tD={kernelName:no,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=we(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=we(n.shape,o);return u.length>0&&(a=mt(a,u)),R(a,n.shape)}}}};var eD={kernelName:Uo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var rD={kernelName:Di,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var nD={kernelName:$i,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var oD={kernelName:Ho,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,ge(at(pt(1),Wt(J(e,\"float32\")))))}}};var sD={kernelName:qo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ge(K(pt(1),Wt(J(e,\"float32\"))));return ut(r,n)}}}};var iD={kernelName:Xo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=K(Wt(e),Wt(n)),u=$(r,ut(n,a)),l=we(e.shape,o);return l.length>0&&(u=mt(u,l)),R(u,e.shape)},b:()=>{let a=K(Wt(e),Wt(n)),u=Ut($(r,ut(e,a))),l=we(n.shape,o);return l.length>0&&(u=mt(u,l)),R(u,n.shape)}}}};var aD={kernelName:Ko,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,K(Wt(J(e,\"float32\")),1))}}};var lD={kernelName:jo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,at(pt(1),Wt(J(e,\"float32\"))))}}};function zZ(r,t,e,n,o,s){let i=C(r,\"dy\",\"avgPool3dGrad\"),a=C(t,\"input\",\"avgPool3dGrad\"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),_(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),_(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Se(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Hl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var uD=k({avgPool3dGrad_:zZ});var cD={kernelName:Ri,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>uD(r,n,o,s,i,a)}}};function BZ(r,t,e,n,o){let s=C(r,\"dy\",\"avgPoolGrad\"),i=C(t,\"input\",\"avgPoolGrad\");_(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),_(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=T.runKernel(Ul,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var pD=k({avgPoolGrad_:BZ});var mD={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>pD(r,n,o,s,i)}}};var fD={kernelName:Zo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var dD={kernelName:Fi,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>Tu(r,n,o)}}};var hD={kernelName:__,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>mt(r,a,!0)}}};var gD={kernelName:fo,gradFunc:r=>({x:()=>r.clone()})};var xD={kernelName:Jo,gradFunc:r=>({x:()=>vt(r)})};var yD={kernelName:ho,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>Ie(Fr(cn(n,o),Vn(n,s)),r,vt(r))}}};var bD={kernelName:Kl,inputsToSave:[\"x\"],gradFunc:Dy.gradFunc};var wD={kernelName:Oi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return hr(r,i,s).map(u=>()=>u)}};var ID={kernelName:Qo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(io(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>nm(n.shape,r,o,i,a,u),filter:()=>Sm(n,r,o.shape,i,a,u)}}};var CD={kernelName:ts,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Nn(r,o,s,i,a,1,u),filter:()=>Sm(r,n,o.shape,s,i,a,u)}}};function VZ(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(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}.`),_(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),_(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),_(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return T.runKernel(Ra,a,u)}var vD=k({conv3DBackpropFilter_:VZ});var SD={kernelName:es,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(io(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>$x(i.shape,r,a,o,s),filter:()=>vD(i,r,a.shape,o,s)}}};var ND={kernelName:rs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(hm(J(e,\"float32\"))),r)}}};var kD={kernelName:ns,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(gm(J(e,\"float32\")),r)}}};var TD={kernelName:os,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=nN([o],n.rank),u=im(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var _D={kernelName:ss,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(io(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return _(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),_(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),_(Dr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Se(\"depthwiseConv2d\",s,i),{x:()=>gy(u.shape,r,l,o,s,a,i),filter:()=>hy(u,r,l.shape,o,s,a,i)}}};var ED={kernelName:is,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>T.runKernel(Yl,s,e),filter:()=>T.runKernel(Zl,i,e)}}};var AD={kernelName:ls,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(La,n)}}};var DD={kernelName:us,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(Ke(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var $D={kernelName:cs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var RD={kernelName:Mi,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var FD={kernelName:ps,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Ke(e))}}};var OD={kernelName:ms,gradFunc:r=>({x:()=>vt(r)})};var MD={kernelName:fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ut(r,J(n,\"float32\")),u=we(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,\"float32\")),u=we(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ut(a,J(l,\"float32\")))}}}};var PD={kernelName:ds,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?pt(1):a,l=we(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Rr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,pt(-1)),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=mt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=mt(I,l)),R(I,s.shape)}}}};var BD={kernelName:Pi,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s,batchDims:i}=e,a=fr(s,n.shape)[0],u=(l,c,p)=>()=>{let m=l.shape,f=c.size,d=m.slice(0,a),h=d.length,g=m.slice(s,m.length).slice(1),x=g.length,b=LD(0,h),w=LD(h+1,h+1+x),I=zD([d,[f],g]),N=R(p,I),E=R(c,[f]),A=zD([[h],b,w]),D=Vt(N,A),F=vm(D,E,l.shape[a]),M=fh(A);return F=Vt(F,M),F};if(i===1){let l=n.shape[0],c=n.split(l,0);return{x:()=>Fe(c.map((f,d)=>u(f,o.slice(d,1),r.slice(d,1))())).reshape(n.shape),indices:()=>o}}else return{x:u(n,o,r),indices:()=>o}}};function LD(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var GD={kernelName:go,gradFunc:r=>({x:()=>J(r,\"float32\")})};var WD={kernelName:gs,gradFunc:r=>({x:()=>vt(r)})};var UD={kernelName:xs,gradFunc:r=>({x:()=>vt(r)})};var HD={kernelName:ys,gradFunc:r=>({x:()=>vt(r)})};var qD={kernelName:bs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>Ie(s,r,$(r,o))}}};var KD={kernelName:Is,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,K(e,1))}}};var jD={kernelName:ws,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,J(e,\"float32\"))}}};var XD={kernelName:A_,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=Ke(n);return at(r,$(mt(r,o,!0),i))}}}};function GZ(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return T.runKernel(Xa,a,u)}var YD=k({localResponseNormalizationBackprop_:GZ});var ZD={kernelName:Cs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>YD(n,o,r,s,i,a,u)}}};function $y(r,t,e,n){return t.rank$(r,J($r(e,t),r.dtype))}}var $N={kernelName:vs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var JD={kernelName:Ss,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(cn(e,n),\"float32\")),b:()=>$(r,J(yl(e,n),\"float32\"))}}};function WZ(r,t,e,n,o,s,i){let a=C(r,\"dy\",\"maxPool3dGrad\"),u=C(t,\"input\",\"maxPool3dGrad\"),l=C(e,\"output\",\"maxPool3dGrad\"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.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}.`),_(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Se(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(tu,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var QD=k({maxPool3dGrad_:WZ});var t$={kernelName:Li,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>QD(r,n,o,s,i,a,u)}}};function UZ(r,t,e,n,o,s,i){let a=C(r,\"dy\",\"maxPoolGrad\"),u=C(t,\"input\",\"maxPoolGrad\"),l=C(e,\"output\",\"maxPoolGrad\");_(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),_(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),_(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Se(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(Ql,c,p)}var e$=k({maxPoolGrad_:UZ});var r$={kernelName:Ns,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>e$(r,n,o,s,i,a)}}};var n$={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=rN(n.shape,s)[1],u=jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ut($(p,ar(n.shape,\"float32\")),u)}}}};var o$={kernelName:Ts,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var s$={kernelName:_s,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(Vn(e,n),\"float32\")),b:()=>$(r,J(Re(e,n),\"float32\"))}}};var i$={kernelName:Es,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var a$={kernelName:As,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=we(e.shape,o);return a.length>0?R(mt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(la(ut(e,n)))),u=we(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var l$={kernelName:Ds,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,J(n,\"float32\")),u=we(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,\"float32\")),u=we(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var u$={kernelName:zi,gradFunc:r=>({x:()=>Ut(r)})};var c$={kernelName:$s,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>ke(e.shape,\"float32\")}}};var p$={kernelName:Bi,gradFunc:r=>({x:()=>vt(r)})};var m$={kernelName:Vi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return gr(r,n).map(s=>()=>s)}};var RN={kernelName:Rs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var f$={kernelName:Fs,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=J(i,\"float32\"),p=$(r,$(c,qr(s,at(c,pt(1))))),m=we(s.shape,a);return m.length>0&&(p=mt(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=Ie(c,Nr(s),vt(s)),m=$(r,$(o,p)),f=we(i.shape,a);return f.length>0&&(m=mt(m,f)),R(m,i.shape)}}}};var d$={kernelName:Os,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>Ie(o,r,$(r,n)),alpha:()=>{let s=Ie(o,vt(r),$(r,e)),i=we(n.shape,r.shape);return i.length>0&&(s=mt(s,i)),R(s,n.shape)}}}};function HZ(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=mc(r,e,!0,!1),i=mc(r,e,!0,!0),a=$(s,i);return $(o,a)}function qZ(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=HZ(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var h$={kernelName:Ms,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o==\"number\"?s=[o]:s=o,{x:()=>qZ(n,r,s)}}};var g$={kernelName:as,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ut(r,J(n,\"float32\")),u=we(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,\"float32\")),u=we(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ut(a,J(l,\"float32\")))}}}};var x$={kernelName:Ps,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,Ut(Wt(e)))}}};var y$={kernelName:Vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=$(Vn(e,6),So(e));return{x:()=>$(r,J(n,\"float32\"))}}};var b$={kernelName:Ls,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,J(So(e),\"float32\"))}}};var w$={kernelName:Gi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var I$={kernelName:Bs,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(rl,o,e)}}};var C$={kernelName:zs,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(el,o,e)}}};var v$={kernelName:Gs,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>dr(r,o)}}};var S$={kernelName:Ws,gradFunc:r=>({x:()=>vt(r)})};var N$={kernelName:Us,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ut(r,$(qr(e,1.5),2)))}}};var k$={kernelName:Wi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(vt(e),\"float32\"),t:()=>$(r,J(e,r.dtype)),e:()=>$(r,J(Nu(e),r.dtype))}}};var T$={kernelName:Hs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,pt(0)),o=pt(_N),s=pt(EN),i=$(r,s),a=$($(r,o),Ke(J(e,\"float32\")));return Ie(n,i,a)}}}};var _$={kernelName:Xs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,at(pt(1),e)))}}};var E$={kernelName:js,gradFunc:r=>({x:()=>vt(r)})};var A$={kernelName:qs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(bu(J(e,\"float32\")),r)}}};var D$={kernelName:Ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(sm(J(e,\"float32\")),r)}}};var $$={kernelName:Ui,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=TN(n,o,s),l=[];for(let c=0;cmn(r,l)}}};var R$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>at(i,$(mt(i,[o],s),n))}}};var F$={kernelName:Ys,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,en(e))}}};var FN={kernelName:Hi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>yu(r,n,o)}}};var ON={kernelName:qi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ie(r,n)}}};var O$={kernelName:Zs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,$(ge(J(e,\"float32\")),2))}}};var M$={kernelName:iu,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(J(e,\"float32\"),2))}}};var P$={kernelName:ti,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=pt(2);return{a:()=>$(r,$(o,at(e,n))),b:()=>$(r,$(o,at(n,e)))}}};var L$={kernelName:xo,gradFunc:r=>({x:()=>vt(r)})};var z$={kernelName:ei,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=we(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=we(n.shape,o);return u.length>0&&(a=mt(a,u)),R(Ut(a),n.shape)}}}};var B$={kernelName:Js,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,ar(n.shape,\"float32\"));return{x:()=>u}}};var V$={kernelName:ri,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,Wt(bu(e)))}}};var G$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(at(pt(1),Wt(e)),r)}}};var W$={kernelName:oo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=fh(o);return{x:()=>Vt(r,s)}}};var H$={kernelName:Ki,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>Fe(r,o)}}};var q$={kernelName:pu,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>KZ(r,e)}}};function KZ(r,t){let e=kn(t,vt(t)),n=ua(r,e),o=cn(t,pt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var jZ=[Dy,J2,Q2,tD,eD,rD,nD,oD,sD,iD,aD,lD,cD,mD,fD,dD,hD,gD,xD,yD,bD,wD,CD,ID,SD,ND,kD,TD,_D,ED,g$,AD,DD,$D,RD,FD,MD,OD,PD,BD,VD,GD,WD,UD,HD,qD,KD,jD,XD,ZD,$N,$N,JD,t$,r$,n$,o$,s$,i$,a$,l$,u$,c$,p$,m$,RN,RN,f$,d$,h$,x$,y$,b$,w$,I$,C$,v$,S$,N$,k$,T$,_$,E$,A$,D$,$$,R$,F$,FN,FN,ON,ON,O$,P$,M$,L$,z$,B$,V$,G$,W$,U$,H$,q$,K$];for(let r of jZ)$_(r);O().prototype.abs=function(){return this.throwIfDisposed(),_e(this)};O().prototype.acos=function(){return this.throwIfDisposed(),fx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),K(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),tm(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),cc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),ra(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),hx(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),_(this.size===1,()=>\"The array must have only 1 element.\"),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),gx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),xx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),yx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),bx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),wx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),xu(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),yu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),oa(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),sa(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),kx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),vr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Lt&&(r=[r]),ie([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),rm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),om(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Nn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),bu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),sm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),mc(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),im(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),ia(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ox(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Mx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ut(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Px(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),aa(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),am(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Lx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),Ke(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),je(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),zx(this)};O().prototype.fft=function(){return this.throwIfDisposed(),Au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),la(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Qp(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),ua(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),cn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),wl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),bm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Bx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Vx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Cu(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Vn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),yl(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Wx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),qx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),lm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),Su(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),vu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Nu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),um(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ku(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),kn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Ne(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),gl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),lo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Yx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Zx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),xl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),ci(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ca(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),wr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),mn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),qr(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Qx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),sy(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Or(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),cm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),Cy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),vy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),dr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Du(this)};O().prototype.round=function(){return this.throwIfDisposed(),pm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),mm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),fm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),dm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),en(this)};O().prototype.sign=function(){return this.throwIfDisposed(),iy(this)};O().prototype.sin=function(){return this.throwIfDisposed(),hm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),gm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Eu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),ui(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),Tu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),hr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),ge(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),wm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Wn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Lt?[this,r]:[this,...r];return Fe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),So(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ay(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),at(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),mt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ly(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),li(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),cy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),py(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),vm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),gr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),Ie(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var uo=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},dn=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},z=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},_t=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},Ry=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}};var vh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var ko={};function km(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function MN(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>MN(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n==\"object\"&&(!Array.isArray(n)&&n.type===\"ndarray\"&&typeof n.value==\"number\"?r[e]=n.value:MN(n))}}}function fa(r,t={},e={},n=\"object\",o=!1){if(typeof r==\"string\"){let s=r,i;if(s in e)i=e[s];else if(s in ko)i=ko[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new z(`${n}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in ko?[a,u]=ko.className:i in t&&([a,u]=t[i]),a==null)throw new z(`Unknown ${n}: ${i}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(ko))l[f]=ko[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},ko);for(let f of Object.keys(e))ko[f]=e[f];MN(s.config);let m=u(a,s.config,e,o);return ko=Object.assign({},p),m}else{let l=Object.assign({},ko);for(let p of Object.keys(e))ko[p]=e[p];let c=new a(s.config);return ko=Object.assign({},l),c}}}function XZ(r,t){return rt?1:0}function Sh(r,t){return-1*XZ(r,t)}function Eo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function j$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function da(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Fy(r,t,e=0,n=1/0){return co(e>=0),co(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function tr(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>tr(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${X$(r)}.`)}function X$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>X$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function Y$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return Tm.set(e,1),e}else return r}var JZ=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function oR(r){return!!r.match(JZ)}function sR(r){return r===parseInt(r.toString(),10)}function Ao(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function gn(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=Sl(r,1);return Vy(e,[1,t,1])})}function aR(r){let t=[Ao(r.shape)];return R(r,t)}function lR(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Ao(r.shape,1)];return R(r,t)}function vl(r,t,e){return B(()=>{switch(r.rank){case 1:return xm(r,t,e);case 2:return gh(r,[t,0],[e,r.shape[1]]);case 3:return ym(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return yc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(r,[t,0,0,0,0,0],[e,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 BN(r,t,e){return B(()=>{switch(r.rank){case 1:return xm(r,t,e);case 2:return gh(r,[0,t],[r.shape[0],e]);case 3:return ym(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return yc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function kh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return xm(r,t,e);case 2:switch(n){case 1:return vl(r,t,e);case 2:return BN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return vl(r,t,e);case 2:return ym(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return BN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return vl(r,t,e);case 2:return yc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return yc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return BN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function _m(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ie(r,t)}function GN(r,t){switch(r.rank){case 1:return Tx([r,t]);case 2:return _x([r,t],0);case 3:return Ex([r,t],0);case 4:return Ax([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Vy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Rr(r,t)}function Em(r,t=0,e=1,n,o){return xc(r,t,e,n,o)}function Do(r,t,e,n){if(r.rank<2||t.rank<2)throw new _t(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new _t(`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 = ${t.shape}`)}if(r.rank===2&&t.rank===2)return Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?VN(r.rank,n,xn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Vt(t,c),[u,-1]);let p=[...o,...l];return R(Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?VN(r.rank,n,xn()):null,activation:e}),p)}}function Gy(r,t,e){return B(()=>(Array.isArray(t)?t=Oe(t,\"int32\"):t=J(t,\"int32\"),ua(r,t,e)))}function $c(r){return $(r,r)}function VN(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function yn(r,t,e){return B(()=>(e==null&&(e=xn()),Me(e),K(r,VN(r.rank,t,e))))}function uR(r,t=1){if(t!==1)throw new _t(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return aa(r)}function cR(r){return B(()=>ut(r,K(_e(r),1)))}function Wy(r,t,e,n){return B(()=>dN(r,t,e,n))}function pR(r){return B(()=>{let t=K(.5,$(.2,r));return vr(t,0,1)})}function Ou(r,t,e=!1){return e?r():t()}var mR=[\"fanIn\",\"fanOut\",\"fanAvg\"],fR=[\"normal\",\"uniform\",\"truncatedNormal\"];function QZ(r){da(mR,\"FanMode\",r)}function t7(r){da(fR,\"Distribution\",r)}var bn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Am=class extends bn{apply(t,e){return ke(t,e)}};Am.className=\"Zeros\";Q.registerClass(Am);var Mu=class extends bn{apply(t,e){return ar(t,e)}};Mu.className=\"Ones\";Q.registerClass(Mu);var Dm=class extends bn{constructor(t){if(super(),typeof t!=\"object\")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>$(pt(this.value),ar(t,e)))}getConfig(){return{value:this.value}}};Dm.className=\"Constant\";Q.registerClass(Dm);var $m=class extends bn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return Gn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};$m.className=\"RandomUniform\";Q.registerClass($m);var Rm=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new _t(`randomNormal does not support dType ${e}.`);return Em(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Rm.className=\"RandomNormal\";Q.registerClass(Rm);var Fm=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new _t(`truncatedNormal does not support dType ${e}.`);return Cm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Fm.className=\"TruncatedNormal\";Q.registerClass(Fm);var Om=class extends bn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new z(\"Identity matrix initializer can only be used for 2D square matrices.\");return $(this.gain,fc(t[0]))})}getConfig(){return{gain:this.gain}}};Om.className=\"Identity\";Q.registerClass(Om);function e7(r,t=\"channelsLast\"){let e,n;if(Me(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=Ao(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=Ao(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Ao(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Yr=class extends bn{constructor(t){if(super(),t.scale<0)throw new z(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?\"fanIn\":t.mode,QZ(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,t7(this.distribution),this.seed=t.seed}apply(t,e){let n=e7(t),o=n[0],s=n[1],i=this.scale;if(this.mode===\"fanIn\"?i/=Math.max(1,o):this.mode===\"fanOut\"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution===\"normal\"){let a=Math.sqrt(i);if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new _t(`${this.getClassName()} does not support dType ${e}.`);return Cm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Gn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Yr.className=\"VarianceScaling\";Q.registerClass(Yr);var Rc=class extends Yr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Rc.className=\"GlorotUniform\";Q.registerClass(Rc);var Fc=class extends Yr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Fc.className=\"GlorotNormal\";Q.registerClass(Fc);var Oc=class extends Yr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Oc.className=\"HeNormal\";Q.registerClass(Oc);var Mc=class extends Yr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Mc.className=\"HeUniform\";Q.registerClass(Mc);var Pc=class extends Yr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Pc.className=\"LeCunNormal\";Q.registerClass(Pc);var Lc=class extends Yr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Lc.className=\"LeCunUniform\";Q.registerClass(Lc);var Mm=class extends bn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new _t(\"Shape must be at least 2D.\");if(e!==\"int32\"&&e!==\"float32\"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=Em(i,0,1,e,this.seed),u=xN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var xR=\"Variable\",Th=class{constructor(t,e=\"float32\",n=xR,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=Py(),n=n==null?xR:n,this.originalName=Ly(n),this.name=zy(this.originalName),this.trainable_=o,this.constraint=s,this.val=my(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),n7(this.val,t),this.val.id!==t.id&&(this.val.assign(t),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(t){this.trainable_=t,this.val.trainable=t}};function n7(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function _h(r){return r.map(t=>t.read())}function zm(r){r.forEach(t=>{t[0].write(t[1])})}var Ce=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},nn=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=Py(),i!=null&&(this.originalName=Ly(i),this.name=zy(this.originalName)),this.rank=e.length}},o7=0,Nl=class{constructor(t,e){this.callArgs=e,this.id=o7++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},s7=0,Et=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=s7++,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 e=t.name;if(!e){let n=this.getClassName();e=_o(n)+\"_\"+Fu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o=\"float32\"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+\"_ib-\"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new dn(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return kr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return kr(this.getNodeAtIndex(t,\"output\").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new uo(`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 uo(`Layer ${this.name} is not connected, no input to return.`);return kr(this.getNodeAtIndex(0,\"input\").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new uo(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new uo(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer output\" is ill-defined. Use \\`getOutputAt(nodeIndex)\\` instead.`);return kr(this.getNodeAtIndex(0,\"output\").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){let e=ue(t);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=ue(this.inputSpec);if(e.length!==n.length)throw new z(`Layer ${this.name} expects ${n.length} inputs, but it received ${e.length} input tensors. Input received: ${t}`);for(let o=0;oi.maxNDim)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${a}`);if(i.minNDim!=null&&a=0?u[c]:u[u.length+c];if(p!=null&&[p,null].indexOf(m)===-1)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected axis ${c} of input shape to have value ${p} but got shape ${u}.`)}}if(i.shape!=null)for(let u=0;u{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of ue(t))i.push(a.shape);this.build(kr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e);this.supportsMasking&&this.setMaskMetadata(t,i);let a=ue(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=kr(u),this.activityRegularizer!=null)throw new _t(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=i7(t),a=this.computeOutputShape(i),u,l=a7(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new nn(l,c,this,ue(t),e,this.name,p)):u=new nn(l,a,this,ue(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new _t(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) 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 uo(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new uo(`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 dn(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Lm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return _h(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`You called setWeights(weights) on layer \"${this.name}\" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=_h(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=ue(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.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 e}setMaskMetadata(t,e,n){if(!this.supportsMasking)return;let o=this.computeMask(t,n),s=ue(e),i=ue(o);if(s.length!==i.length)throw new Error(`${this.name} outputs ${s.length} tensors but ${s.length} masks for those tensors`);for(let a=0;at.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 t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function i7(r){r=ue(r);let t=[];for(let e of r)t.push(e.shape);return kr(t)}function a7(r){return\"float32\"}function WN(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(\",\")+\"|\"+t.names().sort().join(\",\"),p=qy.get(c),m;if(p==null){let d=p7(i,t);p=d.sorted,m=d.recipientCounts,qy.put(c,p),Ky.put(c,m)}m={},o||Object.assign(m,Ky.get(c));let f=new ha(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>\"Expected at least one fetch, got none\");let e=[],n={};if(r.length===1){let o=yR(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=yR(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:m7(n)}}function m7(r){let t={};for(let e in r)t[e]=r[e].size;return t}function yR(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function f7(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,bR);var CR={};Kt(CR,{maxNorm:()=>h7,minMaxNorm:()=>y7,nonNeg:()=>x7,unitNorm:()=>g7});function UN(r,t){return B(()=>ge(mt($(r,r),t,!0)))}var Bc=class extends Q.Serializable{getConfig(){return{}}},Bm=class extends Bc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=UN(t,this.axis),n=vr(e,0,this.maxValue);return $(t,ut(n,K(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Bm.className=\"MaxNorm\";Q.registerClass(Bm);var Vm=class extends Bc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ut(t,K(cr(),UN(t,this.axis))))}getConfig(){return{axis:this.axis}}};Vm.className=\"UnitNorm\";Q.registerClass(Vm);var Gm=class extends Bc{apply(t){return Or(t)}};Gm.className=\"NonNeg\";Q.registerClass(Gm);var Wm=class extends Bc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=UN(t,this.axis),n=K($(this.rate,vr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ut(n,K(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Wm.className=\"MinMaxNorm\";Q.registerClass(Wm);var wR={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function Ve(r){return km(r)}function IR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Ge(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in wR?wR[r]:r,config:{}};return IR(e)}else return r instanceof Bc?r:IR(r)}function h7(r){return new Bm(r)}function g7(r){return new Vm(r)}function x7(){return new Gm}function y7(r){return new Wm(r)}var vR={};Kt(vR,{constant:()=>I7,glorotNormal:()=>_7,glorotUniform:()=>T7,heNormal:()=>E7,heUniform:()=>A7,identity:()=>N7,leCunNormal:()=>D7,leCunUniform:()=>$7,ones:()=>w7,orthogonal:()=>R7,randomNormal:()=>v7,randomUniform:()=>C7,truncatedNormal:()=>S7,varianceScaling:()=>k7,zeros:()=>b7});function b7(){return new Am}function w7(){return new Mu}function I7(r){return new Dm(r)}function C7(r){return new $m(r)}function v7(r){return new Rm(r)}function S7(r){return new Fm(r)}function N7(r){return new Om(r)}function k7(r){return new Yr(r)}function T7(r){return new Rc(r)}function _7(r){return new Fc(r)}function E7(r){return new Oc(r)}function A7(r){return new Mc(r)}function D7(r){return new Pc(r)}function $7(r){return new Lc(r)}function R7(r){return new Mm(r)}var oF={};Kt(oF,{Layer:()=>Et,RNN:()=>po,RNNCell:()=>Tl,activation:()=>JJ,add:()=>a9,alphaDropout:()=>U9,average:()=>l9,averagePooling1d:()=>ok,averagePooling2d:()=>sk,averagePooling3d:()=>ik,avgPool1d:()=>x9,avgPool2d:()=>b9,avgPool3d:()=>I9,avgPooling1d:()=>y9,avgPooling2d:()=>w9,avgPooling3d:()=>C9,batchNormalization:()=>d9,bidirectional:()=>M9,categoryEncoding:()=>X9,centerCrop:()=>K9,concatenate:()=>u9,conv1d:()=>WJ,conv2d:()=>UJ,conv2dTranspose:()=>HJ,conv3d:()=>qJ,conv3dTranspose:()=>KJ,convLstm2d:()=>$9,convLstm2dCell:()=>R9,cropping2D:()=>XJ,dense:()=>QJ,depthwiseConv2d:()=>ZJ,dot:()=>f9,dropout:()=>t9,elu:()=>PJ,embedding:()=>i9,flatten:()=>r9,gaussianDropout:()=>W9,gaussianNoise:()=>G9,globalAveragePooling1d:()=>v9,globalAveragePooling2d:()=>S9,globalMaxPool1d:()=>L9,globalMaxPool2d:()=>z9,globalMaxPooling1d:()=>tF,globalMaxPooling2d:()=>eF,gru:()=>k9,gruCell:()=>T9,input:()=>JN,inputLayer:()=>MJ,layerNormalization:()=>h9,leakyReLU:()=>zJ,lstm:()=>_9,lstmCell:()=>E9,masking:()=>H9,maxPool1d:()=>B9,maxPool2d:()=>V9,maxPooling1d:()=>rF,maxPooling2d:()=>nF,maxPooling3d:()=>N9,maximum:()=>c9,minimum:()=>p9,multiply:()=>m9,permute:()=>s9,prelu:()=>BJ,randomWidth:()=>Y9,reLU:()=>LJ,repeatVector:()=>n9,rescaling:()=>q9,reshape:()=>o9,resizing:()=>j9,rnn:()=>F9,separableConv2d:()=>jJ,simpleRNN:()=>A9,simpleRNNCell:()=>D9,softmax:()=>VJ,spatialDropout1d:()=>e9,stackedRNNCells:()=>O9,thresholdedReLU:()=>GJ,timeDistributed:()=>P9,upSampling2d:()=>YJ,zeroPadding2d:()=>g9});async function ga(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!=\"number\"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sK(this.totals[o],$(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]==\"number\"?e[n]=this.totals[n]/this.seen:B(()=>{let o=$(ut(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Yy=class extends kl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew Zy(n,t))}var Um=class r{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),r.checkForDuplicate(e),r.constructors[t]==null&&(r.constructors[t]=[]),r.constructors[t].push(e)}static checkForDuplicate(t){for(let e in r.constructors)r.constructors[+e].forEach(o=>{if(o===t)throw new z(\"Duplicate callback constructor.\")})}static clear(){r.constructors={}}static createCallbacks(t){let e=[];for(let n in r.constructors){let o=+n;t>=o&&e.push(...r.constructors[o])}return e.map(n=>new n)}};Um.constructors={};function Qy(r,t,e,n,o,s,i,a,u){let l=new Yy,c=[new HN,...Um.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Xy(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function wn(r,t={},e=!1){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Eh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=J(r,\"float32\"));let e=mt($c(r),t,!0),n=Co(e.shape,cr()),o=ge(kn(e,n));return ut(r,o)})}function xa(r,t){return B(()=>Ne($c(at(t,r)),-1))}function Hm(r,t){return B(()=>Ne(_e(at(t,r)),-1))}function Pu(r,t){return B(()=>{let e=at(r,t),n=vr(_e(r),cr(),Number.MAX_VALUE),o=_e(ut(e,n));return $(100,Ne(o,-1))})}function O7(r,t){return B(()=>{let e=vr(t,cr(),Number.MAX_VALUE),n=Nr(K(1,e)),o=vr(r,cr(),Number.MAX_VALUE),s=Nr(K(1,o));return Ne($c(at(n,s)),-1)})}function M7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne($c(e),-1)})}function P7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne(e,-1)})}function L7(r,t){return B(()=>{let e=mt($(r,t),-1),n=Sr($(at(1,r),t),-1);return kn(0,K(1,at(n,e)))})}function z7(r,t){return B(()=>{let e=Math.log(2),n=at(t,r),o=at(K(n,ui($(-2,n))),e);return Ne(o,-1)})}function Vc(r,t,e=!1){return B(()=>{if(e)t=Eu(t);else{let n=mt(t,t.shape.length-1,!0);t=ut(t,n)}return t=vr(t,cr(),1-cr()),Ut(mt($(J(r,\"float32\"),Nr(t)),t.shape.length-1))})}function qm(r,t,e=!1){return B(()=>{let n=J(la(aR(r)),\"int32\");t=vr(t,cr(),1-cr());let o=t.shape,s=R(ca(n,o[o.length-1]),o);return Vc(s,t,e)})}function B7(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Or(t),n=Ut(_e(t));return K(at(e,$(t,r)),vu(Ke(n)))})}function Km(r,t){return B(()=>{let e;return e=vr(t,cr(),1-cr()),e=Nr(ut(e,at(1,e))),Ne(B7(r,e),-1)})}function V7(r,t){return B(()=>{let e=vr(r,cr(),1),n=vr(t,cr(),1);return mt($(r,Nr(ut(e,n))),-1)})}function G7(r,t){return B(()=>{let e=Nr(K(cr(),t));return Ne(at(t,$(r,e)),-1)})}function Dh(r,t){return B(()=>{let e=Eh(r,-1),n=Eh(t,-1),o=$(e,n);return Ut(mt(o,-1))})}var Ah={meanSquaredError:xa,meanAbsoluteError:Hm,meanAbsolutePercentageError:Pu,meanSquaredLogarithmicError:O7,squaredHinge:M7,hinge:P7,categoricalHinge:L7,logcosh:z7,categoricalCrossentropy:Vc,sparseCategoricalCrossentropy:qm,binaryCrossentropy:Km,kullbackLeiblerDivergence:V7,poisson:G7,cosineProximity:Dh};function tb(r){if(typeof r==\"string\"){if(r in Ah)return Ah[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes(\"softmaxcrossentropy\")&&(t=`Unknown loss ${r}. Use \"categoricalCrossentropy\" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return r}function $h(r,t){return B(()=>{let e=$(.5,wr(t)),n=rn(Re(t,e),r.dtype);return Ne($r(r,n),-1)})}function Rh(r,t){return B(()=>rn($r(ra(r,-1),ra(t,-1)),\"float32\"))}function kR(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,1))),\"float32\"))}function W7(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,0))),\"float32\"))}function U7(r,t){return B(()=>J(mt(Fr($r(r,0),$r(t,1))),\"float32\"))}function qN(r,t){return B(()=>{let e=kR(r,t),n=U7(r,t),o=K(e,n);return J(Ie(Re(o,0),ut(e,o),0),\"float32\")})}function TR(r,t){return B(()=>{let e=kR(r,t),n=W7(r,t),o=K(e,n);return J(Ie(Re(o,0),ut(e,o),0),\"float32\")})}function rb(r,t){return Km(r,t)}function nb(r,t){return r.rank===t.rank&&(r=Wn(r,[r.rank-1])),t=ra(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),\"float32\")}function _R(r,t){return B(()=>{let e=r.sub(t).square().sum(),n=r.sub(r.mean()).square().sum();return pt(1).sub(e.div(n))})}var H7=xa,q7=xa,K7=Hm,j7=Hm,X7=Pu,Y7=Pu,Fh=Vc,Z7=Dh,KN=qm,eb={binaryAccuracy:$h,categoricalAccuracy:Rh,precision:qN,categoricalCrossentropy:Fh,sparseCategoricalCrossentropy:KN,mse:H7,MSE:q7,mae:K7,MAE:j7,mape:X7,MAPE:Y7,cosine:Z7};function ER(r){if(typeof r==\"string\"&&r in eb)return eb[r];if(typeof r!=\"string\"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Oh(r){if(co(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(Ah))if(Ah[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(eb))if(eb[e]===r){t=e;break}return t!==void 0?t:r.name}}function DR(r){let t={Adagrad:()=>Ac.adagrad(.01),Adadelta:()=>Ac.adadelta(1,.95,cr()),Adam:()=>Ac.adam(.001,.9,.999,cr()),Adamax:()=>Ac.adamax(.002,.9,.999,cr(),0),RMSProp:()=>Ac.rmsprop(.001,.9,0,cr()),SGD:()=>Ac.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,r in t)return t[r]();throw new z(`Unknown Optimizer ${r}`)}function XN(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!jN(r))throw new Error(\"User-defined metadata is expected to be a JSON object, but is not.\");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model \"${t}\" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function jN(r){if(r===null)return!0;if(typeof r==\"object\")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!=\"string\"||!jN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!jN(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function $R(r,t,e,n=console.log){let o=tJ(r),s=[\"Layer (type)\",\"Input Shape\",\"Output shape\",\"Param #\"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push(\"Receives inputs\"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n(\"_\".repeat(t)),ob(s,e,n),n(\"=\".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function ob(r,t,e=console.log){let n=\"\";for(let o=0;o0&&(n=n.slice(0,n.length-1)+\" \"),n+=r[o],n=n.slice(0,t[o]),n+=\" \".repeat(t[o]-n.length);e(n)}function eJ(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(\",\")}catch(u){o=\"multiple\"}try{n=JSON.stringify(r.outputShape)}catch(u){n=\"multiple\"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];ob(a,t,e)}function rJ(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(\",\")}catch(p){s=\"multiple\"}try{o=JSON.stringify(r.outputShape)}catch(p){o=\"multiple\"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;m{let t=Object.keys(r);if(t.length===0)return!1;let e=t[0].split(\"/\");return!isNaN(parseInt(e[e.length-1],10))},ib=class r extends Et{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let b=this.getClassName().toLowerCase();this.name=Fu(b)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],Eo(this.inputs).length!==this.inputs.length)throw new z(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(b=>b.name)}`);Eo(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;co(I===0,\"input layer has >1 nodes\"),co(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),this.inputLayersTensorIndices.push(N)}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 e={},n={},o={},s={},i={},a=[],u=(b,w,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new dn(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(r.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let M=0;M=0;)I.splice(I.indexOf(D),1);a.push(D)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(Sh);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof r&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(Sh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new dn(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${I.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new dn(`The name \"${b}\" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new Nl({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0,s=nJ(t);s&&this.parseWeights(t);for(let a of this.layers)for(let[u,l]of a.weights.entries()){let c=s?`${l.name.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}${u}`:l.originalName;if(n[c]!=null)throw new z(`Duplicate weight name: ${c}`);n[c]=l,o++}let i=[];for(let a in t){let u=a;if(n[a]==null){let l=a.split(\"/\");u=l.slice(0,-2).concat([l[l.length-1]]).join(\"/\")}if(n[u]!=null)i.push([n[u],t[a]]);else if(e)throw new z(`Provided weight data has no target variable: ${a}`);delete n[u]}if(e){let a=[];for(let u in n)a.push(u);if(a.length>0)throw new z(`${a.length} of ${o} weights are not set: ${a}`)}zm(i)}parseWeights(t){for(let e in Object.keys(t)){let n=e.split(\"/\"),o=[\"vars\",\"layer_checkpoint_dependencies\"],s=n.map(i=>i.startsWith(\"_\")?i.slice(1):i).filter(i=>!o.includes(i)).join(\"/\");s!==e&&(t[s]=t[e],delete t[e])}}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${jm}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=sb(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=ue(t);let n=new ha;for(let o=0;o{t=ue(t);let n;return e==null?n=To(null,t.length):n=ue(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Pm(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(Sh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(Sh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[I,N]=d[0];h.mask==null&&(h.mask=N),b=ue(p.call(I,h)),w=ue(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=ue(p.call(g,h)),w=ue(p.computeMask(g,x));if(p.activityRegularizer)throw new _t(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let I=0;I{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(kr(b),w)}function l(g){let x=g.name,b=wn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!j$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function oJ(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r==\"object\"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} 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 o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function ab(r,t){return oJ(r,t,\"classWeight\")}async function lb(r,t,e,n){if(t!=null||n!=null)throw new Error(\"Support sampleWeight is not implemented yet\");if(e!=null){let o=B(()=>{if(r.shape.length===1)return un(r);if(r.shape.length===2){if(r.shape[1]>1)return ra(r,1);if(r.shape[1]===1)return R(r,[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 o.data());Tt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Oe(i,\"float32\")}else return null}function FR(r,t){return $(r,t)}var sJ=32;function PR(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=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=OR(\"input\",r.inputNames,e),i=OR(\"output\",r.outputNames,n),a=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(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function OR(r,t,e){if(e instanceof Lt)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function iJ(r){if(r.length===3)throw new _t(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function LR(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).\"),y.assert(e!=null,()=>\"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.\"),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.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 o=e.validationData!=null,s,i;if(o)if(MR(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=iJ(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>\"val_\"+g)):l=u.slice();let c=Jy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Qy(c,p,e.epochs,null,null,aJ(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let I;MR(e.validationData)?I=ue(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=ue(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?sJ:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new _t(\"Verbose mode is not implemented yet.\");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \\`batches\\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=lJ(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=PR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hK(s[h],$(d,g))),u>0&&Tt(x)}Tt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Xm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>vl(n,t,e-t)):vl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Gy(r,t.dtype===\"int32\"?t:J(t,\"int32\")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function YN(r){let t=[];r instanceof Lt&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Lt)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function uJ(r){return r instanceof Lt}function ZN(r){return Array.isArray(r)}function BR(r){return!uJ(r)&&!ZN(r)}function VR(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(ZN(r)&&r.length>0)i=!0;else if(BR(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(BR(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(ZN(r)){if(r=r,r.length!==t.length)throw new z(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=YN(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function cJ(r,t,e){let n=Eo(r.map(s=>s.shape[0]));n.sort();let o=Eo(t.map(s=>s.shape[0]));if(o.sort(),n.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(o.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(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function pJ(r,t,e){let n=[xa,Km,Vc];for(let o=0;o1)throw new z(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r==\"string\"||typeof r==\"function\")e=[r];else if(Array.isArray(r)||typeof r==\"object\")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var fJ=\"layers-model\",Un=class extends ib{constructor(t){super(t),this.isTraining=!1}summary(t,e,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).\");$R(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=DR(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof jr))throw new z(\"User-defined optimizer must be an instance of tf.Optimizer.\");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!=\"string\"&&typeof t.loss!=\"function\"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new z(`Unknown entry in loss dictionary: \"${i}\". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output \"${i}\" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(tb(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.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=${t.loss}.`);e=t.loss.map(a=>tb(a))}else{let i=tb(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+\"_loss\"))}});let o=mJ(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+\"_\"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};fi(\"metric\",()=>{for(let i=0;i{let c=\"\",p,m,f;for(let d of l){if(typeof d==\"string\"&&[\"accuracy\",\"acc\",\"crossentropy\",\"ce\"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Km?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=$h:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=rb):this.lossFunctions[i]===qm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=nb:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=KN):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Rh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Fh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=ER(d),p=c+Oh(d);let h;fi(p,()=>{h=f}),s(i,p,h)}})(a)}}),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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;ub(o);let i=this.standardizeUserDataXY(t,e,!0,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return kr(l)}finally{$o(i[0],t),$o(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),zR(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new z(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new z(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new z(\"`outputs` is an empty Array, which is not allowed.\");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ha;if(t instanceof Lt&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new _t(\"Verbose predictLoop() is not implemented yet.\");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Xm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return kr(i.map(a=>ie(a,0)))})}predict(t,e={}){let n=YN(t);GR(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{$o(n,t)}}predictOnBatch(t){GR(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new dn(\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).\");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==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 ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error(\"sample weight is not supported yet.\");let l=null;if(o!=null){let c=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new _t(\"Verbose mode is not implemented yet.\");if(s!=null)throw new _t(\"steps mode in testLoop() is not implemented yet\");{let u=pb(i,n),l=Oe(gn(0,i));for(let c=0;c1){let i=PN(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=K(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read());return[this.optimizer_.minimize(a,!0,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;l0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new _t(\"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; ${n.validationData} is invalid.`);let M=await this.standardizeUserData(u,l,null,null,!0,f);c=M[0],p=M[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),M=o[0].shape[0];c=Xm(o,F,M),i=o,o=Xm(o,0,F),p=Xm(s,F,M),a=s,s=Xm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);this.checkTrainableWeightsConsistency();let w=this.makeTrainFunction(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>\"val_\"+F))):(N=null,x=[],E=I.slice());let A=Jy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,$o(o,t),$o(s,e),$o(i,t),$o(a,e),$o(c,u),$o(p,l),m!=null&&Tt(m)}}async fitLoop(t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=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=this.checkNumSamples(e,o,f,\"steps_per_epoch\"),x;g!=null&&(x=gn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Qy(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let M=A[D][0],V=A[D][1],G=vl(E,M,V-M);F.batch=D,F.size=V-M;let W=cb(e,G),q=t(W);for(let H=0;H_o(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]==\"string\")t[o]=_o(n[o]);else throw new Error(\"Serialization of non-string loss is not supported.\")}return t}getMetricIdentifiers(){if(typeof this.metrics==\"string\"||typeof this.metrics==\"function\")return[_o(Oh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>_o(Oh(t)));{let t={};for(let e in this.metrics)t[e]=_o(Oh(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error(\"Loading weight_metrics is not supported yet.\");if(t.loss_weights!=null)throw new Error(\"Loading loss_weights is not supported yet.\");if(t.sample_weight_mode!=null)throw new Error(\"Loading sample_weight_mode is not supported yet.\");let e=Gc(t.optimizer_config),n=wn(e),o;if(typeof t.loss==\"string\")o=Cl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Cl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Cl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Cl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Cl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=Mr.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await Mr.encodeWeights(this.getNamedWeights(e)),a={modelTopology:this.toJSON(null,!1),format:fJ,generatedBy:`TensorFlow.js tfjs-layers v${jm}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await Mr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Mr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(XN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){XN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Un.className=\"Model\";Q.registerClass(Un);var mb=class extends Un{};mb.className=\"Functional\";Q.registerClass(mb);async function WR(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Gc(e),o=wn(n,t);if(r.weightsManifest!=null){let s=await Mr.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),Tt(s)}return o}async function UR(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=Mr.getLoadHandlers(r,t);if(e.length===0)e.push(Mr.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return dJ(r,void 0,t)}async function dJ(r,t,e){if(e==null&&(e={}),r.load==null)throw new z(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=wn(Gc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new z(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=hJ(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function hJ(r,t){let e=Mr.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group===\"optimizer\"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var Wc=class r extends Un{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:Fu(\"sequential_\"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof r||t instanceof Un,n;if(e){if(n=t,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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new z(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=Hy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+\"_input\"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=WN(this.outputs[0])}this.inboundNodes=[],new Nl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:To(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Gt(t),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 Un({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new dn(\"The model needs to be compiled before being used.\");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className===\"Merge\")throw new z(\"Legacy serialization format not supported yet.\");s=e}else y.assert(e.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=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof r))throw new _t(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=wn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z(\"Cannot set the stopTraining property of a sequential model before it is compiled.\");this.model.stopTraining=t}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 t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};Wc.className=\"Sequential\";Q.registerClass(Wc);function gJ(r){return new Un(r)}function xJ(r){return new Wc(r)}function JN(r){return Hy(r)}function yJ(r,t){Um.registerCallbackConstructor(r,t)}var Pr=class extends Q.Serializable{getConfig(){return{}}},fb=class extends Pr{apply(t,e=1){return uR(t,e)}};fb.className=\"elu\";Q.registerClass(fb);var db=class extends Pr{apply(t){return fm(t)}};db.className=\"selu\";Q.registerClass(db);var hb=class extends Pr{apply(t){return Or(t)}};hb.className=\"relu\";Q.registerClass(hb);var gb=class extends Pr{apply(t){return B(()=>lo(6,Or(t)))}};gb.className=\"relu6\";Q.registerClass(gb);var xb=class extends Pr{apply(t){return t}};xb.className=\"linear\";Q.registerClass(xb);var yb=class extends Pr{apply(t){return en(t)}};yb.className=\"sigmoid\";Q.registerClass(yb);var bb=class extends Pr{apply(t){return pR(t)}};bb.className=\"hardSigmoid\";Q.registerClass(bb);var wb=class extends Pr{apply(t){return ui(t)}};wb.className=\"softplus\";Q.registerClass(wb);var Ib=class extends Pr{apply(t){return cR(t)}};Ib.className=\"softsign\";Q.registerClass(Ib);var Cb=class extends Pr{apply(t){return li(t)}};Cb.className=\"tanh\";Q.registerClass(Cb);var Ym=class extends Pr{apply(t,e=-1){return Eu(t,e)}};Ym.className=\"softmax\";Q.registerClass(Ym);var vb=class extends Pr{apply(t,e=-1){return lm(t,e)}};vb.className=\"logSoftmax\";Q.registerClass(vb);var Sb=class extends Pr{apply(t){return B(()=>B(()=>{let e=Math.sqrt(2),n=$(.5,K(1,am(ut(t,e))));return $(t,n)}))}};Sb.className=\"gelu\";Q.registerClass(Sb);var Nb=class extends Pr{apply(t){return B(()=>$(.5,$(t,K(1,li($(ge(ut(2,Math.PI)),K(t,$(.044715,qr(t,3)))))))))}};Nb.className=\"gelu_new\";Q.registerClass(Nb);var kb=class extends Pr{apply(t){return B(()=>$(t,li(ui(t))))}};kb.className=\"mish\";Q.registerClass(kb);var Tb=class extends Pr{apply(t,e=1){return B(()=>$(en($(t,e)),t))}};Tb.className=\"swish\";Q.registerClass(Tb);function gi(r){return r.getClassName()}function QN(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"activation\")}function xi(r){if(r==null){let t={};return t.className=\"linear\",t.config={},QN(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},QN(t)}else return r instanceof Pr?r:QN(r)}function tk(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 _b=class extends Q.Serializable{},Lu=class extends _b{constructor(t){super(),tk(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=ke([1]);return this.hasL1&&(e=K(e,mt($(this.l1,_e(t))))),this.hasL2&&(e=K(e,mt($(this.l2,$c(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Lu.className=\"L1L2\";Q.registerClass(Lu);function KR(r){return tk(r),new Lu({l1:r!=null?r.l1:null,l2:0})}function jR(r){return tk(r),new Lu({l2:r!=null?r.l2:null,l1:0})}var HR={l1l2:\"L1L2\"};function fe(r){return km(r)}function qR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function ve(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in HR?HR[r]:r,config:{}};return qR(e)}else return r instanceof _b?r:qR(r)}var Zm=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Or(t);return this.maxValue!=null&&(n=vr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Zm.className=\"ReLU\";Q.registerClass(Zm);var Jm=class extends Et{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=St(t);return Cu(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Jm.className=\"LeakyReLU\";Q.registerClass(Jm);var Qm=class extends Et{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=xe(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=ve(t.alphaRegularizer),this.alphaConstraint=Ge(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes==\"number\")this.sharedAxes=[t.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Gt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight(\"alpha\",e,\"float32\",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o{let n=St(t),o=e.mask;if(o!=null){let s=$(at(ar(n.shape),J(o,n.dtype)),pt(-1e9));n=K(n,s)}return this.axis instanceof Array?this.axis.length>1?Ke(at(n,Su(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(t){return t}getConfig(){let t={axis:this.axis},e=super.getConfig();return Object.assign(t,e),t}};rf.className=\"Softmax\";Q.registerClass(rf);function zu(r,t,e){if(typeof r==\"number\")return To(r,t);if(r.length!==t)throw new z(`The ${e} argument must be an integer or tuple of ${t} integers. Received: ${r.length} elements.`);for(let n=0;n(Me(t),t===\"channelsFirst\"?Vt(r,[0,2,3,1]):r))}function ek(r,t){return B(()=>(Me(t),t===\"channelsFirst\"?Vt(r,[0,2,3,4,1]):r))}function wJ(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=xn()),Me(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.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(e!=null&&e.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=Vt(r,[0,2,1])),o===\"causal\")throw new _t(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=rm(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=yn(a,e)),a})}function XR(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ph(r,s);if(o===\"causal\")throw new _t(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=Ru.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Vt(u,[0,3,1,2])),u})}function IJ(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=ek(r,s);if(o===\"causal\")throw new _t(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Dx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=yn(a,e)),s===\"channelsFirst\"&&(a=Vt(a,[0,4,1,2,3])),a})}var Mh=class r extends Et{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",r.verifyArgs(e),this.rank=t,tr(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new _t(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=zu(e.kernelSize,t,\"kernelSize\"),this.strides=zu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,hn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Me(this.dataFormat),this.activation=xi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=xe(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ge(e.biasConstraint),this.biasRegularizer=ve(e.biasRegularizer),this.activityRegularizer=ve(e.activityRegularizer),this.dilationRate=zu(e.dilationRate==null?1:e.dilationRate,t,\"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(t){if(co(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Fy(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:gi(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},nf=class r extends Mh{constructor(t,e){super(t,e),this.kernel=null,r.verifyArgs(e),this.filters=e.filters,tr(this.filters,\"filters\"),this.kernelInitializer=xe(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ge(e.kernelConstraint),this.kernelRegularizer=ve(e.kernelRegularizer)}build(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight(\"kernel\",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=St(t);let n,o=this.bias==null?null:this.bias.read(),s=Oy(this.activation.getClassName());if(s!=null&&this.rank===2)n=XR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=wJ(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=XR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=IJ(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new _t(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(t);let e=[],n=this.dataFormat===\"channelsLast\"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},Uc=class r extends nf{constructor(t){super(2,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Fy(t.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(t.kernelSize)}.`)}};Uc.className=\"Conv2D\";Q.registerClass(Uc);var Hc=class r extends nf{constructor(t){super(3,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Hc.className=\"Conv3D\";Q.registerClass(Hc);var of=class extends Uc{constructor(t){if(super(t),this.inputSpec=[new Ce({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(t){if(t=Gt(t),t.length!==4)throw new z(\"Input should have rank 4; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 Ce({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);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 o=n.shape,s=o[0],i,a;this.dataFormat===\"channelsFirst\"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=yi(u,m,c,this.padding),h=yi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,1]));let x=om(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=yn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=yi(e[o],u,i,this.padding),e[s]=yi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};of.className=\"Conv2DTranspose\";Q.registerClass(of);var sf=class extends Hc{constructor(t){if(super(t),this.inputSpec=[new Ce({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Gt(t),t.length!==5)throw new z(\"Input should have rank 5; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 Ce({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==5)throw new z(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat===\"channelsFirst\"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=yi(l,h,m,this.padding),w=yi(c,g,f,this.padding),I=yi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Vt(n,[0,2,3,4,1]));let E=Rx(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=yn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s,i;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=yi(e[o],c,a,this.padding),e[s]=yi(e[s],p,u,this.padding),e[i]=yi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};sf.className=\"Conv3DTranspose\";Q.registerClass(sf);var Eb=class extends nf{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER=\"glorotUniform\",this.DEFAULT_POINTWISE_INITIALIZER=\"glorotUniform\",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new z(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z(\"Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.\");if(e.padding!=null&&e.padding!==\"same\"&&e.padding!==\"valid\")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=xe(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=ve(e.depthwiseRegularizer),this.depthwiseConstraint=Ge(e.depthwiseConstraint),this.pointwiseInitializer=xe(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=ve(e.pointwiseRegularizer),this.pointwiseConstraint=Ge(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new _t(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Vt(t,[0,2,3,1])),n=dm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Vt(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.pointwiseRegularizer=fe(this.pointwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseConstraint),t.pointwiseConstraint=Ve(this.pointwiseConstraint),t}};Eb.className=\"SeparableConv\";var af=class extends Eb{constructor(t){super(2,t)}};af.className=\"SeparableConv2D\";Q.registerClass(af);var lf=class r extends nf{constructor(t){super(1,t),r.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Fy(t.kernelSize,\"number\",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};lf.className=\"Conv1D\";Q.registerClass(lf);var uf=class extends Et{constructor(t){super(t),typeof t.cropping==\"number\"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]==\"number\"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?\"channelsLast\":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat===\"channelsFirst\"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=St(t),this.dataFormat===\"channelsLast\"){let n=kh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return kh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=kh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return kh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};uf.className=\"Cropping2D\";Q.registerClass(uf);var cf=class extends Et{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,nR(this.interpolation)}computeOutputShape(t){if(this.dataFormat===\"channelsFirst\"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=St(t),o=n.shape;if(this.dataFormat===\"channelsFirst\"){n=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};cf.className=\"UpSampling2D\";Q.registerClass(cf);function CJ(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=xn()),Me(o);let i=Ph(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ia(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}var pf=class extends Mh{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=xe(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ge(t.depthwiseConstraint),this.depthwiseRegularizer=ve(t.depthwiseRegularizer)}build(t){if(t=Gt(t),t.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat===\"channelsFirst\"?1:3;if(t[e]==null||t[e]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight(\"depthwise_kernel\",o,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(t,e){return B(()=>{t=St(t);let n=CJ(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Tn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Tn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat===\"channelsFirst\"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseRegularizer),t}};pf.className=\"DepthwiseConv2D\";Q.registerClass(pf);function rk(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z(\"When inputs is an array, neither initialState or constants should be provided\");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function nk(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(gn(2,u));if(t=Vt(t,l),s!=null)throw new _t(\"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.\"),o!=null&&(o=J(J(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=je(o,-1)),o=Vt(o,l)),n&&(t=dr(t,0),o!=null&&(o=dr(o,0)));let c=[],p,m=e,f=t.shape[0],d=gr(t),h;o!=null&&(h=gr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=at(wr(N),N),A=K($(w[0],N),$(m[0],E)),D=m.map((F,M)=>K($(w[1][M],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=Fe(c,1)),[p,g,m]})}var po=class r extends Et{constructor(t){super(t);let e;if(t.cell==null)throw new z(\"cell property is missing for the constructor of RNN.\");if(Array.isArray(t.cell)?e=new jc({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z(\"The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).\");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new Ce({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return gn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Uy(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))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=i.map(a=>new Ce({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo(\"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(o=>ke([n,o])):this.states_=[ke([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>ke([n,o])):this.states_[0]=ke([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=rk(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new Ce({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof nn){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=St(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new z(`RNN Layer has ${i} 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 a={training:o},l=nk((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=ke(t.shape);return e=mt(e,[1,2]),e=Sl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Vy(e,[1,n]):e):this.cell.stateSize>1?[Vy(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===r.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=wn(o,n);return new t(Object.assign(e,{cell:s}))}};po.className=\"RNN\";Q.registerClass(po);var Tl=class extends Et{},qc=class extends Tl{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,tr(this.units,\"units\"),this.activation=xi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=xe(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=ve(t.kernelRegularizer),this.recurrentRegularizer=ve(t.recurrentRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,di([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,di([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t),this.kernel=this.addWeight(\"kernel\",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0wr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0wr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Do($(t,i),this.kernel.read()):s=Do(t,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=K(s,Do(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:gi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),recurrentRegularizer:fe(this.recurrentRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),recurrentConstraint:Ve(this.recurrentConstraint),biasConstraint:Ve(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};qc.className=\"SimpleRNNCell\";Q.registerClass(qc);var mf=class extends po{constructor(t){t.cell=new qc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};mf.className=\"SimpleRNN\";Q.registerClass(mf);var Kc=class extends Tl{constructor(t){if(super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.resetAfter)throw new z(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,tr(this.units,\"units\"),this.activation=xi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=xi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=xe(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=ve(t.kernelRegularizer),this.recurrentRegularizer=ve(t.recurrentRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,di([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,di([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t);let e=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[e,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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0wr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};ff.className=\"GRU\";Q.registerClass(ff);var _l=class extends Tl{constructor(t){super(t),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=t.units,tr(this.units,\"units\"),this.activation=xi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=xi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=xe(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=ve(t.kernelRegularizer),this.recurrentRegularizer=ve(t.recurrentRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,di([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,di([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Gt(t);let n=t[t.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 o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends bn{apply(u,l){let c=s.apply([i]),p=new Mu().apply([i]),m=s.apply([i*2]);return GN(GN(c,p),m)}},e.className=\"CustomInit\",e)}else o=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0wr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};df.className=\"LSTM\";Q.registerClass(df);var jc=class extends Tl{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{fi(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(wn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return _h(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Wy(t(),e),a=()=>Ou(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var vJ=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z(\"ConvRNN2D cell does not support constants\");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=ke(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.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(()=>ke(s)):this.states_=[ke(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ke(s)):this.states_[0]=ke(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e===\"channelsFirst\",l=t[u?3:2],c=t[u?4:3],p=Tn(l,o[0],s,i[0],a[0]),m=Tn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};Ab.className=\"ConvRNN2D\";var Xc=class extends _l{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,tr(this.filters,\"filters\"),this.kernelSize=zu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>tr(u,\"kernelSize\")),this.strides=zu(o||1,2,\"strides\"),this.strides.forEach(u=>tr(u,\"strides\")),this.padding=s||\"valid\",hn(this.padding),this.dataFormat=i||\"channelsLast\",Me(this.dataFormat),this.dilationRate=zu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>tr(u,\"dilationRate\"))}build(t){var e;t=Gt(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight(\"kernel\",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight(\"recurrent_kernel\",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends bn{apply(m,f){let d=l.apply([c]),h=ar([c]),g=l.apply([c*2]);return _m([d,h,g])}},e.className=\"CustomInit\",e)}else u=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0wr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,lt)=>!st||!st[lt]?nt:$(st[lt],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0wr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[I,N,E,A]=hr(this.kernel.read(),a,w),[D,F,M,V]=this.useBias?hr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,E,M,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=hr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(K(c,h)),Y=this.recurrentActivation.apply(K(p,g)),Z=K($(Y,i),$(j,this.activation.apply(K(m,x)))),et=$(this.recurrentActivation.apply(K(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=vJ(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=Nn(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?yn(s,n,this.dataFormat):s}recurrentConv(t,e){return Nn(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};Xc.className=\"ConvLSTM2DCell\";Q.registerClass(Xc);var hf=class extends Ab{constructor(t){let e=new Xc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};hf.className=\"ConvLSTM2D\";Q.registerClass(hf);var Yc=class extends Et{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);if(0Wy(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};Yc.className=\"Dropout\";Q.registerClass(Yc);var gf=class extends Yc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};gf.className=\"SpatialDropout1D\";Q.registerClass(gf);var xf=class extends Et{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,tr(this.units,\"units\"),this.activation=xi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ge(t.kernelConstraint),this.biasConstraint=Ge(t.biasConstraint),this.kernelRegularizer=ve(t.kernelRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.activityRegularizer=ve(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight(\"kernel\",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Gt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=Oy(this.activation.getClassName()),s;return o!=null?s=Do(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Do(n,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:gi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};xf.className=\"Dense\";Q.registerClass(xf);var yf=class extends Et{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(t);for(let e of t.slice(1))if(e==null)throw new z(`The shape of the input to \"Flatten\" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete \"input_shape\" or \"batch_input_shape\" argument to the first layer in your model.`);return[t[0],Ao(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=St(t);return this.activation.apply(n)})}getConfig(){let t={activation:gi(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};bf.className=\"Activation\";Q.registerClass(bf);var wf=class extends Et{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=St(t),iR(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};wf.className=\"RepeatVector\";Q.registerClass(wf);var If=class extends Et{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=St(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};If.className=\"Reshape\";Q.registerClass(If);var Cf=class extends Et{constructor(t){if(super(t),t.dims==null)throw new Error(\"Required configuration field `dims` is missing during Permute constructor call.\");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \\`dims\\` to be an Array, but received ${t.dims} instead.`);let e=gn(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error(\"Invalid permutation `dims`: \"+JSON.stringify(t.dims)+\" `dims` must contain consecutive integers starting from 1.\");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Ce({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};Cf.className=\"Permute\";Q.registerClass(Cf);var vf=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=St(t);return cc(ci(n,this.maskValue),-1)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),i=cc(ci(n,this.maskValue),-1,!0);return $(n,J(i,n.dtype))})}};vf.className=\"Masking\";Q.registerClass(vf);var Sf=class extends Et{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER=\"randomUniform\",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(ue(t.inputLength))}this.inputDim=t.inputDim,tr(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,tr(this.outputDim,\"outputDim\"),this.embeddingsInitializer=xe(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=ve(t.embeddingsRegularizer),this.activityRegularizer=ve(t.activityRegularizer),this.embeddingsConstraint=Ge(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight(\"embeddings\",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=St(t),ci(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=ue(this.inputLength);if(e.length!==t.length-1)throw new z(`\"inputLength\" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);n.dtype!==\"int32\"&&(n=rn(n,\"int32\"));let o=Gy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:fe(this.embeddingsRegularizer),activityRegularizer:fe(this.activityRegularizer),embeddingsConstraint:Ve(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};Sf.className=\"Embedding\";Q.registerClass(Sf);var Al=class extends Et{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new _t}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&Eo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=di(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=gn(1,l).concat([0]);n.push(Vt(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(gn(0,a-1));i=Vt(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new z(\"`mask` should be an Array\");if(!Array.isArray(t))throw new z(\"`inputs` should be an Array\");if(e.length!==t.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:je(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[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(t))}mergeFunction(t){return B(()=>_m(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z(\"A `Concatenate` layer should be called on a list of inputs.\");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new z(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new z(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new _t(\"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 ${t.shape.length}`),typeof e==\"number\"&&(e=[e,e]),r.dtype===\"complex64\"||t.dtype===\"complex64\")throw new _t(\"batchDot is not implemented for complex64-type Tensors yet.\");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new _t(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`A \\`Dot\\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>Lh(s,t[i].shape.length)):o=[Lh(this.axes,e.shape.length),Lh(this.axes,n.shape.length)],this.normalize&&(e=Eh(e,o[0]),n=Eh(n,o[1])),SJ(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Lh(this.axes,t.length),Lh(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new _t(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Df.className=\"Dot\";Q.registerClass(Df);var $f=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return Ou(()=>K(Em(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};$f.className=\"GaussianNoise\";Q.registerClass($f);var Rf=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return this.rate>0&&this.rate<1?Ou(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,Em(n.shape,1,s))},()=>n,e.training||!1):n})}};Rf.className=\"GaussianDropout\";Q.registerClass(Rf);var Ff=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||St(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return Ou(()=>{let s=St(t),u=-1.6732632423543772*1.0507009873554805,l=cn(Gn(n),this.rate);l=rn(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=K($(s,l),$(K(l,-1),u));return K($(m,c),p)},()=>St(t),e.training||!1)}return t})}};Ff.className=\"AlphaDropout\";Q.registerClass(Ff);function zh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=Cx(r,t,e,n,o,s);else if(r.rank===3)i=vx(r,t,e,n,o,s);else if(r.rank===4)i=Sx(r,t,e,n,o,s);else throw new _t(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function NJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance;return[zh(r,i,a,e,t,o),i,a]})}function kJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance,u=[];for(let d of gn(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[zh(r,l,c,m,p,o),i,a]})}function TJ(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),gn(0,r.rank-1))?NJ(r,t,e,n,o):kJ(r,t,e,n,o)}var Of=class extends Et{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=xe(t.betaInitializer||\"zeros\"),this.gammaInitializer=xe(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=xe(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=xe(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Ge(t.betaConstraint),this.gammaConstraint=Ge(t.gammaConstraint),this.betaRegularizer=ve(t.betaRegularizer),this.gammaRegularizer=ve(t.gammaRegularizer)}build(t){t=Gt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new Ce({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight(\"gamma\",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight(\"beta\",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight(\"moving_mean\",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight(\"moving_variance\",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=St(t),s=o.shape,i=s.length,a=gn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=To(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,gn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return zh(o,b,w,I,N,this.epsilon)}else return zh(o,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 m();let[f,d,h]=TJ(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(at(E,w),N);b.write(at(E,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:fe(this.betaRegularizer),gammaRegularizer:fe(this.gammaRegularizer),betaConstraint:Ve(this.betaConstraint),gammaConstraint:Ve(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Of.className=\"BatchNormalization\";Q.registerClass(Of);var Mf=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.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 e of this.axis)if(!Number.isInteger(e))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=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=xe(t.betaInitializer||\"zeros\"),this.gammaInitializer=xe(t.gammaInitializer||\"ones\"),this.betaRegularizer=ve(t.betaRegularizer),this.gammaRegularizer=ve(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(t);let e=t.length;typeof this.axis==\"number\"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==Eo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight(\"gamma\",n,\"float32\",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight(\"beta\",n,\"float32\",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=St(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=dc(n,this.axis,!0),l=To(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,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(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(e==null&&(e=xn()),e!==\"channelsLast\"&&e!==\"channelsFirst\")throw new z(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e===\"channelsFirst\"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],mn(r,n)})}var Pf=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?xn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding==\"number\")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]==\"number\")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new Ce({ndim:4})]}computeOutputShape(t){t=Gt(t);let e,n;return this.dataFormat===\"channelsFirst\"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>_J(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Pf.className=\"ZeroPadding2D\";Q.registerClass(Pf);function Mb(r,t,e,n,o,s){return B(()=>{Me(o),LN(s),hn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=xn()),s==null&&(s=\"max\"),r=Ph(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=ku(r,t,e,a):i=xu(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,3,1,2])),i})}function YR(r,t,e,n,o,s){return B(()=>{Me(o),LN(s),hn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=xn()),s==null&&(s=\"max\"),r=ek(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Xx(r,t,e,a):i=Ix(r,t,e,a),o===\"channelsFirst\"&&(i=Vt(i,[0,4,1,2,3])),i})}var Db=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize==\"number\")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]==\"number\")this.poolSize=t.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(t.poolSize)}`);if(tr(this.poolSize,\"poolSize\"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides==\"number\")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]==\"number\")this.strides=t.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(t.strides)}`);tr(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,hn(this.padding),this.inputSpec=[new Ce({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=Tn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=Sl(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Wn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Lf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,\"max\")}};Lf.className=\"MaxPooling1D\";Q.registerClass(Lf);var zf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,\"avg\")}};zf.className=\"AveragePooling1D\";Q.registerClass(zf);var $b=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];tr(this.poolSize,\"poolSize\"),tr(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ce({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,\"max\")}};Bf.className=\"MaxPooling2D\";Q.registerClass(Bf);var Vf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,\"avg\")}};Vf.className=\"AveragePooling2D\";Q.registerClass(Vf);var Rb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];tr(this.poolSize,\"poolSize\"),tr(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ce({ndim:5})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[4]:t[3];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),o=Tn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Gf=class extends Rb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),YR(t,e,n,o,s,\"max\")}};Gf.className=\"MaxPooling3D\";Q.registerClass(Gf);var Wf=class extends Rb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),YR(t,e,n,o,s,\"avg\")}};Wf.className=\"AveragePooling3D\";Q.registerClass(Wf);var Fb=class extends Et{constructor(t){super(t),this.inputSpec=[new Ce({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new _t}},Uf=class extends Fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Ne(n,1)})}};Uf.className=\"GlobalAveragePooling1D\";Q.registerClass(Uf);var Hf=class extends Fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Hf.className=\"GlobalMaxPooling1D\";Q.registerClass(Hf);var Ob=class extends Et{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Me(this.dataFormat),this.inputSpec=[new Ce({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new _t}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},qf=class extends Ob{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Ne(n,[1,2]):Ne(n,[2,3])})}};qf.className=\"GlobalAveragePooling2D\";Q.registerClass(qf);var Kf=class extends Ob{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Sr(n,[1,2]):Sr(n,[2,3])})}};Kf.className=\"GlobalMaxPooling2D\";Q.registerClass(Kf);var Pb=class extends Et{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=wn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},jf=class extends Pb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(t),t.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Gt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=St(t),nk((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};jf.className=\"TimeDistributed\";Q.registerClass(jf);function EJ(r){da(eR,\"BidirectionalMergeMode\",r)}var AJ=\"concat\",Xf=class extends Pb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=wn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=wn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?AJ:t.mergeMode,EJ(this.mergeMode),t.weights)throw new _t(\"weights support is not implemented for Bidirectional layer yet.\");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode===\"concat\"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):kr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=rk(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];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.\");e.initialState=n,i.push(...n);let c=n.map(p=>new Ce({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new _t(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof nn;for(let l of i)if(l instanceof nn!==u)throw new z(\"The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors\");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=dr(s,1));let a;return this.mergeMode===\"concat\"?a=_m([o,s]):this.mergeMode===\"sum\"?a=K(o,s):this.mergeMode===\"ave\"?a=$(.5,K(o,s)):this.mergeMode===\"mul\"?a=$(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){fi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),fi(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=wn(e.layer);if(delete e.layer,e.numConstants!=null)throw new _t(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};Xf.className=\"Bidirectional\";Q.registerClass(Xf);var Yf=class extends Et{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=St(t),t.dtype!==\"float32\"&&(t=rn(t,\"float32\")),K($(t,this.scale),this.offset)))}};Yf.className=\"Rescaling\";Q.registerClass(Yf);var{resizeBilinear:DJ,cropAndResize:$J}=fn,Zf=class extends Et{constructor(t){super(t),this.height=t.height,this.width=t.width}centerCrop(t,e,n,o,s,i,a,u){return B(()=>{let l,c=!1,p=e/i,m=n/a,f=(o+e)/i,d=(s+n)/a,h=[p,m,f,d],g=[];t.rank===3?(c=!0,l=Fe([t])):l=t;for(let N=0;N{let s=DJ(t,[e,n]);return rn(s,o)})}call(t,e){return B(()=>{let n=St(t),o=n.dtype,s=n.shape,i=s[s.length-3],a=s[s.length-2],u=0;i!==this.height&&(u=Math.floor((i-this.height)/2));let l=0;return a!==this.width&&(l=Math.floor((a-this.width)/2),l===0&&(l=1)),u>=0&&l>=0?this.centerCrop(n,u,l,this.height,this.width,i,a,o):this.upsize(t,this.height,this.width,o)})}getConfig(){let t={height:this.height,width:this.width},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};Zf.className=\"CenterCrop\";Q.registerClass(Zf);function ZR(r,t,e,n){let o=St(r);if(o.dtype!==\"int32\"&&(o=rn(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=je(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=je(o,-1)),o.rank>2)throw new z(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=[\"multiHot\",\"oneHot\"].includes(t),a=o,u;if(typeof n!=\"undefined\"&&t===\"count\"?u=mh(a,n,e,i):u=mh(a,[],e,i),t!==\"tfIdf\")return u;if(n)return $(u,n);throw new z(\"When outputMode is 'tfIdf', weights must be provided.\")}var Jf=class extends Et{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode=\"multiHot\"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Gt(t),t==null?[this.numTokens]:this.outputMode===\"oneHot\"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=St(t),t.dtype!==\"int32\"&&(t=rn(t,\"int32\"));let n;if(typeof e.countWeights!=\"undefined\"){if(this.outputMode!==\"count\")throw new z(`countWeights is not used when outputMode !== count.\n Received countWeights=${e.countWeights}`);n=St(e.countWeights)}let o=Sr(t),s=gl(t),i=Re(this.numTokens,o).bufferSync().get(0),a=cn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return ZR(t,this.outputMode,this.numTokens,n)})}};Jf.className=\"CategoryEncoding\";Q.registerClass(Jf);var FJ=[\"bilinear\",\"nearest\"],JR=new Set(FJ),Qf=class extends Et{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(JR.has(t.interpolation))this.interpolation=t.interpolation;else throw new z(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation=\"bilinear\";this.cropToAspectRatio=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation===\"bilinear\")return fn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return fn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...JR]} are supported`)})}};Qf.className=\"Resizing\";Q.registerClass(Qf);var Bh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};Bh.className=\"RandomSeed\";var Vh=class extends Et{constructor(t){super(t),this.randomGenerator=new Bh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Vh.className=\"BaseRandomLayer\";var OJ=[\"bilinear\",\"nearest\"],QR=new Set(OJ),td=class extends Vh{constructor(t){super(t);let{factor:e,interpolation:n=\"bilinear\"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Gn([1],1+this.widthLower,1+this.widthUpper,\"float32\",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case\"bilinear\":return fn.resizeBilinear(t,i);case\"nearest\":return fn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation}\n but only ${[...QR]} are supported`)}})}};td.className=\"RandomWidth\";Q.registerClass(td);function MJ(r){return new hi(r)}function PJ(r){return new tf(r)}function LJ(r){return new Zm(r)}function zJ(r){return new Jm(r)}function BJ(r){return new Qm(r)}function VJ(r){return new rf(r)}function GJ(r){return new ef(r)}function WJ(r){return new lf(r)}function UJ(r){return new Uc(r)}function HJ(r){return new of(r)}function qJ(r){return new Hc(r)}function KJ(r){return new sf(r)}function jJ(r){return new af(r)}function XJ(r){return new uf(r)}function YJ(r){return new cf(r)}function ZJ(r){return new pf(r)}function JJ(r){return new bf(r)}function QJ(r){return new xf(r)}function t9(r){return new Yc(r)}function e9(r){return new gf(r)}function r9(r){return new yf(r)}function n9(r){return new wf(r)}function o9(r){return new If(r)}function s9(r){return new Cf(r)}function i9(r){return new Sf(r)}function a9(r){return new Nf(r)}function l9(r){return new Tf(r)}function u9(r){return new Af(r)}function c9(r){return new _f(r)}function p9(r){return new Ef(r)}function m9(r){return new kf(r)}function f9(r){return new Df(r)}function d9(r){return new Of(r)}function h9(r){return new Mf(r)}function g9(r){return new Pf(r)}function ok(r){return new zf(r)}function x9(r){return ok(r)}function y9(r){return ok(r)}function sk(r){return new Vf(r)}function b9(r){return sk(r)}function w9(r){return sk(r)}function ik(r){return new Wf(r)}function I9(r){return ik(r)}function C9(r){return ik(r)}function v9(r){return new Uf(r)}function S9(r){return new qf(r)}function tF(r){return new Hf(r)}function eF(r){return new Kf(r)}function rF(r){return new Lf(r)}function nF(r){return new Bf(r)}function N9(r){return new Gf(r)}function k9(r){return new ff(r)}function T9(r){return new Kc(r)}function _9(r){return new df(r)}function E9(r){return new _l(r)}function A9(r){return new mf(r)}function D9(r){return new qc(r)}function $9(r){return new hf(r)}function R9(r){return new Xc(r)}function F9(r){return new po(r)}function O9(r){return new jc(r)}function M9(r){return new Xf(r)}function P9(r){return new jf(r)}var L9=tF,z9=eF,B9=rF,V9=nF;function G9(r){return new $f(r)}function W9(r){return new Rf(r)}function U9(r){return new Ff(r)}function H9(r){return new vf(r)}function q9(r){return new Yf(r)}function K9(r){return new Zf(r)}function j9(r){return new Qf(r)}function X9(r){return new Jf(r)}function Y9(r){return new td(r)}var sF={};Kt(sF,{MAPE:()=>aQ,MSE:()=>cQ,binaryAccuracy:()=>Z9,binaryCrossentropy:()=>J9,categoricalAccuracy:()=>tQ,categoricalCrossentropy:()=>eQ,cosineProximity:()=>oQ,mape:()=>lQ,meanAbsoluteError:()=>sQ,meanAbsolutePercentageError:()=>iQ,meanSquaredError:()=>uQ,mse:()=>pQ,precision:()=>rQ,r2Score:()=>mQ,recall:()=>nQ,sparseCategoricalAccuracy:()=>Q9});function Z9(r,t){return $h(r,t)}function J9(r,t){return rb(r,t)}function Q9(r,t){return nb(r,t)}function tQ(r,t){return Rh(r,t)}function eQ(r,t){return Fh(r,t)}function rQ(r,t){return qN(r,t)}function nQ(r,t){return TR(r,t)}function oQ(r,t){return Dh(r,t)}function sQ(r,t){return Hm(r,t)}function iQ(r,t){return Pu(r,t)}function aQ(r,t){return Pu(r,t)}function lQ(r,t){return Pu(r,t)}function uQ(r,t){return xa(r,t)}function cQ(r,t){return xa(r,t)}function pQ(r,t){return xa(r,t)}function mQ(r,t){return _R(r,t)}var iF={};Kt(iF,{modelFromJSON:()=>WR});var aF={};Kt(aF,{l1:()=>dQ,l1l2:()=>fQ,l2:()=>hQ});function fQ(r){return new Lu(r)}function dQ(r){return KR(r)}function hQ(r){return jR(r)}var zb=class extends kl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Un))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function Lb(r,t){return rt}var Bb=class extends zb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new _t(\"restoreBestWeights = True is not implemented in EarlyStopping yet.\");this.monitor=t.monitor||\"val_loss\",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||\"auto\",this.baseline=t.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=Lb:this.mode===\"max\"?this.monitorFunc=lF:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=lF:this.monitorFunc=Lb,this.monitorFunc===Lb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Lb?1/0:-1/0}async onEpochEnd(t,e){await ga(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function gQ(r){return new Bb(r)}var xQ={earlyStopping:gQ};var yQ=L();yQ.registerFlag(\"KEEP_INTERMEDIATE_TENSORS\",()=>!1,r=>{r&&console.warn(\"Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.\")});var _n;(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_QINT16=15]=\"DT_QINT16\",r[r.DT_QUINT16=16]=\"DT_QUINT16\",r[r.DT_UINT16=17]=\"DT_UINT16\",r[r.DT_COMPLEX128=18]=\"DT_COMPLEX128\",r[r.DT_HALF=19]=\"DT_HALF\",r[r.DT_RESOURCE=20]=\"DT_RESOURCE\",r[r.DT_VARIANT=21]=\"DT_VARIANT\",r[r.DT_UINT32=22]=\"DT_UINT32\",r[r.DT_UINT64=23]=\"DT_UINT64\",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\",r[r.DT_QINT16_REF=115]=\"DT_QINT16_REF\",r[r.DT_QUINT16_REF=116]=\"DT_QUINT16_REF\",r[r.DT_UINT16_REF=117]=\"DT_UINT16_REF\",r[r.DT_COMPLEX128_REF=118]=\"DT_COMPLEX128_REF\",r[r.DT_HALF_REF=119]=\"DT_HALF_REF\",r[r.DT_RESOURCE_REF=120]=\"DT_RESOURCE_REF\",r[r.DT_VARIANT_REF=121]=\"DT_VARIANT_REF\",r[r.DT_UINT32_REF=122]=\"DT_UINT32_REF\",r[r.DT_UINT64_REF=123]=\"DT_UINT64_REF\"})(_n||(_n={}));var uF;(function(r){let t;(function(e){e[e.LEGACY=0]=\"LEGACY\",e[e.V1=1]=\"V1\",e[e.V2=2]=\"V2\"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(uF||(uF={}));var ak={};function wQ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};ak[r]=e}function Vb(r){return ak[r]}function IQ(r){delete ak[r]}function v(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd,l=a<0?t.inputNames.length+a:a;if(s.type===\"tensor\")return pr(t.inputNames[l],e,n,o);if(s.type===\"tensors\"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!==\"NoOp\"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type===\"number\"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=In(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Gb(o,a)]);return i!==void 0?t[Gb(o,i)][s]:void 0}function lk(r,t,e){return t[Gb(r,e.currentContextId)]}function bi(r,t){let[e,n,o]=In(r,t);return[Gb(e,t&&t.currentContextId),n,o]}function Gb(r,t){return t?`${r}-${t}`:r}function In(r,t){if(r===\"\")return[\"\",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(\":\"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Gh(r,t,e){let n=v(\"pad\",r,t,e);if(n===\"explicit\"){n=v(\"explicitPaddings\",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function wi(r){return r.kept?r:un(r)}var uk={};Kt(uk,{json:()=>CQ});var CQ=[{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 ck={};Kt(ck,{json:()=>vQ});var vQ=[{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:\"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}]},{tfOpName:\"IsNan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsFinite\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsInf\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var pk={};Kt(pk,{json:()=>SQ});var SQ=[{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:\"TensorListConcatV2\",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\"}]},{tfOpName:\"TensorListLength\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}]},{tfOpName:\"TensorListResize\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"}]}];var mk={};Kt(mk,{json:()=>NQ});var NQ=[{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\",defaultValue:.2}]},{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 fk={};Kt(fk,{json:()=>kQ});var kQ=[{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\"}]},{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:\"RandomStandardNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{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:\"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:\"RandomUniformInt\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"minval\",name:\"minval\",type:\"number\"},{tfName:\"maxval\",name:\"maxval\",type:\"number\"},{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,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 dk={};Kt(dk,{json:()=>TQ});var TQ=[{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 hk={};Kt(hk,{json:()=>_Q});var _Q=[{tfOpName:\"LowerBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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:\"UpperBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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 gk={};Kt(gk,{json:()=>EQ});var EQ=[{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 xk={};Kt(xk,{json:()=>AQ});var AQ=[{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\"}]},{tfOpName:\"InitializeTable\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]},{tfOpName:\"InitializeTableV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]}];var yk={};Kt(yk,{json:()=>DQ});var DQ=[{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\"}]},{tfOpName:\"ImageProjectiveTransformV3\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"transforms\",type:\"tensor\"},{start:2,name:\"outputShape\",type:\"number[]\"},{start:3,name:\"fillValue\",type:\"number\"}],attrs:[{tfName:\"interpolation\",name:\"interpolation\",type:\"string\"},{tfName:\"fill_mode\",name:\"fillMode\",type:\"string\"}]}];var bk={};Kt(bk,{json:()=>$Q});var $Q=[{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}]},{tfOpName:\"BitwiseAnd\",category:\"logical\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}]}];var wk={};Kt(wk,{json:()=>RQ});var RQ=[{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:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2},{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}]},{tfOpName:\"Einsum\",category:\"matrices\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"equation\",name:\"equation\",type:\"string\"},{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"MatrixBandPart\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"numLower\",type:\"tensor\"},{start:1,name:\"numUpper\",type:\"tensor\"}]}];var Ik={};Kt(Ik,{json:()=>FQ});var FQ=[{tfOpName:\"EuclideanNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",defaultValue:!1}]},{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\"}]}];var Ck={};Kt(Ck,{json:()=>OQ});var OQ=[{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\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Cumprod\",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\"}]},{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 vk={};Kt(vk,{json:()=>MQ});var MQ=[{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}]},{tfOpName:\"TensorScatterUpdate\",category:\"slice_join\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]}];var Sk={};Kt(Sk,{json:()=>PQ});var PQ=[{tfOpName:\"SparseFillEmptyRows\",category:\"sparse\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"denseShape\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}]},{tfOpName:\"SparseReshape\",category:\"sparse\",inputs:[{start:0,name:\"inputIndices\",type:\"tensor\"},{start:1,name:\"inputShape\",type:\"tensor\"},{start:2,name:\"newShape\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SparseSegmentMean\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]},{tfOpName:\"SparseSegmentSum\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]}];var Nk={};Kt(Nk,{json:()=>LQ});var LQ=[{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 kk={};Kt(kk,{json:()=>zQ});var zQ=[{tfOpName:\"StaticRegexReplace\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"pattern\",name:\"pattern\",type:\"string\"},{tfName:\"rewrite\",name:\"rewrite\",type:\"string\"},{tfName:\"replace_global\",name:\"replaceGlobal\",type:\"bool\"}]},{tfOpName:\"StringNGrams\",category:\"string\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"dataSplits\",type:\"tensor\"}],attrs:[{tfName:\"separator\",name:\"separator\",type:\"string\"},{tfName:\"ngram_widths\",name:\"nGramWidths\",type:\"number[]\"},{tfName:\"left_pad\",name:\"leftPad\",type:\"string\"},{tfName:\"right_pad\",name:\"rightPad\",type:\"string\"},{tfName:\"pad_width\",name:\"padWidth\",type:\"number\"},{tfName:\"preserve_short_sequences\",name:\"preserveShortSequences\",type:\"bool\"}],outputs:[\"ngrams\",\"ngrams_splits\"]},{tfOpName:\"StringSplit\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"delimiter\",type:\"tensor\"}],attrs:[{tfName:\"skip_empty\",name:\"skipEmpty\",type:\"bool\"}],outputs:[\"indices\",\"values\",\"shape\"]},{tfOpName:\"StringToHashBucketFast\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"num_buckets\",name:\"numBuckets\",type:\"number\"}]}];var Tk={};Kt(Tk,{json:()=>BQ});var BQ=[{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:\"EnsureShape\",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:[]},{tfOpName:\"BroadcastArgs\",category:\"transformation\",inputs:[{start:0,name:\"s0\",type:\"tensor\"},{start:1,name:\"s1\",type:\"tensor\"}],attrs:[]}];var Wh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[uk,ck,pk,mk,fk,dk,hk,gk,xk,yk,bk,wk,Ik,Ck,vk,Sk,Nk,kk,Tk],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith(\"Placeholder\")?o.push(h[g.name]):g.op===\"Const\"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,I]=bi(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);if(E!==-1){let A=`${w}:${E}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=bi(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=bi(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Vb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith(\"^\")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case\"string\":a=Wb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=Hb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Zb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Zb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=cF(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=cF(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"tensor\":case\"tensors\":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op===\"Const\"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=bi(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:_k(p.type),type:\"dtype\"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=bi(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=bi(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function VQ(r){let t=L().global;if(typeof t.atob!=\"undefined\")return t.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 pF(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):VQ(r);return t?e:e.toLowerCase()}function Wb(r,t,e,n=!1){let o=r[t];return o!=null?pF(o.s,n):e}function Ub(r,t,e){let n=r[t];return n?n.b:e}function Hb(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o==\"number\"?o:parseInt(o,10)}function _k(r){switch(typeof r==\"string\"&&(r=_n[r]),r){case _n.DT_FLOAT:case _n.DT_HALF:return\"float32\";case _n.DT_INT32:case _n.DT_INT64:case _n.DT_INT8:case _n.DT_UINT8:return\"int32\";case _n.DT_BOOL:return\"bool\";case _n.DT_DOUBLE:return\"float32\";case _n.DT_STRING:return\"string\";case _n.DT_COMPLEX64:case _n.DT_COMPLEX128:return\"complex64\";default:return null}}function cF(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function qb(r,t,e){let n=r[t];return n&&n.type?_k(n.type):e}function Kb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>_k(o)):e}function mF(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function jb(r,t,e){let n=r[t];return n&&n.shape?mF(n.shape):e}function Xb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o==\"number\"?o:parseInt(o,10)):e}function Yb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>pF(s,n)):e}function Zb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>mF(o)):e}function Jb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Qb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Hb(this.node.rawAttrs,t,e);if(n.s!=null)return Wb(this.node.rawAttrs,t,e);if(n.b!=null)return Ub(this.node.rawAttrs,t,e);if(n.shape!=null)return jb(this.node.rawAttrs,t,e);if(n.type!=null)return qb(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Zb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Jb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Kb(this.node.rawAttrs,t,e)}return e}};var ae={};Kt(ae,{OP_SCOPE_SUFFIX:()=>V0,abs:()=>_e,acos:()=>fx,acosh:()=>dx,add:()=>K,addN:()=>EE,all:()=>tm,any:()=>cc,argMax:()=>ra,argMin:()=>hx,asin:()=>gx,asinh:()=>xx,atan:()=>yx,atan2:()=>bx,atanh:()=>wx,avgPool:()=>xu,avgPool3d:()=>Ix,basicLSTMCell:()=>$E,batchNorm:()=>oa,batchNorm2d:()=>Cx,batchNorm3d:()=>vx,batchNorm4d:()=>Sx,batchToSpaceND:()=>yu,bincount:()=>Nx,bitwiseAnd:()=>FE,booleanMaskAsync:()=>q5,broadcastArgs:()=>OE,broadcastTo:()=>sa,buffer:()=>wt,cast:()=>J,ceil:()=>kx,clipByValue:()=>vr,clone:()=>un,complex:()=>Sn,concat:()=>ie,concat1d:()=>Tx,concat2d:()=>_x,concat3d:()=>Ex,concat4d:()=>Ax,conv1d:()=>rm,conv2d:()=>Nn,conv2dTranspose:()=>om,conv3d:()=>Dx,conv3dTranspose:()=>Rx,cos:()=>bu,cosh:()=>sm,cosineWindow:()=>xh,cumprod:()=>mc,cumsum:()=>im,denseBincount:()=>mh,depthToSpace:()=>Fx,depthwiseConv2d:()=>ia,diag:()=>ME,dilation2d:()=>Ox,div:()=>ut,divNoNan:()=>Mx,dot:()=>Px,dropout:()=>dN,einsum:()=>wu,elu:()=>aa,enclosingPowerOfTwo:()=>hN,ensureShape:()=>LE,equal:()=>$r,erf:()=>am,euclideanNorm:()=>Lx,exp:()=>Ke,expandDims:()=>je,expm1:()=>zx,eye:()=>fc,fft:()=>Au,fill:()=>Co,floor:()=>la,floorDiv:()=>Qp,fused:()=>Ru,gather:()=>ua,gatherND:()=>r8,greater:()=>Re,greaterEqual:()=>cn,ifft:()=>wl,imag:()=>Iu,image:()=>fn,inTopKAsync:()=>s8,irfft:()=>bm,isFinite:()=>Bx,isInf:()=>Vx,isNaN:()=>Gx,leakyRelu:()=>Cu,less:()=>yl,lessEqual:()=>Vn,linalg:()=>xN,linspace:()=>VE,localResponseNormalization:()=>Wx,log:()=>Nr,log1p:()=>vu,logSigmoid:()=>qx,logSoftmax:()=>lm,logSumExp:()=>Su,logicalAnd:()=>Fr,logicalNot:()=>Nu,logicalOr:()=>um,logicalXor:()=>Kx,losses:()=>aY,lowerBound:()=>GE,matMul:()=>Bt,max:()=>Sr,maxPool:()=>ku,maxPool3d:()=>Xx,maxPoolWithArgmax:()=>WE,maximum:()=>kn,mean:()=>Ne,meshgrid:()=>UE,min:()=>gl,minimum:()=>lo,mirrorPad:()=>Yx,mod:()=>Zx,moments:()=>dc,movingAverage:()=>X5,mul:()=>$,multiRNNCell:()=>HE,multinomial:()=>qE,neg:()=>Ut,norm:()=>xl,notEqual:()=>ci,oneHot:()=>ca,ones:()=>ar,onesLike:()=>wr,op:()=>k,outerProduct:()=>KE,pad:()=>mn,pad1d:()=>jE,pad2d:()=>XE,pad3d:()=>YE,pad4d:()=>ZE,pool:()=>Jx,pow:()=>qr,prelu:()=>_u,print:()=>mx,prod:()=>Qx,raggedGather:()=>JE,raggedRange:()=>QE,raggedTensorToTensor:()=>tA,rand:()=>eA,randomGamma:()=>CA,randomNormal:()=>xc,randomStandardNormal:()=>vA,randomUniform:()=>Gn,randomUniformInt:()=>SA,range:()=>pa,real:()=>bl,reciprocal:()=>sy,relu:()=>Or,relu6:()=>cm,reshape:()=>R,reverse:()=>dr,reverse1d:()=>NA,reverse2d:()=>kA,reverse3d:()=>TA,reverse4d:()=>_A,rfft:()=>Du,round:()=>pm,rsqrt:()=>mm,scalar:()=>pt,scatterND:()=>Z5,searchSorted:()=>dh,selu:()=>fm,separableConv2d:()=>dm,setdiff1dAsync:()=>EA,sigmoid:()=>en,sign:()=>iy,signal:()=>iY,sin:()=>hm,sinh:()=>gm,slice:()=>Ot,slice1d:()=>xm,slice2d:()=>gh,slice3d:()=>ym,slice4d:()=>yc,softmax:()=>Eu,softplus:()=>ui,spaceToBatchND:()=>Tu,sparse:()=>lY,sparseToDense:()=>t8,spectral:()=>sY,split:()=>hr,sqrt:()=>ge,square:()=>Wt,squaredDifference:()=>wm,squeeze:()=>Wn,stack:()=>Fe,step:()=>So,stridedSlice:()=>ay,string:()=>uY,sub:()=>at,sum:()=>mt,tan:()=>ly,tanh:()=>li,tensor:()=>ir,tensor1d:()=>Oe,tensor2d:()=>pi,tensor3d:()=>uy,tensor4d:()=>AA,tensor5d:()=>DA,tensor6d:()=>$A,tensorScatterUpdate:()=>FA,tile:()=>Rr,topk:()=>cy,transpose:()=>Vt,truncatedNormal:()=>Cm,unique:()=>py,unsortedSegmentSum:()=>vm,unstack:()=>gr,upperBound:()=>OA,variable:()=>my,where:()=>Ie,whereAsync:()=>dy,zeros:()=>ke,zerosLike:()=>vt});var fF=(r,t,e,n=ae)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"AddN\":return[n.addN(v(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Mul\":return[n.mul(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Sub\":return[n.sub(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Pow\":return[n.pow(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var dF=(r,t,e,n=ae)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(v(\"x\",r,t,e))];case\"Acos\":return[n.acos(v(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(v(\"x\",r,t,e))];case\"Asin\":return[n.asin(v(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(v(\"x\",r,t,e))];case\"Atan\":return[n.atan(v(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(v(\"x\",r,t,e),v(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(v(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(v(\"x\",r,t,e))];case\"Complex\":return[n.complex(v(\"real\",r,t,e),v(\"imag\",r,t,e))];case\"Cos\":return[n.cos(v(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(v(\"x\",r,t,e))];case\"Elu\":return[n.elu(v(\"x\",r,t,e))];case\"Erf\":return[n.erf(v(\"x\",r,t,e))];case\"Exp\":return[n.exp(v(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(v(\"x\",r,t,e))];case\"Floor\":return[n.floor(v(\"x\",r,t,e))];case\"Log\":return[n.log(v(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(v(\"x\",r,t,e))];case\"Imag\":return[n.imag(v(\"x\",r,t,e))];case\"Neg\":return[n.neg(v(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(v(\"x\",r,t,e))];case\"Real\":return[n.real(v(\"x\",r,t,e))];case\"Relu\":return[n.relu(v(\"x\",r,t,e))];case\"Round\":return[n.round(v(\"x\",r,t,e))];case\"Selu\":return[n.selu(v(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(v(\"x\",r,t,e))];case\"Sin\":return[n.sin(v(\"x\",r,t,e))];case\"Sign\":return[n.sign(v(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(v(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(v(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(v(\"x\",r,t,e))];case\"Square\":return[n.square(v(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(v(\"x\",r,t,e))];case\"Tan\":return[n.tan(v(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(v(\"x\",r,t,e),v(\"clipValueMin\",r,t,e),v(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(v(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(pr(r.inputNames[0],t,e))];case\"LeakyRelu\":return[n.leakyRelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(pr(r.inputNames[0],t,e))];case\"IsInf\":return[n.isInf(pr(r.inputNames[0],t,e))];case\"IsFinite\":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Hn(r,t,e=\"\"){if(!(typeof r==\"number\"||typeof t==\"number\")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function hF(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function ed(r,t,e){let n=tw(r,e),o=!hF(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=tw(s.shape,n)}),!hF(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function tw(r,t){if(typeof r==\"number\")return t;if(typeof t==\"number\")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var ew=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=pt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t},\n because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Hn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,gr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Hn(e,s.shape,\"TensorList shape mismatch: \"),De(s)}),this.idTensor=pt(0),this.maxNumElements=o,De(this.idTensor)}copy(){return new r([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, 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.`);Hn(t,this.elementShape,\"TensorList shape mismatch: \");let o=ed(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return Fe(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error(\"Trying to pop from an empty list.\");let n=ed(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Hn(o.shape,t,\"TensorList shape mismatch: \"),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Hn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new r([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Hn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=ed(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Hn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Hn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=ed(this.elementShape,this.tensors,n);return t.length===0?ir([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return Fe(s,0)})}concat(t,e){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Hn(this.elementShape,e,\"TensorList shape mismatch: \");let n=ed(this.elementShape,this.tensors,e);return this.size()===0?ir([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ie(o,0)})}};function gF(r,t,e){let n=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!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Hn(o,t,\"TensorList shape mismatch: \");let s=gr(r);return new rd(s,t,n)}function xF(r,t,e,n){return new rd([],r,t,n)}function yF(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new rd([],e,r.dtype,n),i=gr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function bF(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=tw(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=v(\"thenBranch\",r,t,e),o=v(\"elseBranch\",r,t,e),s=v(\"cond\",r,t,e),i=v(\"args\",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case\"While\":case\"StatelessWhile\":{let n=v(\"body\",r,t,e),o=v(\"cond\",r,t,e),s=v(\"args\",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case\"LoopCond\":{let n=v(\"pred\",r,t,e);return[wi(n)]}case\"Switch\":{let n=v(\"pred\",r,t,e),o=v(\"data\",r,t,e);return o.kept||(o=wi(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[wi(o)]}return}case\"Enter\":{let n=v(\"frameName\",r,t,e),o=v(\"tensor\",r,t,e);return e.enterFrame(n),[wi(o)]}case\"Exit\":{let n=v(\"tensor\",r,t,e);return e.exitFrame(),[wi(n)]}case\"NextIteration\":{let n=v(\"tensor\",r,t,e);return e.nextIteration(),[wi(n)]}case\"TensorArrayV3\":{let n=v(\"size\",r,t,e),o=v(\"dtype\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"dynamicSize\",r,t,e),a=v(\"clearAfterRead\",r,t,e),u=v(\"identicalElementShapes\",r,t,e),l=v(\"name\",r,t,e),c=new ew(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,pt(1)]}case\"TensorArrayWriteV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=v(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[pt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=v(\"indices\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"numElements\",r,t,e),a=yF(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=v(\"elementShape\",r,t,e),o=v(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=v(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=xF(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=v(\"tensorListId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=v(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=gF(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=v(\"dtype\",r,t,e),i=v(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"lengths\",r,t,e),i=bF(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[pt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=v(\"tensorListId\",r,t,e),o=v(\"size\",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function IF(r,t,e){let[n,o]=v(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=v(\"numArgs\",r,t,e);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&&s&&l!==1)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.\")}if(u)throw new Error(\"FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported\");let c=v(\"strides\",r,t,e),p=Gh(r,t,e),m=v(\"dataFormat\",r,t,e).toUpperCase(),f=v(\"dilations\",r,t,e),[d,h]=v(\"args\",r,t,e);i&&(h=d,d=void 0);let g=v(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var CF=(r,t,e,n=ae)=>{switch(r.op){case\"Conv1D\":{let o=v(\"stride\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilation\",r,t,e);return[n.conv1d(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=v(\"strides\",r,t,e),s=Gh(r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv2d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case\"_FusedConv2D\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=IF(r,t,e);return[n.fused.conv2d({x:v(\"x\",r,t,e),filter:v(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"FusedDepthwiseConv2dNative\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=IF(r,t,e);return[n.fused.depthwiseConv2d({x:v(\"x\",r,t,e),filter:v(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"Conv2DBackpropInput\":case\"Conv2dTranspose\":{let o=v(\"outputShape\",r,t,e),s=v(\"strides\",r,t,e),i=Gh(r,t,e);return[n.conv2dTranspose(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=v(\"strides\",r,t,e),s=Gh(r,t,e),i=v(\"dilations\",r,t,e),a=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(v(\"input\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv3d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e),a=v(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var vF=(r,t,e,n=ae)=>{switch(r.op){case\"Fill\":{let o=v(\"shape\",r,t,e),s=v(\"dtype\",r,t,e),i=v(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=v(\"logits\",r,t,e),s=v(\"numSamples\",r,t,e),i=v(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=v(\"indices\",r,t,e),s=v(\"depth\",r,t,e),i=v(\"onValue\",r,t,e),a=v(\"offValue\",r,t,e),u=v(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(v(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(v(\"shape\",r,t,e),v(\"dtype\",r,t,e),v(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(v(\"shape\",r,t,e),v(\"minval\",r,t,e),v(\"maxval\",r,t,e),v(\"dtype\",r,t,e))];case\"RandomUniformInt\":return[n.randomUniformInt(v(\"shape\",r,t,e),v(\"minval\",r,t,e),v(\"maxval\",r,t,e),v(\"seed\",r,t,e))];case\"Range\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"step\",r,t,e);return[n.range(o,s,i,v(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=v(\"shape\",r,t,e),s=v(\"mean\",r,t,e),i=v(\"stdDev\",r,t,e),a=v(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,v(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Ek(r,t,e){let n=v(\"boxes\",r,t,e),o=v(\"scores\",r,t,e),s=v(\"maxOutputSize\",r,t,e),i=v(\"iouThreshold\",r,t,e),a=v(\"scoreThreshold\",r,t,e),u=v(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var SF=async(r,t,e,n,o=ae)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=Ek(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case\"NonMaxSuppressionV4\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Ek(r,t,e),c=v(\"padToMaxOutputSize\",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case\"NonMaxSuppressionV3\":case\"NonMaxSuppressionV2\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Ek(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(v(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(v(\"x\",r,t,e),v(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var NF=(r,t,e,n=ae)=>{switch(r.op){case\"LowerBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=v(\"x\",r,t,e),s=v(\"k\",r,t,e),i=v(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=v(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=v(\"x\",r,t,e),s=v(\"axis\",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var kF=(r,t,e,n=ae)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=v(\"default\",r,t,e);return[pr(r.name,t,e)||o];case\"Placeholder\":return[pr(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=v(\"x\",r,t,e);return[wi(c)]}case\"IdentityN\":return v(\"x\",r,t,e).map(c=>wi(c));case\"Snapshot\":let s=v(\"x\",r,t,e);return[wi(s)];case\"Shape\":return[n.tensor1d(v(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return v(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(v(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(v(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=v(\"x\",r,t,e),a=v(\"data\",r,t,e),u=v(\"message\",r,t,e),l=v(\"summarize\",r,t,e);console.warn(\"The graph has a tf.print() operation,usually used for debugging, which slows down performance.\"),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return pt(this.size(),\"int32\")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=gr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case\"HashTable\":case\"HashTableV2\":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=v(\"keyDType\",r,t,e),i=v(\"valueDType\",r,t,e),a=new rw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"InitializeTable\":case\"InitializeTableV2\":case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=v(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var _F=(r,t,e,n=ae)=>{switch(r.op){case\"ResizeBilinear\":{let o=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=v(\"image\",r,t,e),s=v(\"boxes\",r,t,e),i=v(\"boxInd\",r,t,e),a=v(\"cropSize\",r,t,e),u=v(\"method\",r,t,e),l=v(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=v(\"images\",r,t,e),s=v(\"transforms\",r,t,e),i=v(\"outputShape\",r,t,e),a=v(\"fillValue\",r,t,e),u=v(\"interpolation\",r,t,e),l=v(\"fillMode\",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var EF=(r,t,e,n=ae)=>{switch(r.op){case\"Equal\":return[n.equal(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Greater\":return[n.greater(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Less\":return[n.less(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(v(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(v(\"condition\",r,t,e),v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"BitwiseAnd\":return[n.bitwiseAnd(v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var AF=(r,t,e,n=ae)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(v(\"a\",r,t,e),v(\"b\",r,t,e),v(\"transposeA\",r,t,e),v(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(v(\"equation\",r,t,e),...v(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(v(\"x\",r,t,e),v(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=v(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=v(\"numArgs\",r,t,e),l=v(\"leakyreluAlpha\",r,t,e);if(i){if(a&&u!==2)throw new Error(\"Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&u!==1)throw new Error(\"Fused MatMul with BiasAdd must have one extra argument: bias.\")}let[c,p]=v(\"args\",r,t,e);return[n.fused.matMul({a:v(\"a\",r,t,e),b:v(\"b\",r,t,e),transposeA:v(\"transposeA\",r,t,e),transposeB:v(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case\"MatrixBandPart\":return[n.linalg.bandPart(v(\"a\",r,t,e),v(\"numLower\",r,t,e),v(\"numUpper\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var DF=(r,t,e,n=ae)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(v(\"x\",r,t,e),v(\"axis\",r,t,e),v(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(v(\"x\",r,t,e),v(\"radius\",r,t,e),v(\"bias\",r,t,e),v(\"alpha\",r,t,e),v(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(v(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var $F=(r,t,e,n=ae)=>{switch(r.op){case\"RaggedGather\":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(v(\"paramsNestedSplits\",r,t,e),v(\"paramsDenseValues\",r,t,e),v(\"indices\",r,t,e),v(\"outputRaggedRank\",r,t,e));return o.concat(s)}case\"RaggedRange\":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(v(\"starts\",r,t,e),v(\"limits\",r,t,e),v(\"splits\",r,t,e));return[o,s]}case\"RaggedTensorToTensor\":return[n.raggedTensorToTensor(v(\"shape\",r,t,e),v(\"values\",r,t,e),v(\"defaultValue\",r,t,e),v(\"rowPartitionTensors\",r,t,e),v(\"rowPartitionTypes\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var RF=(r,t,e,n=ae)=>{switch(r.op){case\"Max\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.max(v(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.mean(v(\"x\",r,t,e),a,u)]}case\"Min\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.min(v(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.sum(v(\"x\",r,t,e),a,u)]}case\"All\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.all(v(\"x\",r,t,e),a,u)]}case\"Any\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.any(v(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=v(\"axis\",r,t,e);return[n.argMax(v(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=v(\"axis\",r,t,e);return[n.argMin(v(\"x\",r,t,e),a)]}case\"Prod\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.prod(v(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumprod(v(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumsum(v(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=v(\"x\",r,t,e),s=v(\"weights\",r,t,e),i=v(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=v(\"x\",r,t,e),u=v(\"weights\",r,t,e),l=v(\"size\",r,t,e),c=v(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var FF=(r,t,e,n=ae)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=v(\"n\",r,t,e),s=v(\"axis\",r,t,e),i=v(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=v(\"axis\",r,t,e),s=v(\"batchDims\",r,t,e),i=v(\"x\",r,t,e),a=v(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=v(\"dims\",r,t,e),s=[];for(let a=0;a{let o=v(\"axis\",r,t,e),s=v(\"tensors\",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error(\"the input tensors shape does not match\");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case\"Unpack\":{let o=v(\"axis\",r,t,e),s=v(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=v(\"reps\",r,t,e);return[n.tile(v(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=v(\"axis\",r,t,e),s=v(\"numOrSizeSplits\",r,t,e),i=v(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=v(\"indices\",r,t,e),s=v(\"values\",r,t,e),i=v(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=v(\"sparseIndices\",r,t,e),s=v(\"outputShape\",r,t,e),i=v(\"sparseValues\",r,t,e),a=v(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case\"TensorScatterUpdate\":{let o=v(\"indices\",r,t,e),s=v(\"values\",r,t,e),i=v(\"tensor\",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var OF=(r,t,e,n=ae)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v(\"indices\",r,t,e),v(\"values\",r,t,e),v(\"denseShape\",r,t,e),v(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v(\"inputIndices\",r,t,e),v(\"inputShape\",r,t,e),v(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var MF=(r,t,e,n=ae)=>{switch(r.op){case\"FFT\":return[n.fft(v(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(v(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(v(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var PF=(r,t,e,n=ae)=>{switch(r.op){case\"StaticRegexReplace\":return[n.string.staticRegexReplace(v(\"input\",r,t,e),v(\"pattern\",r,t,e),v(\"rewrite\",r,t,e),v(\"replaceGlobal\",r,t,e))];case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v(\"data\",r,t,e),v(\"dataSplits\",r,t,e),v(\"separator\",r,t,e),v(\"nGramWidths\",r,t,e),v(\"leftPad\",r,t,e),v(\"rightPad\",r,t,e),v(\"padWidth\",r,t,e),v(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v(\"input\",r,t,e),v(\"delimiter\",r,t,e),v(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(v(\"input\",r,t,e),v(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var LF=(r,t,e,n=ae)=>{switch(r.op){case\"Cast\":return[n.cast(v(\"x\",r,t,e),v(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=v(\"axis\",r,t,e);return[n.expandDims(v(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=v(\"axis\",r,t,e);return[n.squeeze(v(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"EnsureShape\":return[n.ensureShape(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=v(\"blockShape\",r,t,e),s=v(\"paddings\",r,t,e);return[n.spaceToBatchND(v(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=v(\"blockShape\",r,t,e),s=v(\"crops\",r,t,e);return[n.batchToSpaceND(v(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=v(\"blockSize\",r,t,e),s=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(v(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(v(\"s0\",r,t,e),v(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Ak(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>fF(i,a,u));case\"basic_math\":return o(()=>dF(i,a,u));case\"control\":return wF(i,a,u);case\"convolution\":return o(()=>CF(i,a,u));case\"creation\":return o(()=>vF(i,a,u));case\"dynamic\":return SF(i,a,u);case\"evaluation\":return o(()=>NF(i,a,u));case\"image\":return o(()=>_F(i,a,u));case\"graph\":return o(()=>kF(i,a,u));case\"logical\":return o(()=>EF(i,a,u));case\"matrices\":return o(()=>AF(i,a,u));case\"normalization\":return o(()=>DF(i,a,u));case\"ragged\":return o(()=>$F(i,a,u));case\"reduction\":return o(()=>RF(i,a,u));case\"slice_join\":return o(()=>FF(i,a,u));case\"sparse\":return o(()=>OF(i,a,u));case\"spectral\":return o(()=>MF(i,a,u));case\"string\":return o(()=>PF(i,a,u));case\"transformation\":return o(()=>LF(i,a,u));case\"hash_table\":return TF(i,a,u,n);case\"custom\":let l=Vb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Qb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Uh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,this.rootContext={id:0,frameName:\"\",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?\"\":`${e.frameName}-${e.iterationId}`).join(\"/\"):\"\"}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),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 t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error(\"Cannot increase frame iteration, the context is empty\")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function Dk(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>In(m)[0]));n=n||[];let c=new Set(n.map(m=>In(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Bu(m)||ftt(m)||dtt(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&!l.has(m.name)&&!c.has(m.name)){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function zF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>In(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g==\"string\"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=ltt(d,u);return utt(h,u),h}function ltt(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var nd=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function utt(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a==\"string\"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a==\"string\"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new nd(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new nd(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new nd(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new nd(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function BF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Bu(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=\",\",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new r(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+\"--\"+o.join(this.SEPARATOR)}compile(t,e){let n=Dk(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;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 [${i}]`);if(o.length>0){let l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=zF(this.graph,n),u=BF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return De(e),e}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([e,n])=>[e,this.cloneTensorList(n)]))}execute(t,e){this.disposeIntermediateTensors(),t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(m=>this.graph.nodes[In(m)[0]]),s=e.map(m=>In(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Uh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=In(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=Ak(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){if(!(Bu(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Bu(u))continue;let l=lk(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Bu(u)||s.has(u.name)}if(!(Bu(t)||i==null))for(let u of i){if(a(u))continue;let l=lk(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let e of t)e&&!e.isDisposed&&e.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,e,n=!1,o={},s={}){this.disposeIntermediateTensors(),n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepIntermediateTensors=L().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Uh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(m,a,i)),l=u.map(m=>m.id),c=Object.keys(t).map(m=>t[m].id),p=new Set([...l,...c,...this.weightIds]);return Object.values(a).forEach(m=>{m.forEach(f=>{f&&!f.isDisposed&&!p.has(f.id)&&f.dispose()})}),this.parent==null&&i.dispose(p),u}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(I=>this.graph.nodes[In(I)[0]]),a=n.map(I=>In(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=Dk(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=In(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==null&&!o&&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(I=>!Bu(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I=\"\";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m=\"\";if(p.node.op===\"Enter\"&&v(\"isConstant\",p.node,o,n)&&([m]=bi(p.node.name,n)),o[p.node.name]==null){let f=Ak(p.node,o,n,this._resourceManager);m||([m]=bi(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(h)),n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(f)),this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=bi(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=In(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){var e,n;let o={};for(let s in t){let i=(n=(e=this._signature)===null||e===void 0?void 0:e.inputs)===null||n===void 0?void 0:n[s];i!=null?o[i.name]=t[s]:o[s]=t[s]}return o}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=In(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>{var n,o;let s=(o=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||o===void 0?void 0:o[e];return s!=null?s.name:e},{})}checkOutputs(t){t.forEach(e=>{let[n]=In(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var nw=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var htt=\"?tfjs-format=file\",gtt=\"model.json\",qh=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(t,e={},n=Mr){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new nw}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}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 t=this.handler.load();return y.isPromise(t)?t.then(e=>e.getWeightStream==null?this.loadSync(e):this.loadStreaming(e)):this.loadSync(t)}loadSync(t){let e=this.io.decodeWeights(t.weightData,t.weightSpecs);return this.loadWithWeightMap(t,e)}async loadStreaming(t){if(t.getWeightStream==null)throw new Error(\"Model artifacts missing streamWeights function\");let e=await ax(t.getWeightStream(),t.weightSpecs);return this.loadWithWeightMap(t,e)}loadWithWeightMap(t,e){this.artifacts=t;let n=this.artifacts.modelTopology,o=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(o=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}if(this.signature=o,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new Hh(Wh.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(e),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Wh.Instance.transformGraph(t.modelInitializer);this.initializer=new Hh(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t==\"string\"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error(\"GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");return t.save(this.artifacts)}addStructuredOutputNames(t){if(this.structuredOutputKeys){let e=t instanceof Lt?[t]:t,n={};return e.forEach((o,s)=>n[this.structuredOutputKeys[s]]=o),n}return t}predict(t,e){let n=this.execute(t,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(t,e){let n=await this.executeAsync(t,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(t){var e;if(!(t instanceof Lt)&&!Array.isArray(t)){let s=(e=this.signature)===null||e===void 0?void 0:e.inputs;if(s!=null)for(let i in s){let a=s[i];a.resourceId!=null&&(t[i]=this.resourceIdToCapturedInput[a.resourceId])}return t}t=Array.isArray(t)?t:[t];let n=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${t.length} input tensors provided.`);let o=0;return this.inputNodes.reduce((s,i)=>{var a,u,l;let c=(l=(u=(a=this.signature)===null||a===void 0?void 0:a.inputs)===null||u===void 0?void 0:u[i])===null||l===void 0?void 0:l.resourceId;return c!=null?s[i]=this.resourceIdToCapturedInput[c]:s[i]=t[o++],s},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=this.initializerSignature.outputs,n=Object.keys(e);for(let o=0;o1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function xtt(r,t={},e=Mr){if(r==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&&typeof r==\"string\"&&(r=btt(r));let n=new qh(r,t,e);return await n.load(),n}function ytt(r){if(r==null)throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model\");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error(\"modelJSON must be the first element of the array\");if(!o||!(o instanceof ArrayBuffer))throw new Error(\"An ArrayBuffer of weights must be the second element of the array\");if(!(\"modelTopology\"in n))throw new Error(\"Model JSON is missing 'modelTopology'\");if(!(\"weightsManifest\"in n))throw new Error(\"Model JSON is missing 'weightsManifest'\");let s=Mr.getWeightSpecs(n.weightsManifest),i=Mr.getModelArtifactsForJSONSync(n,s,o);t=Mr.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=Mr.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new qh(t);return e.load(),e}function btt(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${gtt}${htt}`}var VF=\"4.21.0\";var aO={};Kt(aO,{CSVDataset:()=>id,Dataset:()=>Ii,FileDataSource:()=>ud,TextLineDataset:()=>sd,URLDataSource:()=>cd,array:()=>ZF,csv:()=>rO,func:()=>nO,generator:()=>oO,microphone:()=>iO,version_data:()=>Jk,webcam:()=>sO,zip:()=>JF});var YF=Gl(hh());var KF=Gl(hh());function GF(r,t){return ow(r,t)}function ow(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob==\"function\"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error(\"Circular references are not supported.\");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep map function may not return both a value and recurse=true.\");if(o.recurse)if(Vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=ow(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function WF(r,t=Rk){return UF(r,t)}function UF(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error(\"Circular references are not supported.\");let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep zip function may not return both a value and recurse=true.\");if(o.recurse)if(Vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=UF(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function Rk(r){return r===null?null:Vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function sw(r,t){let e=new Map;ow(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return ow(r,t,e)}function Vu(r){let t=!1;if(L().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=$k();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Lt)&&!(r instanceof Promise)&&!t)}function HF(r){return r==null||wtt(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Lt||y.isTypedArray(r)}function wtt(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function qF(r){return GF(r,Itt)}function Itt(r){return r instanceof Lt?{value:r.clone(),recurse:!1}:Vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var od=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError(\"Can't create a ring buffer of unknown capacity.\");if(t<1)throw new RangeError(\"Can't create ring buffer of capacity < 1.\");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError(\"Can't get item at a negative index.\");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError(\"Can't set item at a negative index.\");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Kh=class r extends od{constructor(){super(r.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new zk(this,t,e)}columnMajorBatch(t,e=!0,n=Rk){return this.rowMajorBatch(t,e).map(s=>WF(s,n))}concatenate(t,e){return new aw(qk([this,t]),e)}take(t){return t<0||t==null?this:new Lk(this,t)}skip(t){return t<0||t==null?this:new Pk(this,t)}prefetch(t){return new lw(this,t)}shuffle(t,e){return new Hk(this,t,e)}serial(){return new Mk(this)}},Fk=class extends er{constructor(t){super(),this.items=t,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 t=this.items[this.trav];return this.trav++,{value:qF(t),done:!1}}},Ok=class extends er{constructor(t){super(),this.nextFn=t}summary(){return\"Function call\"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},Mk=class extends er{constructor(t){super(),this.upstream=t,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()}},Pk=class extends er{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},zk=class extends er{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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 t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},Bk=class extends er{constructor(t,e){super(),this.upstream=t,this.predicate=e,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 t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;Tt(t.value)}}},Vk=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Gk=class extends er{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},iw=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=await this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Zc=class extends er{constructor(){super(),this.outputQueue=new Kh,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}}},Wk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return!0}},aw=class extends er{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return\"TODO: fill in upstream of chained summaries -> Chained\"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,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 e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},Dl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(Dl||(Dl={}));var Uk=class extends er{constructor(t,e=Dl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return\"{TODO: fill in upstream of zip summaries} -> Zip\"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof er?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await sw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Dl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Dl.SHORTEST:return{value:null,done:!0};case Dl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},lw=class extends er{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new od(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},Hk=class extends lw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=KF.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Ii=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is\n ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),En(async()=>(await n.iterator()).columnMajorBatch(t,e,Ctt),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,En(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,En(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return En(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return En(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError(\"`Dataset.prefetch()` requires bufferSize to be specified.\");let e=this;return En(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,En(async()=>{let o=jh(async()=>({value:await e.iterator(),done:!1}));return jF(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<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 o=this,s=YF.alea(e||y.now().toString());return En(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,En(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArrayForTest()}};Ii.MAX_BUFFER_SIZE=1e4;function En(r,t=null){return new class extends Ii{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function ZF(r){return En(async()=>qk(r),r.length)}function JF(r){if(!Vu(r))throw new Error(\"The argument to zip() must be an object or array.\");let t;if(Array.isArray(r))for(let e=0;e{let e=await sw(r,n=>{if(n instanceof Ii)return{value:n.iterator(),recurse:!1};if(Vu(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return XF(e,Dl.SHORTEST)},t)}function Ctt(r){if(r===null)return null;let t=r[0];return HF(t)?{value:vtt(r),recurse:!1}:{value:null,recurse:!0}}function vtt(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Lt?Fe(r):ir(r)}var sd=class extends Ii{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(`\n`).map(o=>(o.endsWith(\"\\r\")&&(o=o.slice(0,-1)),o))}};var uw='\"',Xh=Symbol(\"out\"),QF=Symbol(\"field\"),cw=Symbol(\"quote\"),Kk=Symbol(\"quoteafterquote\"),tO=Symbol(\"quoteinquote\"),id=class extends Ii{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error(\"Column names must be provided if there is no header line.\");this.fullColumnNames&&t&&y.assert(t.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 (\"+t.length.toString()+\").\"),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>\"Duplicate column names found: \"+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key \"'+o+'\" 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 n=e.value;return this.parseRow(n,!1)}else return null}constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=\",\",this.delimWhitespace=!1,this.base=new sd(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>\"Delimiter should not be provided when delimWhitespace is true.\"),this.delimWhitespace=!0,this.delimiter=\" \"):this.delimiter=e.delimiter?e.delimiter:\",\"}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!L().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new r(t);return await e.start(),e}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 t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.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 t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},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(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ir(n,e)}};var mw=class r extends er{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Oe([0],\"int32\"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=pi([i,s,u,a],[1,4])}else this.cropBox=pi([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!L().get(\"IS_BROWSER\"))throw new Error(\"tf.data.webcam is only supported in browser environment.\");if(!t){if(t=document.createElement(\"video\"),!e.resizeWidth||!e.resizeHeight)throw new Error(\"Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.\");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new r(t,e);return await n.start(),n}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error(\"Could not obtain video from webcam.\");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=_y.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=je(J(t,\"float32\"),0),n;n=fn.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return R(n,o.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.\")}};var ad=class{};var Yh=class extends er{split(t){return new jk(this,t)}},jk=class extends Yh{constructor(t,e){super(),this.upstream=t,this.impl=new Xk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Xk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=\"\"}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===\"\"?!1:(this.outputQueue.push(this.carryover),this.carryover=\"\",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var fw=class extends er{decodeUTF8(){return new Yk(this)}},Yk=class extends Yh{constructor(t){super(),this.upstream=t,this.impl=new Zk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Zk=class extends Zc{constructor(t){if(super(),this.upstream=t,L().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=$k();this.decoder=new e(\"utf8\")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return L().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var ld=class extends fw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().get(\"IS_BROWSER\")?t instanceof File||t instanceof Blob:!1),()=>\"FileChunkIterator only supports File, Blob and Uint8Array right now.\"),this.offset=e.offset||0,this.chunkSize=e.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,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError(\"FileReader returned unknown type.\"));e(u)},s.onabort=a=>n(new Error(\"Aborted\")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function eO(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=Stt(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new ld(i,t)}else throw new Error(s.statusText)}var Stt=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 dw(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var ud=class extends ad{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(dw(this.input)&&L().get(\"IS_NODE\")){let t=hw();this.input=t.readFileSync(this.input.slice(7))}return new ld(this.input,this.options)}};var cd=class extends ad{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return dw(this.url)?new ud(this.url,this.fileOptions).iterator():eO(this.url,this.fileOptions)}};function rO(r,t={}){return new id(new cd(r),t)}function nO(r){let t=jh(r);return En(async()=>t)}function oO(r){return En(async()=>{let t=await r();return jh(()=>t.next())})}async function sO(r,t){return mw.create(r,t)}async function iO(r){return pw.create(r)}var Jk=\"4.21.0\";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var Ntt=Xr.whereImpl,pd=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Ta(this,Bn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().get(\"IS_NODE\")&&S.warn(`\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e===\"string\"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e===\"complex64\"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return S.mergeRealAndImagArrays(o,s)}return y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:[\"The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less.\"]}}where(t){tt([t],\"where\");let e=this.readSync(t.dataId);return Ntt(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};pd.nextDataId=0;var Ew={};Kt(Ew,{addImpl:()=>eT,bincountImpl:()=>dd,bincountReduceImpl:()=>gw,bitwiseAndImpl:()=>rT,castImpl:()=>tT,ceilImpl:()=>nT,concatImpl:()=>Jc,equalImpl:()=>oT,expImpl:()=>iT,expm1Impl:()=>lT,floorDivImpl:()=>cT,floorImpl:()=>uT,gatherNdImpl:()=>xw,gatherV2Impl:()=>yw,greaterEqualImpl:()=>mT,greaterImpl:()=>pT,lessEqualImpl:()=>dT,lessImpl:()=>fT,linSpaceImpl:()=>bw,logImpl:()=>hT,maxImpl:()=>ww,maximumImpl:()=>gT,minimumImpl:()=>xT,multiplyImpl:()=>Zh,negImpl:()=>yT,notEqualImpl:()=>bT,prodImpl:()=>wT,raggedGatherImpl:()=>Iw,raggedRangeImpl:()=>Cw,raggedTensorToTensorImpl:()=>vw,rangeImpl:()=>tp,rsqrtImpl:()=>CT,scatterImpl:()=>Ci,sigmoidImpl:()=>LO,simpleAbsImpl:()=>Qk,sliceImpl:()=>ep,sparseFillEmptyRowsImpl:()=>Sw,sparseReshapeImpl:()=>Nw,sparseSegmentReductionImpl:()=>gd,sqrtImpl:()=>VO,squaredDifferenceImpl:()=>ST,staticRegexReplaceImpl:()=>NT,stridedSliceImpl:()=>kw,stringNGramsImpl:()=>rp,stringSplitImpl:()=>np,stringToHashBucketFastImpl:()=>op,subImpl:()=>TT,tileImpl:()=>Tw,topKImpl:()=>_w,transposeImpl:()=>hd,uniqueImpl:()=>sp});function Qk(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,\"abs\");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=Qk(o),e.makeOutput(n,t.shape,t.dtype)},lO={kernelName:Ai,backendName:\"cpu\",kernelFunc:ktt};function Qt(r){return(t,e,n,o,s)=>{let i=S.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let I=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let E=y.locToIndex(N,m,d);c[x]=r(n[I],o[E])}return[c,i]}}function Ir(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,\"complex64\"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,\"float32\",s),imag:e.makeTensorInfo(o.shape,\"float32\",i)},a}var uO={kernelName:Ap,backendName:\"cpu\",kernelFunc:Ir};function md(r,t,e=\"float32\"){if(e===\"complex64\"){let o=md(r,t,\"float32\"),s=md(r,t,\"float32\");return Ir({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Zr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var cO={kernelName:go,backendName:\"cpu\",kernelFunc:Zr};function Ro(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var pO={kernelName:Vp,backendName:\"cpu\",kernelFunc:Ro};function tT(r,t,e,n){if(n===\"int32\"){let o=Int32Array.from(r);return[t,\"int32\",o]}if(n===\"bool\"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,\"bool\");return[i,\"bool\",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Zr({inputs:{x:o},backend:e});let c=md(e,o.shape,o.dtype),p=Fo({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=Ir({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Ro({inputs:{input:o},backend:e}),p=Fo({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Zr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=tT(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var mO={kernelName:fo,backendName:\"cpu\",kernelFunc:Fo};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype===\"string\"?S.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?S.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype===\"complex64\"||a.dtype===\"complex64\"){let l=Fo({inputs:{x:i},backend:u,attrs:{dtype:\"complex64\"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=Fo({inputs:{x:a},backend:u,attrs:{dtype:\"complex64\"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",E),M=Ir({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),u.disposeIntermediateTensorInfo(F),M}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function fd(r){return(t,e,n,o,s,i)=>{let a=S.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType(\"float32\",u),m=y.getTypedArrayFromDType(\"float32\",u),f=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let M=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[M*2],g[M*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var eT=Qt((r,t)=>r+t),Ttt=fd((r,t,e,n)=>({real:r+e,imag:t+n})),ya=oe(no,eT,Ttt),fO={kernelName:no,backendName:\"cpu\",kernelFunc:ya};function dd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function gw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}var rT=Qt((r,t)=>r&t),_tt=oe($a,rT),dO={kernelName:$a,backendName:\"cpu\",kernelFunc:_tt};function _r(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype===\"string\"){if(!Array.isArray(u))throw new Error(\"String tensor's value was not an instance of Array\");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var nT=_r(r=>Math.ceil(r)),Ett=An(Jo,nT),hO={kernelName:Jo,backendName:\"cpu\",kernelFunc:Ett};function Jc(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!==\"string\"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e===\"string\"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),sT=oe(za,oT,null,\"bool\"),gO={kernelName:za,backendName:\"cpu\",kernelFunc:sT};var iT=_r(r=>Math.exp(r)),aT=An(cs,iT,\"float32\"),xO={kernelName:cs,backendName:\"cpu\",kernelFunc:aT};var lT=_r(r=>Math.expm1(r)),Att=An(ps,lT),yO={kernelName:ps,backendName:\"cpu\",kernelFunc:Att};var uT=_r(r=>Math.floor(r)),Dtt=An(ms,uT),bO={kernelName:ms,backendName:\"cpu\",kernelFunc:Dtt};var cT=Qt((r,t)=>Math.floor(r/t)),$tt=oe(fs,cT,null,\"int32\"),wO={kernelName:fs,backendName:\"cpu\",kernelFunc:$tt};function xw(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),Rtt=oe(Ga,pT,null,\"bool\"),IO={kernelName:Ga,backendName:\"cpu\",kernelFunc:Rtt};var mT=Qt((r,t)=>r>=t?1:0),Ftt=oe(hs,mT,null,\"bool\"),CO={kernelName:hs,backendName:\"cpu\",kernelFunc:Ftt};var fT=Qt((r,t)=>rr<=t?1:0),Mtt=oe(Ua,dT,null,\"bool\"),SO={kernelName:Ua,backendName:\"cpu\",kernelFunc:Mtt};function bw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),Ptt=An(ws,hT),NO={kernelName:ws,backendName:\"cpu\",kernelFunc:Ptt};function ww(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var gT=Qt((r,t)=>Math.max(r,t)),Ltt=oe(Ss,gT),kO={kernelName:Ss,backendName:\"cpu\",kernelFunc:Ltt};var xT=Qt((r,t)=>Math.min(r,t)),ztt=oe(_s,xT),TO={kernelName:_s,backendName:\"cpu\",kernelFunc:ztt};var Zh=Qt((r,t)=>r*t),Btt=fd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),Qc=oe(Ds,Zh,Btt),_O={kernelName:Ds,backendName:\"cpu\",kernelFunc:Qc};function yT(r,t,e){let n=y.createScalarValue(-1,e);return Zh([],t,n,r,e)}function Vtt(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=yT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var EO={kernelName:zi,backendName:\"cpu\",kernelFunc:Vtt};var bT=Qt((r,t)=>r!==t?1:0),Gtt=oe(Za,bT,null,\"bool\"),AO={kernelName:Za,backendName:\"cpu\",kernelFunc:Gtt};function hd(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var $O={kernelName:Ms,backendName:\"cpu\",kernelFunc:Wtt};function Utt(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(\",\");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function Htt(r,t){for(let e=0;eo)throw new Error(\"Ragged splits must not point past values\");for(let s=1;sn[s])throw new Error(\"Ragged splits must be sorted in ascending order\")}}function qtt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);Htt(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function RO(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error(\"starts must be a scalar or vector\");if(o.length>1)throw new Error(\"limits must be a scalar or vector\");if(i.length>1)throw new Error(\"deltas must be a scalar or vector\");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>FO)throw new Error(`Requires ((limit - start) / delta) <= ${FO}`);m[g+1]=m[g]+I}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i\"Final length of result must be equal to firstDimension.\"),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error(\"Invalid row split size.\");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error(\"Invalid row ids.\");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Oo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Oo.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Oo[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error(\"No row_partition_types given.\");let e=this.rowPartitionTypes[0];switch(e){case Oo.FIRST_DIM_SIZE:return t[0];case Oo.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Oo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Oo[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error(\"Invalid first partition input. Tensor requires at least one element.\");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=MO(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=sa(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);OO(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function OO(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function vw(r,t,e,n,o,s,i,a,u,l){return new IT(r,t,e,n,o,s,i,a,u,l).compute()}function tp(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),Ytt=An(Us,CT),PO={kernelName:Us,backendName:\"cpu\",kernelFunc:Ytt};function Ci(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=u instanceof le?u:wt(c,t.dtype);typeof u==\"string\"||typeof u==\"number\"?f.values.fill(u):typeof u==\"boolean\"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),vT=At(Xs,r=>1/(1+Math.exp(-r))),zO={kernelName:Xs,backendName:\"cpu\",kernelFunc:vT};function ep(r,t,e,n,o){let s=Be.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Be.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?S.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o===\"string\"?S.fromStringArrayToUint8(c.values):c.values}function Mo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=Be.parseSliceParams(o,s,i);Be.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=ep(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var BO={kernelName:Ui,backendName:\"cpu\",kernelFunc:Mo};function Sw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(S.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(S.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,I)=>w*I,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),Ztt=At(Zs,r=>Math.sqrt(r)),GO={kernelName:Zs,backendName:\"cpu\",kernelFunc:Ztt};var ST=Qt((r,t)=>{let e=r-t;return e*e}),Jtt=oe(ti,ST),WO={kernelName:ti,backendName:\"cpu\",kernelFunc:Jtt};var NT=_r((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?\"g\":\"\"),o)}),Qtt=An(ec,NT),UO={kernelName:ec,backendName:\"cpu\",kernelFunc:Qtt};function kw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType(\"int32\",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth;this.createNGrams(t,l,a,c,1,m)}}return[a,i]}};function rp(r,t,e,n,o,s,i,a){return new kT(e,n,o,s,i,a).compute(r,t)}function tet(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),eet=fd((r,t,e,n)=>({real:r-e,imag:t-n})),Jh=oe(ei,TT,eet),HO={kernelName:ei,backendName:\"cpu\",kernelFunc:Jh};function Tw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function qO(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));qO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Qh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Qh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function _w(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType(\"int32\",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew pd,1);var _T=At(ls,r=>r>=0?r:Math.exp(r)-1),jO={kernelName:ls,backendName:\"cpu\",kernelFunc:_T};function ET(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],\"leakyRelu\");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType(\"float32\",i);for(let l=0;lr<0?t*r:r);function AT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],\"prelu\");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=ret(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var YO={kernelName:Os,backendName:\"cpu\",kernelFunc:AT};var DT=At(Ls,r=>Math.max(0,r)),ZO={kernelName:Ls,backendName:\"cpu\",kernelFunc:DT};var $T=At(Vs,r=>Math.min(Math.max(0,r),6)),JO={kernelName:Vs,backendName:\"cpu\",kernelFunc:$T};function ip(r,t,e,n,o){if(e===\"linear\")return Zr({inputs:{x:t},backend:r});if(e===\"relu\")return DT({inputs:{x:t},backend:r});if(e===\"elu\")return _T({inputs:{x:t},backend:r});if(e===\"relu6\")return $T({inputs:{x:t},backend:r});if(e===\"prelu\")return AT({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return ET({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return vT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function te(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var QO={kernelName:Gi,backendName:\"cpu\",kernelFunc:te};function RT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],\"matMul\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Hr.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=te({inputs:{x:o},backend:e,attrs:{shape:I}}),A=te({inputs:{x:s},backend:e,attrs:{shape:N}}),D=i?E.shape[1]:E.shape[2],F=i?E.shape[2]:E.shape[1],M=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(E.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(E.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],lt=F*M,ot=wt([V,F,M],E.dtype),it=ot.values,ft=e.blockSize;for(let gt=0;gtMath.acos(r)),rM={kernelName:Go,backendName:\"cpu\",kernelFunc:oet};var set=At(Wo,r=>Math.acosh(r)),nM={kernelName:Wo,backendName:\"cpu\",kernelFunc:set};function iet(r){let{inputs:t,backend:e}=r,n=t;tt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var aM={kernelName:Di,backendName:\"cpu\",kernelFunc:cet};function pet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,\"argMin\");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=We({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=S.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,\"int32\"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var lM={kernelName:$i,backendName:\"cpu\",kernelFunc:pet};var met=At(Ho,r=>Math.asin(r)),uM={kernelName:Ho,backendName:\"cpu\",kernelFunc:met};var fet=At(qo,r=>Math.asinh(r)),cM={kernelName:qo,backendName:\"cpu\",kernelFunc:fet};var det=At(Ko,r=>Math.atan(r)),pM={kernelName:Ko,backendName:\"cpu\",kernelFunc:det};var het=Qt((r,t)=>Math.atan2(r,t)),get=oe(Xo,het),mM={kernelName:Xo,backendName:\"cpu\",kernelFunc:get};var xet=At(jo,r=>Math.atanh(r)),fM={kernelName:jo,backendName:\"cpu\",kernelFunc:xet};function xd(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let I=0;IY?Y=ft:s===\"avg\"&&(Z+=ft,et++)}if(isNaN(Y))break}let nt=G+W*w+A;g[nt]=s===\"avg\"?Z/et:Y}}}return h}function Aw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,\"int32\"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gM&&(M=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,E,x)}}return i}function Dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),I=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],D=o.outShape[4];for(let F=0;FRt?Rt=Ae:s===\"avg\"&&(Dt+=Ae,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=Ct+G;I[qt]=s===\"avg\"?Dt/Math.max(Ht,1):Rt}}}}return w}function dM(r,t){let e=wt(t.outShape,\"int32\"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=st,q=j*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function yet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=xd(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var hM={kernelName:Yo,backendName:\"cpu\",kernelFunc:yet};function bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"avgPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var gM={kernelName:Ri,backendName:\"cpu\",kernelFunc:bet};function wet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"avgPool3DGrad\");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=E-1-c.padInfo.left,F=N-1-c.padInfo.top,M=wt(s.shape,\"float32\"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(ft)!==ft))for(let gt=0;gt=c.outWidth||Math.floor(Ct)!==Ct)continue;let Rt=G.get(W,ot,ft,Ct,q);st+=Rt}}}M.set(st*V,W,H,j,Y,q)}return e.makeTensorInfo(M.shape,M.dtype,M.values)}var xM={kernelName:Hl,backendName:\"cpu\",kernelFunc:wet};function Iet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,I=x-1-c.padInfo.top,N=wt(i.shape,\"float32\"),E=1/(f*d),A=e.data.get(o.dataId).values,D=wt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,Y,et,M);H+=nt}}N.set(H*E,F,V,G,M)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var yM={kernelName:Ul,backendName:\"cpu\",kernelFunc:Iet};function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||a.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(s==null||a.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\"),tt([o,a,u,s,i],\"batchNorm\");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var bM={kernelName:ds,backendName:\"cpu\",kernelFunc:Cet};function vet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],\"batchToSpaceND\");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=te({inputs:{x:o},backend:e,attrs:{shape:u}}),d=We({inputs:{x:f},backend:e,attrs:{perm:l}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var wM={kernelName:Fi,backendName:\"cpu\",kernelFunc:vet};function Net(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=dd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var IM={kernelName:Da,backendName:\"cpu\",kernelFunc:Net};function ket(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var CM={kernelName:ql,backendName:\"cpu\",kernelFunc:ket};var Tet=At(ho,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Zr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(I=>Ro({inputs:{input:I},backend:e})),g=u.map(I=>ba({inputs:{input:I},backend:e})),x=Gu({inputs:h,backend:e,attrs:{axis:s}}),b=Gu({inputs:g,backend:e,attrs:{axis:s}}),w=Ir({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return te({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Jc(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var kM={kernelName:Oi,backendName:\"cpu\",kernelFunc:Gu};function FT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],\"conv2d\");let p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat===\"channelsLast\",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,M=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],Ct=et+ft*D;for(let Rt=0;Rt=m.inWidth)continue;let ye=gt+qt*E[1],re=Ct+pe*F,be=ye;for(let de=0;de=l.inDepth)continue;let Z=j*F[0],et=V+Y*D[1];for(let nt=0;nt=l.inHeight)continue;let ft=Z+ot*F[1],gt=et+it*D[2];for(let Ct=0;Ct=l.inWidth)continue;let pe=ft+Ht*F[2],ye=gt+qt*l.inChannels,re=pe;for(let be=0;beMath.cos(r)),RM={kernelName:rs,backendName:\"cpu\",kernelFunc:Fet};var Oet=At(ns,r=>Math.cosh(r)),FM={kernelName:ns,backendName:\"cpu\",kernelFunc:Oet};function Met(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],\"float32\"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,I=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-M)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?M*(m-1)+st*H:.5*(M+G)*(m-1);if(lt<0||lt>m-1){for(let gt=0;gt1?M*(m-1)+Z*H:.5*(M+G)*(m-1);if(et<0||et>m-1){for(let lt=0;ltx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=S.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let M=0;M=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let nt=0;nt=f.inWidth)continue;let ft=Z+ot*p[1],gt=et+it*f.inChannels,Ct=st,Rt=ft;for(let Dt=0;Dt{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,dilationWidth:F,outShape:M}=S.computeDilation2DInfo(n.shape,o.shape,s,i,\"NHWC\",a),V=y.sizeFromShape(M),G=M.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&it=0&>st&&(st=Dt)}}}let lt=y.locToIndex([H,j,Z,nt],G,y.computeStrides(M));W[lt]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),M,n.dtype),shape:M,dtype:n.dtype}}};var HM={kernelName:Zl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Zl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=lt,st=it)}}}V[nt][st][Z]+=M[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var qM={kernelName:Yl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Yl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=ot,st=ft)}}}V[W][nt][st][Z]+=M[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Uet(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{canvas:s,options:i}=n,{contextOptions:a,imageOptions:u}=i||{},l=(u==null?void 0:u.alpha)||1,c=(a==null?void 0:a.contextType)||\"2d\";if(c!==\"2d\")throw new Error(`Context type ${a.contextType} is not supported by the CPU backend.`);let p=s.getContext(c,(a==null?void 0:a.contextAttributes)||{});if(p==null)throw new Error(`Could not get the context with ${c} type.`);let[m,f]=o.shape.slice(0,2),d=o.shape.length===2?1:o.shape[2],h=e.data.get(o.dataId).values,g=o.dtype===\"float32\"?255:1,x=new Uint8ClampedArray(f*m*4);for(let w=0;w1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${A}.`)}else if(o.dtype===\"int32\"&&(A<0||A>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${A}.`);d===1?(I[0]=A*g,I[1]=A*g,I[2]=A*g):I[E]=A*g}let N=w*4;x[N+0]=Math.round(I[0]),x[N+1]=Math.round(I[1]),x[N+2]=Math.round(I[2]),x[N+3]=Math.round(I[3])}s.width=f,s.height=m;let b=new ImageData(x,f,m);return p.putImageData(b,0,0),o}var KM={kernelName:Qd,backendName:\"cpu\",kernelFunc:Uet};function $l(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"sum\");let a;o.dtype===\"bool\"?a=Fo({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Zr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=We({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,\"int32\"),g=md(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=$l({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var XM={kernelName:Fp,backendName:\"cpu\",kernelFunc:Het};function qet(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],\"eluGrad\");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var YM={kernelName:La,backendName:\"cpu\",kernelFunc:qet};var Ket=S.ERF_P,jet=S.ERF_A1,Xet=S.ERF_A2,Yet=S.ERF_A3,Zet=S.ERF_A4,Jet=S.ERF_A5,Qet=At(us,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+Ket*e);return t*(1-((((Jet*n+Zet)*n+Yet)*n+Xet)*n+jet)*n*Math.exp(-e*e))}),ZM={kernelName:us,backendName:\"cpu\",kernelFunc:Qet};function yd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),te({inputs:{x:o},backend:e,attrs:{shape:a}})}var JM={kernelName:Mi,backendName:\"cpu\",kernelFunc:yd};var trt=Qt((r,t)=>r/t),tg=oe(as,trt),eg={kernelName:as,backendName:\"cpu\",kernelFunc:tg};function $w(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType(\"float32\",c),m=y.getTypedArrayFromDType(\"float32\",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&w=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=te({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=te({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=yw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var sP={kernelName:Pi,backendName:\"cpu\",kernelFunc:urt};function crt(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=te({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=$w(a,!0,e),l=te({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var iP={kernelName:Mp,backendName:\"cpu\",kernelFunc:crt};var prt=At(gs,r=>Number.isFinite(r)?1:0,\"bool\"),aP={kernelName:gs,backendName:\"cpu\",kernelFunc:prt};var mrt=At(xs,r=>Math.abs(r)===1/0?1:0,\"bool\"),lP={kernelName:xs,backendName:\"cpu\",kernelFunc:mrt};var frt=At(ys,r=>Number.isNaN(r)?1:0,\"bool\"),uP={kernelName:ys,backendName:\"cpu\",kernelFunc:frt};function drt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=bw(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var cP={kernelName:Ha,backendName:\"cpu\",kernelFunc:drt};var hrt=At(Is,r=>Math.log1p(r)),pP={kernelName:Is,backendName:\"cpu\",kernelFunc:hrt};var grt=Qt((r,t)=>r&&t),xrt=oe(qa,grt,null,\"bool\"),mP={kernelName:qa,backendName:\"cpu\",kernelFunc:xrt};var yrt=At(Ka,r=>r?0:1,\"bool\"),fP={kernelName:Ka,backendName:\"cpu\",kernelFunc:yrt};var brt=Qt((r,t)=>r||t),wrt=oe(ja,brt,null,\"bool\"),dP={kernelName:ja,backendName:\"cpu\",kernelFunc:wrt};function Irt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,\"LRN\");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let I=p[x];w+=I*I}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=xd(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var yP={kernelName:Ns,backendName:\"cpu\",kernelFunc:vrt};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"maxPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var bP={kernelName:Li,backendName:\"cpu\",kernelFunc:Srt};function Nrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"maxPool3DGrad\");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=dM(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=wt(s.shape,\"float32\"),M=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let lt=0;lt=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(ft)!==ft)continue;let gt=w*I*N-1-m.get(V,st,ot,ft,G),Ct=nt*I*N+lt*N+it,Rt=gt===Ct?1:0;if(Rt===0)continue;let Dt=M.get(V,st,ot,ft,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var wP={kernelName:tu,backendName:\"cpu\",kernelFunc:Nrt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,Aw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,\"float32\"),D=e.data.get(o.dataId).values,F=wt(o.shape,\"float32\",D);for(let M=0;M=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(M,Z,nt,V),lt=Y*I+et,ot=st===lt?1:0;if(ot===0)continue;let it=F.get(M,Z,nt,V);j+=it*ot}}A.set(j,M,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var IP={kernelName:Ql,backendName:\"cpu\",kernelFunc:krt};function CP(r,t,e,n,o){let s=y.computeStrides(t),i=xd(r,t,e,s,o,\"max\"),a=Aw(r,t,e,o,!0,n);return[i.values,a.values]}var vP={kernelName:eu,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,\"MaxPoolWithArgmax\");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=CP(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:\"int32\"}]}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=Fo({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=tg({inputs:{a:f,b:m},backend:e});p.push(d);let h=$l({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var SP={kernelName:ks,backendName:\"cpu\",kernelFunc:Trt};function _rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"min\");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=We({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=S.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),c=i===\"reflect\"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[E]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var kP={kernelName:Es,backendName:\"cpu\",kernelFunc:Ert};var Art=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),Drt=oe(As,Art),TP={kernelName:As,backendName:\"cpu\",kernelFunc:Drt};var EP=Gl(hh());function LT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=PT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=te({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Jh({inputs:{a:o,b:p},backend:e}),f=aT({inputs:{x:m},backend:e}),d=$l({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=tg({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var _P={kernelName:Qs,backendName:\"cpu\",kernelFunc:LT};function $rt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,\"multinomial\");let u=a?o:LT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),\"int32\");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=yd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Gu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var LP={kernelName:Vi,backendName:\"cpu\",kernelFunc:zT};function Brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,\"pad\");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;bE+u[A]),N=y.locToIndex(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Rw={kernelName:Rs,backendName:\"cpu\",kernelFunc:Brt};var Vrt=Qt((r,t)=>Math.pow(r,t)),Grt=oe(Fs,Vrt),zP={kernelName:Fs,backendName:\"cpu\",kernelFunc:Grt};function Wrt(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=Iw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var BP={kernelName:Lp,backendName:\"cpu\",kernelFunc:Wrt};function Urt(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=Cw(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var VP={kernelName:zp,backendName:\"cpu\",kernelFunc:Urt};function Hrt(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=vw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var GP={kernelName:Bp,backendName:\"cpu\",kernelFunc:Hrt};function qrt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=tp(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var WP={kernelName:ru,backendName:\"cpu\",kernelFunc:qrt};var Krt=At(Ps,r=>1/r),UP={kernelName:Ps,backendName:\"cpu\",kernelFunc:Krt};function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,\"resizeBilinear\");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,I=x[0]/b[0],N=x[1]/b[1];for(let E=0;E1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,I=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],I=x[1]/b[1],N=0;for(let E=0;E1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=M+lt*u[1],it=lt*w,ft=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===ft)for(let gt=0;gt=d)continue;let Rt=ot+Ct*u[2],Dt=Ct*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[j+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var jP={kernelName:el,backendName:\"cpu\",kernelFunc:Zrt};function Jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,\"reverse\");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Zr({inputs:{x:o},backend:e});let u=new le(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var XP={kernelName:Gs,backendName:\"cpu\",kernelFunc:Jrt};var YP={kernelName:pl,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=S.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let I=0;I=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),ZP={kernelName:Ws,backendName:\"cpu\",kernelFunc:Qrt};function tnt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=Ci(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var JP={kernelName:nl,backendName:\"cpu\",kernelFunc:tnt};function ent(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?int*r:snt*(Math.exp(r)-1)),rL={kernelName:Hs,backendName:\"cpu\",kernelFunc:ant};var lnt=At(js,r=>r<0?-1:r>0?1:0),nL={kernelName:js,backendName:\"cpu\",kernelFunc:lnt};var unt=At(qs,r=>Math.sin(r)),oL={kernelName:qs,backendName:\"cpu\",kernelFunc:unt};var cnt=At(Ks,r=>Math.sinh(r)),sL={kernelName:Ks,backendName:\"cpu\",kernelFunc:cnt};var pnt=11920928955078125e-23,iL=Math.log(pnt)+2,mnt=At(Ys,r=>{let t=r>-iL,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var uL={kernelName:nu,backendName:\"cpu\",kernelFunc:dnt};function hnt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=Nw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var cL={kernelName:il,backendName:\"cpu\",kernelFunc:hnt};function gnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=gd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var pL={kernelName:ou,backendName:\"cpu\",kernelFunc:gnt};function xnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=gd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var mL={kernelName:su,backendName:\"cpu\",kernelFunc:xnt};function ynt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case\"bool\":{let g=e.bufferSync(s),x=!!e.data.get(i.dataId).values[0];h=Ci(d,g,a,m,c,l,u,p,x,f);break}case\"float32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ci(d,g,a,m,c,l,u,p,x,f);break}case\"int32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ci(d,g,a,m,c,l,u,p,x,f);break}case\"string\":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=Ci(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var fL={kernelName:al,backendName:\"cpu\",kernelFunc:ynt};function bnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Mo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var dL={kernelName:qi,backendName:\"cpu\",kernelFunc:bnt};var hL={kernelName:iu,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,\"square\");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),gL={kernelName:xo,backendName:\"cpu\",kernelFunc:wnt};function Int(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,\"stridedSlice\");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=te({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Mo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=te({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=kw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var xL={kernelName:ll,backendName:\"cpu\",kernelFunc:Int};function Cnt(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=rp(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var yL={kernelName:au,backendName:\"cpu\",kernelFunc:Cnt};function vnt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=np(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var bL={kernelName:lu,backendName:\"cpu\",kernelFunc:vnt};function Snt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.data.get(s.dataId).values,a=op(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var wL={kernelName:uu,backendName:\"cpu\",kernelFunc:Snt};var Nnt=At(ri,r=>Math.tan(r)),IL={kernelName:ri,backendName:\"cpu\",kernelFunc:Nnt};var knt=At(ni,r=>Math.tanh(r)),CL={kernelName:ni,backendName:\"cpu\",kernelFunc:knt};function Tnt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=Ci(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var vL={kernelName:ol,backendName:\"cpu\",kernelFunc:Tnt};function _nt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=Tw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var SL={kernelName:oo,backendName:\"cpu\",kernelFunc:_nt};function Ent(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,\"topk\");let a=e.data.get(o.dataId).values,[u,l]=_w(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var NL={kernelName:ul,backendName:\"cpu\",kernelFunc:Ent};function Ant(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let M=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function $nt(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Rnt(r,t){return r}function Fnt(r,t){return y.clamp(0,r,t-1)}function og(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var AL={kernelName:pu,backendName:\"cpu\",kernelFunc:znt};var Bnt=[eM,lO,rM,nM,fO,oM,sM,iM,aM,lM,uM,cM,pM,mM,fM,hM,gM,xM,yM,tM,bM,wM,IM,dO,CM,mO,hO,vM,uO,SM,kM,TM,_M,EM,AM,DM,$M,RM,FM,OM,MM,PM,LM,zM,BM,VM,GM,WM,UM,HM,qM,KM,XM,jO,YM,gO,ZM,xO,JM,yO,QM,tP,eP,bO,wO,rP,nP,oP,sP,IO,CO,cO,iP,NM,aP,lP,uP,XO,vO,SO,cP,NO,pP,mP,fP,dP,hP,gP,xP,kO,yP,bP,wP,IP,vP,SP,NP,TO,kP,TP,AP,_O,EO,DP,$P,RP,AO,FP,PP,LP,Rw,zP,YO,$O,BP,VP,GP,WP,pO,eg,UP,ZO,JO,QO,HP,qP,KP,jP,XP,YP,ZP,PO,JP,tL,eL,rL,zO,nL,oL,sL,BO,_P,aL,lL,uL,cL,pL,mL,fL,dL,GO,hL,WO,UO,gL,xL,yL,bL,wL,HO,jM,IL,CL,vL,SL,NL,TL,DO,_L,EL,AL,OP];for(let r of Bnt)rc(r);var Cd={};Kt(Cd,{assertNotComplex:()=>vi,bindCanvasToFramebuffer:()=>Xnt,bindColorTextureToFramebuffer:()=>lg,bindTextureToProgramUniformSampler:()=>e1,bindTextureUnit:()=>FL,bindVertexBufferToProgramAttribute:()=>zw,callAndCheck:()=>ht,canBeRepresented:()=>WT,createFragmentShader:()=>HT,createFramebuffer:()=>JT,createProgram:()=>qT,createStaticIndexBuffer:()=>XT,createStaticVertexBuffer:()=>jT,createTexture:()=>YT,createVertexShader:()=>UT,getBatchDim:()=>Fl,getExtensionOrThrow:()=>bd,getFramebufferErrorMessage:()=>OL,getMaxTexturesInShader:()=>o1,getNumChannels:()=>Knt,getProgramUniformLocation:()=>t1,getProgramUniformLocationOrThrow:()=>QT,getRowsCols:()=>Ol,getShapeAs3D:()=>Id,getTextureShapeFromLogicalShape:()=>r1,getWebGLDisjointQueryTimerVersion:()=>s1,getWebGLErrorMessage:()=>RL,getWebGLMaxTextureSize:()=>n1,hasExtension:()=>Kn,isCapableOfRenderingToFloatTexture:()=>i1,isDownloadFloatTextureEnabled:()=>a1,isReshapeFree:()=>Uu,isWebGLFenceEnabled:()=>l1,isWebGLVersionEnabled:()=>Vw,linkProgram:()=>KT,logShaderSourceAndInfoLog:()=>Lw,resetMaxTextureSize:()=>Ynt,resetMaxTexturesInShader:()=>Znt,unbindColorTextureFromFramebuffer:()=>Bw,unbindTextureUnit:()=>jnt,validateFramebuffer:()=>wd,validateProgram:()=>ag,validateTextureSize:()=>ZT});var ap={},Fw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function BT(r,t){ap[r]=t}function qn(r,t){if(!(r in ap)||t!=null){let n=Gnt(r,t);if(n!==null)ap[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=ap[r];return e==null||e.isContextLost()?(delete ap[r],qn(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),ap[r])}function Vnt(r){if(!L().getBool(\"IS_SAFARI\")&&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 Gnt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?Vnt(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete ap[r]},!1),L().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(Fw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",Fw)||e.getContext(\"experimental-webgl\",Fw):e.getContext(\"webgl2\",Fw)}var Wu;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(Wu||(Wu={}));var Jr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(Jr||(Jr={}));var Lr;(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\"})(Lr||(Lr={}));function lp(r,t){return[t,r]}function DL(r,t){return r*t}function sg(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function wa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function $L(r,t){let[e,n]=wa(r,t);return e*n*4}function ig(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().getNumber(\"WEBGL_VERSION\")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function ht(r,t){let e=t();return L().getBool(\"DEBUG\")&&Wnt(r),e}function Wnt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+RL(r,t))}var Unt=596e-10,Hnt=65504;function WT(r){return!!(L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||Untr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function UT(r,t){let e=Rl(r,()=>r.createShader(r.VERTEX_SHADER),\"Unable to create vertex WebGLShader.\");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error(\"Failed to compile vertex shader.\");return e}function HT(r,t){let e=Rl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),L().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Lw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var qnt=/ERROR: [0-9]+:([0-9]+):/g;function Lw(r,t){let e=qnt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(`\n`),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),\"Unable to create WebGLProgram.\")}function KT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().get(\"ENGINE_COMPILE_ONLY\")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Failed to link vertex and fragment shaders.\")}function ag(r,t){if(ht(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Shader program validation failed.\")}function jT(r,t){let e=Rl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function XT(r,t){let e=Rl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return ht(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function Knt(){return L().getNumber(\"WEBGL_VERSION\")===2?1:4}function YT(r){return Rl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function ZT(r,t){let e=L().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error(\"Requested texture size \"+n+\" is invalid.\")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error(\"Requested texture size \"+n+\" greater than WebGL maximum on this browser / GPU \"+o+\".\")}}function JT(r){return Rl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function zw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),ht(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),ht(r,()=>r.enableVertexAttribArray(a)),!0)}function FL(r,t,e){ML(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function jnt(r,t){ML(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function QT(r,t,e){return Rl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function t1(r,t,e){return r.getUniformLocation(t,e)}function e1(r,t,e,n){ht(r,()=>FL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function Xnt(r){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),ht(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),ht(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function lg(r,t,e){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Bw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function wd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+OL(r,t))}function OL(r,t){switch(t){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 ${t}`}}function Rl(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function ML(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function Fl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Ol(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 Id(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[Fl(r),...Ol(r)]),t}function r1(r,t=!1){let e=L().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=L().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&L().getBool(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=Fl(r),u=2,l=2;r.length&&([u,l]=Ol(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Ow(r){return r%2===0}function Uu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r[r.length-1],n=t[t.length-1];if(e===n||Ow(e)&&Ow(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Ow(r[0])&&Ow(t[0])}var Mw,Pw;function n1(r){if(Mw==null){let t=qn(r);Mw=t.getParameter(t.MAX_TEXTURE_SIZE)}return Mw}function Ynt(){Mw=null}function Znt(){Pw=null}function o1(r){if(Pw==null){let t=qn(r);Pw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Pw)}function s1(r){if(r===0)return 0;let t,e=qn(r);return Kn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Kn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Kn(r,t){return r.getExtension(t)!=null}function Vw(r){try{if(qn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function i1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,\"OES_texture_float\"))return!1}else if(!Kn(t,\"EXT_color_buffer_float\"))return!1;return GT(t)}function a1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,\"OES_texture_float\")||!Kn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Kn(t,\"EXT_color_buffer_float\"))return GT(t);let n=\"EXT_color_buffer_half_float\";if(Kn(t,n)){let o=t.getExtension(n);return Jnt(t,o)}return!1}return GT(t)}function GT(r){let t=ig(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e),r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function Jnt(r,t){let e=ig(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n),r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,1,1,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function l1(r){return r!==2?!1:qn(r).fenceSync!=null}function vi(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var kt=L();kt.registerFlag(\"HAS_WEBGL\",()=>kt.getNumber(\"WEBGL_VERSION\")>0);kt.registerFlag(\"WEBGL_VERSION\",()=>Vw(2)?2:Vw(1)?1:0);kt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);kt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>kt.get(\"WEBGL_VERSION\")===2);kt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);kt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);kt.registerFlag(\"WEBGL_PACK\",()=>kt.getBool(\"HAS_WEBGL\"));kt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_CLIP\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_PACK_CONV2DTRANSPOSE\",()=>kt.getBool(\"WEBGL_PACK\"));kt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>n1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>o1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=kt.getNumber(\"WEBGL_VERSION\");return r===0?0:s1(r)});kt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>kt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!du.isMobile());kt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>i1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>kt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:kt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));kt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>a1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>l1(kt.getNumber(\"WEBGL_VERSION\")));kt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>kt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);kt.registerFlag(\"WEBGL_DELETE_TEXTURE_THRESHOLD\",()=>-1,r=>{if(typeof r!=\"number\")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>du.isMobile()?1:-1,r=>{if(typeof r!=\"number\")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);kt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);kt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);kt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);kt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);kt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>kt.getBool(\"IS_TEST\"));kt.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);kt.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);kt.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);kt.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);function Ue(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=L().getBool(\"WEBGL2_ISNAN_CUSTOM\")?`\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n `:\"\",u=\"\",l=`\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `):(r=\"\",t=\"attribute\",e=\"varying\",n=\"varying\",o=\"texture2D\",s=\"gl_FragColor\",i=\"\",a=`\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n `,u=`\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n `,l=`\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function Si(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join(\"\")}function up(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join(\"\")}function Qnt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function PL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=Qnt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join(\"\")}function vd(r){let t=y.computeStrides(r).map(e=>e.toString());return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}function Sd(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Gw=`\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n`;var{getBroadcastDims:LL}=S;function zL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:\"\"};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Ww(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push(\"uniform int outShape;\");break;case 2:n.push(\"uniform ivec2 outShape;\"),n.push(\"uniform int outShapeStrides;\");break;case 3:n.push(\"uniform ivec3 outShape;\"),n.push(\"uniform ivec2 outShapeStrides;\");break;case 4:n.push(\"uniform ivec4 outShape;\"),n.push(\"uniform ivec3 outShapeStrides;\");break;default:break}n.push(\"uniform ivec2 outTexShape;\")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:\"\"};`)});let o=n.join(`\n`),s=r.map(f=>tot(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=Ue(),u=not(a),l,c,p=iot(a);return t.isPacked?(l=eot(t.logicalShape,i,e.enableShapeUniforms),c=sot(a)):(l=rot(t.logicalShape,i,e.enableShapeUniforms),c=oot(a)),e.packedInputs&&(p+=cot),[p,u,c,o,l,s,e.userCode].join(`\n`)}function kd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Cot(r,t);case 1:return Sot(r,t);case 2:return kot(r,t);case 3:return _ot(r,t);case 4:return Aot(r,t);case 5:return Dot(r);case 6:return $ot(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function BL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Iot(r);case 1:return vot(r,t);case 2:return Not(r,t);case 3:return Tot(r,t);default:return Eot(r,t)}}function tot(r,t,e=!1,n){let o=\"\";e?o+=BL(r,n):o+=kd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Rot(r,t):o+=Fot(r,t)),o}function eot(r,t,e){switch(r.length){case 0:return VL();case 1:return pot(r,t,e);case 2:return bot(r,t,e);case 3:return fot(r,t,e);default:return hot(r,t,e)}}function rot(r,t,e){switch(r.length){case 0:return VL();case 1:return mot(r,t,e);case 2:return wot(r,t,e);case 3:return dot(r,t,e);case 4:return got(r,t,e);case 5:return xot(r,t);case 6:return yot(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function not(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function oot(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function sot(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function iot(r){return`${r.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${r.varyingFs} vec2 resultUV;\n ${r.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${r.defineSpecialNaN}\n ${r.defineSpecialInf}\n ${r.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${aot}\n ${lot}\n ${uot}\n `}var aot=`\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,lot=`\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,uot=`\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,cot=`\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n`;function VL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function pot(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:n[1]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}function mot(r,t,e){return t[0]===1?e?`\n int getOutputCoords() {\n return int(resultUV.x * float(outTexShape[1]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.x * ${t[1]}.0);\n }\n `:t[1]===1?e?`\n int getOutputCoords() {\n return int(resultUV.y * float(outTexShape[0]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.y * ${t[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n return resTexRC.x * outTexShape[1] + resTexRC.y;\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n return resTexRC.x * ${t[1]} + resTexRC.y;\n }\n `}function fot(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[2]/2),s=o*Math.ceil(r[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${o});\n int c = imod(index, ${o}) * 2;\n\n return ivec3(b, r, c);\n }\n `}function dot(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${up([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=Si([\"r\",\"c\",\"d\"],r);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = resTexRC.x * ${t[1]} + resTexRC.y;\n ${n}\n return ivec3(r, c, d);\n }\n `}function hot(r,t,e){if(e)return`\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[r.length-1]/2),s=o*Math.ceil(r[r.length-2]/2),i=s,a=\"\",u=\"b, r, c\";for(let l=2;l=1?c=\"coords = 0;\":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(`\n`);let m=\"\";i<2&&s>0?m=\"coords\":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(\", \");let f=\"return outputValue;\",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=`\n return vec4(outputValue.xy, outputValue.xy);\n `;else if(h&&!x)i===1?f=`\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n `:f=`\n return vec4(outputValue.x);\n `;else if(a.length){let b=s-2,w=s-1;a.indexOf(b)>-1&&a.indexOf(w)>-1?f=\"return vec4(outputValue.x);\":a.indexOf(b)>-1?f=\"return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);\":a.indexOf(w)>-1&&(f=\"return vec4(outputValue.xx, outputValue.zz);\")}return`\n vec4 ${o}() {\n ${u} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${n}(${m});\n ${f}\n }\n `}function Fot(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o=\"get\"+n+\"AtOutCoords\",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return`\n float ${o}() {\n return sampleTexture(${e}, resultUV);\n }\n `;let l=zt(u),c=LL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];a===0?m=\"\":u<2&&c.length>=1?m=\"coords = 0;\":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(`\n`);let d=\"\";return u<2&&a>0?d=\"coords\":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(\", \"),`\n float ${o}() {\n ${l} coords = getOutputCoords();\n ${m}\n return get${n}(${d});\n }\n `}function zt(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 Ww(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(\", \")}function WL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=zL(o,i,t),u=HT(r.gl,a),l=r.createProgram(u);return L().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},u1(r,t,l)))}function u1(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,\"NAN\",!1),L().getNumber(\"WEBGL_VERSION\")===1&&(u=r.getUniformLocation(e,\"INFINITY\",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,\"outShape\",c),a=r.getUniformLocation(e,\"outShapeStrides\",c),i=r.getUniformLocation(e,\"outTexShape\",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}function GL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function UL(r,t,e,n,o){t.program.enableShapeUniforms||(GL(t.inShapeInfos,e),GL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),r.bindVertexArray(t.webGLProgram.vao),L().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Ww(r.packedInputs,i.shape,u),m=\"\",f=\"\",d=\"\";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=S.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),I=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${a}`}else{let u=i.isUniform?\"uniform\":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+=\"_\"+n+\"_\"+o+`${L().getNumber(\"WEBGL_VERSION\")}`,s}function he(r){return L().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var Uw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?up([\"r\",\"c\",\"d\"],t):Si([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${e.output} = result;\n }\n `}};var Hw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?up([\"r\",\"c\",\"d\"],t):Si([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${e.output} = result;\n }\n `}};var qw=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=Jr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=`\n ${Gw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Kw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Jr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=`\n ${Gw}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${e.output} = encode_float(x);\n }\n `}};var Pot={R:0,G:1,B:2,A:3},ug=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;ay1,createBufferFromOutputTexture:()=>I1,createFloat16MatrixTexture:()=>d1,createFloat16PackedMatrixTexture:()=>x1,createFloat32MatrixTexture:()=>f1,createIndexBuffer:()=>m1,createPackedMatrixTexture:()=>g1,createUnsignedBytesMatrixTexture:()=>h1,createVertexBuffer:()=>p1,createVertexShader:()=>c1,downloadByteEncodedFloatMatrixFromOutputTexture:()=>v1,downloadFloat32MatrixFromBuffer:()=>C1,downloadMatrixFromPackedOutputTexture:()=>N1,downloadPackedMatrixFromBuffer:()=>S1,getInternalFormatForFloat16MatrixTexture:()=>Yw,getInternalFormatForFloat16PackedMatrixTexture:()=>Qw,getInternalFormatForFloat32MatrixTexture:()=>Xw,getInternalFormatForPackedMatrixTexture:()=>Jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Zw,uploadDenseMatrixToTexture:()=>b1,uploadPixelDataToTexture:()=>w1});function c1(r){let t=Ue(),e=`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`;return UT(r,e)}function p1(r){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 jT(r,t)}function m1(r){let t=new Uint16Array([0,1,2,2,1,3]);return XT(r,t)}function cg(r,t,e,n,o,s){ZT(t,e);let i=YT(r),a=r.TEXTURE_2D;return ht(r,()=>r.bindTexture(a,i)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),L().getNumber(\"WEBGL_VERSION\")===1?ht(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):ht(r,()=>r.texStorage2D(a,1,n,t,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Xw(r){return r.internalFormatFloat}function f1(r,t,e,n){let[o,s]=lp(t,e);return cg(r,o,s,Xw(n),n.textureFormatFloat,r.FLOAT)}function Yw(r){return r.internalFormatHalfFloat}function d1(r,t,e,n){let[o,s]=lp(t,e);return cg(r,o,s,Yw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Zw(r){return r.downloadTextureFormat}function h1(r,t,e,n){let[o,s]=lp(t,e);return cg(r,o,s,Zw(n),r.RGBA,r.UNSIGNED_BYTE)}function Jw(r){return r.internalFormatPackedFloat}function g1(r,t,e,n){let[o,s]=wa(t,e);return cg(r,o,s,Jw(n),r.RGBA,r.FLOAT)}function Qw(r){return r.internalFormatPackedHalfFloat}function x1(r,t,e,n){let[o,s]=wa(t,e);return cg(r,o,s,Qw(n),r.RGBA,n.textureTypeHalfFloat)}function y1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),zw(r,t,\"clipSpacePos\",e,3,20,0)&&zw(r,t,\"uv\",e,2,20,12)}function b1(r,t,e,n,o,s){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),L().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function w1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):L().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function I1(r,t,e,n){let o=r.createBuffer();ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return ht(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function C1(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function v1(r,t,e,n){let[o,s]=lp(t,e),i=4,a=new Uint8Array(DL(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function S1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array($L(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function N1(r,t,e){let n=new Float32Array(t*e*4);return ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var pp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber(\"WEBGL_VERSION\");if(t!=null?(this.gl=t,BT(e,t)):this.gl=qn(e),t=this.gl,L().getNumber(\"WEBGL_VERSION\")===2){let s=t;this.createVertexArray=()=>ht(s,()=>s.createVertexArray()),this.bindVertexArray=i=>ht(s,()=>s.bindVertexArray(i)),this.deleteVertexArray=i=>ht(s,()=>s.deleteVertexArray(i)),this.getVertexArray=()=>ht(s,()=>s.getParameter(s.VERTEX_ARRAY_BINDING))}else if(t!=null){let s=t.getExtension(\"OES_vertex_array_object\");if(s==null)throw new Error(\"All WebGL1 implementations are expected to offer OES_vertex_array_object.\");this.createVertexArray=()=>ht(t,()=>s.createVertexArrayOES()),this.bindVertexArray=i=>ht(t,()=>s.bindVertexArrayOES(i)),this.deleteVertexArray=i=>ht(t,()=>s.deleteVertexArrayOES(i)),this.getVertexArray=()=>ht(t,()=>t.getParameter(s.VERTEX_ARRAY_BINDING_OES))}let n=\"WEBGL_color_buffer_float\",o=\"EXT_color_buffer_half_float\";if(this.parallelCompilationExtension=this.gl.getExtension(\"KHR_parallel_shader_compile\"),L().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=bd(this.gl,s),Kn(this.gl,i))this.textureHalfFloatExtension=bd(this.gl,i);else if(L().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),Kn(this.gl,o))this.colorBufferHalfFloatExtension=bd(this.gl,o);else if(L().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\",Kn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Kn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=p1(this.gl),this.indexBuffer=m1(this.gl),this.framebuffer=JT(this.gl),this.textureConfig=ig(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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 t=this.gl;ht(t,()=>t.finish()),ht(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),ht(t,()=>t.deleteFramebuffer(this.framebuffer)),ht(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),ht(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),ht(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),f1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),d1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),h1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),w1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),b1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),x1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),g1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Bw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>v1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return S1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return C1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=I1(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(L().getBool(\"WEBGL_FENCE_API_ENABLED\")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>N1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=c1(e));let n=qT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),KT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&ag(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),y1(e,t,this.vertexBuffer)}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&(ht(this.gl,()=>this.gl.deleteProgram(t)),this.deleteVertexArray(t.vao))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&ag(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?QT(this.gl,t,e):t1(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),ht(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),e1(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=wa(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")}debugValidate(){this.program!=null&&ag(this.gl,this.program),wd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;if(this.debug){let e=this.getVertexArray();console.assert(e===this.program.vao,\"VAO changed between setProgram and executeProgram!\"),this.debugValidate()}ht(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ht(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=bd(this.gl,L().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(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=Lot(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;\"setTimeoutCustom\"in L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),lg(this.gl,t,this.framebuffer),this.debug&&wd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(lg(this.gl,this.outputTexture,this.framebuffer),this.debug&&wd(this.gl)):Bw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;lg(o,t,this.framebuffer),this.debug&&wd(o),this.outputTexture=t,ht(o,()=>o.viewport(0,0,e,n)),ht(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),ht(this.gl,()=>this.gl.scissor(t,e,n,o))}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 Lot(r){let t=0;for(;t`${r}.${e}`)}function rr(r,t){return t===1?[r]:T1(r,t)}function Pz(r,t){if(r===1)return\"rc\";let e=\"\";for(let n=0;n ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]}`;let e=\"\";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${o};\n `}getOutput(t){let e=this.getSourceCoordsArr(t);return this.rank===1?`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}),\n cEdge ? 0. : getA(${e[1]}),\n rEdge ? 0. : getA(${e[2]}),\n rEdge || cEdge ? 0. : getA(${e[3]})`}};var Ad=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let n=\"\";for(let o=0;o<4;o++){let s=\"thisRC = rc;\";o%2===1&&(s+=\"thisRC.z += 1;\"),o>1&&(s+=\"thisRC.y += 1;\"),n+=`\n ${s}\n ${o>0?\"if(thisRC.y < rows && thisRC.z < cols){\":\"\"}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${o}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${o>0?\"}\":\"\"}\n `}this.userCode=`\n ${zot(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?Sd():vd(t)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?\"outShape[1]\":t[1]};\n int cols = ${this.enableShapeUniforms?\"outShape[2]\":t[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}};function zot(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?PL([\"r\",\"c\",\"d\"],\"inputShape\"):Si([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var oI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=zz(e,n),s=Bz(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=Lz(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].pop();return this.usedTextures[s].push(u),u}let a;return o===Lr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Lr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Lr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=zz(n,o),i=Bz(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=Lz(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().getNumber(\"WEBGL_DELETE_TEXTURE_THRESHOLD\");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l&&l.indexOf(t);if(c==null||c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l[c]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}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 t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function Bot(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function Lz(r,t,e,n,o){let s=Vot(t,n),i;if(o){let[u,l]=wa(r[0],r[1]);i=u*l}else{let[u,l]=lp(r[0],r[1]);i=u*l}let a=Bot(e,s);return i*a}function Vot(r,t){switch(r){case Lr.PACKED_2X2_FLOAT32:return Jw(t);case Lr.PACKED_2X2_FLOAT16:return Qw(t);case Lr.UNPACKED_FLOAT32:return Xw(t);case Lr.UNPACKED_FLOAT16:return Yw(t);case Lr.PACKED_4X1_UNSIGNED_BYTE:return Zw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Got(r){return L().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Lr.PACKED_2X2_FLOAT32:Lr.UNPACKED_FLOAT32:r?Lr.PACKED_2X2_FLOAT16:Lr.UNPACKED_FLOAT16}function zz(r,t){if(r===Jr.UPLOAD)return Lr.PACKED_2X2_FLOAT32;if(r===Jr.RENDER||r==null)return Got(t);if(r===Jr.DOWNLOAD||r===Jr.PIXELS)return Lr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function Bz(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var zr=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n float unaryOperation(float x) {\n ${e}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}},xr=\"if (isnan(x)) return x;\",Vz=\"return x;\",_1=\"return abs(x);\";var Gz=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",Wz=xr+`\n return (x < 0.0) ? 0.0 : x;\n`,Uz=xr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Ia=\"return x;\",Hz=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var Kz=\"return x;\",jz=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,Xz=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Yz=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Zz=\"return 1.0 / (1.0 + exp(-1.0 * x));\",Dn=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${e}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}};var sI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let e=t.length,n=rr(\"rc\",e),o=zt(e),s=Pz(e,n),i=n.slice(-2),a=e<=1?\"rc\":`vec2(${i.join(\",\")})`;this.userCode=`\n void main() {\n ${o} rc = getOutputCoords();\n vec4 packedInput = getA(${s});\n\n setOutput(getChannel(packedInput, ${a}));\n }\n `}};var Uot=Xr.whereImpl,Hot=1e-7,qot=1e-4,iI={};function Kot(r){return r in iI||(iI[r]={}),iI[r]}var jot=L().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),Xot=600;function Yot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*Xot/1024/1024}var Dd=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!L().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof pp)e=t;else{let n=qn(L().getNumber(\"WEBGL_VERSION\"),t);e=new pp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qn(L().getNumber(\"WEBGL_VERSION\"));e=new pp(n),this.binaryCache=Kot(L().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new oI(this.gpgpu),this.numMBBeforeWarning=Yot(),this.texData=new Ta(this,Bn())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=Id(e),c=new ug(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((L().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||L().getBool(\"DEBUG\"))&&this.checkNumericalProblems(t),n===\"complex64\"&&t!=null)throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:Jr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(L().getBool(\"DEBUG\")&&this.checkNumericalProblems(e),o===\"complex64\")throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");this.texData.set(t,{shape:n,dtype:o,values:e,usage:Jr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new Dn(a,Ia):m=new zr(a,Ia);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o===\"string\")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o===\"complex64\"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=S.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new Dn(o,Ia):d=new zr(o,Ia);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(L().getBool(\"DEBUG\")&&!L().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&L().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(i!==\"complex64\"&&L().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...sg(o))}this.pendingRead.set(t,[]),i!==\"complex64\"&&await this.gpgpu.createAndWaitForFence();let p;if(i===\"complex64\"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=S.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;ht(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Bn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a===\"complex64\")throw new Error(\"Does not support reading texture for complex64 dtype.\");if(i!=null){let f;u?f=new Dn(s,Ia):f=new zr(s,Ia);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error(\"Data is not on GPU but on CPU.\"):new Error(\"There is no data on GPU or CPU.\");let c=this.decode(t,e.customTexShape),p=Bn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(\", \")}else a.kernelMs={error:\"WebGL query timers are not supported in this environment.\"};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=jot){return L().getBool(\"WEBGL_CPU_FORWARD\")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new sI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new nI(t.shape);return this.runWebGLProgram(e,[t],t.dtype,null,!0)}packedReshape(t,e){let n=[Fl(t.shape),...Ol(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[Fl(e),...Ol(e)],i=new Ad(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>\"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.\")}let a=Id(s),u;o?u=new Hw(a):u=new Uw(a);let l=!0,c=[e!=null?e:sg(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===Wu.DENSE){let x=i!=null?i:sg(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype===\"complex64\")throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=L().getNumber(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Uu(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=HL(t,c,p),f=this.getAndSaveBinary(m,()=>WL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get(\"ENGINE_COMPILE_ONLY\")||UL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=L().getNumber(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().getBool(\"WEBGL_LAZILY_UNPACK\")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(L().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=B(()=>{if(!L().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=L().getBool(\"DEBUG\");L().set(\"DEBUG\",!1);let e=this.abs(pt(1e-8)).dataSync()[0];if(L().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Hot:qot}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=r1(n,u),e.texShape=p),s!=null){let m=Id(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=wa(p[0],p[1])),u?f=new jw(m,g):f=new ug(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Jr.PIXELS:w.usage=Jr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let I=[[h,d]],E=this.runWebGLProgram(f,[b],o,I,!0),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().get(\"ENGINE_COMPILE_ONLY\")?this.disposeData(E.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(E.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return e!=null&&(n.values=Zot(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!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(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await Ch(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Lw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error(\"Failed to compile fragment shader.\")):new Error(\"Failed to link vertex and fragment shaders.\");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=u1(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||\"RGBA\";let{texture:o,height:s,width:i,channels:a}=t,u=Bn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error(\"The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.\");let l=u.writeTexture(o,e,n,s,i,a);return Bn().makeTensorFromDataId(l,e,n,u)}};Dd.nextDataId=0;function Zot(r,t){if(t===\"float32\"||t===\"complex64\")return r;if(t===\"int32\"||t===\"bool\"){let e=t===\"int32\"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew Dd,2);var T$e={forceHalfFloat:Qz};var $d=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var $n=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=he(this.outputShape.length),this.userCode=`\n float binaryOperation(float a, float b) {\n ${t}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}};var Xn=`\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n`;var jn=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=he(s);let i=\"\";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=`\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n `;else if(i=`\n ${zt(s)} coords = getOutputCoords();\n `,s===1)this.enableShapeUniforms?i+=`\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `:i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{let u=rr(\"coords\",s);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= outShape[${s} - 2];\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= outShape[${s} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= ${this.outputShape[s-2]};\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= ${this.outputShape[s-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${t}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${i}\n\n setOutput(result);\n }\n `}};function nr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var t3={kernelName:go,backendName:\"webgl\",kernelFunc:nr};function Rn(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,\"complex64\"),i=e.texData.get(s.dataId),a=nr({inputs:{x:n},backend:e}),u=nr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var e3={kernelName:Ap,backendName:\"webgl\",kernelFunc:Rn};var E1=\"return (a < 0.) ? b * a : a;\",A1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Jot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new jn(A1,o.shape,i.shape):new $n(E1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var r3={kernelName:bs,backendName:\"webgl\",kernelFunc:Jot};var D1=\"return (a < 0.) ? b * a : a;\",$1=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Qot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new jn($1,n.shape,o.shape):new $n(D1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var n3={kernelName:Os,backendName:\"webgl\",kernelFunc:Qot};var Po=\"if (isnan(x)) return x;\";function It({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new Dn(i.shape,t):c=new zr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ce({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype===\"complex64\"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new $n(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Rn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(u.dtype,l.dtype);if((u.dtype===\"string\"||l.dtype===\"string\"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype===\"string\"?S.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new jn(t,u.shape,l.shape,e):f=new $n(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Ml(r,t=!1){if(r===\"linear\")return t?Kz:Vz;if(r===\"relu\")return t?Xz:Wz;if(r===\"elu\")return t?jz:Gz;if(r===\"relu6\")return t?Yz:Uz;if(r===\"prelu\")return t?$1:D1;if(r===\"leakyrelu\")return t?A1:E1;if(r===\"sigmoid\")return t?Zz:Hz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Rd=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=[\"matrixA\",\"matrixB\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=he(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?\"i * 2, rc.y\":\"rc.y, i * 2\",f=s?\"rc.z, i * 2\":\"i * 2, rc.z\",d=o?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],h=s?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"],g=\"\",x=\"\";a&&(u?g=`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?g=`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:g=`vec4 activation(vec4 x) {\n ${a}\n }`,x=\"result = activation(result);\");let b=i?\"result += getBiasAtOutCoords();\":\"\";i&&this.variableNames.push(\"bias\"),u&&this.variableNames.push(\"preluActivationWeights\"),l&&this.variableNames.push(\"leakyreluAlpha\");let w=\"rc.x\",I=\"rc.x\";t[0]`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Uu(o.shape,u)&&!(c.texture!==null&&Uu(c.shape,u))?i3(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var a3={kernelName:Gi,backendName:\"webgl\",kernelFunc:rt};var fg=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l=\"sumValue += dot(values, ones);\";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c=\"\";s%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${a}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${a};\n if (${u===1}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${u===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${u===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}};var aI=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=\"0.0\",u=\"\";e===\"prod\"?a=\"1.0\":e===\"min\"?(a=\"1.0 / 1e-20\",u=\"min\"):e===\"max\"&&(a=\"-1.0 / 1e-20\",u=\"max\");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"sum\"?l=\"sumValue\":e===\"prod\"?l=\"prodValue\":e===\"all\"?l=\"allValue\":e===\"any\"&&(l=\"anyValue\");let c=Math.floor(n/4)*4,p=n%4,m=`\n if (${e===\"sum\"}) {\n sumValue += dot(values, ones);\n } else if (${e===\"prod\"}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${u}(values, minMaxValue);\n if (${e===\"min\"} || ${e===\"max\"}) {\n minMaxValue = ${u}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,f=\"vec4\";e===\"all\"?(a=\"1.0\",m=`\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n `,f=\"bvec4\"):e===\"any\"&&(a=\"0.0\",m=`\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n `,f=\"bvec4\");let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${a});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===2}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===3}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function est(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=S.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Yn(r,t,e,n){let o=est(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=T1(\"rc\",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],A=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],M=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u===\"leakyrelu\",H=u!=null?Ml(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>F1&&j===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,lt=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[M,V,1]}}),F.push(ot));let it=d===1?2:1,ft=nt;lt&&(ft=rt({inputs:{x:nt},backend:o,attrs:{shape:[M,1,V]}}),F.push(ft));let gt=mg({inputs:{a:ot,b:ft},backend:o});Y=fp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new Rd(N,E,[M,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let lt=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));st.push(lt),F.push(lt)}Y=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:Y},backend:o,attrs:{shape:I}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function nst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return dp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var p3={kernelName:Xi,backendName:\"webgl\",kernelFunc:nst};var m3=\"return abs(x);\";function ost(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!==\"complex64\"){let s=e.texData.get(n.dataId),i=eI(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Dn(n.shape,m3):o=new zr(n.shape,m3),e.runWebGLProgram(o,[n],n.dtype)}var f3={kernelName:Ai,backendName:\"webgl\",kernelFunc:ost};var sst=xr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,ist=It({opSnippet:sst}),d3={kernelName:Go,backendName:\"webgl\",kernelFunc:ist};var ast=xr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,lst=It({opSnippet:ast}),h3={kernelName:Wo,backendName:\"webgl\",kernelFunc:lst};var g3=\"return a + b;\",ust=ce({opSnippet:g3,packedOpSnippet:g3,supportsComplex:!0,cpuKernelImpl:qL}),x3={kernelName:no,backendName:\"webgl\",kernelFunc:ust};var cI=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n float result = ${o};\n setOutput(result);\n }\n `}};var pI=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n vec4 result = ${o};\n setOutput(result);\n }\n `}};function mI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return nr({inputs:{x:n[0]},backend:e});if(n.length>L().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=mI({inputs:n.slice(0,u),backend:e}),c=mI({inputs:n.slice(u),backend:e});return mI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool(\"WEBGL_PACK\")?new pI(n[0].shape,s):new cI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var y3={kernelName:Uo,backendName:\"webgl\",kernelFunc:mI};function cst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,\"all\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var b3={kernelName:Ea,backendName:\"webgl\",kernelFunc:cst};function pst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,\"any\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var w3={kernelName:Aa,backendName:\"webgl\",kernelFunc:pst};var fI=class{constructor(t,e,n){this.variableNames=[\"A\"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push(\"bestIndicesA\"),this.outputShape=[s,i];let a=e===\"max\"?\">\":\"<\",u=n?\"inOffset + i;\":\"round(getBestIndicesA(batch, inOffset + i));\";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${o};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${o}; i++) {\n int inIdx = ${u};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}};var dI=class{constructor(t,e,n,o){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push(\"bestIndicesA\");let a=this.outputShape,u=a.length,l=zt(u),c=rr(\"coords\",u),p,m;if(i===1){m=u+1;let D=zt(m);p=`\n ${D} sourceLocR = ${D}(${c.join()}, 0);\n ++${c[u-1]};\n ${D} sourceLocG = ${D}(${c.join()}, 0);\n ++${c[u-2]};\n ${D} sourceLocA = ${D}(${c.join()}, 0);\n --${c[u-1]};\n ${D} sourceLocB = ${D}(${c.join()}, 0);\n --${c[u-2]};`}else m=u,p=`\n ${l} sourceLocR = coords;\n ++${c[u-1]};\n ${l} sourceLocG = coords;\n ++${c[u-2]};\n ${l} sourceLocA = coords;\n --${c[u-1]};\n ${l} sourceLocB = coords;\n --${c[u-2]};`;let f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,m),d=\".\"+f[m-1],h=f.map(D=>\"int \"+D),g=rr(\"sourceLocR\",m-1).concat(\"inIdx.r\"),x=rr(\"sourceLocG\",m-1).concat(\"inIdx.g\"),b=rr(\"sourceLocB\",m-1).concat(\"inIdx.b\"),w=rr(\"sourceLocA\",m-1).concat(\"inIdx.a\"),I=n===\"max\"?\"greaterThan\":\"lessThan\",N=o?\"\":`\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${w.join()})));`,E=`vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,A=o?\"\":`\n float getBestIndicesAChannel(${h.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${h.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${c[u-1]} < ${a[u-1]-1};\n bool hasNextRow = ${c[u-2]} < ${a[u-2]-1};\n ${p}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${e};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${E};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${N}\n vec4 candidate = ${E};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${I}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}};function I3(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new fI(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,\"int32\");if(c.shape[1]===1)return c;let p=I3(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function C3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new dI(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,\"int32\");if(l.shape.length===t.shape.length){let c=C3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function hI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().getBool(\"WEBGL_PACK_REDUCE\")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=I3(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return C3(r,t,n)}function mst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=hI(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var v3={kernelName:Di,backendName:\"webgl\",kernelFunc:mst};function fst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=hI(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var S3={kernelName:$i,backendName:\"webgl\",kernelFunc:fst};var dst=xr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,hst=It({opSnippet:dst}),N3={kernelName:Ho,backendName:\"webgl\",kernelFunc:hst};var gst=xr+\"return log(x + sqrt(x * x + 1.0));\",xst=It({opSnippet:gst}),k3={kernelName:qo,backendName:\"webgl\",kernelFunc:xst};var yst=xr+`\n return atan(x);\n`,bst=It({opSnippet:yst}),T3={kernelName:Ko,backendName:\"webgl\",kernelFunc:bst};var wst=$d+`\n return atan(a, b);\n`,Ist=`\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n `+Xn+`\n return result;\n`,Cst=ce({opSnippet:wst,packedOpSnippet:Ist}),_3={kernelName:Xo,backendName:\"webgl\",kernelFunc:Cst};var vst=xr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Sst=It({opSnippet:vst}),E3={kernelName:jo,backendName:\"webgl\",kernelFunc:Sst};var Ni=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e===\"avg\",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b=\"0.0\";if(h||(b=\"-1.0 / 1e-20\"),n){let D=\">=\";this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${m};\n wC += ${c}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${D} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?g:x:`wR * ${m} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let w=\"max\",I=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(I=\"avgValue / max(count, 1.0)\");let N=Math.floor(i/4)*4,E=i%4,A=`\n if (${h}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${w}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${b};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${b});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${N}; wC += 4) {\n int xC = xCCorner + wC * ${c};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n getValue(batch, xR, xC + 3 * ${c}, d)\n );\n\n ${A}\n }\n\n int xC = xCCorner + ${N};\n if (${E===1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${E===2}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${E===3}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n initializationValue\n );\n\n ${A}\n }\n }\n setOutput(${I});\n }\n `}},qu=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e===\"avg\",I=\"0.0\";if(w||(I=\"-1.0 / 1e-20\"),n){let M=\">=\";this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${m}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${M} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?`(((batch * ${t.inDepth} + xD) * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`((xD * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`wD * ${d} * ${h} +\n wR * ${h} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let N=\"max\",E=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(E=\"avgValue / max(count, 1.0)\");let A=Math.floor(i/4)*4,D=i%4,F=`\n if (${w}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${N}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n const float initializationValue = ${I};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${I});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${A}; wC += 4) {\n int xC = xCCorner + wC * ${m};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n getValue(batch, xD, xR, xC + 3 * ${m}, ch)\n );\n\n ${F}\n }\n\n int xC = xCCorner + ${A};\n if (${D===1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${D===2}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${D===3}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n initializationValue\n );\n\n ${F}\n }\n }\n }\n setOutput(${E});\n }\n `}};function Nst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;vi(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Ni(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var A3={kernelName:Yo,backendName:\"webgl\",kernelFunc:Nst};function kst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new qu(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var D3={kernelName:Ri,backendName:\"webgl\",kernelFunc:kst};var gI=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=`\n const ivec2 pads = ivec2(${c}, ${p});\n const float avgMultiplier = float(${m});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${u};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}},xI=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${h}, ${g});\n const float avgMultiplier = float(${x});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${p};\n wD += ${u}) {\n float dyD = float(dyDCorner + wD) / ${s}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${m};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${c}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function Tst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new xI(m);return e.runWebGLProgram(f,[o],i.dtype)}var $3={kernelName:Hl,backendName:\"webgl\",kernelFunc:Tst};function _st(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;vi([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new gI(c);return e.runWebGLProgram(p,[o],i.dtype)}var R3={kernelName:Ul,backendName:\"webgl\",kernelFunc:_st};function Est(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return dp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var F3={kernelName:Zo,backendName:\"webgl\",kernelFunc:Est};var yI=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${u};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}};var bI=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${u};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}};var Ast=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||o.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(a==null||o.shape.length===a.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new bI(n.shape,o.shape,s.shape,c,p,u):new yI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},O3={kernelName:ds,backendName:\"webgl\",kernelFunc:Ast};var wI=class{constructor(t){this.variableNames=[\"source\"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let n=Dst(this.rank),o,s=t.map((i,a)=>`sourceLoc.${O1[a]} = start[${a}] + coords.${O1[a]};`);o=`\n ${e} sourceLoc;\n ${e} coords = getOutputCoords();\n ${s.join(`\n`)}\n `,this.userCode=`\n void main() {\n ${o}\n setOutput(getSource(${n}));\n }\n `}},O1=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function Dst(r){if(r===1)return\"sourceLoc\";if(r<=6)return O1.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var II=class{constructor(t){this.variableNames=[\"source\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let e=zt(this.rank),n=rr(\"coords\",this.rank),o=rr(\"sourceLoc\",this.rank),s=this.rank===1?\"sourceLoc\":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.y = ${i};\n --${o[this.rank-1]};\n }\n `,u=this.rank===1?\"\":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${t[this.rank-2]}) {\n ++${o[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${e}(${t.map((c,p)=>`start[${p}]`).join()});`:t.map((c,p)=>`${o[p]} = ${n[p]} + start[${p}];`).join(`\n`);this.userCode=`\n void main() {\n ${e} coords = getOutputCoords();\n ${e} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${u}\n setOutput(result);\n }\n `}};function $st(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Be.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ki(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Be.parseSliceParams(o,s,i);if(Be.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype===\"string\"){let p=e.texData.get(o.dataId),m=Sz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Be.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new II(u):new wI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),$st(o,a,u,e)}var M3={kernelName:Ui,backendName:\"webgl\",kernelFunc:ki};var Rst=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((b,w)=>b*w),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ki({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},P3={kernelName:Fi,backendName:\"webgl\",kernelFunc:Rst};function Fst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=tI(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var L3={kernelName:Da,backendName:\"webgl\",kernelFunc:Fst};var Ost=`\n int r = int(a.r) & int(b.r);\n int g = int(a.g) & int(b.g);\n int rb = int(a.b) & int(b.b);\n int ra = int(a.a) & int(b.a);\n return vec4(r, g, rb, ra);\n`,Mst=`\n return float(int(a.r) & int(b.r));\n`;function Pst(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\"),i=L().getNumber(\"WEBGL_VERSION\");if(e.shouldExecuteOnCPU([n,o])||i===1){let u=e.texData.get(n.dataId).values,l=e.texData.get(o.dataId).values,[c,p]=jL(n.shape,o.shape,u,l,n.dtype),m=e.makeTensorInfo(p,n.dtype),f=e.texData.get(m.dataId);return f.values=c,m}let a;return s?a=new jn(Ost,n.shape,o.shape,!1):a=new $n(Mst,n.shape,o.shape),e.runWebGLProgram(a,[n,o],n.dtype)}var z3={kernelName:$a,backendName:\"webgl\",kernelFunc:Pst};function Lst(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var B3={kernelName:ql,backendName:\"webgl\",kernelFunc:Lst};var zst=\"return float(a != b);\",M1=ce({opSnippet:zst,cpuKernelImpl:hz,dtype:\"bool\"}),V3={kernelName:Za,backendName:\"webgl\",kernelFunc:M1};function Pl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.real},backend:e})}var G3={kernelName:Vp,backendName:\"webgl\",kernelFunc:Pl};var Bst=\"return float(int(x));\";function W3(r,t){let e=new zr(r.shape,Bst),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function P1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return nr({inputs:{x:o},backend:e});let i=ke(o.shape),a=P1({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=Rn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=Pl({inputs:{input:o},backend:e}),a=P1({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=nr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=XL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return W3(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=M1({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var U3={kernelName:fo,backendName:\"webgl\",kernelFunc:P1};var H3=\"return ceil(x);\",Vst=It({opSnippet:H3,packedOpSnippet:H3,cpuKernelImpl:YL}),q3={kernelName:Jo,backendName:\"webgl\",kernelFunc:Vst};var CI=class{constructor(t){this.variableNames=[\"A\"],this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n `}};var vI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n `}};function Gst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool(\"WEBGL_PACK_CLIP\")?a=new vI(o.shape):a=new CI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var K3={kernelName:ho,backendName:\"webgl\",kernelFunc:Gst};var SI=class{constructor(t){this.variableNames=[\"real\",\"imag\"],this.outputShape=t,this.userCode=`\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n `}};function j3(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function Wst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new SI(n.shape),i=[j3(n,o.complexTensorInfos.real),j3(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var X3={kernelName:Kl,backendName:\"webgl\",kernelFunc:Wst};var NI=class{constructor(t){this.outputShape=[],this.outputShape=S.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) {\n return getChannel(\n getT${h}(${kI(a,l,g)}),\n vec2(${kI(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${kI(a,l,d)}),\n vec2(${kI(c,l,d)}));`,this.userCode=`\n float getValue(${a.map(h=>\"int \"+h)}) {\n ${m}\n }\n\n void main() {\n ${s} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[o-1]} = ${i[o-1]} + 1;\n if (${i[o-1]} < ${n[o-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[o-2]} = ${i[o-2]} + 1;\n if (${i[o-2]} < ${n[o-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[o-1]} = ${i[o-1]} - 1;\n if (${i[o-2]} < ${n[o-2]} &&\n ${i[o-1]} < ${n[o-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}};function kI(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function hp(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var Y3={kernelName:Pp,backendName:\"webgl\",kernelFunc:hp};function Fd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let f=r.map(b=>Pl({inputs:{input:b},backend:e})),d=r.map(b=>hp({inputs:{input:b},backend:e})),h=Fd(f,t,e),g=Fd(d,t,e),x=Rn({inputs:{real:h,imag:g},backend:e});return f.forEach(b=>e.disposeIntermediateTensorInfo(b)),d.forEach(b=>e.disposeIntermediateTensorInfo(b)),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),x}let o=e.shouldExecuteOnCPU(r);if(n===\"string\"&&(o=!0),o){let f=r.map(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=ZL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")&&s[0].shape.length>1;if(s.length===1){let f=i?new zr(r[0].shape,Ia):new Dn(r[0].shape,Ia);return e.runWebGLProgram(f,r,n)}let a=L().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(s.length>a){let f=[];for(let h=0;hd.shape),t);return e.runWebGLProgram(f,s,n)}let{tensors2D:u,outShape:l}=Ust(s,t,e),c=new NI(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Ust(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function L1(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?nr({inputs:{x:u[0]},backend:e}):Fd(u,s,e)}var Z3={kernelName:Oi,backendName:\"webgl\",kernelFunc:L1};var Od=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat===\"channelsLast\",x=g?1:2,b=g?2:3,w=g?3:1,I=\"\",N=\"\";n&&(o?I=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?I=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:I=`\n float activation(float x) {\n ${n}\n }\n `,N=\"result = activation(result);\");let E=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${I}\n\n const ivec2 strides = ivec2(${u}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${w}];\n\n ivec2 xRCCorner =\n ivec2(coords[${x}], coords[${b}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${c};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${p};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${g}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${h===1}) {\n\n if (${g}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${h===2}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${g}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${h===3}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${g}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${E}\n ${N}\n setOutput(result);\n }\n `}},_I=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${s}, ${i}, ${a});\n const ivec3 pads = ivec3(${e}, ${n}, ${o});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${p}; wF++) {\n int xF = xFCorner + wF * ${u};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${h===1}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${h===2}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${h===3}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};var Md=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=0 && xR < inDims[0]) {\n `;for(let g=0;g<(p+1)/2;g++){let x=g*2;if(m+=`\n xC = xCCorner + ${x*u};\n `,a===1){if(x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n `,u===1&&x>0?m+=`\n xC${x} = vec4(xTexelC${x-2}.zw, xTexelC${x}.xy);\n `:m+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${x} = vec4(previous.zw, xTexelC${x}.xy);\n } else {\n xC${x} = vec4(0.0, 0.0, xTexelC${x}.xy);\n }\n `):m+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xC${x} = xTexelC${x};\n `,x+1= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n `,u>1?m+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${x+1} = vec4(previous.zw, xTexelC${x+1}.xy);\n } else {\n xC${x+1} = vec4(0.0, 0.0, xTexelC${x+1}.xy);\n }\n `:m+=`\n xC${x+1} = vec4(xTexelC${x}.zw, xTexelC${x+1}.xy);\n `):b===1?m+=`\n xC${x+1} = xTexelC${x};\n `:m+=`\n xCOffset = xC + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x+1} = xTexelC${x+1};\n `}}else x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(xTexelC${x}.zw, xTexelC${x+1}.zw);\n `,x+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${x+1} = vec4(xTexelC${x+1}.xy, final.xy);\n `)):(m+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(\n xTexelC${x}.xy, xTexelC${x+1}.xy);\n `,x+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${s}) {\n innerDims = vec2(d1, ch);\n result[${c*2+p}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${c*2+p}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${o.output} = result;\n }\n `}};function AI(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function DI({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat===\"channelsLast\",d=!1,h=!1,g,x=[];if(s!=null){let I=AI(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=AI(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>F1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Uu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=dp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=E,F.shape=e.outShape,g=nr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=dp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function $I({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f===\"channelsLast\",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,I=[];if(s!=null){let Z=AI(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=AI(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new EI(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],D=n.runWebGLProgram(E,[r],\"float32\",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let M=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?Ml(a,!0):null,q=new Rd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,M,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],\"float32\",y.createScalarValue(i,\"float32\"));H.push(Z),I.push(Z)}let j=n.runWebGLProgram(q,H,\"float32\"),Y=rt({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});I.push(j);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return Y}function Hst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,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=DI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let h=new Md(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],\"float32\",g)}else if(L().getBool(\"WEBGL_CONV_IM2COL\"))f=$I({x:o,filter:s,convInfo:m,backend:e});else{let h=new Od(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var J3={kernelName:Qo,backendName:\"webgl\",kernelFunc:Hst};var RI=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat===\"channelsLast\";this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n ${i?`float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);`}\n }\n }\n }\n setOutput(dotProd);\n }\n `}},FI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat===\"channelsLast\",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${p}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n\n if (${i}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}},OI=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yF = 0; yF < ${t.outDepth}; yF++) {\n int xF = wF + yF * ${e} - ${s};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${i};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${a};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}},MI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${u}, ${l}, ${c});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${e}; wF++) {\n float dyF = float(dyFCorner + wF) / ${s}.0;\n\n if (dyF < 0.0 || dyF >= ${t.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${e} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function qst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new RI(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var Q3={kernelName:Dp,backendName:\"webgl\",kernelFunc:qst};var PI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"strides\",type:\"vec2\"}],this.outputShape=t.inShape,this.enableShapeUniforms=he(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=`\n const ivec2 pads = ivec2(${o}, ${s});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n\n ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n vec4 result = vec4(0.);\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / strides[0];\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n int wCPerm = ${n} - 1 - wC;\n\n float dyC = float(dyCCorner + wC) / strides[1];\n bool idyCVal = (dyC >= 0.0) && (dyC < ${t.outWidth}.0)\n && (fract(dyC) == 0.0);\n int idyC = int(dyC);\n\n float dyC2 = float(dyCCorner + wC + 1) / strides[1];\n bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${t.outWidth}.0)\n && (fract(dyC2) == 0.0);\n int idyC2 = int(dyC2);\n\n if (idyCVal && idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec4 dySample2 = (idyC / 2 == idyC2 / 2) ?\n dySample : getDy(batch, idyR, idyC2, d2);\n\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n\n dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample2.xy : dySample2.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal2) {\n for (int d2 = 0; d2 < ${t.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC2, d2);\n vec2 dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n }\n }\n }\n setOutput(result);\n }\n `}};function Kst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p);if(L().getBool(\"WEBGL_PACK_CONV2DTRANSPOSE\")&&p===\"channelsLast\"){let f=[[m.strideHeight,m.strideWidth]],d=new PI(m);return e.runWebGLProgram(d,[o,s],\"float32\",f)}else{let f=new FI(m);return e.runWebGLProgram(f,[o,s],\"float32\")}}var tB={kernelName:ts,backendName:\"webgl\",kernelFunc:Kst};function jst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new _I(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var eB={kernelName:es,backendName:\"webgl\",kernelFunc:jst};function Xst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new OI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var rB={kernelName:Ra,backendName:\"webgl\",kernelFunc:Xst};function Yst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new MI(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var nB={kernelName:Fa,backendName:\"webgl\",kernelFunc:Yst};var Zst=Po+`\n return cos(x);\n`,Jst=`\n vec4 result = cos(x);\n bvec4 isNaN = isnan(x);\n ${Xn}\n return result;\n`,Qst=It({opSnippet:Zst,packedOpSnippet:Jst}),oB={kernelName:rs,backendName:\"webgl\",kernelFunc:Qst};var tit=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,eit=It({opSnippet:tit}),sB={kernelName:ns,backendName:\"webgl\",kernelFunc:eit};var LI=class{constructor(t,e,n,o,s){this.variableNames=[\"Image\",\"Boxes\",\"BoxInd\"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o===\"bilinear\"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,\"(y2-y1) * height_ratio\",`y1*${d} + float(y)*(height_scale)`]:[\"0.0\",\"0.0\",`0.5 * (y1+y2) * ${d}`],[w,I,N]=m>1?[`${(u-1)/(m-1)}`,\"(x2-x1) * width_ratio\",`x1*${h} + float(x)*(width_scale)`]:[\"0.0\",\"0.0\",`0.5 * (x1+x2) * ${h}`];this.userCode=`\n const float height_ratio = float(${g});\n const float width_ratio = float(${w});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${i}) {\n return;\n }\n\n float height_scale = ${x};\n float width_scale = ${I};\n\n float in_y = ${b};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${s}));\n return;\n }\n float in_x = ${N};\n if( in_x < 0.0 || in_x > ${h} ) {\n setOutput(float(${s}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}};var rit=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new LI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},iB={kernelName:Ma,backendName:\"webgl\",kernelFunc:rit};var gp;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(gp||(gp={}));var dg=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=[\"x\"],this.customUniforms=[{name:\"index\",type:\"float\"}];let s=this.outputShape.length,i=this.op===gp.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${aB(s,\"coords\",this.op)})`,u=this.outputShape[this.outputShape.length-1],l=\"\",c=\"\";n?(l=o?`end != ${u-1}`:\"end != 0\",c=o?\"end + 1\":\"end - 1\"):(l=o?`end + pow2 < ${u}`:\"end >= pow2\",c=o?\"end + pow2\":\"end - pow2\"),this.userCode=`\n void main() {\n ${zt(s)} coords = getOutputCoords();\n int end = ${lB(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${lB(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${aB(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function aB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function lB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function zI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=nr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new dg(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new dg(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function nit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return zI(gp.Prod,o,e,s,i,a)}var uB={kernelName:Oa,backendName:\"webgl\",kernelFunc:nit};function oit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return zI(gp.Sum,o,e,s,i,a)}var cB={kernelName:os,backendName:\"webgl\",kernelFunc:oit};function sit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=tI(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=KL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var pB={kernelName:jl,backendName:\"webgl\",kernelFunc:sit};var BI=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${e};\n int offset_h = imod(h, ${e});\n int in_w = w / ${e};\n int offset_w = imod(w, ${e});\n int offset_d = (offset_h * ${e} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}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 iit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=new BI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var mB={kernelName:Pa,backendName:\"webgl\",kernelFunc:iit};var Pd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l=\"\",c=\"\";n&&(o?l=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?l=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:l=`\n float activation(float x) {\n ${n}\n }\n `,c=\"result = activation(result);\");let p=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${l}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${u};\n int q = d2 - d1 * ${u};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${p}\n ${c}\n setOutput(result);\n }\n `}};var Ld=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x=0 && xR < inDims[0]) {\n `;for(let x=0;x<(m+1)/2;x++){let b=x*2;if(f+=`\n xC = xCCorner + ${b*l};\n `,u===1){if(b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n `,l===1&&b>0?f+=`\n xC${b} = vec4(xTexelC${b-2}.zw, xTexelC${b}.xy);\n `:f+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${b} = vec4(previous.zw, xTexelC${b}.xy);\n } else {\n xC${b} = vec4(0.0, 0.0, xTexelC${b}.xy);\n }\n `):f+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xC${b} = xTexelC${b};\n `,b+1= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n `,l>1?f+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${b+1} = vec4(previous.zw, xTexelC${b+1}.xy);\n } else {\n xC${b+1} = vec4(0.0, 0.0, xTexelC${b+1}.xy);\n }\n `:f+=`\n xC${b+1} = vec4(xTexelC${b}.zw, xTexelC${b+1}.xy);\n `):w===1?f+=`\n xC${b+1} = xTexelC${b};\n `:f+=`\n xCOffset = xC + ${w};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b+1} = xTexelC${b+1};\n `}}else b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(xTexelC${b}.zw, xTexelC${b+1}.zw);\n `,b+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${b+1} = vec4(xTexelC${b+1}.xy, final.xy);\n `)):(f+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(\n xTexelC${b}.xy, xTexelC${b+1}.xy);\n `,b+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Ld(p):m=new Pd(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],\"float32\",f)}var fB={kernelName:ss,backendName:\"webgl\",kernelFunc:ait};var VI=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${i} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}},GI=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${u}; dm++) {\n int d2 = d1 * ${u} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function lit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new VI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var dB={kernelName:$p,backendName:\"webgl\",kernelFunc:lit};function uit(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new GI(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var hB={kernelName:Rp,backendName:\"webgl\",kernelFunc:uit};var WI=class{constructor(t){this.variableNames=[\"X\"],this.outputShape=[t,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n `}};function cit(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new WI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var gB={kernelName:Xl,backendName:\"webgl\",kernelFunc:cit};var UI=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=`\n const ivec2 strides = ivec2(${s}, ${i});\n const ivec2 pads = ivec2(${p}, ${m});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${e}) {\n for (int w = 0; w < ${u}; w++) {\n int wIn = wBeg + w * ${c};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}};function pit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new UI(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var xB={kernelName:is,backendName:\"webgl\",kernelFunc:pit};function mit(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=fp({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var yB={kernelName:Fp,backendName:\"webgl\",kernelFunc:mit};var fit=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",dit=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,hit=It({opSnippet:fit,packedOpSnippet:dit}),bB={kernelName:ls,backendName:\"webgl\",kernelFunc:hit};var git=\"return (b >= 0.0) ? a : a * (b + 1.0);\",xit=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,yit=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new jn(xit,n.shape,o.shape):new $n(git,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},wB={kernelName:La,backendName:\"webgl\",kernelFunc:yit};var bit=`\n return vec4(equal(a, b));\n`,wit=\"return float(a == b);\",Iit=ce({opSnippet:wit,packedOpSnippet:bit,dtype:\"bool\",cpuKernelImpl:JL}),IB={kernelName:za,backendName:\"webgl\",kernelFunc:Iit};var Cit=`\n // Error function is calculated approximately with elementary function.\n // See \"Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\n float p = ${S.ERF_P};\n float a1 = ${S.ERF_A1};\n float a2 = ${S.ERF_A2};\n float a3 = ${S.ERF_A3};\n float a4 = ${S.ERF_A4};\n float a5 = ${S.ERF_A5};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`,vit=It({opSnippet:Cit}),CB={kernelName:us,backendName:\"webgl\",kernelFunc:vit};var Sit=Po+`\n return exp(x);\n`,Nit=`\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,z1=It({opSnippet:Sit,packedOpSnippet:Nit,cpuKernelImpl:QL,dtype:\"float32\"}),vB={kernelName:cs,backendName:\"webgl\",kernelFunc:z1};function HI(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var SB={kernelName:Mi,backendName:\"webgl\",kernelFunc:HI};var NB=\"return exp(x) - 1.0;\",kit=It({opSnippet:NB,packedOpSnippet:NB,cpuKernelImpl:tz}),kB={kernelName:ps,backendName:\"webgl\",kernelFunc:kit};var hg=class{constructor(t,e,n){this.variableNames=[\"real\",\"imag\"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:\"1.0\",a;if(t===\"real\")a=\"return real * expR - imag * expI;\";else if(t===\"imag\")a=\"return real * expI + imag * expR;\";else throw new Error(`FFT component must be either \"real\" or \"imag\", got ${t}.`);this.userCode=`\n const float exponentMultiplier = ${s};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${o});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${o}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}};function qI(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new hg(\"real\",u,t),c=new hg(\"imag\",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,\"float32\"),f=e.runWebGLProgram(c,p,\"float32\"),d=Rn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Tit(r){let{inputs:t,backend:e}=r,{input:n}=t;return qI(n,!1,e)}var TB={kernelName:Op,backendName:\"webgl\",kernelFunc:Tit};var KI=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:\"value\",type:\"float\"}],this.variableNames=[\"x\"],this.outputShape=t,this.userCode=`\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n `}};function Ll(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s===\"string\"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new KI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var _B={kernelName:Jl,backendName:\"webgl\",kernelFunc:Ll};var jI=class{constructor(t){this.variableNames=[\"Image\"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${e} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${e}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var EB={kernelName:Ba,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new jI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var AB=\"return floor(x);\",_it=It({opSnippet:AB,packedOpSnippet:AB,cpuKernelImpl:ez}),DB={kernelName:ms,backendName:\"webgl\",kernelFunc:_it};var Eit=`\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n`,Ait=`\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n`,Dit=ce({opSnippet:Eit,packedOpSnippet:Ait,dtype:\"int32\"}),$B={kernelName:fs,backendName:\"webgl\",kernelFunc:Dit};var XI=class{constructor(t){this.variableNames=[\"A\"];let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${o}.0, ${n}.0);\n\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}};var YI=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${o}.0, ${n}.0);\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${e.output} = result;\n }\n `}};var RB={kernelName:th,backendName:\"webgl\",kernelFunc:$it},zd,B1=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function $it(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!=\"undefined\"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!=\"undefined\"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=L().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(zd==null||h!==B1)&&(B1=h,zd=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:B1})),zd.canvas.width=u,zd.canvas.height=l,zd.drawImage(o,0,0,u,l),o=zd.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=Jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=L().getBool(\"WEBGL_PACK\")?new YI(p):new XI(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function Rit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,I=a!=null,N=f===\"leakyrelu\",E=()=>{let D=[o,s],F=(M,V)=>{if(V===\"NCHW\"&&M.shape.length===1&&M.shape[0]!==1){let G=rt({inputs:{x:M},backend:e,attrs:{shape:[M.shape[0],1,1]}});return b.push(G),G}return M};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let M=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));D.push(M),b.push(M)}return D};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=DI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&L().getBool(\"WEBGL_EXP_CONV\")){let D=f?Ml(f,!0):null,F=new Md(g,w,D,I,N),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=E();x=e.runWebGLProgram(F,V,\"float32\",M)}else if(L().getBool(\"WEBGL_CONV_IM2COL\"))x=$I({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Ml(f,!1):null,F=new Od(g,w,D,I,N),M=E();x=e.runWebGLProgram(F,M,\"float32\")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var FB={kernelName:Yi,backendName:\"webgl\",kernelFunc:Rit};function Fit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=L().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Ml(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m===\"leakyrelu\";if(I&&w.push(i),N&&w.push(a),E){let M=e.makeTensorInfo([],\"float32\",y.createScalarValue(f,\"float32\"));w.push(M),d.push(M)}let A;x?A=new Ld(g,I,b,N,E):A=new Pd(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",D);return d.forEach(M=>e.disposeIntermediateTensorInfo(M)),F}var OB={kernelName:Zi,backendName:\"webgl\",kernelFunc:Fit};var ZI=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=[\"x\",\"indices\"],this.outputShape=n;let s=zt(n.length),i=`\n int index;`;for(let a=0;a= ${this.paramsShape[a]};\n flattenIndex += index * ${this.strides[a]};`;this.userCode=`\n void main() {\n ${s} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}};function Oit(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=o.shape,i=s[s.length-1],a=y.sizeFromShape(n.shape),[u,l,c,p]=S.prepareAndValidate(n,o),m=rt({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=rt({inputs:{x:n},backend:e,attrs:{shape:[y.sizeFromShape(n.shape)/c,c]}});if(e.shouldExecuteOnCPU([n,o])||n.dtype===\"string\"){let x=e.readSync(o.dataId),b=e.bufferSync(n),w=rz(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new ZI(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var MB={kernelName:Va,backendName:\"webgl\",kernelFunc:Oit};var JI=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=Mit(t,2);this.userCode=`\n void main() {\n ${n} resRC = getOutputCoords();\n int index = int(getIndices(resRC.x, resRC.z));\n float inBounds = (index >= 0) && (index < ${t[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${o}));\n }\n `}};function Mit(r,t){let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype===\"string\"){let b=e.bufferSync(f),w=e.bufferSync(m),I=nz(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new JI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var PB={kernelName:Pi,backendName:\"webgl\",kernelFunc:V1};var Pit=\"return float(a > b);\",Lit=`\n return vec4(greaterThan(a, b));\n`,zit=ce({opSnippet:Pit,packedOpSnippet:Lit,cpuKernelImpl:oz,dtype:\"bool\"}),LB={kernelName:Ga,backendName:\"webgl\",kernelFunc:zit};var Bit=\"return float(a >= b);\",Vit=`\n return vec4(greaterThanEqual(a, b));\n`,Git=ce({opSnippet:Bit,packedOpSnippet:Vit,dtype:\"bool\",cpuKernelImpl:sz}),zB={kernelName:hs,backendName:\"webgl\",kernelFunc:Git};function Wit(r){let{inputs:t,backend:e}=r,{input:n}=t;return qI(n,!0,e)}var BB={kernelName:Mp,backendName:\"webgl\",kernelFunc:Wit};var Uit=\"return float(!isnan(x) && !isinf(x));\",Hit=It({opSnippet:Uit,dtype:\"bool\"}),VB={kernelName:gs,backendName:\"webgl\",kernelFunc:Hit};var qit=\"return float(isinf(x));\",Kit=It({opSnippet:qit,dtype:\"bool\"}),GB={kernelName:xs,backendName:\"webgl\",kernelFunc:Kit};var jit=\"return float(isnan(x));\",Xit=It({opSnippet:jit,dtype:\"bool\"}),WB={kernelName:ys,backendName:\"webgl\",kernelFunc:Xit};var Yit=\"return float(a < b);\",Zit=`\n return vec4(lessThan(a, b));\n`,Jit=ce({opSnippet:Yit,packedOpSnippet:Zit,cpuKernelImpl:iz,dtype:\"bool\"}),UB={kernelName:Wa,backendName:\"webgl\",kernelFunc:Jit};var Qit=\"return float(a <= b);\",tat=`\n return vec4(lessThanEqual(a, b));\n`,eat=ce({opSnippet:Qit,packedOpSnippet:tat,cpuKernelImpl:az,dtype:\"bool\"}),HB={kernelName:Ua,backendName:\"webgl\",kernelFunc:eat};function rat(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=lz(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var qB={kernelName:Ha,backendName:\"webgl\",kernelFunc:rat};var nat=Po+`\n return x < 0.0 ? 0./0. : log(x);\n`,oat=`\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n`,sat=It({opSnippet:nat,packedOpSnippet:oat,cpuKernelImpl:uz}),KB={kernelName:ws,backendName:\"webgl\",kernelFunc:sat};var iat=Po+`\n return log(1.0 + x);\n`,aat=It({opSnippet:iat}),jB={kernelName:Is,backendName:\"webgl\",kernelFunc:aat};var lat=\"return float(a >= 1.0 && b >= 1.0);\",uat=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,cat=ce({opSnippet:lat,packedOpSnippet:uat,dtype:\"bool\"}),XB={kernelName:qa,backendName:\"webgl\",kernelFunc:cat};var pat=\"return float(!(x >= 1.0));\",mat=It({opSnippet:pat}),YB={kernelName:Ka,backendName:\"webgl\",kernelFunc:mat};var fat=\"return float(a >= 1.0 || b >= 1.0);\",dat=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,hat=ce({opSnippet:fat,packedOpSnippet:dat,dtype:\"bool\"}),ZB={kernelName:ja,backendName:\"webgl\",kernelFunc:hat};var QI=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${u};\n setOutput(val);\n }\n `}};var tC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${i};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${u};\n setOutput(result);\n }\n `}};var gat=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool(\"WEBGL_PACK_NORMALIZATION\")?new tC(o.shape,s,i,a,u):new QI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},JB={kernelName:Cs,backendName:\"webgl\",kernelFunc:gat};var eC=class{constructor(t,e,n,o,s){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${e})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${e} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${o}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${o})\n * float(${s})\n * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${s});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}};var xat=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new eC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},QB={kernelName:Xa,backendName:\"webgl\",kernelFunc:xat};function tV(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,r.dtype,\"max\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function G1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,I=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Ni(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var nV={kernelName:Ns,backendName:\"webgl\",kernelFunc:Iat};function Cat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new qu(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var oV={kernelName:Li,backendName:\"webgl\",kernelFunc:Cat};var rC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${s};\n wR += ${o}) {\n float dyR = float(dyRCorner + wR) / ${e}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${i}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}},nC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=`\n const ivec3 pads = ivec3(${p}, ${m}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${u};\n wD += ${s}) {\n float dyD = float(dyDCorner + wD) / ${e}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${c};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${o}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${c} +\n wR * ${c} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function vat(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new qu(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new nC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var sV={kernelName:tu,backendName:\"webgl\",kernelFunc:vat};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;vi([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new Ni(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new rC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var iV={kernelName:Ql,backendName:\"webgl\",kernelFunc:Sat};function aV(r,t,e,n){let o=new Ni(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new Ni(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var lV={kernelName:eu,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=aV(n,a,c,u);return[p,m]}};function uV(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,\"float32\",\"mean\",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var cV={kernelName:ks,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;Dc[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(\",\"),a=e.map((c,p)=>c[0]+t[p]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o),l=n===\"reflect\"?0:1;if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n for (int i = 0; i < ${o}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n `}};var sC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(\",\"),a=e.map((d,h)=>d[0]+t[h]).join(\",\"),u=rr(\"rc\",o),l=rr(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=n===\"reflect\"?0:1,f=\"\";if(o===1){let d=`\n ${s} source = rc;\n if (source < start) {\n source = start * 2 - source - ${m};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${m};\n }\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n `}else{let d=`\n ${s} source = rc;\n ${s} lt = ${s}(lessThan(source, start));\n ${s} gte = ${s}(greaterThanEqual(source, end));\n ${s} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${m}) +\n gte * ((end - 1) * 2 - source + ${m});\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {\n ${d}\n result[2] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[3] = getChannel(getX(${l.join()}), ${p});\n }\n }\n `}this.userCode=`\n const ${s} start = ${s}(${i});\n const ${s} end = ${s}(${a});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}};var Eat=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new sC(n.shape,o,s):new oC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},fV={kernelName:Es,backendName:\"webgl\",kernelFunc:Eat};var Aat=`if (b == 0.0) return NAN;\n return mod(a, b);`,Dat=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+Xn+`\n return result;\n`,$at=ce({opSnippet:Aat,packedOpSnippet:Dat}),dV={kernelName:As,backendName:\"webgl\",kernelFunc:$at};var iC=class{constructor(t,e,n){this.variableNames=[\"probs\"],this.customUniforms=[{name:\"seed\",type:\"float\"}],this.outputShape=[t,n],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${e-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${e-1}));\n }\n `}};var Rat=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,Fat=`\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n`,W1=ce({opSnippet:Rat,packedOpSnippet:Fat,checkOutOfBounds:!0}),hV={kernelName:as,backendName:\"webgl\",kernelFunc:W1};var gV=\"return a - b;\",U1=ce({opSnippet:gV,packedOpSnippet:gV,supportsComplex:!0,cpuKernelImpl:Rz}),xV={kernelName:ei,backendName:\"webgl\",kernelFunc:U1};function H1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=G1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=U1({inputs:{a:o,b:l},backend:e}),p=z1({inputs:{x:c},backend:e}),m=fp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=W1({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var yV={kernelName:Qs,backendName:\"webgl\",kernelFunc:H1};function Oat(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:H1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new iC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var bV={kernelName:Ya,backendName:\"webgl\",kernelFunc:Oat};var Mat=xr+`\n return -x;\n`,Pat=`\n vec4 result = -x;\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;function Lat(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=dz(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new Dn(n.shape,Pat):o=new zr(n.shape,Mat),e.runWebGLProgram(o,[n],n.dtype)}var wV={kernelName:zi,backendName:\"webgl\",kernelFunc:Lat};var zat=Xr.nonMaxSuppressionV3Impl;function Bat(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=zat(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var IV={kernelName:Ja,backendName:\"webgl\",kernelFunc:Bat};var Vat=Xr.nonMaxSuppressionV4Impl;function Gat(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=Vat(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var CV={kernelName:Qa,backendName:\"webgl\",kernelFunc:Gat};var Wat=Xr.nonMaxSuppressionV5Impl;function Uat(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=Wat(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var vV={kernelName:tl,backendName:\"webgl\",kernelFunc:Uat};var aC=class{constructor(t,e,n,o){this.variableNames=[\"indices\"],this.outputShape=[t,e],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${o}), float(${n}),\n float(index == coords.y)));\n }\n `}};var Hat=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new aC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},SV={kernelName:$s,backendName:\"webgl\",kernelFunc:Hat};function gg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=Pl({inputs:{input:n},backend:e}),s=gg({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=gg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var NV={kernelName:ji,backendName:\"webgl\",kernelFunc:gg};function kV(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"string\")throw new Error(\"onesLike is not supported under string dtype\");if(n.dtype===\"complex64\"){let o=Pl({inputs:{input:n},backend:e}),s=kV({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=gg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var TV={kernelName:Bi,backendName:\"webgl\",kernelFunc:kV};function qat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return HI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=HI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=L1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var _V={kernelName:Vi,backendName:\"webgl\",kernelFunc:qat};var lC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(\",\"),a=e.map((l,c)=>l[0]+t[c]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o);if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n }\n `}};var uC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(\",\"),a=e.map((h,g)=>h[0]+t[g]).join(\",\"),u=rr(\"rc\",o),l=rr(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1;\n if(${c}) {\n `,o===1?\"\":`}\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {`,o===1?\"\":` ${u[o-1]} += 1;\n if(${c}) {`],f=o===1?\"rc < start || rc >= end\":\"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))\",d=\"\";for(let h=0,g=o===1?2:4;h{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Ll({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new uC(o.shape,s,i):new lC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},EV={kernelName:Rs,backendName:\"webgl\",kernelFunc:q1};var Kat=`\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n`,jat=`\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n `+Xn+`\n return result;\n`,Xat=ce({opSnippet:Kat,packedOpSnippet:jat}),AV={kernelName:Fs,backendName:\"webgl\",kernelFunc:Xat};function Yat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Pe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=gz(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=lc(o.dtype),w=Yn(x,b,\"prod\",e);f=rt({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var DV={kernelName:Ms,backendName:\"webgl\",kernelFunc:Yat};function Zat(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=xz(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var $V={kernelName:Lp,backendName:\"webgl\",kernelFunc:Zat};function Jat(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=yz(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var RV={kernelName:zp,backendName:\"webgl\",kernelFunc:Jat};function Qat(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=bz(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var FV={kernelName:Bp,backendName:\"webgl\",kernelFunc:Qat};var K1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=wz(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},OV={kernelName:ru,backendName:\"webgl\",kernelFunc:K1};var tlt=\"return 1.0 / x;\",elt=It({opSnippet:tlt}),MV={kernelName:Ps,backendName:\"webgl\",kernelFunc:elt};var rlt=xr+`\n return (x < 0.0) ? 0.0 : x;\n`,nlt=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,olt=It({opSnippet:rlt,packedOpSnippet:nlt}),PV={kernelName:Ls,backendName:\"webgl\",kernelFunc:olt};var slt=xr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,ilt=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,alt=It({opSnippet:slt,packedOpSnippet:ilt}),LV={kernelName:Vs,backendName:\"webgl\",kernelFunc:alt};var cC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)\":m=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}};var pC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)\":m=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}};function llt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new pC(o.shape,u,l,s,i):new cC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var zV={kernelName:Bs,backendName:\"webgl\",kernelFunc:llt};var mC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${o-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function ult(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new mC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var BV={kernelName:rl,backendName:\"webgl\",kernelFunc:ult};var fC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\":f=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}};var dC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))\":f=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}};function clt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new dC(o.shape,u,l,s,i):new fC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var VV={kernelName:zs,backendName:\"webgl\",kernelFunc:clt};var hC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${u[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${u[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${o}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${s}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function plt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new hC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var GV={kernelName:el,backendName:\"webgl\",kernelFunc:plt};var gC=class{constructor(t,e){this.variableNames=[\"x\"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${t[0]} - coord - 1));\n }\n `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(\",\"),i=zt(n);this.userCode=`\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}};var xC=class{constructor(t,e){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=rr(\"rc\",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${t[0]} - rc - 1),\n ${t[0]} - rc - 1);\n if(${s}){\n result.g = getChannel(getX(${t[0]} - (rc + 1) - 1),\n ${t[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:this.userCode=`\n void main() {\n ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${u(o.slice())};\n if(${s}){\n result.g = ${l(o.slice())};\n }\n if(${i}) {\n result.b = ${c(o.slice())};\n if(${s}) {\n result.a = ${p(o.slice())};\n }\n }\n setOutput(result);\n }\n `;function u(d){return m(d)}function l(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",m(d)}function c(d){return d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function p(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(\",\"),x=h.slice(-2).join(\",\");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function mlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return nr({inputs:{x:o},backend:e});let u=L().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new xC(o.shape,a):new gC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var WV={kernelName:Gs,backendName:\"webgl\",kernelFunc:mlt};var yC=class{constructor(t,e){this.variableNames=[\"Image\"],this.outputShape=[],this.customUniforms=[{name:\"params\",type:\"vec4\"}];let n=t[1],o=t[2];this.outputShape=t;let s=\"\";typeof e==\"number\"?s=`float outputValue = ${e.toFixed(2)};`:s=`\n vec3 fill = vec3(${e.join(\",\")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${s}\n if(coordX >= 0 && coordX < ${o} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var UV={kernelName:pl,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new yC(n.shape,s),[l,c]=S.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var flt=`\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n`,dlt=It({opSnippet:flt}),HV={kernelName:Ws,backendName:\"webgl\",kernelFunc:dlt};var hlt=\"return inversesqrt(x);\",glt=It({opSnippet:hlt,cpuKernelImpl:Iz}),qV={kernelName:Us,backendName:\"webgl\",kernelFunc:glt};var Ku=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${t}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${e}; j++) {\n int index = round(${m});\n flattenedIndex += index * ${x};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${d};\n found = true;\n }\n }\n setOutput(mix(${g}, sum, float(found)));\n }\n `}};var bC=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;let l=zt(s.length),c=zt(i.length),p=\"\";n===1?p=\"i\":n===2&&(p=\"i, j\");let m=`getIndices(${p})`,f=\"\";o===1?f=\"i\":o===2&&(f=\"i, coords[1]\");let d=`getUpdates(${f})`,h=\"\";u&&(h=\"coords[0], coords[1]\");let g=`getDefaultValue(${h})`,x=e>1?\"strides[j]\":\"strides\",b=e>1?\"strides[j + 1]\":\"strides\";this.userCode=`\n ${l} strides = ${l}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n vec4 sum = vec4(0.);\n vec4 found = vec4(0.);\n for (int i = 0; i < ${t}; i+=2) {\n ivec2 flattenedIndex = ivec2(0);\n for (int j = 0; j < ${e}; j+=2) {\n ivec4 index = round(${m});\n flattenedIndex += index.xz * ${x};\n if (j + 1 < ${e}) {\n flattenedIndex += index.yw * ${b};\n }\n }\n if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] ||\n flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) {\n vec4 updVals = ${d};\n if (flattenedIndex[0] == coords[0]) {\n sum.xy += updVals.xy;\n found.xy = vec2(1.);\n } else if (flattenedIndex[0] == coords[0] + 1) {\n sum.zw += updVals.xy;\n found.zw = vec2(1.);\n }\n if (flattenedIndex[1] == coords[0]) {\n sum.xy += updVals.zw;\n found.xy = vec2(1.);\n } else if (flattenedIndex[1] == coords[0] + 1) {\n sum.zw += updVals.zw;\n found.zw = vec2(1.);\n }\n }\n }\n setOutput(mix(${g}, sum, found));\n }\n `}};function xlt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g;L().getBool(\"WEBGL_PACK\")?g=new bC(u,a,f.shape.length,d.shape.length,c,m):g=new Ku(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var KV={kernelName:nl,backendName:\"webgl\",kernelFunc:xlt};var wC=class{constructor(t,e,n,o){this.variableNames=[\"sortedSequence\",\"values\"],this.customUniforms=[{name:\"numInputs\",type:\"int\"}],this.outputShape=[t,n];let s=\"while (left < right) {\",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=L().getNumber(\"WEBGL_VERSION\")===2?s:i,u=o===\"left\"?\"<\":\"<=\";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${a}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${u} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}};function ylt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new wC(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var jV={kernelName:sl,backendName:\"webgl\",kernelFunc:ylt};var IC=class{constructor(t,e,n){this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s=\"resRC\",o=\"resRC\";else{let a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],u=[],l=[];for(let c=0;c= 1.0) {\n setOutput(getA(${s}));\n } else {\n setOutput(getB(${s}));\n }\n }\n `}};function blt(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new IC(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],ur(o.dtype,s.dtype))}var XV={kernelName:Wi,backendName:\"webgl\",kernelFunc:blt};var wlt=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${S.SELU_SCALEALPHA};\n float scale = ${S.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,Ilt=It({opSnippet:wlt}),YV={kernelName:Hs,backendName:\"webgl\",kernelFunc:Ilt};var Clt=Po+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,vlt=`\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Slt=It({opSnippet:Clt,packedOpSnippet:vlt,cpuKernelImpl:vz}),ZV={kernelName:Xs,backendName:\"webgl\",kernelFunc:Slt};var Nlt=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,klt=It({opSnippet:Nlt}),JV={kernelName:js,backendName:\"webgl\",kernelFunc:klt};var Tlt=Po+`\n return sin(x);\n`,_lt=`\n vec4 result = sin(x);\n bvec4 isNaN = isnan(x);\n ${Xn}\n return result;\n`,Elt=It({opSnippet:Tlt,packedOpSnippet:_lt}),QV={kernelName:qs,backendName:\"webgl\",kernelFunc:Elt};var Alt=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Dlt=It({opSnippet:Alt}),tG={kernelName:Ks,backendName:\"webgl\",kernelFunc:Dlt};var $lt=`\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n`,Rlt=It({opSnippet:$lt}),eG={kernelName:Ys,backendName:\"webgl\",kernelFunc:Rlt};var Flt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},rG={kernelName:Hi,backendName:\"webgl\",kernelFunc:Flt};function Olt(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw:\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw:\n ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=Nz(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],\"bool\",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var nG={kernelName:nu,backendName:\"webgl\",kernelFunc:Olt};function Mlt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=kz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var oG={kernelName:il,backendName:\"webgl\",kernelFunc:Mlt};function Plt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=rI(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var sG={kernelName:ou,backendName:\"webgl\",kernelFunc:Plt};function Llt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=rI(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var iG={kernelName:su,backendName:\"webgl\",kernelFunc:Llt};function zlt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1;if(s.dtype===\"string\"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),I=Cz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new Ku(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var aG={kernelName:al,backendName:\"webgl\",kernelFunc:zlt};function Blt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ki({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var lG={kernelName:qi,backendName:\"webgl\",kernelFunc:Blt};var uG=\"return sqrt(x);\",Vlt=It({opSnippet:uG,packedOpSnippet:uG,cpuKernelImpl:Tz}),cG={kernelName:Zs,backendName:\"webgl\",kernelFunc:Vlt};var Glt=\"return x * x;\",Wlt=It({opSnippet:Glt}),pG={kernelName:iu,backendName:\"webgl\",kernelFunc:Wlt};var mG=\"return (a - b) * (a - b);\",Ult=ce({opSnippet:mG,packedOpSnippet:mG}),fG={kernelName:ti,backendName:\"webgl\",kernelFunc:Ult};function Hlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=_z(i,\"string\",n);return e.makeTensorInfo(o.shape,\"string\",a)}var dG={kernelName:ec,backendName:\"webgl\",kernelFunc:Hlt};function qlt({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=xr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new zr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var hG={kernelName:xo,backendName:\"webgl\",kernelFunc:qlt};var CC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a=\"\";if(o===1)a=\"coords * strides + begin\";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(\",\")}this.userCode=`\n ${s} begin = ${s}(${t});\n ${s} strides = ${s}(${e});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}};function Klt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Be.computeOutShape(b,w,I),D=ki({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=wt(o.shape,o.dtype,D),M=Ez(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,M.values)}else{let D=new CC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var gG={kernelName:ll,backendName:\"webgl\",kernelFunc:Klt};function jlt(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=Az(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var xG={kernelName:au,backendName:\"webgl\",kernelFunc:jlt};function Xlt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=Dz(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var yG={kernelName:lu,backendName:\"webgl\",kernelFunc:Xlt};function Ylt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.readSync(s.dataId),a=$z(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var bG={kernelName:uu,backendName:\"webgl\",kernelFunc:Ylt};var Zlt=\"return tan(x);\",Jlt=It({opSnippet:Zlt}),wG={kernelName:ri,backendName:\"webgl\",kernelFunc:Jlt};var Qlt=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,tut=It({opSnippet:Qlt}),IG={kernelName:ni,backendName:\"webgl\",kernelFunc:tut};function eut(r){let{inputs:t,backend:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=t,{}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(i,s,o.shape),m=[p/l,l];if(p===0)return e.makeTensorInfo(o.shape,s.dtype);let f=rt({inputs:{x:s},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:i},backend:e,attrs:{shape:[u,l]}}),h=rt({inputs:{x:o},backend:e,attrs:{shape:m}}),g=new Ku(u,a,f.shape.length,d.shape.length,c,m,!1,!0),x=e.runWebGLProgram(g,[d,f,h],h.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:o.shape}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(x),b}var CG={kernelName:ol,backendName:\"webgl\",kernelFunc:eut};var vC=class{constructor(t,e){this.variableNames=[\"A\"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype===\"string\"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=Fz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new vC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var vG={kernelName:oo,backendName:\"webgl\",kernelFunc:j1};var SC=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"negativeInf\",type:\"float\"},{name:\"dir\",type:\"int\"},{name:\"inc\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n `}},NC=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"k\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n `}};function xp(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function SG(r){let t=1;for(;tu){let M=e.readSync(o.dataId),[V,G]=Oz(M,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,\"int32\",[])];if(c===1)return[o,Ll({attrs:{shape:l,dtype:\"int32\",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&xp(e,f);let x=SG(s),b=SG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(M,V,G)=>{let W=I(),q=new SC(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[M],[V]],Y=w;w=e.runWebGLProgram(q,W,\"int32\",j),xp(e,Y)};for(let M=1;M=1;G/=2)N(V,G,[h,b])}for(let M=b;M>x;M/=2){let V=I(),G=new NC([h,M/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),xp(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let E=w;w=ki({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),xp(e,E);let A=V1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});xp(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),xp(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),xp(e,F),[A,w]}var NG={kernelName:ul,backendName:\"webgl\",kernelFunc:nut};var kC=class{constructor(t,e,n,o,s,i){this.variableNames=[\"Image\",\"Transforms\"],this.outputShape=i;let a=n===\"nearest\"?1:2,u;switch(o){case\"constant\":u=1;break;case\"reflect\":u=2;break;case\"wrap\":u=3;break;case\"nearest\":u=4;break;default:u=1;break}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${u} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${t} && 0 <= coordX && coordX < ${e}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${s});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${s});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${e}));\n float mapY = mapCoord(inY, float(${t}));\n\n if (${a} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}};function out(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new kC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var kG={kernelName:cl,backendName:\"webgl\",kernelFunc:out};function sut(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;vi(s,\"unique\"),console.warn(\"WARNING: \",\"UI might be locked temporarily as data is being downloaded\");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=Mz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var TG={kernelName:cu,backendName:\"webgl\",kernelFunc:sut};function iut(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var _G={kernelName:Ki,backendName:\"webgl\",kernelFunc:iut};var TC=class{constructor(t,e){this.variableNames=[\"x\",\"segmentIds\"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u=\"0.0\",l=\"sumValue\",c=Math.floor(n/4)*4,p=n%4,m=`\n sumValue += dot(values, segFilter);\n `,f=\"\";s%n>0&&(f=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `);let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = ${u};\n\n float getValue(int batch, int inIdx) {\n ${f}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${d}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function aut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=S.getAxesPermutation([l],a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=S.getInnerMostAxes(1,a)[0]);let m=S.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=lc(o.dtype),g=(I,N,E,A,D)=>{let F=I.shape[0],M=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(M,D),G={windowSize:V,inSize:M,batchSize:F,numSegments:D},W=new TC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=K1({backend:e,attrs:{start:0,stop:D,step:1,dtype:\"float32\"}}),j=j1({inputs:{x:H},backend:e,attrs:{reps:[M/V]}});return u.push(H),u.push(j),g(q,N,j,A,D)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var EG={kernelName:pu,backendName:\"webgl\",kernelFunc:aut};var lut=[p3,f3,d3,h3,x3,y3,b3,w3,v3,S3,N3,k3,T3,_3,E3,A3,D3,$3,R3,F3,O3,P3,L3,z3,B3,U3,q3,K3,e3,X3,Z3,J3,Q3,tB,eB,rB,nB,oB,sB,iB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,bB,wB,IB,CB,vB,SB,kB,TB,_B,EB,DB,$B,RB,FB,OB,MB,PB,LB,zB,t3,BB,Y3,VB,GB,WB,r3,UB,HB,qB,KB,jB,XB,YB,ZB,JB,QB,eV,rV,nV,oV,sV,iV,lV,cV,pV,mV,fV,dV,bV,s3,wV,IV,CV,vV,V3,SV,TV,_V,EV,AV,n3,DV,$V,RV,FV,OV,G3,hV,MV,PV,LV,a3,zV,BV,VV,GV,WV,UV,HV,qV,KV,jV,XV,YV,ZV,JV,QV,tG,M3,yV,eG,rG,nG,oG,sG,iG,aG,lG,cG,pG,fG,dG,hG,gG,xG,yG,bG,xV,u3,wG,IG,CG,vG,NG,kG,c3,TG,_G,EG,NV];for(let r of lut)rc(r);var Nt;(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\"})(Nt||(Nt={}));var ju;(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\",r[r.sigmoid=5]=\"sigmoid\",r[r.elu=6]=\"elu\"})(ju||(ju={}));var AG;function uut(r){AG=r.wasm.cwrap(Xi,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"_FusedMatMul for non non-float32 tensors not yet supported.\");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=ju[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Hr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return AG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var DG={kernelName:Xi,backendName:\"wasm\",setupFunc:uut,kernelFunc:cut};function yt(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,[\"number\",\"number\",\"number\"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,Nt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var $G=yt(Ai);var RG=yt(Go);var FG=yt(Wo);function ee(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=S.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return n(p,g,l.shape.length,m,x,c.shape.length,Nt[l.dtype],b),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var put=!0,OG=ee(no,put);var MG;function mut(r){MG=r.wasm.cwrap(Uo,null,[\"array\",\"number\",\"number\",\"number\"])}function fut(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return MG(s,o.length,Nt[n.dtype],i),n}var PG={kernelName:Uo,backendName:\"wasm\",setupFunc:mut,kernelFunc:fut};function yp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return ir(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var LG={kernelName:go,backendName:\"wasm\",kernelFunc:yp};var zG;function dut(r){zG=r.wasm.cwrap(so,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function mo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=gut(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var BG={kernelName:so,backendName:\"wasm\",kernelFunc:mo,setupFunc:dut};function Cn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iW={kernelName:Gi,backendName:\"wasm\",kernelFunc:mr};var aW;function Eut(r){aW=r.wasm.cwrap(Zo,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function Aut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"BatchMatMul for non non-float32 tensors not yet supported.\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Hr.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=e.dataIdMap.get(E.dataId).id,F=e.dataIdMap.get(A.dataId).id,M=i?E.shape[2]:E.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,M,V],E.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(E.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aW(D,H,E.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var lW={kernelName:Zo,backendName:\"wasm\",setupFunc:Eut,kernelFunc:Aut};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Be.parseSliceParams(t,e,n),a=Be.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Be.computeFlatOffset(s,c);return t.dtype===\"string\"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype===\"string\"){let d=ep(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Dut(u,c[0],m,s,i);else if(f===3)$ut(u,c[0],c[1],m,s,i);else if(f===4)Rut(u,c[0],c[1],c[2],m,s,i);else{let d=ep(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Dut(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=mo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(h.dataId),g}var cW={kernelName:Fi,backendName:\"wasm\",kernelFunc:Fut};var pW;function Out(r){pW=r.wasm.cwrap(Da,null,[\"number\",\"number\",\"boolean\",\"number\",\"number\",\"number\"])}function Mut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return pW(c(o),i,a,c(s),Nt[s.dtype],c(l)),l}var mW={kernelName:Da,backendName:\"wasm\",setupFunc:Out,kernelFunc:Mut};var Put=!0,fW=ee($a,Put);function Lut(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],\"int32\",void 0,new Int32Array(a))}var dW={kernelName:ql,backendName:\"wasm\",kernelFunc:Lut};function Fn(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var hW={kernelName:fo,backendName:\"wasm\",kernelFunc:Fn};var gW=yt(Jo);var xW;function zut(r){xW=r.wasm.cwrap(ho,null,[\"number\",\"number\",\"number\",\"number\"])}function But(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return xW(a,s,i,l),u}var yW={kernelName:ho,backendName:\"wasm\",setupFunc:zut,kernelFunc:But};function X1(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return yp({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype===\"string\"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return mr({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Jc(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims(\"cumprod\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;FW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var OW={kernelName:Oa,backendName:\"wasm\",setupFunc:Qut,kernelFunc:tct};var MW;function ect(r){MW=r.wasm.cwrap(os,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function rct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype===\"float32\"||o.dtype===\"int32\",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims(\"cumsum\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;MW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var PW={kernelName:os,backendName:\"wasm\",setupFunc:ect,kernelFunc:rct};var LW;function nct(r){LW=r.wasm.cwrap(\"DenseBincount\",null,[\"number\",\"array\",\"number\",\"number\",\"boolean\",\"number\",\"number\",\"boolean\",\"number\"])}function oct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return LW(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),Nt[s.dtype],a,p(c)),c}var zW={kernelName:jl,backendName:\"wasm\",setupFunc:nct,kernelFunc:oct};var BW;function sct(r){BW=r.wasm.cwrap(Pa,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function ict(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,\"float32\"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return BW(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var VW={kernelName:Pa,backendName:\"wasm\",setupFunc:sct,kernelFunc:ict};var GW;function act(r){GW=r.wasm.cwrap(ss,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function lct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=S.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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=n.makeOutput(f.outShape,\"float32\"),G=n.dataIdMap.get(V.dataId).id;return GW(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,M,I,N,E,A,D,F,G),V}var WW={kernelName:ss,backendName:\"wasm\",setupFunc:act,kernelFunc:lct};var UW;function uct(r){UW=r.wasm.cwrap(\"Diag\",null,[\"number\",\"number\",\"number\",\"number\"])}function cct(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return UW(e.dataIdMap.get(n.dataId).id,Nt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var HW={kernelName:Xl,backendName:\"wasm\",setupFunc:uct,kernelFunc:cct};var qW;function pct(r){qW=r.wasm.cwrap(is,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c=e.makeOutput(l.outShape,o.dtype);return qW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,Nt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var KW={kernelName:is,backendName:\"wasm\",setupFunc:pct,kernelFunc:mct};var jW;function fct(r){jW=r.wasm.cwrap(Zl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function dct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(s.shape,s.dtype);return jW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var XW={kernelName:Zl,backendName:\"wasm\",setupFunc:fct,kernelFunc:dct};var YW;function hct(r){YW=r.wasm.cwrap(Yl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function gct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,\"NHWC\",l),p=e.makeOutput(o.shape,o.dtype);return YW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var ZW={kernelName:Yl,backendName:\"wasm\",setupFunc:hct,kernelFunc:gct};var JW=yt(ls);var QW;function xct(r){QW=r.wasm.cwrap(La,null,[\"number\",\"number\",\"number\"])}function yct(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,\"float32\"),i=a=>e.dataIdMap.get(a.dataId).id;return QW(i(o),i(n),i(s)),s}var tU={kernelName:La,backendName:\"wasm\",setupFunc:xct,kernelFunc:yct};var bct=!1,eU=ee(za,bct,\"bool\");var rU=yt(us);var nU=yt(cs,\"float32\");function EC(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var oU={kernelName:Mi,backendName:\"wasm\",kernelFunc:EC};var sU=yt(ps,\"float32\");function Z1(r){let{attrs:{shape:t,value:e},backend:n}=r,{attrs:{dtype:o}}=r;o=o||y.inferDtype(e);let s=n.makeOutput(t,o);return n.typedArrayFromHeap(s).fill(e),s}var iU={kernelName:Jl,backendName:\"wasm\",kernelFunc:Z1};var aU;function wct(r){aU=r.wasm.cwrap(Ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ict(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return aU(s,a,u,l,c,i),o}var lU={kernelName:Ba,backendName:\"wasm\",kernelFunc:Ict,setupFunc:wct};var uU=yt(ms);var Cct=!1,cU=ee(fs,Cct);var pU;function vct(r){pU=r.wasm.cwrap(ds,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Sct(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return pU(c,p,m,f,d,o,g),h}var mU={kernelName:ds,backendName:\"wasm\",setupFunc:vct,kernelFunc:Sct};var fU;function Nct(r){fU=r.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 kct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return fU(x,Y,Z,et,b,N,E,I,A,D,F,M,j,V,G,W,q,H,w,g,lt,d||0,st),nt}var dU={kernelName:Yi,backendName:\"wasm\",setupFunc:Nct,kernelFunc:kct};var hU;function Tct(r){hU=r.wasm.cwrap(Zi,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 _ct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,\"float32\"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return hU(x,Y,Z,et,b,N,E,I,A,D,F,M,j,V,G,W,q,H,w,g,lt,d||0,st),nt}var gU={kernelName:Zi,backendName:\"wasm\",setupFunc:Tct,kernelFunc:_ct};var xU;function Ect(r){xU=r.wasm.cwrap(Va,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function Act(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Ey.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return xU(f,Nt[n.dtype],h,i,p,a,g,x),l}var yU={kernelName:Va,backendName:\"wasm\",setupFunc:Ect,kernelFunc:Act};var bU;function Dct(r){bU=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function $ct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${M} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return bU(w,Nt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var wU={kernelName:Pi,backendName:\"wasm\",setupFunc:Dct,kernelFunc:$ct};var Rct=!1,IU=ee(Ga,Rct,\"bool\");var Fct=!1,CU=ee(hs,Fct,\"bool\");var vU=yt(gs,\"bool\");var SU=yt(xs,\"bool\");var NU=yt(ys,\"bool\");var kU;function Oct(r){kU=r.wasm.cwrap(bs,null,[\"number\",\"number\",\"number\",\"number\"])}function Mct(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,\"float32\");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;kU(o,Nt[t.dtype],e,i)}return s}var TU={kernelName:bs,backendName:\"wasm\",setupFunc:Oct,kernelFunc:Mct};var Pct=!1,_U=ee(Wa,Pct,\"bool\");var Lct=!1,EU=ee(Ua,Lct,\"bool\");var AU;function zct(r){AU=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"number\",\"number\"])}function Bct(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],\"float32\");return AU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var DU={kernelName:Ha,backendName:\"wasm\",setupFunc:zct,kernelFunc:Bct};var $U=yt(ws);var RU=yt(Is);var Vct=!1,FU=ee(qa,Vct,\"bool\");var OU=yt(Ka);var Gct=!1,MU=ee(ja,Gct,\"bool\");var Wct=!1,PU=ee(E_,Wct,\"bool\");var LU;function Uct(r){LU=r.wasm.cwrap(Cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Hct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!==\"float32\")throw new Error(\"LRN error: x must have dtype float32\");let l=e.makeOutput(o.shape,o.dtype);return LU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var zU={kernelName:Cs,backendName:\"wasm\",setupFunc:Uct,kernelFunc:Hct};var BU;function qct(r){BU=r.wasm.cwrap(Xa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Kct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\"||i.dtype!==\"float32\")throw new Error(\"LRNGrad error: x, y, and dy must have dtype float32\");let p=e.makeOutput(o.shape,o.dtype);return BU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var VU={kernelName:Xa,backendName:\"wasm\",setupFunc:qct,kernelFunc:Kct};var GU;function jct(r){GU=r.wasm.cwrap(vs,null,[\"number\",\"number\",\"number\",\"number\"])}function Xct(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;GU(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var WU={kernelName:vs,backendName:\"wasm\",setupFunc:jct,kernelFunc:Xct};var Yct=!1,UU=ee(Ss,Yct);var HU;function Zct(r){HU=r.wasm.cwrap(Ns,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Jct(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype===\"float32\",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=S.computePool2DInfo(o.shape,i,a,1,u,l),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,b=c.dilationWidth,w=c.strideHeight,I=c.strideWidth,N=c.inChannels,E=c.outChannels;if(c.dataFormat!==\"channelsLast\")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,\"float32\"),D=n.dataIdMap.get(A.dataId).id;return HU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var qU={kernelName:Ns,backendName:\"wasm\",setupFunc:Zct,kernelFunc:Jct};var KU;function Qct(r){KU=r.wasm.cwrap(\"MaxPool3D\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function tpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return KU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var jU={kernelName:Li,backendName:\"wasm\",setupFunc:Qct,kernelFunc:tpt};var XU;function ept(r){XU=r.wasm.cwrap(\"MaxPool3DGrad\",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 rpt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return XU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var YU={kernelName:tu,backendName:\"wasm\",setupFunc:ept,kernelFunc:rpt};var ZU;function npt(r){ZU=r.wasm.cwrap(\"MaxPoolGrad\",null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function opt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool2DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return ZU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),p}var JU={kernelName:Ql,backendName:\"wasm\",setupFunc:npt,kernelFunc:opt};var QU;function spt(r){QU=r.wasm.cwrap(\"MaxPoolWithArgmax\",null,[\"number\",\"number\",\"number\",\"number\",\"boolean\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function ipt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,includeBatchInIndex:u}=n;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,[1,1],a),p=e.makeOutput(c.outShape,o.dtype),m=e.makeOutput(c.outShape,\"int32\");return QU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,e.dataIdMap.get(m.dataId).id,Nt[o.dtype],u,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),[p,m]}var t4={kernelName:eu,backendName:\"wasm\",setupFunc:spt,kernelFunc:ipt};var e4;function apt(r){e4=r.wasm.cwrap(ks,null,[\"number, number, number\"])}function lpt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=Fn({backend:t,inputs:{x:l},attrs:{dtype:\"float32\"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,\"float32\");if(y.sizeFromShape(l.shape)!==0){let I=t.dataIdMap.get(w.dataId).id;e4(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var r4={kernelName:ks,backendName:\"wasm\",setupFunc:apt,kernelFunc:lpt};var n4;function upt(r){n4=r.wasm.cwrap(Ts,null,[\"number\",\"number\",\"number\",\"number\"])}function cpt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;n4(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var o4={kernelName:Ts,backendName:\"wasm\",setupFunc:upt,kernelFunc:cpt};var ppt=!1,s4=ee(_s,ppt);var J1;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(J1||(J1={}));var i4;function mpt(r){i4=r.wasm.cwrap(Es,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function fpt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return i4(i,l,t.shape.length,Nt[t.dtype],m,f,J1[o],u),a}var a4={kernelName:Es,backendName:\"wasm\",kernelFunc:fpt,setupFunc:mpt};var l4;function dpt(r){l4=r.wasm.cwrap(Qs,null,[\"number\",\"number\",\"number\",\"number\"])}function Q1(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||l4(o,i,a,u),s}var u4={kernelName:Qs,backendName:\"wasm\",setupFunc:dpt,kernelFunc:Q1};var c4;function hpt(r){c4=r.wasm.cwrap(Ya,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function gpt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!==\"float32\")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:Q1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],\"int32\");return c4(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var p4={kernelName:Ya,backendName:\"wasm\",setupFunc:hpt,kernelFunc:gpt};var m4=ee(As,!0);var xpt=!0,f4=ee(Ds,xpt);var d4=yt(zi);function Bd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var h4;function ypt(r){h4=r.wasm.cwrap(Ja,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function bpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=h4(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Bd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var g4={kernelName:Ja,backendName:\"wasm\",setupFunc:ypt,kernelFunc:bpt};var x4;function wpt(r){x4=r.wasm.cwrap(Qa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function Ipt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=x4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var y4={kernelName:Qa,backendName:\"wasm\",setupFunc:wpt,kernelFunc:Ipt};var b4;function Cpt(r){b4=r.wasm.cwrap(tl,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function vpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=b4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var w4={kernelName:tl,backendName:\"wasm\",setupFunc:Cpt,kernelFunc:vpt};var Spt=!1,I4=ee(Za,Spt,\"bool\");var C4;function Npt(r){C4=r.wasm.cwrap($s,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function kpt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return C4(m,i,a,u,c),l}var v4={kernelName:$s,backendName:\"wasm\",setupFunc:Npt,kernelFunc:kpt};function Tpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var S4={kernelName:Bi,backendName:\"wasm\",kernelFunc:Tpt};function _pt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return EC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=EC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=X1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var N4={kernelName:Vi,backendName:\"wasm\",kernelFunc:_pt};var k4;function Ept(r){k4=r.wasm.cwrap(Rs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Apt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return Z1({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return k4(i,c,t.shape.length,Nt[t.dtype],f,d,o,l),a}var AC={kernelName:Rs,backendName:\"wasm\",kernelFunc:Apt,setupFunc:Ept};var Dpt=!1,T4=ee(Fs,Dpt);var _4;function $pt(r){_4=r.wasm.cwrap(Os,null,[\"number\",\"number\",\"number\"])}function Rpt(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!==\"float32\"&&(l=Fn({backend:e,inputs:{x:n},attrs:{dtype:\"float32\"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,\"float32\"),p=e.dataIdMap.get(c.dataId).id;return _4(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var E4={kernelName:Os,backendName:\"wasm\",setupFunc:$pt,kernelFunc:Rpt};var A4;function Fpt(r){A4=r.wasm.cwrap(Ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Opt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;A4(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var D4={kernelName:Ms,backendName:\"wasm\",setupFunc:Fpt,kernelFunc:Opt};var Mpt=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=tp(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},$4={kernelName:ru,backendName:\"wasm\",kernelFunc:Mpt};var Ppt=!0,R4=ee(as,Ppt);var F4=yt(Ps);var O4=yt(Ls);var M4=yt(Vs);var P4;function Lpt(r){P4=r.wasm.cwrap(Bs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function zpt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!==\"float32\"&&(g=Fn({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return P4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var L4={kernelName:Bs,backendName:\"wasm\",setupFunc:Lpt,kernelFunc:zpt};var z4;function Bpt(r){z4=r.wasm.cwrap(rl,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function Vpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),z4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var B4={kernelName:rl,backendName:\"wasm\",setupFunc:Bpt,kernelFunc:Vpt};var V4;function Gpt(r){V4=r.wasm.cwrap(zs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Wpt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!==\"float32\"&&(x=Fn({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return V4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var G4={kernelName:zs,backendName:\"wasm\",setupFunc:Gpt,kernelFunc:Wpt};var W4;function Upt(r){W4=r.wasm.cwrap(el,null,[\"number\",\"number\",\"number\",\"array\",\"array\",\"boolean\"])}function Hpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,\"float32\"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!==\"float32\"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:\"float32\"}}),u=e.dataIdMap.get(l.dataId)),W4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var U4={kernelName:el,backendName:\"wasm\",setupFunc:Upt,kernelFunc:Hpt};var H4;function qpt(r){H4=r.wasm.cwrap(Gs,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Kpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return yp({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);H4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var q4={kernelName:Gs,backendName:\"wasm\",kernelFunc:Kpt,setupFunc:qpt};var K4;function jpt(r){K4=r.wasm.cwrap(pl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Xpt(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=S.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i==\"number\"?[i,i,i,x?0:b]:[...i,b],I=new Uint8Array(new Int32Array(w).buffer);return K4(l,p,m,f,d,s,h,g,I,w.length,c),u}var j4={kernelName:pl,backendName:\"wasm\",kernelFunc:Xpt,setupFunc:jpt};var X4=yt(Ws);var Y4=yt(Us);var Z4;function Ypt(r){Z4=r.wasm.cwrap(nl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Zpt(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return Z4(d,g,Nt[s.dtype],u,l,c,x,m,b),a}var J4={kernelName:nl,backendName:\"wasm\",setupFunc:Ypt,kernelFunc:Zpt};var Q4;function Jpt(r){Q4=r.wasm.cwrap(sl,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\",\"number\"])}function Qpt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,\"int32\");function u(l){return e.dataIdMap.get(l.dataId).id}return Q4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],Nt[o.dtype],i===\"left\",u(a)),a}var tH={kernelName:sl,backendName:\"wasm\",setupFunc:Jpt,kernelFunc:Qpt};var eH;function tmt(r){eH=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function emt(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eH(i,a,u,f,c),l}var rH={kernelName:Wi,backendName:\"wasm\",kernelFunc:emt,setupFunc:tmt};var nH=yt(Hs);var oH;function rmt(r){oH=r.wasm.cwrap(Xs,null,[\"number\",\"number\"])}function nmt(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||oH(n,s),o}var sH={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:rmt,kernelFunc:nmt};var iH=yt(js);var aH=yt(qs);var lH=yt(Ks);var uH=yt(Ys);function omt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let E=1+s.length;E0?u+1:0;if(c<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],\"int32\"),b=e.dataIdMap.get(x.dataId).id;hH(m,Nt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=\"\"}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function umt(r){return $C(r,!0)}var gH={kernelName:ou,backendName:\"wasm\",setupFunc:DC,kernelFunc:umt};function cmt(r){return $C(r,!1)}var xH={kernelName:su,backendName:\"wasm\",setupFunc:DC,kernelFunc:cmt};var yH;function pmt(r){yH=r.wasm.cwrap(al,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function mmt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return yH(d,h,s.shape.length,g,Nt[i.dtype],l,c,p,x,f,b),u}var bH={kernelName:al,backendName:\"wasm\",setupFunc:pmt,kernelFunc:mmt};function fmt(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var wH={kernelName:qi,backendName:\"wasm\",kernelFunc:fmt};var IH=yt(Zs);var CH=yt(iu);var dmt=!0,vH=ee(ti,dmt);var SH;function hmt(r){SH=r.wasm.cwrap(xo,null,[\"number\",\"number\",\"number\",\"number\"])}function gmt(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return SH(i,o,Nt[s.dtype],u),a}var NH={kernelName:xo,backendName:\"wasm\",setupFunc:hmt,kernelFunc:gmt};var kH;function xmt(r){kH=r.wasm.cwrap(ll,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function ymt(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let E=t.makeOutput(f,\"float32\"),A=t.dataIdMap.get(o.dataId).id,D=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),M=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;kH(A,D,o.shape.length,F,M,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var TH={kernelName:ll,backendName:\"wasm\",setupFunc:xmt,kernelFunc:ymt};function bmt(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=rp(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],\"string\"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,\"int32\");return t.typedArrayFromHeap(b).set(h),[g,b]}var _H={kernelName:au,backendName:\"wasm\",kernelFunc:bmt};function wmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=np(a,u[0],i),m=c.length,f=t.makeOutput([m,2],\"int32\");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],\"string\"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],\"int32\");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var EH={kernelName:lu,backendName:\"wasm\",kernelFunc:wmt};function Imt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=op(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var AH={kernelName:uu,backendName:\"wasm\",kernelFunc:Imt};var Cmt=!0,DH=ee(ei,Cmt);var $H;function vmt(r){$H=r.wasm.cwrap(Js,null,[\"number\",\"number\",\"number\",\"number\"])}function Smt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;$H(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var RH={kernelName:Js,backendName:\"wasm\",setupFunc:vmt,kernelFunc:Smt};var FH=yt(ri);var OH=yt(ni);var MH;function Nmt(r){MH=r.wasm.cwrap(ol,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function kmt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return MH(d,g,Nt[i.dtype],u,l,c,w,m,I,b),a}var PH={kernelName:ol,backendName:\"wasm\",setupFunc:Nmt,kernelFunc:kmt};var LH;function Tmt(r){LH=r.wasm.cwrap(oo,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function _mt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,\"int32\"),m=t.dataIdMap.get(p.dataId).id;return BH(i,a,n.shape.length,Nt[n.dtype],o,s,c,m),[l,p]},VH={kernelName:ul,backendName:\"wasm\",setupFunc:Emt,kernelFunc:Amt};var GH;function Dmt(r){GH=r.wasm.cwrap(cl,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function $mt(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=t.dataIdMap.get(s.dataId).id,F=i===\"nearest\"?1:2,M;switch(a){case\"constant\":M=1;break;case\"reflect\":M=2;break;case\"wrap\":M=3;break;case\"nearest\":M=4;break;default:M=1;break}return GH(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,M,u,I),w}var WH={kernelName:cl,backendName:\"wasm\",setupFunc:Dmt,kernelFunc:$mt};function Rmt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=sp(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],\"int32\",void 0,u)]}var UH={kernelName:cu,backendName:\"wasm\",kernelFunc:Rmt};function Fmt(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var HH={kernelName:Ki,backendName:\"wasm\",kernelFunc:Fmt};function Omt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var qH={kernelName:ji,backendName:\"wasm\",kernelFunc:Omt};var Mmt=[DG,$G,RG,FG,OG,PG,GG,UG,HG,qG,KG,jG,XG,YG,ZG,QG,sW,eW,nW,lW,cW,mW,fW,dW,hW,gW,yW,bW,IW,vW,NW,TW,EW,AW,DW,RW,OW,PW,zW,VW,WW,HW,KW,XW,ZW,JW,tU,eU,rU,nU,oU,sU,iU,lU,uU,cU,mU,dU,gU,yU,wU,IU,CU,LG,vU,SU,NU,TU,_U,EU,DU,RU,$U,FU,OU,MU,PU,zU,VU,WU,UU,qU,jU,YU,JU,t4,r4,o4,s4,a4,p4,m4,f4,d4,g4,y4,w4,I4,v4,S4,N4,AC,T4,E4,D4,$4,R4,F4,O4,M4,iW,L4,B4,G4,U4,q4,j4,X4,Y4,J4,tH,rH,nH,sH,iH,aH,lH,uW,u4,uH,cH,mH,dH,gH,xH,bH,wH,IH,CH,vH,NH,TH,_H,EH,AH,DH,RH,FH,OH,PH,zH,VH,WH,BG,UH,HH,qH];for(let r of Mmt)rc(r);var t_=L();t_.registerFlag(\"WASM_HAS_SIMD_SUPPORT\",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});t_.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(t_.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 a_=Gl(YH()),rq=Gl(JH()),l_=Gl(QH());var tq=a_.default||a_,Pmt=l_.default||l_,wg=class extends Bo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(oq),i_=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Ta(this,Bn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o===\"string\"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u)>>>0;this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s===\"string\")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return zmt(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),\"PThread\"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case\"float32\":return new Float32Array(o,s,i);case\"int32\":return new Int32Array(o,s,i);case\"bool\":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Lmt(r){return(t,e)=>(y.fetch(r,{credentials:\"same-origin\"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function eq(r,t,e){if(OC!=null)return OC;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),yg!=null&&yg[n]!=null?yg[n]:e+n}async function nq(){let[r,t]=await Promise.all([L().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),L().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=rq.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?eq(r,t,xg!=null?xg:u):u+a},u_&&(o.instantiateWasm=Lmt(eq(r,t,xg!=null?xg:\"\")));let s=!1;o.onAbort=()=>{if(s||bg)return;bg=!0,n({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&&r&&OC==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+tq.toString()],{type:\"text/javascript\"}),i=tq(o)):i=Pmt(o),i.then(a=>{s=!0,bg=!1;let u=null;a.tfjs={init:a.cwrap(\"init\",null,[]),initWithThreadsCount:a.cwrap(\"init_with_threads_count\",null,[\"number\"]),getThreadsCount:a.cwrap(\"get_threads_count\",\"number\",[]),registerTensor:a.cwrap(\"register_tensor\",null,[\"number\",\"number\",\"number\"]),disposeData:a.cwrap(\"dispose_data\",u,[\"number\"]),dispose:a.cwrap(\"dispose\",u,[])},e({wasm:a})}).catch(n)})}function zmt(r,t){switch(t){case\"float32\":return new Float32Array(r);case\"int32\":return new Int32Array(r);case\"bool\":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var Bmt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],OC=null,xg=null,yg={},bg=!1,u_=!1;function Vmt(r,t=!1){if(G0(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),bg)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");OC=r,u_=t}function Gmt(r,t=!1){if(bg)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\")xg=r;else{yg=r;let e=Bmt.filter(n=>yg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.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.`)}u_=t}var oq=-1,i_=-1;function Wmt(r){oq=r}function Umt(){if(i_===-1)throw new Error(\"WASM backend not initialized.\");return i_}var Hmt=\"4.21.0\";var qmt=2;Xp(\"wasm\",async()=>{let{wasm:r}=await nq();return new wg(r)},qmt);var sq=\"4.21.0\",Kmt=\"4.21.0\",jmt=\"4.21.0\",Xmt=\"4.21.0\",Ymt=\"4.21.0\",Zmt={tfjs:sq,\"tfjs-core\":sq,\"tfjs-converter\":Kmt,\"tfjs-backend-cpu\":jmt,\"tfjs-backend-webgl\":Xmt,\"tfjs-backend-wasm\":Ymt};export{Ai as Abs,Go as Acos,Wo as Acosh,vc as AdadeltaOptimizer,Sc as AdagradOptimizer,Nc as AdamOptimizer,kc as AdamaxOptimizer,no as Add,Uo as AddN,Ea as All,Aa as Any,Di as ArgMax,$i as ArgMin,Ho as Asin,qo as Asinh,Ko as Atan,Xo as Atan2,jo as Atanh,Yo as AvgPool,Ri as AvgPool3D,Hl as AvgPool3DGrad,Ul as AvgPoolGrad,wg as BackendWasm,Zo as BatchMatMul,Fi as BatchToSpaceND,Da as Bincount,$a as BitwiseAnd,ql as BroadcastArgs,__ as BroadcastTo,zb as Callback,Xy as CallbackList,fo as Cast,Jo as Ceil,ho as ClipByValue,Ap as Complex,Kl as ComplexAbs,Oi as Concat,Qo as Conv2D,Dp as Conv2DBackpropFilter,ts as Conv2DBackpropInput,es as Conv3D,Ra as Conv3DBackpropFilterV2,Fa as Conv3DBackpropInputV2,rs as Cos,ns as Cosh,Ma as CropAndResize,Oa as Cumprod,os as Cumsum,Zy as CustomCallback,Ta as DataStorage,jl as DenseBincount,Pa as DepthToSpace,ss as DepthwiseConv2dNative,$p as DepthwiseConv2dNativeBackpropFilter,Rp as DepthwiseConv2dNativeBackpropInput,Xl as Diag,is as Dilation2D,Zl as Dilation2DBackpropFilter,Yl as Dilation2DBackpropInput,Qd as Draw,w0 as ENV,Bb as EarlyStopping,Fp as Einsum,ls as Elu,La as EluGrad,Zd as Environment,za as Equal,us as Erf,cs as Exp,Mi as ExpandDims,ps as Expm1,Op as FFT,Jl as Fill,Ba as FlipLeftRight,ms as Floor,fs as FloorDiv,th as FromPixels,ds as FusedBatchNorm,Yi as FusedConv2D,Zi as FusedDepthwiseConv2D,pp as GPGPUContext,Va as GatherNd,Pi as GatherV2,qh as GraphModel,Ga as Greater,hs as GreaterEqual,Yy as History,Mp as IFFT,go as Identity,Pp as Imag,Ce as InputSpec,gs as IsFinite,xs as IsInf,ys as IsNan,Bo as KernelBackend,Cs as LRN,Xa as LRNGrad,Th as LayerVariable,Un as LayersModel,bs as LeakyRelu,Wa as Less,Ua as LessEqual,Ha as LinSpace,ws as Log,Is as Log1p,A_ as LogSoftmax,qa as LogicalAnd,Ka as LogicalNot,ja as LogicalOr,E_ as LogicalXor,nft as LowerBound,pd as MathBackendCPU,Dd as MathBackendWebGL,oft as MatrixBandPart,vs as Max,Ns as MaxPool,Li as MaxPool3D,tu as MaxPool3DGrad,Ql as MaxPoolGrad,eu as MaxPoolWithArgmax,Ss as Maximum,ks as Mean,Ts as Min,_s as Minimum,Es as MirrorPad,As as Mod,Tc as MomentumOptimizer,Ya as Multinomial,Ds as Multiply,zi as Neg,Ja as NonMaxSuppressionV3,Qa as NonMaxSuppressionV4,tl as NonMaxSuppressionV5,Za as NotEqual,V0 as OP_SCOPE_SUFFIX,$s as OneHot,Bi as OnesLike,jr as Optimizer,Ih as OptimizerConstructors,Vi as Pack,Rs as PadV2,sft as Pool,Fs as Pow,Os as Prelu,Ms as Prod,_c as RMSPropOptimizer,po as RNN,Lp as RaggedGather,zp as RaggedRange,Bp as RaggedTensorToTensor,ru as Range,D0 as Rank,Vp as Real,as as RealDiv,Ps as Reciprocal,Je as Reduction,Ls as Relu,Vs as Relu6,Gi as Reshape,Bs as ResizeBilinear,rl as ResizeBilinearGrad,zs as ResizeNearestNeighbor,el as ResizeNearestNeighborGrad,Gs as Reverse,pl as RotateWithOffset,Ws as Round,Us as Rsqrt,Il as SGDOptimizer,nl as ScatterNd,sl as SearchSorted,Wi as Select,Hs as Selu,Wc as Sequential,Xs as Sigmoid,js as Sign,qs as Sin,Ks as Sinh,Ui as Slice,Qs as Softmax,Ys as Softplus,Hi as SpaceToBatchND,nu as SparseFillEmptyRows,il as SparseReshape,ou as SparseSegmentMean,su as SparseSegmentSum,al as SparseToDense,qi as SplitV,Zs as Sqrt,iu as Square,ti as SquaredDifference,ec as StaticRegexReplace,xo as Step,ll as StridedSlice,au as StringNGrams,lu as StringSplit,uu as StringToHashBucketFast,ei as Sub,Js as Sum,nn as SymbolicTensor,ri as Tan,ni as Tanh,Lt as Tensor,le as TensorBuffer,ol as TensorScatterUpdate,oo as Tile,ul as TopK,cl as Transform,so as Transpose,cu as Unique,Ki as Unpack,pu as UnsortedSegmentSum,ift as UpperBound,ml as Variable,ji as ZerosLike,Xi as _FusedMatMul,_e as abs,fx as acos,dx as acosh,K as add,EE as addN,tm as all,cc as any,ra as argMax,hx as argMin,gx as asin,xx as asinh,yx as atan,bx as atan2,wx as atanh,xu as avgPool,Ix as avgPool3d,sx as backend,S as backend_util,$E as basicLSTMCell,oa as batchNorm,Cx as batchNorm2d,vx as batchNorm3d,Sx as batchNorm4d,yu as batchToSpaceND,Nx as bincount,FE as bitwiseAnd,q5 as booleanMaskAsync,OE as broadcastArgs,sa as broadcastTo,Hr as broadcast_util,_y as browser,wt as buffer,xQ as callbacks,J as cast,kx as ceil,vr as clipByValue,un as clone,Sn as complex,ie as concat,Tx as concat1d,_x as concat2d,Ex as concat3d,Ax as concat4d,CR as constraints,rm as conv1d,Nn as conv2d,om as conv2dTranspose,Dx as conv3d,Rx as conv3dTranspose,fft as copyRegisteredKernels,bu as cos,sm as cosh,xh as cosineWindow,mc as cumprod,im as cumsum,pn as customGrad,aO as data,mh as denseBincount,G0 as deprecationWarn,Fx as depthToSpace,ia as depthwiseConv2d,IQ as deregisterOp,du as device_util,ME as diag,Ox as dilation2d,Sdt as disableDeprecationWarnings,Tt as dispose,Ndt as disposeVariables,ut as div,Mx as divNoNan,Px as dot,dN as dropout,wu as einsum,aa as elu,vdt as enableDebugMode,Cdt as enableProdMode,hN as enclosingPowerOfTwo,Bn as engine,LE as ensureShape,L as env,$r as equal,am as erf,Lx as euclideanNorm,Ke as exp,je as expandDims,zx as expm1,fc as eye,Au as fft,Co as fill,Adt as findBackend,Ddt as findBackendFactory,la as floor,Qp as floorDiv,Qz as forceHalfFloat,Ru as fused,ua as gather,r8 as gatherND,Ey as gather_util,oE as getBackend,v0 as getGradient,Wp as getKernel,Yg as getKernelsForBackend,Umt as getThreadsCount,k1 as gpgpu_util,X6 as grad,Y6 as grads,Re as greater,cn as greaterEqual,wl as ifft,Iu as imag,fn as image,s8 as inTopKAsync,vR as initializers,JN as input,Mr as io,bm as irfft,Bx as isFinite,Vx as isInf,Gx as isNaN,De as keep,Xr as kernel_impls,oF as layers,Cu as leakyRelu,yl as less,Vn as lessEqual,xN as linalg,VE as linspace,xtt as loadGraphModel,ytt as loadGraphModelSync,UR as loadLayersModel,Wx as localResponseNormalization,Nr as log,vu as log1p,qx as logSigmoid,lm as logSoftmax,Su as logSumExp,Fr as logicalAnd,Nu as logicalNot,um as logicalOr,Kx as logicalXor,aY as losses,GE as lowerBound,Bt as matMul,O2 as math,Sr as max,ku as maxPool,Xx as maxPool3d,WE as maxPoolWithArgmax,kn as maximum,Ne as mean,lh as memory,UE as meshgrid,sF as metrics,gl as min,lo as minimum,Yx as mirrorPad,Zx as mod,gJ as model,iF as models,dc as moments,X5 as movingAverage,$ as mul,HE as multiRNNCell,qE as multinomial,Ut as neg,Ch as nextFrame,xl as norm,ci as notEqual,ca as oneHot,ar as ones,wr as onesLike,k as op,KE as outerProduct,mn as pad,jE as pad1d,XE as pad2d,YE as pad3d,ZE as pad4d,Jx as pool,qr as pow,_u as prelu,mx as print,Qx as prod,kdt as profile,JE as raggedGather,QE as raggedRange,tA as raggedTensorToTensor,eA as rand,CA as randomGamma,xc as randomNormal,vA as randomStandardNormal,Gn as randomUniform,SA as randomUniformInt,pa as range,_dt as ready,bl as real,sy as reciprocal,Xp as registerBackend,yJ as registerCallbackConstructor,$_ as registerGradient,rc as registerKernel,wQ as registerOp,aF as regularizers,Or as relu,cm as relu6,Edt as removeBackend,R as reshape,dr as reverse,NA as reverse1d,kA as reverse2d,TA as reverse3d,_A as reverse4d,Du as rfft,pm as round,mm as rsqrt,pt as scalar,Z5 as scatterND,$u as scatter_util,dh as searchSorted,fm as selu,dm as separableConv2d,xJ as sequential,Q as serialization,OK as setBackend,$dt as setPlatform,Wmt as setThreadsCount,Vmt as setWasmPath,Gmt as setWasmPaths,BT as setWebGLContext,EA as setdiff1dAsync,Ew as shared,en as sigmoid,iy as sign,iY as signal,hm as sin,gm as sinh,Ot as slice,xm as slice1d,gh as slice2d,ym as slice3d,yc as slice4d,Be as slice_util,Eu as softmax,ui as softplus,Tu as spaceToBatchND,lY as sparse,t8 as sparseToDense,sY as spectral,hr as split,ge as sqrt,Wt as square,wm as squaredDifference,Wn as squeeze,Fe as stack,So as step,ay as stridedSlice,uY as string,at as sub,mt as sum,lc as sumOutType,ly as tan,li as tanh,ir as tensor,Oe as tensor1d,pi as tensor2d,uy as tensor3d,AA as tensor4d,DA as tensor5d,$A as tensor6d,FA as tensorScatterUpdate,Io as tensor_util,IA as test_util,B as tidy,Rr as tile,Tdt as time,cy as topk,Ac as train,Vt as transpose,Cm as truncatedNormal,py as unique,mft as unregisterGradient,pft as unregisterKernel,vm as unsortedSegmentSum,gr as unstack,ur as upcastType,OA as upperBound,y as util,Z6 as valueAndGrad,J6 as valueAndGrads,my as variable,Ux as variableGrads,Zmt as version,VF as version_converter,X2 as version_core,KO as version_cpu,jm as version_layers,Hmt as version_wasm,Jz as version_webgl,T$e as webgl,Cd as webgl_util,Ie as where,dy as whereAsync,ke as zeros,vt as zerosLike};\n", "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 = 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 = 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 = 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 = 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({ x, y, width, height });\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({ x, y, width, height });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const { x, y, right, bottom } = 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({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).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({ x, y, width, height });\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 { dy, edy, dx, edx, y, ey, x, ex, w, h };\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 = false) {\n super({ left, top, right, bottom }, 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 override 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 = 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 = 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(imgTensor: tf.Tensor4D, isCenterImage = false): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) return imgTensor;\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 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 const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount ? createPaddingTensor(remainingPaddingAmount) : null;\n const tensorsToStack = [paddingTensorPrepend, imgTensor, paddingTensorAppend]\n .filter((t) => !!t)\n .map((t) => tf.cast(t as tf.Tensor4D, '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 = false) {\n super({ x, y, width, height }, 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 override 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 override 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 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 = 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 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(sourceObj: TSource, detection: FaceDetection): 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 createVideoElement: () => document.createElement('video'),\n fetch,\n readFile,\n };\n}\n", "export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n}\n", "import { FileSystem } from './types';\nimport { isNodejs } from './isNodejs';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n if (!fs && isNodejs()) {\n try {\n // eslint-disable-next-line global-require, @typescript-eslint/no-require-imports\n fs = require('fs');\n } catch (err) {\n requireFsError = (err as any).toString();\n }\n }\n\n const readFile = fs\n // eslint-disable-next-line no-undef\n ? (filePath: string) => new Promise((resolve, reject) => { fs.readFile(filePath, (err: NodeJS.ErrnoException | null, buffer: string | Buffer) => (err ? reject(err) : resolve(buffer))); })\n : () => { throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); };\n return { readFile };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n const Canvas: (new () => HTMLCanvasElement) = (global as any)['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n const Video: (new () => HTMLVideoElement) = (global as any)['Video'] || global.HTMLVideoElement;\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 createVideoElement = () => {\n if (Video) return new Video();\n throw new Error('createVideoElement - missing Video 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 createVideoElement,\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 if (canvasArg instanceof CanvasRenderingContext2D) return canvasArg;\n const canvas = resolveInput(canvasArg);\n if (!(canvas instanceof Canvas)) throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n const ctx = canvas.getContext('2d', { willReadFrequently: true });\n if (!ctx) throw new Error('resolveContext2d - canvas 2d context is null');\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 { AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions } 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 resolve(null);\n return;\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 = 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 { computeReshapedDimensions, isTensor3D, isTensor4D, range } 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 = false;\n\n private _inputDimensions: number[][] = [];\n\n private _inputSize = 0;\n\n constructor(inputs: Array, treatAsBatchInput = false) {\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 // @ts-ignore\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas as HTMLCanvasElement;\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 = 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 let imgTensor = isTensor4D(input) ? input : tf.expandDims(input);\n imgTensor = padToSquare(imgTensor as tf.Tensor4D, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf['image'].resizeBilinear(imgTensor as tf.Tensor4D, [inputSize, inputSize], false, false);\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) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))) as tf.Tensor4D;\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) return inputs;\n const inputArgArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArgArray.length) throw new Error('toNetInput - empty array passed as input');\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n const inputArray = inputArgArray.map(resolveInput);\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\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 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) throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n });\n // wait for all media elements being loaded\n await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)));\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(input: TNetInput, detections: Array): Promise {\n const { Canvas } = env.getEnv();\n let canvas = input as HTMLCanvasElement;\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n if (netInput.batchSize > 1) throw new Error('extractFaces - batchSize > 1 not supported');\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas ? tensorOrCanvas : await imageTensorToCanvas(tensorOrCanvas);\n }\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections\n .map((det) => (det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det))\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n return boxes.map(({ x, y, width, height }) => {\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(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): 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 const boxes = detections.map((det) => (det instanceof FaceDetection ? det.forSize(imgWidth, imgHeight).box : det))\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n const faceTensors = boxes\n .filter((box) => box.width > 0 && box.height > 0)\n .map(({ x, y, width, height }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\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", "import { env } from '../env/index';\n\nexport function bufferToVideo(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToVideo - expected buf to be of type: Blob'));\n\n const video = env.getEnv().createVideoElement();\n video.oncanplay = () => resolve(video);\n video.onerror = reject;\n video.playsInline = true;\n video.muted = true;\n video.src = URL.createObjectURL(buf);\n video.play();\n });\n}\n", "import { bufferToVideo } from './bufferToVideo';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchVideo(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('video/')) {\n throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToVideo(blob);\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 // @ts-ignore\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 = 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 = 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) => (typeof buf === 'string' ? Buffer.from(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 = 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 = false,\n isScaleDown = 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 = 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 { extractConvParamsFactory, extractSeparableConvParamsFactory, ExtractWeightsFunction, ParamMapping } 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 = 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 = 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 = 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 = 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(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 { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } 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 { FaceFeatureExtractorParams, IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } 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 override 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 override dispose(throwOnRedispose = 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'] as const;\n\nexport class FaceExpressions {\n public neutral = 0;\n public happy = 0;\n public sad = 0;\n public angry = 0;\n public fearful = 0;\n public disgusted = 0;\n public surprised = 0;\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 = t.dataSync();\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 & { expressions: FaceExpressions }\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions(sourceObj: TSource, expressions: FaceExpressions): 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(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array, minConfidence = 0.1, textFieldAnchor?: IPoint) {\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 { Point } from '../classes';\nimport { 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\n> = TSource & {\n landmarks: TFaceLandmarks;\n unshiftedLandmarks: TFaceLandmarks;\n alignedRect: FaceDetection;\n angle: {\n roll: number | undefined;\n pitch: number | undefined;\n yaw: number | undefined;\n };\n};\n\nexport function isWithFaceLandmarks(\n obj: any,\n): obj is WithFaceLandmarks, FaceLandmarks> {\n return (\n isWithFaceDetection(obj)\n && (obj as any)['landmarks'] instanceof FaceLandmarks\n && (obj as any)['unshiftedLandmarks'] instanceof FaceLandmarks\n && (obj as any)['alignedRect'] instanceof FaceDetection\n );\n}\n\nfunction calculateFaceAngle(mesh: FaceLandmarks) {\n // Helper to convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (radians: number) => (radians * 180) / Math.PI;\n const calcLengthBetweenTwoPoints = (a: Point, b: Point) => Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);\n\n const angle = {\n roll: undefined,\n pitch: undefined,\n yaw: undefined,\n };\n\n const calcYaw = (leftPoint: Point, midPoint: Point, rightPoint: Point) => {\n // Calc x-distance from left side of the face (\"ear\") to facial midpoint (\"nose\")\n const leftToMidpoint = Math.floor(leftPoint.x - midPoint.x);\n // Calc x-distance from facial midpoint (\"nose\") to the right side of the face (\"ear\")\n const rightToMidpoint = Math.floor(midPoint.x - rightPoint.x);\n // Difference in distances coincidentally approximates to angles\n return leftToMidpoint - rightToMidpoint;\n };\n\n const calcRoll = (lever: Point, pivot: Point) => {\n // When rolling, the head seems to pivot from the nose/lips/chin area.\n // So, we'll choose any two points from the facial midline, where the first point should be the pivot, and the other \"lever\"\n // Plan/Execution: get the hypotenuse & opposite sides of a 90deg triangle ==> Calculate angle in radians\n const hypotenuse = Math.hypot(pivot.x - lever.x, pivot.y - lever.y);\n const opposite = pivot.y - lever.y;\n const angleInRadians = Math.asin(opposite / hypotenuse);\n const angleInDegrees = degrees(angleInRadians);\n const normalizeAngle = Math.floor(90 - angleInDegrees);\n // If lever more to the left of the pivot, then we're tilting left\n // \"-\" is negative direction. \"+\", or absence of a sign is positive direction\n const tiltDirection = pivot.x - lever.x < 0 ? -1 : 1;\n const result = normalizeAngle * tiltDirection;\n return result;\n };\n\n const calcPitch = (leftPoint: Point, midPoint: Point, rightPoint: Point) => {\n // Theory: While pitching, the nose is the most salient point --> That's what we'll use to make a trianle.\n // The \"base\" is between point that don't move when we pitch our head (i.e. an imaginary line running ear to ear through the nose).\n // Executuin: Get the opposite & adjacent lengths of the triangle from the ear's perspective. Use it to get angle.\n\n const base = calcLengthBetweenTwoPoints(leftPoint, rightPoint);\n // adjecent is base/2 technically.\n const baseCoords = new Point((leftPoint.x + rightPoint.x) / 2, (leftPoint.y + rightPoint.y) / 2);\n const midToBaseLength = calcLengthBetweenTwoPoints(midPoint, baseCoords);\n const angleInRadians = Math.atan(midToBaseLength / base);\n const angleInDegrees = Math.floor(degrees(angleInRadians));\n // Account for directionality.\n // pitch forwards (_i.e. tilting your head forwards) is positive (or no sign); backward is negative.\n const direction = baseCoords.y - midPoint.y < 0 ? -1 : 1;\n const result = angleInDegrees * direction;\n return result;\n };\n\n if (!mesh || !mesh.positions || mesh.positions.length !== 68) return angle;\n const pt = mesh.positions;\n angle.roll = calcRoll(pt[27], pt[66]);\n angle.pitch = calcPitch(pt[14], pt[30], pt[2]);\n angle.yaw = calcYaw(pt[14], pt[33], pt[2]);\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68>(\n sourceObj: TSource,\n unshiftedLandmarks: TFaceLandmarks,\n): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(\n sourceObj.detection.score,\n rect.rescale(imageDims.reverse()),\n imageDims,\n );\n const angle = calculateFaceAngle(unshiftedLandmarks);\n const extension = { landmarks, unshiftedLandmarks, alignedRect, angle };\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", "{\n \"name\": \"@vladmandic/face-api\",\n \"version\": \"1.7.14\",\n \"description\": \"FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS\",\n \"sideEffects\": false,\n \"main\": \"dist/face-api.node.js\",\n \"module\": \"dist/face-api.esm.js\",\n \"browser\": \"dist/face-api.esm.js\",\n \"types\": \"types/face-api.d.ts\",\n \"author\": \"Vladimir Mandic \",\n \"bugs\": {\n \"url\": \"https://github.com/vladmandic/face-api/issues\"\n },\n \"homepage\": \"https://vladmandic.github.io/face-api/demo/webcam.html\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/vladmandic/face-api.git\"\n },\n \"scripts\": {\n \"start\": \"node --no-warnings demo/node.js\",\n \"build\": \"node build.js\",\n \"dev\": \"build --profile development\",\n \"typings\": \"build --profile typings\",\n \"lint\": \"eslint src/ demo/\",\n \"test\": \"node --trace-warnings test/test-node.js\",\n \"scan\": \"npx auditjs@latest ossi --dev --quiet\"\n },\n \"keywords\": [\n \"face-api\",\n \"faceapi\",\n \"face-detection\",\n \"age-gender\",\n \"emotion-detection\",\n \"face-recognition\",\n \"face\",\n \"face-description\",\n \"tensorflow\",\n \"tensorflowjs\",\n \"tfjs\"\n ],\n \"devDependencies\": {\n \"@canvas/image\": \"^2.0.0\",\n \"@microsoft/api-extractor\": \"^7.47.7\",\n \"@tensorflow/tfjs\": \"^4.21.0\",\n \"@tensorflow/tfjs-backend-cpu\": \"^4.21.0\",\n \"@tensorflow/tfjs-backend-wasm\": \"^4.21.0\",\n \"@tensorflow/tfjs-backend-webgl\": \"^4.21.0\",\n \"@tensorflow/tfjs-backend-webgpu\": \"4.21.0\",\n \"@tensorflow/tfjs-converter\": \"^4.21.0\",\n \"@tensorflow/tfjs-core\": \"^4.21.0\",\n \"@tensorflow/tfjs-data\": \"^4.21.0\",\n \"@tensorflow/tfjs-layers\": \"^4.21.0\",\n \"@tensorflow/tfjs-node\": \"^4.21.0\",\n \"@tensorflow/tfjs-node-gpu\": \"^4.21.0\",\n \"@types/node\": \"^22.5.4\",\n \"@types/offscreencanvas\": \"^2019.7.3\",\n \"@typescript-eslint/eslint-plugin\": \"^8.5.0\",\n \"@typescript-eslint/parser\": \"^8.5.0\",\n \"@vladmandic/build\": \"^0.10.1\",\n \"@vladmandic/pilogger\": \"^0.5.1\",\n \"ajv\": \"^8.17.1\",\n \"esbuild\": \"^0.23.1\",\n \"eslint\": \"8.57.0\",\n \"eslint-config-airbnb-base\": \"^15.0.0\",\n \"eslint-plugin-import\": \"^2.30.0\",\n \"eslint-plugin-json\": \"^4.0.1\",\n \"eslint-plugin-node\": \"^11.1.0\",\n \"eslint-plugin-promise\": \"^7.1.0\",\n \"node-fetch\": \"^3.3.2\",\n \"rimraf\": \"^6.0.1\",\n \"seedrandom\": \"^3.0.5\",\n \"tslib\": \"^2.7.0\",\n \"typedoc\": \"^0.26.7\",\n \"typescript\": \"5.5.4\"\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: Record<`main_block_${number}`, MainBlockParams> = {};\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 { disposeUnusedWeightTensors, extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } 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: Record<`main_block_${number}`, MainBlockParams> = {};\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 = 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(255) 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 { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } 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.js';\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { AgeAndGenderPrediction, Gender, NetOutput, NetParams } 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 = (ageTensor.dataSync())[0];\n const probMale = (genderTensor.dataSync())[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 override dispose(throwOnRedispose = 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(landmarkTensor.dataSync());\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(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 { ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { isFloat } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } 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 = 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(255) 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 as tf.Tensor2D;\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 // @ts-ignore\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(() => tf.unstack(this.forwardInput(netInput)));\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 { ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory } from '../common/index';\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } 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 { ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } 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(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]) {\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(x: tf.Tensor4D, params: MobileNetV1.DepthwiseConvParams, strides: [number, number]) {\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) conv11 = out;\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) return 0.0;\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) * 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(maxOutputSize, numBoxes);\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], 2)),\n tf.add(vec[1], tf.div(sizes[1], 2)),\n ];\n return { sizes, centers };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const { sizes, centers } = 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], 5)), sizes[0]), 2);\n const add0_out = tf.add(tf.mul(tf.div(vec[0], 10), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], 5)), sizes[1]), 2);\n const add1_out = tf.add(tf.mul(tf.div(vec[1], 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(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams) {\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(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);\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(scores, [batchSize, scores.shape[1] as number]);\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return { boxes: boxesByBatch, scores: scoresByBatch };\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 = '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 if (!params) throw new Error('SsdMobilenetv1 - load model before inference');\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.div(batchTensor, 127.5), 1) as tf.Tensor4D; // input is normalized -1..1\n const features = mobileNetV1(x, params.mobilenetv1);\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\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(input: TNetInput, options: ISsdMobilenetv1Options = {}): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n const netInput = await toNetInput(input);\n const { boxes: _boxes, scores: _scores } = this.forwardInput(netInput);\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 const scoresData = Array.from(scores.dataSync());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(boxes, scoresData as number[], maxResults, iouThreshold, minConfidence);\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 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(left, top, right - left, bottom - top),\n { height: netInput.getInputHeight(0), width: netInput.getInputWidth(0) },\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 = '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, TinyYolov2ExtractBoxesResult, 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(255) 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: TinyYolov2ExtractBoxesResult[] = [];\n const scoresData = await scoresTensor.array() as number[][][][];\n const boxesData = await boxesTensor.array() as number[][][][];\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 = 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 override getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected override 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 = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport type ITinyFaceDetectorOptions = ITinyYolov2Options\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected override _name = 'TinyFaceDetectorOptions';\n}\n", "export class ComposableTask {\n // eslint-disable-next-line no-unused-vars\n public async then(onfulfilled: (value: T) => T | PromiseLike): 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 const results = await computeResults(faces);\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\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 override getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected override 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 { PredictAllAgeAndGenderTask, PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } 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> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public override 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(\n faces.map((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> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public override 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>> extends PredictAllFaceExpressionsTask {\n override 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>> extends PredictSingleFaceExpressionsTask {\n override 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 { PredictAllFaceExpressionsTask, PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } 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> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public override async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map((face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise)),\n this.extractedFaces,\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> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public override async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\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 return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask>> extends PredictAllAgeAndGenderTask {\n override 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>> extends PredictSingleAgeAndGenderTask {\n override 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 { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } 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>> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\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 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>> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\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, @typescript-eslint/no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\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 { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } 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> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))) as FaceLandmarks68[];\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n const result = parentResults\n .filter((_parentResult, i) => faceLandmarksByFace[i])\n .map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n return result;\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> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\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 const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\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 // eslint-disable-next-line no-unused-vars\n constructor(protected input: TNetInput, protected options: FaceDetectionOptions = new SsdMobilenetv1Options()) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const { input, options } = this;\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 return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n return new Promise[]>((resolve, reject) => {\n this.run()\n .then((detections) => resolve(detections.map((detection) => extendWithFaceDetection({}, detection))))\n .catch((err) => reject(err));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = 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 override 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 = 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\nexport async function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(input: TNetInput, forwardParams: ITinyYolov2Options = {}): 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 const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff * diff), 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 private _distanceThreshold: number;\n\n constructor(inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>, distanceThreshold = 0.6) {\n this._distanceThreshold = distanceThreshold;\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArray.length) throw new Error('FaceRecognizer.constructor - expected atleast one input');\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) return desc;\n if (desc instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n if (desc.descriptor && desc.descriptor instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\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) / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(label, this.computeMeanDistance(queryDescriptor, descriptors)))\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) ? bestMatch : 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.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\nexport const version = pkg.version as string;\n\n// set webgl defaults\n// if (browser) tf.ENV.set('WEBGL_USE_SHAPES_UNIFORMS', true);\n"], + "mappings": "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C,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAA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", + "names": ["tfjs_esm_exports", "__export", "Ai", "Go", "Wo", "vc", "Sc", "Nc", "kc", "no", "Uo", "Ea", "Aa", "Di", "$i", "Ho", "qo", "Ko", "Xo", "jo", "Yo", "Ri", "Hl", "Ul", "wg", "Zo", "Fi", "Da", "$a", "ql", "__", "zb", "Xy", "fo", "Jo", "ho", "Ap", "Kl", "Oi", "Qo", "Dp", "ts", "es", "Ra", "Fa", "rs", "ns", "Ma", "Oa", "os", "Zy", "Ta", "jl", "Pa", "ss", "$p", "Rp", "Xl", "is", "Zl", "Yl", "Qd", "w0", "Bb", "Fp", "ls", "La", "Zd", "za", "us", "cs", "Mi", "ps", "Op", "Jl", "Ba", "ms", "fs", "th", "ds", "Yi", "Zi", "pp", "Va", "Pi", "qh", "Ga", "hs", "Yy", "Mp", "go", "Pp", "Ce", "gs", "xs", "ys", "Bo", "Cs", "Xa", "Th", "Un", "bs", "Wa", "Ua", "Ha", "ws", "Is", "A_", "qa", "Ka", "ja", "E_", "nft", "pd", "Dd", "oft", "vs", "Ns", "Li", "tu", "Ql", "eu", "Ss", "ks", "Ts", "_s", "Es", "As", "Tc", "Ya", "Ds", "zi", "Ja", "Qa", "tl", "Za", "V0", "$s", "Bi", "jr", "Ih", "Vi", "Rs", "sft", "Fs", "Os", "Ms", "_c", "po", "Lp", "zp", "Bp", "ru", "D0", "Vp", "as", "Ps", "Je", "Ls", "Vs", "Gi", "Bs", "rl", "zs", "el", "Gs", "pl", "Ws", "Us", "Il", "nl", "sl", "Wi", "Hs", "Wc", "Xs", "js", "qs", "Ks", "Ui", "Qs", "Ys", "Hi", "nu", "il", "ou", "su", "al", "qi", "Zs", "iu", "ti", "ec", "xo", "ll", "au", "lu", "uu", "ei", "Js", "nn", "ri", "ni", "Lt", "le", "ol", "oo", "ul", "cl", "so", "cu", "Ki", "pu", "ift", "ml", "ji", "Xi", "_e", "fx", "dx", "K", "EE", "tm", "cc", "ra", "hx", "gx", "xx", "yx", "bx", "wx", "xu", "Ix", "sx", "S", "$E", "oa", "Cx", "vx", "Sx", "yu", "Nx", "FE", "q5", "OE", "sa", "Hr", "_y", "wt", "xQ", "J", "kx", "vr", "un", "Sn", "ie", "Tx", "_x", "Ex", "Ax", "CR", "rm", "Nn", "om", "Dx", "Rx", "fft", "bu", "sm", "xh", "mc", "im", "pn", "aO", "mh", "G0", "Fx", "ia", "IQ", "du", "ME", "Ox", "Sdt", "Tt", "Ndt", "ut", "Mx", "Px", "dN", "wu", "aa", "vdt", "Cdt", "hN", "Bn", "LE", "L", "$r", "am", "Lx", "Ke", "je", "zx", "fc", "Au", "Co", "Adt", "Ddt", "la", "Qp", "Qz", "Ru", "ua", "r8", "Ey", "oE", "v0", "Wp", "Yg", "Umt", "k1", "X6", "Y6", "Re", "cn", "wl", "Iu", "fn", "s8", "vR", "JN", "Mr", "bm", "Bx", "Vx", "Gx", "De", "Xr", "oF", "Cu", "yl", "Vn", "xN", "VE", "xtt", "ytt", "UR", "Wx", "Nr", "vu", "qx", "lm", "Su", "Fr", "Nu", "um", "Kx", "aY", "GE", "Bt", "O2", "Sr", "ku", "Xx", "WE", "kn", "Ne", "lh", "UE", "sF", "gl", "lo", "Yx", "Zx", "gJ", "iF", "dc", "X5", "$", "HE", "qE", "Ut", "Ch", "xl", "ci", "ca", "ar", "wr", "k", "KE", "mn", "jE", "XE", "YE", "ZE", "Jx", "qr", "_u", "mx", "Qx", "kdt", "JE", "QE", "tA", "eA", "CA", "xc", "vA", "Gn", "SA", "pa", "_dt", "bl", "sy", "Xp", "yJ", "$_", "rc", "wQ", "aF", "Or", "cm", "Edt", "R", "dr", "NA", "kA", "TA", "_A", "Du", "pm", "mm", "pt", "Z5", "$u", "dh", "fm", "dm", "xJ", "Q", "OK", "$dt", "Wmt", "Vmt", "Gmt", "BT", "EA", "Ew", "en", "iy", "iY", "hm", "gm", "Ot", "xm", "gh", "ym", "yc", "Be", "Eu", "ui", "Tu", "lY", "t8", "sY", "hr", "ge", "Wt", "wm", "Wn", "Fe", "So", "ay", "uY", "at", "mt", "lc", "ly", "li", "ir", "Oe", "pi", "uy", "AA", "DA", "$A", "FA", "Io", "IA", "B", "Rr", "Tdt", "cy", "Ac", "Vt", "Cm", "py", "mft", "pft", "vm", "gr", "ur", "OA", "y", "Z6", "J6", "my", "Ux", "Zmt", "VF", "X2", "KO", "jm", "Hmt", "Jz", "T$e", "Cd", "Ie", "dy", "ke", "vt", "zq", "f0", "Bq", "Vq", "Gq", "Wq", "br", "r", "Kt", "e", "Uq", "n", "o", "Gl", "W_", "gft", "G_", "He", "yo", "t", "zn", "R_", "F_", "oc", "qe", "bo", "nc", "wo", "L_", "V_", "M_", "Ln", "B_", "Hp", "Jg", "k0", "s", "i", "a", "u", "l", "oi", "O_", "fK", "P_", "Up", "z_", "N0", "xt", "c", "p", "m", "f", "d", "TE", "_E", "nA", "rA", "sN", "sA", "oA", "iN", "aA", "iA", "aN", "uA", "lA", "lN", "pA", "cA", "uN", "h", "g", "fA", "mA", "cN", "dA", "gA", "hA", "ty", "w", "I", "N", "E", "A", "b", "F", "M", "V", "G", "W", "q", "H", "hh", "c_t", "xA", "BX", "VX", "GX", "WX", "UX", "HX", "hc", "$k", "hw", "e_", "KH", "jH", "XH", "YH", "RC", "n_", "r_", "it", "re", "Xe", "be", "de", "Ee", "On", "lr", "Zn", "Br", "P", "U", "x", "D", "Yu", "Y", "dt", "wp", "Pt", "Jt", "Zt", "zo", "j", "Z", "et", "nt", "st", "lt", "ot", "Xu", "ft", "gt", "Ct", "Rt", "Dt", "Ht", "bt", "$t", "or", "eo", "qt", "pe", "ye", "Ae", "Vr", "Gr", "Jn", "Qn", "Qr", "Ca", "Ti", "Vd", "Ud", "Er", "va", "c_", "Gd", "zl", "bp", "Sa", "MC", "Ig", "PC", "Cg", "tn", "vg", "LC", "zC", "Mg", "jC", "Yt", "ka", "p_", "m_", "Sg", "BC", "c0", "VC", "Wd", "GC", "Ng", "kg", "Bl", "WC", "_g", "Tg", "UC", "Gg", "Hd", "HC", "y_", "Wg", "Ip", "qC", "KC", "x_", "XC", "d_", "YC", "Eg", "Ag", "ZC", "JC", "QC", "g_", "tv", "ev", "rv", "Zu", "nv", "ov", "Dg", "sv", "qd", "iv", "av", "lv", "p0", "Ug", "h_", "Kd", "uv", "yv", "cv", "pv", "mv", "$g", "Rg", "fv", "dv", "Fg", "Og", "hv", "gv", "Mn", "Np", "I_", "w_", "m0", "Lq", "xv", "f_", "bv", "wv", "Iv", "Cv", "vv", "Sv", "Nv", "kv", "Tv", "_v", "Ev", "Av", "Dv", "$v", "Rv", "Fv", "Ov", "Mv", "Pv", "Lv", "zv", "Bv", "Vv", "Gv", "Wv", "Uv", "Hv", "qv", "Kv", "jv", "Xv", "Yv", "Zv", "Jv", "Qv", "tS", "eS", "rS", "nS", "oS", "sS", "iS", "aS", "lS", "uS", "cS", "pS", "mS", "fS", "dS", "hS", "gS", "xS", "yS", "bS", "wS", "IS", "CS", "vS", "SS", "NS", "kS", "TS", "_S", "ES", "AS", "DS", "$S", "RS", "FS", "OS", "MS", "PS", "LS", "zS", "BS", "VS", "GS", "WS", "US", "HS", "qS", "KS", "jS", "XS", "YS", "ZS", "JS", "QS", "t0", "e0", "r0", "n0", "o0", "s0", "Pg", "Lg", "jd", "i0", "a0", "Cp", "zg", "vp", "Sp", "l0", "X", "ct", "Ft", "me", "Ye", "Ze", "se", "ne", "yr", "to", "Na", "Bg", "Xd", "u0", "on", "Vl", "Vg", "iq", "aq", "lq", "uq", "cq", "pq", "mq", "fq", "dq", "hq", "gq", "xq", "yq", "bq", "wq", "Iq", "Cq", "vq", "Sq", "Nq", "kq", "Tq", "_q", "Eq", "Aq", "Dq", "$q", "Rq", "Fq", "Oq", "Mq", "Hg", "b_", "qg", "Kg", "Pq", "JH", "fnr", "ZH", "QH", "FC", "s_", "o_", "Pn", "C_", "jg", "Hq", "kp", "qq", "Kq", "jq", "Xq", "_", "$e", "sn", "ro", "jt", "Yq", "d0", "_a", "Zq", "Jq", "Qq", "Qu", "tK", "eK", "fr", "h0", "g0", "Xg", "x0", "y0", "rK", "Tp", "b0", "Vo", "v_", "S_", "Wl", "_i", "_p", "Ei", "N_", "Ju", "nK", "Yd", "Ep", "oK", "Le", "sK", "iK", "tc", "k_", "lK", "cK", "uK", "T_", "I0", "C0", "pK", "Jd", "Ji", "mK", "Gp", "eh", "S0", "bK", "Kp", "fu", "IK", "yK", "si", "rh", "sr", "ac", "qp", "Zg", "_0", "ic", "H_", "sc", "an", "T0", "q_", "ze", "U_", "Ar", "mu", "dK", "Qg", "hK", "gK", "xK", "wK", "tx", "E0", "CK", "K_", "j_", "X_", "nh", "A0", "Y_", "vK", "ex", "sh", "oh", "Z_", "ii", "jp", "SK", "J_", "Q_", "tE", "O", "M0", "ih", "kK", "Xt", "$0", "R0", "F0", "O0", "NK", "rx", "nx", "eE", "TK", "P0", "ox", "ah", "T", "_K", "EK", "L0", "B0", "$K", "DK", "AK", "z0", "vn", "Wr", "nE", "rE", "C", "fl", "RK", "ln", "dl", "Ur", "FK", "hu", "aE", "LK", "ix", "MK", "lE", "PK", "GK", "sE", "ax", "W0", "iE", "uE", "cE", "pE", "U0", "lx", "H0", "Yp", "Qi", "uh", "zK", "BK", "VK", "Cr", "mE", "fE", "dE", "hE", "q0", "K0", "uc", "gu", "gE", "j0", "ta", "xE", "WK", "UK", "ux", "hl", "Zp", "yE", "HK", "qK", "KK", "jK", "bE", "wE", "XK", "YK", "ea", "IE", "ZK", "cx", "Jp", "ai", "px", "CE", "vE", "SE", "NE", "kE", "X0", "JK", "Y0", "Z0", "QK", "tj", "ej", "rj", "nj", "oj", "sj", "ij", "aj", "lj", "uj", "cj", "pj", "mj", "fj", "dj", "hj", "gj", "xj", "yj", "bj", "DE", "pc", "Q0", "ch", "wj", "J0", "AE", "em", "vj", "Sj", "Ij", "tN", "ph", "Cj", "io", "Dr", "na", "Se", "Nj", "kj", "Tj", "_j", "Ej", "Aj", "Dj", "$j", "Rj", "Fj", "RE", "Oj", "Mj", "Pj", "Lj", "zj", "Bj", "Vj", "Gj", "Wj", "Uj", "Hj", "qj", "Kj", "jj", "Xj", "Yj", "Zj", "nm", "Jj", "Qj", "t6", "$x", "e6", "r6", "n6", "o6", "s6", "i6", "a6", "l6", "u6", "c6", "Mt", "PE", "we", "p6", "m6", "f6", "d6", "h6", "g6", "x6", "y6", "b6", "eN", "zE", "rN", "vo", "w6", "nN", "fh", "I6", "C6", "v6", "S6", "N6", "k6", "T6", "_6", "BE", "E6", "A6", "D6", "$6", "R6", "F6", "O6", "M6", "P6", "L6", "z6", "B6", "V6", "G6", "W6", "U6", "H6", "q6", "K6", "j6", "Hx", "Q6", "tX", "eX", "rX", "nX", "oX", "sX", "iX", "aX", "lX", "jx", "uX", "cX", "pX", "mX", "fX", "dX", "hX", "gX", "xX", "yX", "bX", "wX", "IX", "CX", "vX", "SX", "NX", "kX", "TX", "_X", "EX", "AX", "DX", "RX", "$X", "FX", "OX", "MX", "PX", "LX", "zX", "oy", "yA", "JX", "wA", "ZX", "KX", "XX", "bA", "jX", "YX", "QX", "ey", "qX", "pN", "mN", "gc", "ry", "ny", "t5", "e5", "r5", "n5", "o5", "s5", "i5", "a5", "l5", "u5", "c5", "p5", "m5", "f5", "d5", "h5", "g5", "x5", "y5", "b5", "w5", "I5", "C5", "v5", "S5", "N5", "k5", "T5", "_5", "E5", "A5", "D5", "$5", "R5", "F5", "O5", "M5", "P5", "RA", "Im", "fN", "L5", "z5", "B5", "V5", "G5", "W5", "fy", "U5", "H5", "K5", "j5", "Y5", "MA", "Q5", "e8", "PA", "n8", "o8", "LA", "zA", "BA", "i8", "Sm", "bc", "wc", "Ic", "Cc", "a8", "l8", "hy", "u8", "gy", "c8", "p8", "m8", "VA", "f8", "xy", "d8", "yy", "h8", "GA", "g8", "WA", "x8", "UA", "y8", "HA", "b8", "qA", "w8", "KA", "No", "I8", "jA", "XA", "C8", "S8", "v8", "by", "gN", "wy", "Iy", "YA", "N8", "k8", "T8", "ZA", "_8", "JA", "E8", "QA", "A8", "t2", "D8", "e2", "$8", "Cy", "R8", "vy", "F8", "O8", "r2", "M8", "n2", "P8", "o2", "L8", "s2", "z8", "i2", "a2", "B8", "Kr", "V8", "l2", "G8", "u2", "W8", "c2", "U8", "p2", "H8", "m2", "q8", "f2", "K8", "j8", "d2", "X8", "Y8", "h2", "Z8", "g2", "J8", "x2", "Q8", "y2", "tY", "b2", "eY", "w2", "rY", "I2", "nY", "C2", "oY", "v2", "yh", "Sy", "pY", "bN", "cY", "yN", "mY", "S2", "k2", "A2", "D2", "NN", "ky", "Ny", "_2", "vN", "$2", "R2", "fY", "dY", "hY", "N2", "Nm", "wN", "gY", "xY", "IN", "CN", "T2", "yY", "bY", "bh", "wY", "E2", "wh", "Ty", "SN", "F2", "IY", "EY", "AY", "kY", "_Y", "Ec", "M2", "P2", "CY", "vY", "SY", "NY", "L2", "TY", "z2", "$Y", "PY", "FY", "OY", "MY", "RY", "TN", "LY", "K2", "U2", "j2", "H2", "q2", "V2", "kN", "DY", "G2", "W2", "zY", "B2", "BY", "eZ", "rZ", "nZ", "oZ", "sZ", "tZ", "Ay", "ma", "EN", "_N", "VY", "pZ", "xZ", "WY", "lZ", "uZ", "KY", "GY", "hZ", "fZ", "mZ", "LZ", "PZ", "cZ", "yZ", "gZ", "jY", "YY", "HY", "XY", "ZY", "UY", "JY", "QY", "CZ", "vZ", "SZ", "TZ", "EZ", "_Z", "NZ", "kZ", "RZ", "AZ", "DZ", "$Z", "bZ", "iZ", "IZ", "DN", "aZ", "qY", "AN", "dZ", "Y2", "Z2", "wZ", "MZ", "OZ", "FZ", "Dy", "J2", "Q2", "tD", "eD", "rD", "nD", "oD", "sD", "iD", "aD", "lD", "zZ", "uD", "cD", "BZ", "pD", "mD", "fD", "dD", "hD", "gD", "xD", "yD", "bD", "wD", "ID", "CD", "VZ", "vD", "SD", "ND", "kD", "TD", "_D", "ED", "AD", "DD", "$D", "RD", "FD", "OD", "MD", "PD", "BD", "LD", "zD", "VD", "GD", "WD", "UD", "HD", "qD", "KD", "jD", "XD", "GZ", "YD", "ZD", "$y", "$N", "JD", "WZ", "QD", "t$", "UZ", "e$", "r$", "n$", "o$", "s$", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "RN", "f$", "d$", "HZ", "qZ", "h$", "g$", "x$", "y$", "b$", "w$", "I$", "C$", "v$", "S$", "N$", "k$", "T$", "_$", "E$", "A$", "D$", "$$", "R$", "F$", "FN", "ON", "O$", "M$", "P$", "L$", "z$", "B$", "V$", "G$", "W$", "U$", "H$", "q$", "KZ", "K$", "jZ", "uo", "dn", "z", "_t", "Ry", "vh", "To", "co", "PN", "kr", "ue", "_o", "Cl", "ko", "km", "MN", "fa", "XZ", "Sh", "Eo", "j$", "da", "Fy", "tr", "X$", "Y$", "Oy", "YZ", "Py", "My", "Fu", "Z$", "J$", "Q$", "tR", "eR", "Tm", "Me", "nR", "hn", "LN", "Nh", "rR", "fi", "ZZ", "Ly", "oR", "zy", "JZ", "sR", "Ao", "Dc", "di", "gn", "zN", "cr", "xn", "rn", "Sl", "iR", "Vy", "aR", "lR", "vl", "BN", "kh", "_m", "GN", "Em", "Do", "VN", "Gy", "$c", "yn", "uR", "cR", "Wy", "pR", "Ou", "mR", "fR", "QZ", "t7", "bn", "Am", "Mu", "Dm", "$m", "Rm", "Fm", "Om", "e7", "Yr", "Rc", "Fc", "Oc", "Mc", "Pc", "Lc", "Mm", "dR", "hR", "Te", "xe", "Uy", "Pm", "St", "Gt", "Lm", "xR", "n7", "_h", "zm", "o7", "Nl", "s7", "Et", "l7", "u7", "i7", "a7", "WN", "hi", "Hy", "c7", "ha", "qy", "Ky", "bR", "zc", "p7", "f7", "yR", "m7", "d7", "h7", "y7", "x7", "g7", "UN", "Bc", "Bm", "Vm", "Gm", "Wm", "wR", "Ve", "IR", "Ge", "I7", "_7", "T7", "E7", "A7", "N7", "D7", "$7", "w7", "R7", "v7", "C7", "S7", "k7", "b7", "Tl", "JJ", "a9", "U9", "l9", "ok", "sk", "ik", "x9", "b9", "I9", "y9", "w9", "C9", "d9", "M9", "X9", "K9", "u9", "WJ", "UJ", "HJ", "qJ", "KJ", "$9", "R9", "XJ", "QJ", "ZJ", "f9", "t9", "PJ", "i9", "r9", "W9", "G9", "v9", "S9", "L9", "z9", "tF", "eF", "k9", "T9", "MJ", "h9", "zJ", "_9", "E9", "H9", "B9", "V9", "rF", "nF", "N9", "c9", "p9", "m9", "s9", "BJ", "Y9", "LJ", "n9", "q9", "o9", "j9", "F9", "jJ", "A9", "D9", "VJ", "e9", "O9", "GJ", "P9", "YJ", "g9", "ga", "jy", "SR", "F7", "kl", "HN", "Jy", "Um", "Qy", "wn", "Eh", "xa", "Hm", "Pu", "O7", "M7", "P7", "L7", "z7", "Vc", "qm", "B7", "Km", "V7", "G7", "Dh", "Ah", "tb", "$h", "Rh", "kR", "W7", "U7", "qN", "TR", "rb", "nb", "_R", "H7", "q7", "K7", "j7", "X7", "Y7", "Fh", "Z7", "KN", "eb", "ER", "Oh", "DR", "XN", "jN", "$R", "tJ", "ob", "eJ", "rJ", "Q7", "RR", "Gc", "sb", "nJ", "ib", "oJ", "ab", "lb", "FR", "sJ", "PR", "OR", "iJ", "LR", "MR", "aJ", "lJ", "zR", "ub", "Xm", "cb", "pb", "YN", "$o", "uJ", "ZN", "BR", "VR", "cJ", "pJ", "GR", "mJ", "fJ", "mb", "WR", "dJ", "hJ", "Pr", "fb", "db", "hb", "gb", "xb", "yb", "bb", "wb", "Ib", "Cb", "Ym", "vb", "Sb", "Nb", "kb", "Tb", "gi", "QN", "xi", "tk", "_b", "Lu", "KR", "jR", "HR", "fe", "qR", "ve", "Zm", "Jm", "Qm", "tf", "ef", "rf", "zu", "Tn", "yi", "Ph", "ek", "wJ", "XR", "IJ", "Mh", "nf", "Uc", "Hc", "of", "sf", "Eb", "af", "lf", "uf", "cf", "CJ", "pf", "rk", "nk", "jc", "qc", "El", "mf", "Kc", "ff", "_l", "df", "vJ", "Ab", "Xc", "hf", "Yc", "gf", "xf", "yf", "bf", "wf", "If", "Cf", "vf", "Sf", "Al", "Nf", "kf", "Tf", "_f", "Ef", "Af", "Lh", "SJ", "Df", "$f", "Rf", "Ff", "zh", "NJ", "kJ", "TJ", "Of", "Mf", "_J", "Pf", "Mb", "YR", "Db", "Lf", "zf", "$b", "Bf", "Vf", "Rb", "Gf", "Wf", "Fb", "Uf", "Hf", "Ob", "qf", "Kf", "Pb", "jf", "EJ", "AJ", "Xf", "Yf", "DJ", "$J", "Zf", "ZR", "Jf", "FJ", "JR", "Qf", "Bh", "Vh", "OJ", "QR", "td", "aQ", "cQ", "Z9", "J9", "tQ", "eQ", "oQ", "lQ", "sQ", "iQ", "uQ", "pQ", "rQ", "mQ", "nQ", "Q9", "dQ", "fQ", "hQ", "Lb", "lF", "gQ", "yQ", "_n", "uF", "ak", "Vb", "v", "pr", "In", "Gb", "lk", "bi", "Gh", "wi", "uk", "CQ", "ck", "vQ", "pk", "SQ", "mk", "NQ", "fk", "kQ", "dk", "TQ", "hk", "_Q", "gk", "EQ", "xk", "AQ", "yk", "DQ", "bk", "$Q", "wk", "RQ", "Ik", "FQ", "Ck", "OQ", "vk", "MQ", "Sk", "PQ", "Nk", "LQ", "kk", "zQ", "Tk", "BQ", "Wh", "Wb", "Yb", "Hb", "Xb", "Ub", "Jb", "jb", "Zb", "qb", "Kb", "cF", "_k", "VQ", "pF", "mF", "Qb", "ae", "fF", "dF", "Hn", "hF", "ed", "tw", "ew", "rd", "gF", "xF", "yF", "bF", "wF", "IF", "CF", "vF", "Ek", "SF", "NF", "kF", "rw", "TF", "_F", "EF", "AF", "DF", "$F", "RF", "FF", "OF", "MF", "PF", "LF", "Ak", "Uh", "Dk", "Bu", "ftt", "dtt", "zF", "ltt", "utt", "nd", "BF", "ctt", "ptt", "mtt", "Hh", "nw", "htt", "gtt", "btt", "id", "Ii", "ud", "sd", "cd", "ZF", "rO", "nO", "oO", "iO", "Jk", "sO", "JF", "YF", "KF", "GF", "ow", "Vu", "WF", "Rk", "UF", "sw", "HF", "wtt", "qF", "Itt", "od", "Kh", "qk", "Fk", "jh", "Ok", "jF", "aw", "XF", "Dl", "Uk", "er", "Gk", "Bk", "Vk", "iw", "Wk", "zk", "Lk", "Pk", "lw", "Hk", "Mk", "Zc", "En", "Ctt", "vtt", "uw", "Xh", "QF", "cw", "Kk", "tO", "pw", "mw", "ad", "Yh", "jk", "Xk", "fw", "Yk", "Zk", "ld", "eO", "Stt", "dw", "tt", "Ntt", "eT", "dd", "gw", "rT", "tT", "nT", "Jc", "oT", "iT", "lT", "cT", "uT", "xw", "yw", "mT", "pT", "dT", "fT", "bw", "hT", "ww", "gT", "xT", "Zh", "yT", "bT", "wT", "Iw", "Cw", "vw", "tp", "CT", "Ci", "LO", "Qk", "ep", "Sw", "Nw", "gd", "VO", "ST", "NT", "kw", "rp", "np", "op", "TT", "Tw", "_w", "hd", "sp", "ktt", "lO", "Qt", "Ir", "uO", "md", "Zr", "cO", "Ro", "pO", "Fo", "mO", "oe", "fd", "Ttt", "ya", "fO", "_tt", "dO", "_r", "At", "An", "Ett", "hO", "sT", "gO", "aT", "xO", "Att", "yO", "Dtt", "bO", "$tt", "wO", "Rtt", "IO", "Ftt", "CO", "Ott", "vO", "Mtt", "SO", "Ptt", "NO", "Ltt", "kO", "ztt", "TO", "Btt", "Qc", "_O", "Vtt", "EO", "Gtt", "AO", "We", "DO", "Wtt", "$O", "Utt", "Htt", "qtt", "Ktt", "RO", "jtt", "Xtt", "FO", "Oo", "IT", "MO", "OO", "Ytt", "PO", "vT", "zO", "Mo", "BO", "Ztt", "GO", "Jtt", "WO", "Qtt", "UO", "kT", "tet", "eet", "Jh", "HO", "Qh", "qO", "_T", "jO", "ET", "XO", "ret", "AT", "YO", "DT", "ZO", "$T", "JO", "ip", "te", "QO", "RT", "tM", "net", "eM", "oet", "rM", "set", "nM", "iet", "oM", "aet", "sM", "uet", "iM", "cet", "aM", "pet", "lM", "met", "uM", "fet", "cM", "det", "pM", "het", "get", "mM", "xet", "fM", "xd", "Aw", "Dw", "dM", "yet", "hM", "bet", "gM", "wet", "xM", "Iet", "yM", "Cet", "bM", "vet", "wM", "Net", "IM", "ket", "CM", "Tet", "vM", "_et", "SM", "ba", "NM", "Gu", "kM", "FT", "TM", "Eet", "_M", "Aet", "EM", "Det", "AM", "$et", "DM", "Ret", "$M", "Fet", "RM", "Oet", "FM", "Met", "OM", "Pet", "MM", "Let", "PM", "zet", "LM", "Bet", "zM", "OT", "BM", "Vet", "VM", "Get", "GM", "Wet", "WM", "UM", "HM", "qM", "Uet", "KM", "$l", "jM", "Het", "XM", "qet", "YM", "Ket", "jet", "Xet", "Yet", "Zet", "Jet", "Qet", "ZM", "yd", "JM", "trt", "tg", "eg", "$w", "ert", "rrt", "MT", "nrt", "ort", "QM", "rg", "srt", "tP", "eP", "irt", "rP", "art", "nP", "lrt", "oP", "urt", "sP", "crt", "iP", "prt", "aP", "mrt", "lP", "frt", "uP", "drt", "cP", "hrt", "pP", "grt", "xrt", "mP", "yrt", "fP", "brt", "wrt", "dP", "Irt", "hP", "Crt", "gP", "PT", "xP", "vrt", "yP", "Srt", "bP", "Nrt", "wP", "krt", "IP", "CP", "vP", "Trt", "SP", "_rt", "NP", "Ert", "kP", "Art", "Drt", "TP", "EP", "LT", "_P", "$rt", "AP", "Rrt", "Frt", "DP", "Ort", "Mrt", "$P", "Prt", "Lrt", "RP", "zrt", "FP", "ng", "OP", "MP", "PP", "zT", "LP", "Brt", "Rw", "Vrt", "Grt", "zP", "Wrt", "BP", "Urt", "VP", "Hrt", "GP", "qrt", "WP", "Krt", "UP", "jrt", "HP", "Xrt", "qP", "Yrt", "KP", "Zrt", "jP", "Jrt", "XP", "YP", "Qrt", "ZP", "tnt", "JP", "ent", "rnt", "QP", "nnt", "tL", "ont", "eL", "snt", "int", "ant", "rL", "lnt", "nL", "unt", "oL", "cnt", "sL", "pnt", "iL", "mnt", "aL", "fnt", "lL", "dnt", "uL", "hnt", "cL", "gnt", "pL", "xnt", "mL", "ynt", "fL", "bnt", "dL", "hL", "wnt", "gL", "Int", "xL", "Cnt", "yL", "vnt", "bL", "Snt", "wL", "Nnt", "IL", "knt", "CL", "Tnt", "vL", "_nt", "SL", "Ent", "NL", "Ant", "kL", "Ont", "Mnt", "TL", "Dnt", "$nt", "Fnt", "Rnt", "og", "Pnt", "_L", "Lnt", "EL", "znt", "AL", "Bnt", "vi", "Xnt", "lg", "e1", "FL", "zw", "ht", "WT", "HT", "JT", "qT", "XT", "jT", "YT", "UT", "Fl", "bd", "OL", "o1", "Knt", "t1", "QT", "Ol", "Id", "r1", "s1", "RL", "n1", "Kn", "i1", "a1", "Uu", "l1", "Vw", "KT", "Lw", "Ynt", "Znt", "Bw", "jnt", "wd", "ag", "ZT", "ap", "Fw", "qn", "Gnt", "Vnt", "Wu", "Jr", "Lr", "lp", "DL", "sg", "wa", "$L", "ig", "Wnt", "Unt", "Hnt", "Rl", "qnt", "ML", "Ow", "Mw", "Pw", "GT", "Jnt", "kt", "Ue", "Si", "up", "Qnt", "PL", "vd", "Sd", "Gw", "LL", "zL", "Ww", "tot", "not", "iot", "eot", "sot", "rot", "oot", "cot", "kd", "Cot", "Sot", "kot", "_ot", "Aot", "Dot", "$ot", "BL", "Iot", "vot", "Not", "Tot", "Eot", "Rot", "Fot", "VL", "pot", "bot", "fot", "hot", "mot", "wot", "dot", "got", "xot", "yot", "aot", "lot", "uot", "cp", "Td", "_d", "Ed", "zt", "WL", "u1", "GL", "UL", "HL", "he", "Uw", "Hw", "qw", "Kw", "Pot", "ug", "jw", "y1", "I1", "d1", "x1", "f1", "m1", "g1", "h1", "p1", "c1", "v1", "C1", "N1", "S1", "Yw", "Qw", "Xw", "Jw", "Zw", "b1", "w1", "cg", "Lot", "qL", "tI", "KL", "jL", "XL", "YL", "ZL", "JL", "QL", "tz", "ez", "rz", "nz", "oz", "sz", "iz", "az", "lz", "uz", "cz", "pz", "mz", "fz", "dz", "hz", "gz", "xz", "yz", "bz", "wz", "Iz", "Cz", "vz", "eI", "Sz", "Nz", "kz", "rI", "Tz", "_z", "Ez", "Az", "Dz", "$z", "Rz", "Fz", "Oz", "mp", "Mz", "T1", "rr", "Pz", "nI", "Ad", "zot", "oI", "zz", "Bz", "Lz", "Bot", "Vot", "Got", "zr", "xr", "Vz", "_1", "Gz", "Wz", "Uz", "Ia", "Hz", "Kz", "jz", "Xz", "Yz", "Zz", "Dn", "sI", "Uot", "Hot", "qot", "iI", "Kot", "jot", "Xot", "Yot", "Zot", "$d", "$n", "Xn", "jn", "nr", "t3", "Rn", "e3", "E1", "A1", "Jot", "r3", "D1", "$1", "Qot", "n3", "Po", "It", "ce", "Ml", "Rd", "R1", "pg", "o3", "mg", "s3", "i3", "rt", "a3", "fg", "aI", "est", "Yn", "lI", "rst", "uI", "Hu", "l3", "fp", "u3", "Pe", "c3", "F1", "dp", "nst", "p3", "m3", "ost", "f3", "sst", "ist", "d3", "ast", "lst", "h3", "g3", "ust", "x3", "cI", "pI", "mI", "y3", "cst", "b3", "pst", "w3", "fI", "dI", "I3", "C3", "hI", "mst", "v3", "fst", "S3", "dst", "hst", "N3", "gst", "xst", "k3", "yst", "bst", "T3", "wst", "Ist", "Cst", "_3", "vst", "Sst", "E3", "Ni", "qu", "Nst", "A3", "kst", "D3", "gI", "xI", "Tst", "$3", "_st", "R3", "Est", "F3", "yI", "bI", "Ast", "O3", "wI", "Dst", "O1", "II", "$st", "ki", "M3", "Rst", "P3", "Fst", "L3", "Ost", "Mst", "Pst", "z3", "Lst", "B3", "zst", "M1", "V3", "Pl", "G3", "Bst", "W3", "P1", "U3", "H3", "Vst", "q3", "CI", "vI", "Gst", "K3", "SI", "j3", "Wst", "X3", "NI", "TI", "kI", "hp", "Y3", "Fd", "Ust", "L1", "Z3", "Od", "_I", "Md", "EI", "AI", "DI", "$I", "Hst", "J3", "RI", "FI", "OI", "MI", "qst", "Q3", "PI", "Kst", "tB", "jst", "eB", "Xst", "rB", "Yst", "nB", "Zst", "Jst", "Qst", "oB", "tit", "eit", "sB", "LI", "rit", "iB", "gp", "dg", "aB", "lB", "zI", "nit", "uB", "oit", "cB", "sit", "pB", "BI", "iit", "mB", "Pd", "Ld", "ait", "fB", "VI", "GI", "lit", "dB", "uit", "hB", "WI", "cit", "gB", "UI", "pit", "xB", "mit", "yB", "fit", "dit", "hit", "bB", "git", "xit", "yit", "wB", "bit", "wit", "Iit", "IB", "Cit", "vit", "CB", "Sit", "Nit", "z1", "vB", "HI", "SB", "NB", "kit", "kB", "hg", "qI", "Tit", "TB", "KI", "Ll", "_B", "jI", "EB", "AB", "_it", "DB", "Eit", "Ait", "Dit", "$B", "XI", "YI", "RB", "$it", "zd", "B1", "Rit", "FB", "Fit", "OB", "ZI", "Oit", "MB", "JI", "Mit", "V1", "PB", "Pit", "Lit", "zit", "LB", "Bit", "Vit", "Git", "zB", "Wit", "BB", "Uit", "Hit", "VB", "qit", "Kit", "GB", "jit", "Xit", "WB", "Yit", "Zit", "Jit", "UB", "Qit", "tat", "eat", "HB", "rat", "qB", "nat", "oat", "sat", "KB", "iat", "aat", "jB", "lat", "uat", "cat", "XB", "pat", "mat", "YB", "fat", "dat", "hat", "ZB", "QI", "tC", "gat", "JB", "eC", "xat", "QB", "tV", "G1", "eV", "yat", "bat", "wat", "rV", "Iat", "nV", "Cat", "oV", "rC", "nC", "vat", "sV", "Sat", "iV", "aV", "lV", "uV", "cV", "Nat", "pV", "kat", "Tat", "_at", "mV", "oC", "sC", "Eat", "fV", "Aat", "Dat", "$at", "dV", "iC", "Rat", "Fat", "W1", "hV", "gV", "U1", "xV", "H1", "yV", "Oat", "bV", "Mat", "Pat", "Lat", "wV", "zat", "Bat", "IV", "Vat", "Gat", "CV", "Wat", "Uat", "vV", "aC", "Hat", "SV", "gg", "NV", "kV", "TV", "qat", "_V", "lC", "uC", "q1", "EV", "Kat", "jat", "Xat", "AV", "Yat", "DV", "Zat", "$V", "Jat", "RV", "Qat", "FV", "K1", "OV", "tlt", "elt", "MV", "rlt", "nlt", "olt", "PV", "slt", "ilt", "alt", "LV", "cC", "pC", "llt", "zV", "mC", "ult", "BV", "fC", "dC", "clt", "VV", "hC", "plt", "GV", "gC", "xC", "mlt", "WV", "yC", "UV", "flt", "dlt", "HV", "hlt", "glt", "qV", "Ku", "bC", "xlt", "KV", "wC", "ylt", "jV", "IC", "blt", "XV", "wlt", "Ilt", "YV", "Clt", "vlt", "Slt", "ZV", "Nlt", "klt", "JV", "Tlt", "_lt", "Elt", "QV", "Alt", "Dlt", "tG", "$lt", "Rlt", "eG", "Flt", "rG", "Olt", "nG", "Mlt", "oG", "Plt", "sG", "Llt", "iG", "zlt", "aG", "Blt", "lG", "uG", "Vlt", "cG", "Glt", "Wlt", "pG", "mG", "Ult", "fG", "Hlt", "dG", "qlt", "hG", "CC", "Klt", "gG", "jlt", "xG", "Xlt", "yG", "Ylt", "bG", "Zlt", "Jlt", "wG", "Qlt", "tut", "IG", "eut", "CG", "vC", "rut", "j1", "vG", "SC", "NC", "xp", "SG", "nut", "NG", "kC", "out", "kG", "sut", "TG", "iut", "_G", "TC", "aut", "EG", "lut", "Nt", "ju", "AG", "uut", "cut", "DG", "yt", "$G", "RG", "FG", "ee", "put", "OG", "MG", "mut", "fut", "PG", "yp", "LG", "zG", "dut", "mo", "gut", "hut", "BG", "Cn", "VG", "xut", "yut", "GG", "WG", "but", "wut", "UG", "_C", "HG", "qG", "KG", "jG", "XG", "YG", "ZG", "JG", "Iut", "Cut", "QG", "tW", "vut", "Sut", "eW", "rW", "Nut", "kut", "nW", "oW", "Tut", "_ut", "sW", "mr", "iW", "aW", "Eut", "Aut", "lW", "Lo", "Dut", "$ut", "Rut", "uW", "Fut", "cW", "pW", "Out", "Mut", "mW", "Put", "fW", "Lut", "dW", "Fn", "hW", "gW", "xW", "zut", "But", "yW", "X1", "bW", "wW", "Vut", "Gut", "IW", "CW", "Wut", "Uut", "vW", "SW", "Hut", "qut", "NW", "kW", "Kut", "jut", "TW", "_W", "Xut", "Yut", "EW", "AW", "DW", "Y1", "$W", "Zut", "Jut", "RW", "FW", "Qut", "tct", "OW", "MW", "ect", "rct", "PW", "LW", "nct", "oct", "zW", "BW", "sct", "ict", "VW", "GW", "act", "lct", "WW", "UW", "uct", "cct", "HW", "qW", "pct", "mct", "KW", "jW", "fct", "dct", "XW", "YW", "hct", "gct", "ZW", "JW", "QW", "xct", "yct", "tU", "bct", "eU", "rU", "nU", "EC", "oU", "sU", "Z1", "iU", "aU", "wct", "Ict", "lU", "uU", "Cct", "cU", "pU", "vct", "Sct", "mU", "fU", "Nct", "kct", "dU", "hU", "Tct", "_ct", "gU", "xU", "Ect", "Act", "yU", "bU", "Dct", "$ct", "wU", "Rct", "IU", "Fct", "CU", "vU", "SU", "NU", "kU", "Oct", "Mct", "TU", "Pct", "_U", "Lct", "EU", "AU", "zct", "Bct", "DU", "$U", "RU", "Vct", "FU", "OU", "Gct", "MU", "Wct", "PU", "LU", "Uct", "Hct", "zU", "BU", "qct", "Kct", "VU", "GU", "jct", "Xct", "WU", "Yct", "UU", "HU", "Zct", "Jct", "qU", "KU", "Qct", "tpt", "jU", "XU", "ept", "rpt", "YU", "ZU", "npt", "opt", "JU", "QU", "spt", "ipt", "t4", "e4", "apt", "lpt", "r4", "n4", "upt", "cpt", "o4", "ppt", "s4", "J1", "i4", "mpt", "fpt", "a4", "l4", "dpt", "Q1", "u4", "c4", "hpt", "gpt", "p4", "m4", "xpt", "f4", "d4", "Bd", "h4", "ypt", "bpt", "g4", "x4", "wpt", "Ipt", "y4", "b4", "Cpt", "vpt", "w4", "Spt", "I4", "C4", "Npt", "kpt", "v4", "Tpt", "S4", "_pt", "N4", "k4", "Ept", "Apt", "AC", "Dpt", "T4", "_4", "$pt", "Rpt", "E4", "A4", "Fpt", "Opt", "D4", "Mpt", "$4", "Ppt", "R4", "F4", "O4", "M4", "P4", "Lpt", "zpt", "L4", "z4", "Bpt", "Vpt", "B4", "V4", "Gpt", "Wpt", "G4", "W4", "Upt", "Hpt", "U4", "H4", "qpt", "Kpt", "q4", "K4", "jpt", "Xpt", "j4", "X4", "Y4", "Z4", "Ypt", "Zpt", "J4", "Q4", "Jpt", "Qpt", "tH", "eH", "tmt", "emt", "rH", "nH", "oH", "rmt", "nmt", "sH", "iH", "aH", "lH", "uH", "omt", "cH", "pH", "smt", "imt", "mH", "fH", "amt", "lmt", "dH", "hH", "DC", "$C", "umt", "gH", "cmt", "xH", "yH", "pmt", "mmt", "bH", "fmt", "wH", "IH", "CH", "dmt", "vH", "SH", "hmt", "gmt", "NH", "kH", "xmt", "ymt", "TH", "bmt", "_H", "wmt", "EH", "Imt", "AH", "Cmt", "DH", "$H", "vmt", "Smt", "RH", "FH", "OH", "MH", "Nmt", "kmt", "PH", "LH", "Tmt", "_mt", "zH", "BH", "Emt", "Amt", "VH", "GH", "Dmt", "$mt", "WH", "Rmt", "UH", "Fmt", "HH", "Omt", "qH", "Mmt", "t_", "a_", "rq", "l_", "tq", "Pmt", "oq", "i_", "zmt", "Lmt", "eq", "OC", "yg", "nq", "xg", "u_", "bg", "Bmt", "qmt", "sq", "Kmt", "jmt", "Xmt", "Ymt", "draw_exports", "__export", "AnchorPosition", "DrawBox", "DrawBoxOptions", "DrawFaceLandmarks", "DrawFaceLandmarksOptions", "DrawTextField", "DrawTextFieldOptions", "drawContour", "drawDetections", "drawFaceExpressions", "drawFaceLandmarks", "drawContour", "ctx", "points", "isClosed", "x", "y", "prevIdx", "from", "to", "utils_exports", "__export", "computeReshapedDimensions", "getCenterPoint", "isDimensions", "isEven", "isFloat", "isTensor", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isValidNumber", "isValidProbablitiy", "range", "round", "Dimensions", "_Dimensions", "width", "height", "isValidNumber", "isTensor", "tensor", "dim", "Lt", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isFloat", "num", "isEven", "round", "prec", "f", "isDimensions", "obj", "computeReshapedDimensions", "width", "height", "inputSize", "scale", "Dimensions", "getCenterPoint", "pts", "sum", "pt", "Point", "range", "start", "step", "_", "i", "isValidNumber", "isValidProbablitiy", "Point", "_Point", "x", "y", "pt", "Box", "_Box", "rect", "isValidNumber", "box", "callee", "allowNegativeDimensions", "_box", "isBbox", "isRect", "x", "y", "width", "height", "Point", "val", "diff", "s", "scaleX", "isDimensions", "scaleY", "padX", "padY", "imgWidth", "imgHeight", "right", "bottom", "clippedX", "clippedY", "newWidth", "newHeight", "clippedWidth", "clippedHeight", "sx", "sy", "imageHeight", "imageWidth", "w", "h", "dx", "dy", "edx", "edy", "ex", "ey", "region", "BoundingBox", "Box", "left", "top", "right", "bottom", "allowNegativeDimensions", "ObjectDetection", "_ObjectDetection", "score", "classScore", "className", "relativeBox", "imageDims", "Dimensions", "Box", "width", "height", "FaceDetection", "_FaceDetection", "ObjectDetection", "score", "relativeBox", "imageDims", "width", "height", "iou", "box1", "box2", "isIOU", "width", "height", "interSection", "minBbox", "pts", "xs", "pt", "ys", "minX", "min", "x", "minY", "y", "maxX", "max", "maxY", "BoundingBox", "nonMaxSuppression", "boxes", "scores", "iouThreshold", "isIOU", "indicesSortedByScore", "score", "boxIndex", "c1", "c2", "c", "pick", "curr", "indices", "outputs", "i", "idx", "currBox", "idxBox", "iou", "_", "j", "normalize", "x", "meanRgb", "B", "r", "g", "b", "avg_r", "Co", "avg_g", "avg_b", "avg_rgb", "ie", "at", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "Co", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "J", "ie", "shuffleArray", "inputArray", "array", "i", "j", "x", "sigmoid", "x", "inverseSigmoid", "Rect", "Box", "x", "y", "width", "height", "allowNegativeDimensions", "relX", "relY", "relScale", "FaceLandmarks", "relativeFaceLandmarkPositions", "imgDims", "shift", "Point", "width", "height", "Dimensions", "pt", "x", "y", "detection", "options", "box", "FaceDetection", "Box", "useDlibAlignment", "minBoxPadding", "centers", "leftEyeCenter", "rightEyeCenter", "mouthCenter", "distToMouth", "eyeToMouthDist", "size", "refPoint", "getCenterPoint", "Rect", "padding", "minBbox", "FaceLandmarks5", "FaceLandmarks", "pts", "getCenterPoint", "FaceLandmarks68", "FaceLandmarks", "getCenterPoint", "FaceMatch", "label", "distance", "withDistance", "round", "LabeledBox", "Box", "box", "callee", "isValidNumber", "label", "LabeledFaceDescriptors", "_LabeledFaceDescriptors", "label", "descriptors", "desc", "d", "json", "PredictedBox", "LabeledBox", "box", "callee", "isValidProbablitiy", "label", "score", "classScore", "isWithFaceDetection", "obj", "FaceDetection", "extendWithFaceDetection", "sourceObj", "detection", "createBrowserEnv", "fetch", "isNodejs", "createFileSystem", "fs", "requireFsError", "isNodejs", "err", "filePath", "resolve", "reject", "buffer", "createNodejsEnv", "Canvas", "Image", "Video", "createCanvasElement", "createImageElement", "createVideoElement", "fetch", "fileSystem", "createFileSystem", "isBrowser", "environment", "getEnv", "setEnv", "env", "initialize", "isBrowser", "createBrowserEnv", "isNodejs", "createNodejsEnv", "monkeyPatch", "Canvas", "Image", "createFileSystem", "resolveInput", "arg", "env", "getContext2dOrThrow", "canvasArg", "Canvas", "CanvasRenderingContext2D", "env", "canvas", "resolveInput", "ctx", "AnchorPosition", "DrawTextFieldOptions", "options", "anchorPosition", "backgroundColor", "fontColor", "fontSize", "fontStyle", "padding", "DrawTextField", "_DrawTextField", "text", "anchor", "ctx", "l", "w0", "w1", "canvasDims", "isShiftLeft", "isShiftTop", "textFieldWidth", "textFieldHeight", "x", "y", "width", "height", "newX", "newY", "canvasArg", "canvas", "resolveInput", "getContext2dOrThrow", "maxTextWidth", "textHeight", "upperLeft", "textLine", "i", "DrawBoxOptions", "options", "boxColor", "lineWidth", "label", "drawLabelOptions", "defaultDrawLabelOptions", "DrawTextFieldOptions", "DrawBox", "box", "Box", "canvasArg", "ctx", "getContext2dOrThrow", "x", "y", "width", "height", "DrawTextField", "drawDetections", "canvasArg", "detections", "det", "score", "FaceDetection", "isWithFaceDetection", "box", "Box", "label", "round", "DrawBox", "isMediaLoaded", "media", "Image", "Video", "env", "awaitMediaLoaded", "media", "resolve", "reject", "env", "isMediaLoaded", "onError", "e", "onLoad", "bufferToImage", "buf", "resolve", "reject", "reader", "img", "env", "getMediaDimensions", "input", "Image", "Video", "env", "Dimensions", "createCanvas", "width", "height", "createCanvasElement", "env", "canvas", "createCanvasFromMedia", "media", "dims", "ImageData", "isMediaLoaded", "getMediaDimensions", "getContext2dOrThrow", "imageTensorToCanvas", "imgTensor", "canvas", "targetCanvas", "env", "height", "width", "numChannels", "isTensor4D", "imgTensor3D", "B", "_y", "isMediaElement", "input", "Image", "Canvas", "Video", "env", "imageToSquare", "input", "inputSize", "centerImage", "Image", "Canvas", "env", "createCanvas", "dims", "getMediaDimensions", "scale", "width", "height", "targetCanvas", "inputCanvas", "createCanvasFromMedia", "offset", "dx", "dy", "getContext2dOrThrow", "NetInput", "inputs", "treatAsBatchInput", "input", "idx", "isTensor3D", "isTensor4D", "batchSize", "canvas", "env", "createCanvasFromMedia", "range", "_", "batchIdx", "width", "height", "computeReshapedDimensions", "inputSize", "isCenterInputs", "B", "inputTensors", "Lt", "imgTensor", "je", "padToSquare", "fn", "_y", "imageToSquare", "Fe", "t", "J", "toNetInput", "inputs", "NetInput", "inputArgArray", "getIdxHint", "idx", "inputArray", "resolveInput", "input", "i", "isMediaElement", "isTensor3D", "isTensor4D", "batchSize", "awaitMediaLoaded", "extractFaces", "input", "detections", "Canvas", "env", "canvas", "netInput", "toNetInput", "tensorOrCanvas", "imageTensorToCanvas", "ctx", "getContext2dOrThrow", "det", "FaceDetection", "box", "x", "y", "width", "height", "faceImg", "createCanvas", "extractFaceTensors", "imageTensor", "detections", "isTensor3D", "isTensor4D", "B", "imgHeight", "imgWidth", "numChannels", "det", "FaceDetection", "box", "x", "y", "width", "height", "ym", "fetchOrThrow", "url", "init", "fetch", "env", "res", "fetchImage", "uri", "res", "fetchOrThrow", "blob", "bufferToImage", "fetchJson", "uri", "fetchOrThrow", "fetchNetWeights", "uri", "fetchOrThrow", "bufferToVideo", "buf", "resolve", "reject", "video", "env", "fetchVideo", "uri", "res", "fetchOrThrow", "blob", "bufferToVideo", "getModelUris", "uri", "defaultModelName", "defaultManifestFilename", "protocol", "parts", "s", "manifestFile", "modelBaseUri", "loadWeightMap", "uri", "defaultModelName", "manifestUri", "modelBaseUri", "getModelUris", "manifest", "fetchJson", "Mr", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "ml", "path", "variable", "ir", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "Mr", "manifest", "paramMappings", "params", "weights", "result", "res", "Lt", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "dm", "K", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Or", "K", "Nn", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "K", "Nn", "Or", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "AA", "bias", "Oe", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "pi", "fc_bias", "Oe", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "AA", "pointwise_filter", "bias", "Oe", "SeparableConvParams", "loadSeparableConvParamsFactory", "extractWeightEntry", "prefix", "extractWeightEntryFactory", "weightMap", "paramMappings", "originalPath", "paramRank", "mappedPath", "tensor", "isTensor", "extractWeightsFactory", "weights", "remainingWeights", "extractWeights", "numWeights", "ret", "getRemainingWeights", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractDenseBlock3Params", "channelsIn", "channelsOut", "mappedPrefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock4Params", "extractorsFactory", "dense0", "dense1", "dense2", "dense3", "loadConvParamsFactory", "extractWeightEntry", "prefix", "filters", "bias", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractDenseBlock3Params", "prefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractDenseBlock4Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "FaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock4", "xu", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "K", "Bt", "extractParams", "weights", "channelsIn", "channelsOut", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "fc", "extractFCParamsFactory", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "seperateWeightMaps", "weightMap", "featureExtractorMap", "classifierMap", "key", "map", "FaceProcessor", "NeuralNetwork", "_name", "faceFeatureExtractor", "input", "params", "B", "bottleneckFeatures", "NetInput", "fullyConnectedLayer", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "cIn", "cOut", "classifierWeightSize", "featureExtractorWeights", "classifierWeights", "FACE_EXPRESSION_LABELS", "FaceExpressions", "probabilities", "expression", "idx", "e0", "e1", "FaceExpressionNet", "FaceProcessor", "faceFeatureExtractor", "FaceFeatureExtractor", "input", "B", "Eu", "toNetInput", "netInput", "out", "probabilitesByBatch", "gr", "t", "data", "predictionsByBatch", "probabilites", "FaceExpressions", "isWithFaceExpressions", "obj", "FaceExpressions", "extendWithFaceExpressions", "sourceObj", "expressions", "drawFaceExpressions", "canvasArg", "faceExpressions", "minConfidence", "textFieldAnchor", "e", "expr", "FaceExpressions", "isWithFaceExpressions", "resultsToDisplay", "exprLocal", "anchor", "isWithFaceDetection", "Point", "DrawTextField", "round", "isWithFaceLandmarks", "obj", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "calculateFaceAngle", "mesh", "degrees", "radians", "calcLengthBetweenTwoPoints", "a", "b", "angle", "calcYaw", "leftPoint", "midPoint", "rightPoint", "leftToMidpoint", "rightToMidpoint", "calcRoll", "lever", "pivot", "hypotenuse", "opposite", "angleInRadians", "angleInDegrees", "normalizeAngle", "tiltDirection", "calcPitch", "base", "baseCoords", "Point", "midToBaseLength", "direction", "pt", "extendWithFaceLandmarks", "sourceObj", "unshiftedLandmarks", "shift", "landmarks", "rect", "imageDims", "alignedRect", "DrawFaceLandmarksOptions", "options", "drawLines", "drawPoints", "lineWidth", "lineColor", "pointSize", "pointColor", "DrawFaceLandmarks", "faceLandmarks", "canvasArg", "ctx", "getContext2dOrThrow", "FaceLandmarks68", "drawContour", "drawPoint", "pt", "drawFaceLandmarks", "f", "landmarks", "FaceLandmarks", "isWithFaceLandmarks", "version", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractReductionBlockParams", "channelsIn", "channelsOut", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "channels", "separable_conv2", "extractParams", "weights", "numMainBlocks", "getRemainingWeights", "extractWeightsFactory", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractReductionBlockParams", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "separable_conv2", "extractParamsFromWeightMap", "numMainBlocks", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "disposeUnusedWeightTensors", "conv", "x", "params", "stride", "K", "Nn", "reductionBlock", "isActivateInput", "out", "Or", "depthwiseSeparableConv", "ku", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "J", "normalized", "normalize", "range", "idx", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractFCParams", "extractFCParamsFactory", "age", "gender", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "Gender", "AgeGenderNet", "NeuralNetwork", "faceFeatureExtractor", "TinyXception", "input", "params", "B", "bottleneckFeatures", "NetInput", "pooled", "xu", "age", "fullyConnectedLayer", "gender", "Eu", "toNetInput", "netInput", "out", "ages", "gr", "genders", "ageAndGenderTensors", "ageTensor", "i", "predictionsByBatch", "genderTensor", "probMale", "isMale", "genderProbability", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "featureExtractorWeights", "classifierWeights", "FaceLandmark68NetBase", "FaceProcessor", "output", "inputSize", "originalDimensions", "inputDimensions", "width", "height", "scale", "batchSize", "B", "createInterleavedTensor", "fillX", "fillY", "Fe", "Co", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "gr", "landmarksForBatch", "landmarkTensor", "landmarksArray", "xCoords", "i", "isEven", "yCoords", "FaceLandmarks68", "Point", "t", "FaceLandmark68Net", "FaceLandmark68NetBase", "faceFeatureExtractor", "FaceFeatureExtractor", "extractParamsFromWeightMapTiny", "weightMap", "paramMappings", "extractDenseBlock3Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "extractParamsTiny", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock3Params", "extractorsFactory", "dense0", "dense1", "dense2", "TinyFaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock3", "xu", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "K", "$", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "Nn", "K", "scale", "Or", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Vt", "AA", "extractConvParams", "mappedPrefix", "filters", "bias", "Oe", "extractScaleLayerParams", "numWeights", "biases", "extractConvLayerParams", "conv", "scale", "extractResidualLayerParams", "isDown", "conv1", "conv2", "extractParams", "getRemainingWeights", "extractWeightsFactory", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "pi", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractScaleLayerParams", "prefix", "weights", "biases", "extractConvLayerParams", "filters", "bias", "scale", "extractResidualLayerParams", "extractParamsFromWeightMap", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "isTensor2D", "params", "disposeUnusedWeightTensors", "residual", "x", "params", "out", "conv", "convNoRelu", "K", "Or", "residualDown", "convDown", "pooled", "xu", "zeros", "ke", "isPad", "padShapeX", "zerosW", "ie", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "convDown", "ku", "residual", "residualDown", "globalAvg", "Bt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "gr", "faceDescriptorsForBatch", "t", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createFaceRecognitionNet", "weights", "net", "FaceRecognitionNet", "extendWithFaceDescriptor", "sourceObj", "descriptor", "isWithAge", "obj", "extendWithAge", "sourceObj", "age", "isWithGender", "obj", "isValidProbablitiy", "extendWithGender", "sourceObj", "gender", "genderProbability", "extractorsFactory", "extractWeights", "paramMappings", "extractDepthwiseConvParams", "numChannels", "mappedPrefix", "filters", "AA", "batch_norm_scale", "Oe", "batch_norm_offset", "batch_norm_mean", "batch_norm_variance", "extractConvParams", "channelsIn", "channelsOut", "filterSize", "isPointwiseConv", "bias", "extractPointwiseConvParams", "extractConvPairParams", "depthwise_conv", "pointwise_conv", "extractMobilenetV1Params", "conv_0", "conv_1", "conv_2", "conv_3", "conv_4", "conv_5", "conv_6", "conv_7", "conv_8", "conv_9", "conv_10", "conv_11", "conv_12", "conv_13", "extractPredictionLayerParams", "box_encoding_0_predictor", "class_predictor_0", "box_encoding_1_predictor", "class_predictor_1", "box_encoding_2_predictor", "class_predictor_2", "box_encoding_3_predictor", "class_predictor_3", "box_encoding_4_predictor", "class_predictor_4", "box_encoding_5_predictor", "class_predictor_5", "extractParams", "weights", "getRemainingWeights", "extractWeightsFactory", "mobilenetv1", "prediction_layer", "output_layer", "uy", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractPointwiseConvParams", "prefix", "idx", "mappedPrefix", "filters", "batch_norm_offset", "extractConvPairParams", "prefixDepthwiseConv", "mappedPrefixDepthwiseConv", "mappedPrefixPointwiseConv", "batch_norm_scale", "batch_norm_mean", "batch_norm_variance", "extractMobilenetV1Params", "extractConvParams", "bias", "extractBoxPredictorParams", "box_encoding_predictor", "class_predictor", "extractPredictionLayerParams", "extractParamsFromWeightMap", "extra_dim", "isTensor3D", "params", "disposeUnusedWeightTensors", "pointwiseConvLayer", "x", "params", "strides", "B", "out", "Nn", "K", "vr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "ia", "oa", "vr", "getStridesForLayerIdx", "layerIdx", "idx", "mobileNetV1", "conv11", "pointwiseConvLayer", "param", "depthwiseConvStrides", "IOU", "boxes", "i", "j", "boxesData", "yminI", "xminI", "ymaxI", "xmaxI", "yminJ", "xminJ", "ymaxJ", "xmaxJ", "areaI", "areaJ", "intersectionYmin", "intersectionXmin", "intersectionYmax", "intersectionXmax", "intersectionArea", "nonMaxSuppression", "scores", "maxOutputSize", "iouThreshold", "scoreThreshold", "numBoxes", "outputSize", "candidates", "score", "boxIndex", "c", "c1", "c2", "suppressFunc", "x", "selected", "originalScore", "iou", "getCenterCoordinatesAndSizesLayer", "x", "vec", "gr", "Vt", "sizes", "at", "centers", "K", "ut", "decodeBoxesLayer", "x0", "x1", "div0_out", "$", "Ke", "add0_out", "div1_out", "add1_out", "Fe", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Rr", "scoresAndClasses", "en", "Ot", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "B", "batchSize", "boxPredictionEncoding", "R", "convLayer", "classPrediction", "predictionLayer", "x", "conv11", "params", "B", "conv0", "pointwiseConvLayer", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "boxPrediction0", "boxPredictionLayer", "boxPrediction1", "boxPrediction2", "boxPrediction3", "boxPrediction4", "boxPrediction5", "boxPredictions", "ie", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "x", "at", "ut", "features", "mobileNetV1", "boxPredictions", "classPredictions", "predictionLayer", "outputLayer", "toNetInput", "options", "maxResults", "minConfidence", "SsdMobilenetv1Options", "netInput", "_boxes", "_scores", "boxes", "scores", "i", "scoresData", "indices", "nonMaxSuppression", "reshapedDims", "inputSize", "padX", "padY", "boxesData", "results", "idx", "top", "bottom", "val", "left", "right", "FaceDetection", "Rect", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createSsdMobilenetv1", "weights", "net", "SsdMobilenetv1", "createFaceDetectionNet", "FaceDetectionNet", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "DEFAULT_MODEL_NAME", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "isNumber", "arg", "validateConfig", "config", "c", "a", "leaky", "x", "B", "min", "$", "pt", "K", "Or", "at", "convWithBatchNorm", "x", "params", "B", "out", "mn", "Nn", "at", "$", "K", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "mn", "dm", "K", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Oe", "truediv", "extractConvWithBatchNormParams", "channelsIn", "channelsOut", "conv", "bn", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractParams", "weights", "config", "boxEncodingSize", "filterSizes", "getRemainingWeights", "extractWeightsFactory", "params", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "conv0", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "conv8", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractBatchNormParams", "prefix", "sub", "truediv", "extractConvParams", "filters", "bias", "extractConvWithBatchNormParams", "conv", "bn", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractParamsFromWeightMap", "config", "params", "numFilters", "disposeUnusedWeightTensors", "TinyYolov2Options", "inputSize", "scoreThreshold", "_TinyYolov2Base", "NeuralNetwork", "config", "validateConfig", "x", "params", "out", "convWithBatchNorm", "ku", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "J", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "gr", "inputDimensions", "results", "boxes", "res", "scores", "classScores", "classNames", "nonMaxSuppression", "box", "idx", "ObjectDetection", "weightMap", "extractParamsFromWeightMap", "weights", "filterSizes", "numFilters", "extractParams", "outputTensor", "inputBlobDimensions", "width", "height", "correctionFactorX", "correctionFactorY", "numCells", "numBoxes", "boxesTensor", "scoresTensor", "classScoresTensor", "reshaped", "Eu", "pt", "scoresData", "boxesData", "row", "col", "anchor", "score", "sigmoid", "ctX", "ctY", "widthLocal", "heightLocal", "y", "pos", "classScore", "label", "BoundingBox", "classesTensor", "classesData", "_", "i", "max", "curr", "TinyYolov2Base", "TinyYolov2", "TinyYolov2Base", "withSeparableConvs", "config", "IOU_THRESHOLD", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "BOX_ANCHORS", "input", "forwardParams", "det", "FaceDetection", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "DEFAULT_MODEL_NAME", "weightMap", "createTinyYolov2", "weights", "withSeparableConvs", "net", "TinyYolov2", "TinyFaceDetectorOptions", "TinyYolov2Options", "ComposableTask", "onfulfilled", "extractAllFacesAndComputeResults", "parentResults", "input", "computeResults", "extractedFaces", "getRectForAlignment", "alignedRect", "faceBoxes", "parentResult", "isWithFaceLandmarks", "faces", "Lt", "extractFaceTensors", "extractFaces", "results", "f", "extractSingleFaceAndComputeResult", "computeResult", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "MEAN_RGB", "TinyFaceDetector", "TinyYolov2Base", "config", "IOU_THRESHOLD", "BOX_ANCHORS", "MEAN_RGB", "input", "forwardParams", "det", "FaceDetection", "weightMap", "nets", "SsdMobilenetv1", "TinyFaceDetector", "TinyYolov2", "FaceLandmark68Net", "FaceLandmark68TinyNet", "FaceRecognitionNet", "FaceExpressionNet", "AgeGenderNet", "ssdMobilenetv1", "input", "options", "tinyFaceDetector", "tinyYolov2", "detectFaceLandmarks", "detectFaceLandmarksTiny", "computeFaceDescriptor", "recognizeFaceExpressions", "predictAgeAndGender", "loadSsdMobilenetv1Model", "url", "loadTinyFaceDetectorModel", "loadTinyYolov2Model", "loadFaceLandmarkModel", "loadFaceLandmarkTinyModel", "loadFaceRecognitionModel", "loadFaceExpressionModel", "loadAgeGenderModel", "loadFaceDetectionModel", "locateFaces", "detectLandmarks", "PredictFaceExpressionsTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllFaceExpressionsTask", "parentResults", "faceExpressionsByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "extendWithFaceExpressions", "PredictAllAgeAndGenderTask", "PredictSingleFaceExpressionsTask", "faceExpressions", "extractSingleFaceAndComputeResult", "PredictSingleAgeAndGenderTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "PredictAgeAndGenderTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllAgeAndGenderTask", "parentResults", "ageAndGenderByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "age", "gender", "genderProbability", "extendWithAge", "extendWithGender", "PredictAllFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "ComputeFaceDescriptorsTaskBase", "ComposableTask", "parentTask", "input", "ComputeAllFaceDescriptorsTask", "parentResults", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "descriptor", "i", "extendWithFaceDescriptor", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "DetectFaceLandmarksTaskBase", "ComposableTask", "parentTask", "input", "useTinyLandmarkNet", "nets", "DetectAllFaceLandmarksTask", "parentResults", "detections", "res", "faces", "Lt", "extractFaceTensors", "extractFaces", "faceLandmarksByFace", "face", "f", "_parentResult", "i", "parentResult", "extendWithFaceLandmarks", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "DetectSingleFaceLandmarksTask", "detection", "landmarks", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "DetectFacesTaskBase", "ComposableTask", "input", "options", "SsdMobilenetv1Options", "DetectAllFacesTask", "result", "TinyFaceDetectorOptions", "nets", "TinyYolov2Options", "resolve", "reject", "detections", "detection", "extendWithFaceDetection", "err", "useTinyLandmarkNet", "DetectAllFaceLandmarksTask", "PredictAllFaceExpressionsTask", "PredictAllAgeAndGenderTask", "DetectSingleFaceTask", "faceDetections", "faceDetectionWithHighestScore", "faceDetection", "DetectSingleFaceLandmarksTask", "PredictSingleFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "detectSingleFace", "input", "options", "SsdMobilenetv1Options", "DetectSingleFaceTask", "detectAllFaces", "DetectAllFacesTask", "allFacesSsdMobilenetv1", "input", "minConfidence", "detectAllFaces", "SsdMobilenetv1Options", "allFacesTinyYolov2", "forwardParams", "TinyYolov2Options", "allFaces", "euclideanDistance", "arr1", "arr2", "desc1", "desc2", "val", "i", "res", "diff", "FaceMatcher", "_FaceMatcher", "inputs", "distanceThreshold", "inputArray", "count", "createUniqueLabel", "desc", "LabeledFaceDescriptors", "queryDescriptor", "descriptors", "d", "euclideanDistance", "d1", "d2", "label", "FaceMatch", "best", "curr", "bestMatch", "ld", "json", "labeledDescriptors", "createTinyFaceDetector", "weights", "net", "TinyFaceDetector", "resizeResults", "results", "dimensions", "width", "height", "Dimensions", "obj", "isWithFaceLandmarks", "resizedDetection", "resizedLandmarks", "extendWithFaceLandmarks", "extendWithFaceDetection", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "version"] } diff --git a/dist/face-api.js b/dist/face-api.js index 465030c..a3134d9 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -4,69 +4,69 @@ author: ' */ -"use strict";var faceapi=(()=>{var px=Object.defineProperty;var NR=Object.getOwnPropertyDescriptor;var TR=Object.getOwnPropertyNames;var CR=Object.prototype.hasOwnProperty;var ER=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var $h=(e,t)=>{for(var n in t)px(e,n,{get:t[n],enumerable:!0})},_R=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of TR(t))!CR.call(e,r)&&r!==n&&px(e,r,{get:()=>t[r],enumerable:!(a=NR(t,r))||a.enumerable});return e};var AR=e=>_R(px({},"__esModule",{value:!0}),e);var Xge={};$h(Xge,{AgeGenderNet:()=>Kd,BoundingBox:()=>il,Box:()=>on,ComposableTask:()=>Sa,ComputeAllFaceDescriptorsTask:()=>Hr,ComputeFaceDescriptorsTaskBase:()=>Jd,ComputeSingleFaceDescriptorTask:()=>qr,DetectAllFaceLandmarksTask:()=>eh,DetectAllFacesTask:()=>Hp,DetectFaceLandmarksTaskBase:()=>Qd,DetectFacesTaskBase:()=>nh,DetectSingleFaceLandmarksTask:()=>th,DetectSingleFaceTask:()=>ah,Dimensions:()=>Un,FACE_EXPRESSION_LABELS:()=>Hk,FaceDetection:()=>Tt,FaceDetectionNet:()=>Jk,FaceExpressionNet:()=>jd,FaceExpressions:()=>Vr,FaceLandmark68Net:()=>bl,FaceLandmark68TinyNet:()=>Xd,FaceLandmarkNet:()=>Xk,FaceLandmarks:()=>sa,FaceLandmarks5:()=>Fk,FaceLandmarks68:()=>ul,FaceMatch:()=>Ap,FaceMatcher:()=>tI,FaceRecognitionNet:()=>yl,Gender:()=>vg,LabeledBox:()=>Fp,LabeledFaceDescriptors:()=>Ls,NetInput:()=>xr,NeuralNetwork:()=>un,ObjectDetection:()=>ol,Point:()=>Ue,PredictedBox:()=>$k,Rect:()=>ll,SsdMobilenetv1:()=>zs,SsdMobilenetv1Options:()=>Ia,TinyFaceDetector:()=>kl,TinyFaceDetectorOptions:()=>Zd,TinyYolov2:()=>vl,TinyYolov2Options:()=>Ja,allFaces:()=>qge,allFacesSsdMobilenetv1:()=>GD,allFacesTinyYolov2:()=>Hge,awaitMediaLoaded:()=>zk,bufferToImage:()=>Wk,computeFaceDescriptor:()=>Fge,createCanvas:()=>ml,createCanvasFromMedia:()=>Ud,createFaceDetectionNet:()=>Sge,createFaceRecognitionNet:()=>hge,createSsdMobilenetv1:()=>_D,createTinyFaceDetector:()=>jge,createTinyYolov2:()=>Cge,detectAllFaces:()=>Ag,detectFaceLandmarks:()=>VD,detectFaceLandmarksTiny:()=>Age,detectLandmarks:()=>Uge,detectSingleFace:()=>Gge,draw:()=>jk,env:()=>tt,euclideanDistance:()=>eI,extendWithAge:()=>Sg,extendWithFaceDescriptor:()=>Ig,extendWithFaceDetection:()=>pl,extendWithFaceExpressions:()=>gg,extendWithFaceLandmarks:()=>Wp,extendWithGender:()=>Ng,extractFaceTensors:()=>Rp,extractFaces:()=>Dp,fetchImage:()=>Qfe,fetchJson:()=>Uk,fetchNetWeights:()=>ege,fetchOrThrow:()=>Br,fetchVideo:()=>tge,getContext2dOrThrow:()=>Gn,getMediaDimensions:()=>hl,imageTensorToCanvas:()=>Bk,imageToSquare:()=>Vk,inverseSigmoid:()=>qfe,iou:()=>Ck,isMediaElement:()=>lg,isMediaLoaded:()=>Vd,isWithAge:()=>mge,isWithFaceDetection:()=>yr,isWithFaceExpressions:()=>qk,isWithFaceLandmarks:()=>gl,isWithGender:()=>fge,loadAgeGenderModel:()=>Wge,loadFaceDetectionModel:()=>Bge,loadFaceExpressionModel:()=>zge,loadFaceLandmarkModel:()=>Oge,loadFaceLandmarkTinyModel:()=>Pge,loadFaceRecognitionModel:()=>Lge,loadSsdMobilenetv1Model:()=>UD,loadTinyFaceDetectorModel:()=>Rge,loadTinyYolov2Model:()=>Mge,loadWeightMap:()=>Gk,locateFaces:()=>Vge,matchDimensions:()=>nge,minBbox:()=>Ek,nets:()=>nt,nonMaxSuppression:()=>_k,normalize:()=>Ya,padToSquare:()=>Ak,predictAgeAndGender:()=>Dge,recognizeFaceExpressions:()=>$ge,resizeResults:()=>HD,resolveInput:()=>cl,shuffleArray:()=>Hfe,sigmoid:()=>zd,ssdMobilenetv1:()=>BD,tf:()=>Oe,tinyFaceDetector:()=>Ege,tinyYolov2:()=>_ge,toNetInput:()=>vt,utils:()=>Tk,validateConfig:()=>Qk,version:()=>Kge});var Oe={};$h(Oe,{Abs:()=>uu,Acos:()=>Ci,Acosh:()=>Ei,AdadeltaOptimizer:()=>Yw,AdagradOptimizer:()=>Zw,AdamOptimizer:()=>Jw,AdamaxOptimizer:()=>Qw,Add:()=>Is,AddN:()=>_i,All:()=>pu,Any:()=>cu,ArgMax:()=>du,ArgMin:()=>hu,Asin:()=>Ai,Asinh:()=>Fi,Atan:()=>$i,Atan2:()=>Ri,Atanh:()=>Di,AvgPool:()=>Mi,AvgPool3D:()=>mu,AvgPool3DGrad:()=>Wc,AvgPoolGrad:()=>zc,BackendWasm:()=>rD,BatchMatMul:()=>Oi,BatchToSpaceND:()=>fu,Bincount:()=>gu,BitwiseAnd:()=>bu,BroadcastArgs:()=>Bc,BroadcastTo:()=>hN,Callback:()=>aE,CallbackList:()=>J2,Cast:()=>Pi,Ceil:()=>Li,ClipByValue:()=>Ss,Complex:()=>Mm,ComplexAbs:()=>Vc,Concat:()=>yu,Conv2D:()=>zi,Conv2DBackpropFilter:()=>Om,Conv2DBackpropInput:()=>Wi,Conv3D:()=>Bi,Conv3DBackpropFilterV2:()=>xu,Conv3DBackpropInputV2:()=>vu,Cos:()=>Vi,Cosh:()=>Ui,CropAndResize:()=>ku,Cumprod:()=>wu,Cumsum:()=>Gi,CustomCallback:()=>eC,DataStorage:()=>$m,DenseBincount:()=>Uc,DepthToSpace:()=>Iu,DepthwiseConv2dNative:()=>Hi,DepthwiseConv2dNativeBackpropFilter:()=>Pm,DepthwiseConv2dNativeBackpropInput:()=>Lm,Diag:()=>Gc,Dilation2D:()=>qi,Dilation2DBackpropFilter:()=>jl,Dilation2DBackpropInput:()=>ql,Draw:()=>zm,ENV:()=>Dv,EarlyStopping:()=>rE,Einsum:()=>Wm,Elu:()=>Ki,EluGrad:()=>Su,Environment:()=>cN,Equal:()=>Nu,Erf:()=>Xi,Exp:()=>Yi,ExpandDims:()=>Tu,Expm1:()=>Zi,FFT:()=>Bm,Fill:()=>Hc,FlipLeftRight:()=>Cu,Floor:()=>Ji,FloorDiv:()=>Qi,FromPixels:()=>sm,FusedBatchNorm:()=>eo,FusedConv2D:()=>li,FusedDepthwiseConv2D:()=>ui,GPGPUContext:()=>em,GatherNd:()=>_u,GatherV2:()=>Eu,GraphModel:()=>z1,Greater:()=>Au,GreaterEqual:()=>to,History:()=>Q2,IFFT:()=>Vm,Identity:()=>no,Imag:()=>Um,InputSpec:()=>zt,IsFinite:()=>ao,IsInf:()=>ro,IsNan:()=>so,KernelBackend:()=>Pc,LRN:()=>uo,LRNGrad:()=>Pu,LayerVariable:()=>G2,LayersModel:()=>_r,LeakyRelu:()=>io,Less:()=>Fu,LessEqual:()=>$u,LinSpace:()=>Du,Log:()=>oo,Log1p:()=>lo,LogSoftmax:()=>fN,LogicalAnd:()=>Ru,LogicalNot:()=>Mu,LogicalOr:()=>Ou,LogicalXor:()=>mN,LowerBound:()=>wM,MathBackendCPU:()=>V1,MathBackendWebGL:()=>gk,MatrixBandPart:()=>kM,Max:()=>po,MaxPool:()=>ho,MaxPool3D:()=>Lu,MaxPool3DGrad:()=>jc,MaxPoolGrad:()=>qc,MaxPoolWithArgmax:()=>Kc,Maximum:()=>co,Mean:()=>mo,Min:()=>fo,Minimum:()=>go,MirrorPad:()=>bo,Mod:()=>yo,MomentumOptimizer:()=>e0,Multinomial:()=>zu,Multiply:()=>xo,Neg:()=>Wu,NonMaxSuppressionV3:()=>Vu,NonMaxSuppressionV4:()=>Uu,NonMaxSuppressionV5:()=>Gu,NotEqual:()=>Bu,OP_SCOPE_SUFFIX:()=>Lv,OneHot:()=>vo,OnesLike:()=>Hu,Optimizer:()=>Or,OptimizerConstructors:()=>I2,Pack:()=>qu,PadV2:()=>wo,Pool:()=>IM,Pow:()=>ko,Prelu:()=>Io,Prod:()=>So,RMSPropOptimizer:()=>t0,RNN:()=>Pr,RaggedGather:()=>Gm,RaggedRange:()=>Hm,RaggedTensorToTensor:()=>qm,Range:()=>Xc,Rank:()=>_x,Real:()=>jm,RealDiv:()=>ji,Reciprocal:()=>No,Reduction:()=>wn,Relu:()=>To,Relu6:()=>_o,Reshape:()=>ju,ResizeBilinear:()=>Eo,ResizeBilinearGrad:()=>Xu,ResizeNearestNeighbor:()=>Co,ResizeNearestNeighborGrad:()=>Ku,Reverse:()=>Ao,RotateWithOffset:()=>pp,Round:()=>Fo,Rsqrt:()=>$o,SGDOptimizer:()=>Ef,ScatterNd:()=>Yu,SearchSorted:()=>Ju,Select:()=>Qu,Selu:()=>Do,Sequential:()=>Bf,Sigmoid:()=>Po,Sign:()=>Oo,Sin:()=>Ro,Sinh:()=>Mo,Slice:()=>ep,Softmax:()=>Bo,Softplus:()=>Lo,SpaceToBatchND:()=>tp,SparseFillEmptyRows:()=>Yc,SparseReshape:()=>ap,SparseSegmentMean:()=>Zc,SparseSegmentSum:()=>Jc,SparseToDense:()=>rp,SplitV:()=>np,Sqrt:()=>zo,Square:()=>Qc,SquaredDifference:()=>Vo,StaticRegexReplace:()=>ed,Step:()=>Ts,StridedSlice:()=>sp,StringNGrams:()=>td,StringSplit:()=>nd,StringToHashBucketFast:()=>ad,Sub:()=>Uo,Sum:()=>Wo,SymbolicTensor:()=>Ha,Tan:()=>Go,Tanh:()=>Ho,Tensor:()=>Ce,TensorBuffer:()=>Wt,TensorScatterUpdate:()=>Zu,Tile:()=>Ns,TopK:()=>ip,Transform:()=>op,Transpose:()=>Er,Unique:()=>rd,Unpack:()=>lp,UnsortedSegmentSum:()=>sd,UpperBound:()=>SM,Variable:()=>cs,ZerosLike:()=>up,_FusedMatMul:()=>oi,abs:()=>Lt,acos:()=>Gv,acosh:()=>Hv,add:()=>X,addN:()=>VN,all:()=>Jm,any:()=>Sc,argMax:()=>hi,argMin:()=>qv,asin:()=>jv,asinh:()=>Kv,atan:()=>Xv,atan2:()=>Yv,atanh:()=>Zv,avgPool:()=>xa,avgPool3d:()=>Qv,backend:()=>Wv,backend_util:()=>T,basicLSTMCell:()=>qN,batchNorm:()=>Es,batchNorm2d:()=>ew,batchNorm3d:()=>tw,batchNorm4d:()=>nw,batchToSpaceND:()=>dd,bincount:()=>aw,bitwiseAnd:()=>jN,booleanMaskAsync:()=>OT,broadcastArgs:()=>KN,broadcastTo:()=>ri,broadcast_util:()=>cp,browser:()=>Xo,buffer:()=>Pe,callbacks:()=>xj,cast:()=>re,ceil:()=>rw,clipByValue:()=>an,clone:()=>or,complex:()=>Ar,concat:()=>et,concat1d:()=>sw,concat2d:()=>iw,concat3d:()=>ow,concat4d:()=>lw,constraints:()=>K2,conv1d:()=>Qm,conv2d:()=>$t,conv2dTranspose:()=>ef,conv3d:()=>pw,conv3dTranspose:()=>cw,copyRegisteredKernels:()=>EM,cos:()=>hd,cosh:()=>tf,cosineWindow:()=>If,cumprod:()=>Cc,cumsum:()=>nf,customGrad:()=>cr,data:()=>EE,denseBincount:()=>um,deprecationWarn:()=>zv,depthToSpace:()=>dw,depthwiseConv2d:()=>_s,deregisterOp:()=>kj,device_util:()=>ud,diag:()=>YN,dilation2d:()=>hw,disableDeprecationWarnings:()=>iO,dispose:()=>Ee,disposeVariables:()=>oO,div:()=>he,divNoNan:()=>mw,dot:()=>fw,dropout:()=>Hw,einsum:()=>Js,elu:()=>dp,enableDebugMode:()=>sO,enableProdMode:()=>rO,enclosingPowerOfTwo:()=>qw,engine:()=>Ea,ensureShape:()=>JN,env:()=>G,equal:()=>ea,erf:()=>gw,euclideanNorm:()=>xw,exp:()=>mn,expandDims:()=>Gt,expm1:()=>vw,eye:()=>af,fft:()=>Id,fill:()=>yn,findBackend:()=>hO,findBackendFactory:()=>mO,floor:()=>mp,floorDiv:()=>Zm,forceHalfFloat:()=>JA,fused:()=>tu,gather:()=>fp,gatherND:()=>WT,gather_util:()=>r0,getBackend:()=>_N,getGradient:()=>Cx,getKernel:()=>wc,getKernelsForBackend:()=>im,getThreadsCount:()=>Ofe,gpgpu_util:()=>_A,grad:()=>q3,grads:()=>j3,greater:()=>Tn,greaterEqual:()=>Rr,ifft:()=>eu,imag:()=>md,image:()=>Qn,inTopKAsync:()=>BT,initializers:()=>X2,input:()=>mC,io:()=>qt,irfft:()=>bf,isFinite:()=>ww,isInf:()=>kw,isNaN:()=>Iw,keep:()=>Ht,kernel_impls:()=>fr,layers:()=>Y2,leakyRelu:()=>fd,less:()=>Yl,lessEqual:()=>As,linalg:()=>Xw,linspace:()=>aT,loadGraphModel:()=>E5,loadGraphModelSync:()=>_5,loadLayersModel:()=>f6,localResponseNormalization:()=>Sw,log:()=>ta,log1p:()=>gd,logSigmoid:()=>Nw,logSoftmax:()=>sf,logSumExp:()=>bd,logicalAnd:()=>Fa,logicalNot:()=>yd,logicalOr:()=>of,logicalXor:()=>Tw,losses:()=>QT,lowerBound:()=>sT,matMul:()=>$e,math:()=>p2,max:()=>fa,maxPool:()=>Dt,maxPool3d:()=>Cw,maxPoolWithArgmax:()=>iT,maximum:()=>mr,mean:()=>Et,memory:()=>lm,meshgrid:()=>oT,metrics:()=>eE,min:()=>Xl,minimum:()=>fs,mirrorPad:()=>Ew,mod:()=>_w,model:()=>y6,models:()=>tE,moments:()=>xd,movingAverage:()=>PT,mul:()=>z,multiRNNCell:()=>lT,multinomial:()=>uT,neg:()=>yt,nextFrame:()=>s0,norm:()=>hp,notEqual:()=>bi,oneHot:()=>Zl,ones:()=>On,onesLike:()=>na,op:()=>L,outerProduct:()=>pT,pad:()=>va,pad1d:()=>cT,pad2d:()=>dT,pad3d:()=>hT,pad4d:()=>mT,pool:()=>Aw,pow:()=>Fr,prelu:()=>wd,print:()=>Uv,prod:()=>Fw,profile:()=>lO,raggedGather:()=>fT,raggedRange:()=>gT,raggedTensorToTensor:()=>bT,rand:()=>yT,randomGamma:()=>kT,randomNormal:()=>uf,randomStandardNormal:()=>IT,randomUniform:()=>Fs,randomUniformInt:()=>ST,range:()=>yi,ready:()=>cO,real:()=>Jl,reciprocal:()=>Ow,registerBackend:()=>Ym,registerCallbackConstructor:()=>v6,registerGradient:()=>gN,registerKernel:()=>id,registerOp:()=>wj,regularizers:()=>nE,relu:()=>Ke,relu6:()=>pf,removeBackend:()=>dO,reshape:()=>W,reverse:()=>ya,reverse1d:()=>NT,reverse2d:()=>TT,reverse3d:()=>CT,reverse4d:()=>ET,rfft:()=>Sd,round:()=>cf,rsqrt:()=>df,scalar:()=>ve,scatterND:()=>LT,scatter_util:()=>xf,searchSorted:()=>lf,selu:()=>hf,separableConv2d:()=>$s,sequential:()=>x6,serialization:()=>ne,setBackend:()=>pO,setPlatform:()=>fO,setThreadsCount:()=>Mfe,setWasmPath:()=>Dfe,setWasmPaths:()=>Rfe,setWebGLContext:()=>Q_,setdiff1dAsync:()=>_T,shared:()=>U1,sigmoid:()=>ma,sign:()=>Pw,signal:()=>JT,sin:()=>mf,sinh:()=>ff,slice:()=>Ve,slice1d:()=>kd,slice2d:()=>gf,slice3d:()=>jo,slice4d:()=>Ql,slice_util:()=>Kt,softmax:()=>ja,softplus:()=>qo,spaceToBatchND:()=>vd,sparse:()=>e2,sparseToDense:()=>zT,spectral:()=>ZT,split:()=>Pn,sqrt:()=>hn,square:()=>pt,squaredDifference:()=>yf,squeeze:()=>Ds,stack:()=>Ft,step:()=>Ko,stridedSlice:()=>Lw,string:()=>t2,sub:()=>pe,sum:()=>fe,sumOutType:()=>Xm,tan:()=>zw,tanh:()=>fi,tensor:()=>bn,tensor1d:()=>qe,tensor2d:()=>Aa,tensor3d:()=>Nd,tensor4d:()=>Da,tensor5d:()=>AT,tensor6d:()=>FT,tensorScatterUpdate:()=>DT,tensor_util:()=>Wa,test_util:()=>xT,tidy:()=>O,tile:()=>Mn,time:()=>uO,topk:()=>Bw,train:()=>Ys,transpose:()=>De,truncatedNormal:()=>wf,unique:()=>Vw,unregisterGradient:()=>CM,unregisterKernel:()=>TM,unsortedSegmentSum:()=>kf,unstack:()=>dt,upcastType:()=>ga,upperBound:()=>RT,util:()=>w,valueAndGrad:()=>K3,valueAndGrads:()=>X3,variable:()=>Uw,variableGrads:()=>rT,version:()=>Ufe,version_converter:()=>F5,version_core:()=>x4,version_cpu:()=>$8,version_layers:()=>E0,version_wasm:()=>Pfe,version_webgl:()=>wee,webgl:()=>kee,webgl_util:()=>J_,where:()=>nn,whereAsync:()=>Gw,zeros:()=>It,zerosLike:()=>je});var FR=Object.create,_v=Object.defineProperty,$R=Object.getOwnPropertyDescriptor,DR=Object.getOwnPropertyNames,RR=Object.getPrototypeOf,MR=Object.prototype.hasOwnProperty,Vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_e=(e,t)=>{for(var n in t)_v(e,n,{get:t[n],enumerable:!0})},OR=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of DR(t))!MR.call(e,r)&&r!==n&&_v(e,r,{get:()=>t[r],enumerable:!(a=$R(t,r))||a.enumerable});return e},ks=(e,t,n)=>(n=e!=null?FR(RR(e)):{},OR(t||!e||!e.__esModule?_v(n,"default",{value:e,enumerable:!0}):n,e)),PR=Vt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?v:x;if(M){if(S<0)return v;if(S>=g)return F}else{if(S<=-b)return D;if(S+1>=b)return _}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var H=l(p(B,8)),j=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(j=Z,j.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,j=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,se=0;return se+=H+J,te+=se>>>16,se&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+j,ee&=65535,u(te<<16|se,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,j=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,se=0,ie=0;return ie+=j*ee,se+=ie>>>16,ie&=65535,se+=H*ee,te+=se>>>16,se&=65535,se+=j*J,te+=se>>>16,se&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=j*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+j*K,ae&=65535,u(se<<16|ie,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?v:x;var B,U,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return v;if(S.gt(this.shru(1)))return N;H=v}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var j=this.shr(1);return B=j.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))return this.unsigned?v:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();H=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},$.shr=$.shiftRight,$.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},$.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),LR=Vt(()=>{}),zR=Vt(()=>{}),WR=Vt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}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)}),BR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),VR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=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^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),UR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),GR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,b,y=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,d.i=f}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),HR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),qR=Vt(()=>{}),jR=Vt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,N,C){var _=[];N=N==!0?{entropy:!0}:N||{};var F=y(b(N.entropy?[I,v(a)]:I==null?x():I,3),_),D=new f(_),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(v(D.S),a),(N.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),B?(r[l]=S,M):S})($,F,"global"in N?N.global:this==r,N.state)}function f(I){var N,C=I.length,_=this,F=0,D=_.i=_.j=0,$=_.S=[];for(C||(I=[C++]);F{var n=WR(),a=BR(),r=VR(),s=UR(),i=GR(),o=HR(),l=jR();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),QS=Vt(()=>{}),Av=Vt(()=>{}),eN=Vt(()=>{}),KR=Vt(()=>{}),XR=Vt(()=>{}),YR=Vt(()=>{}),ZR=Vt((e,t)=>{var n=(()=>{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 ue.buffer!=Re&&ut(ue.buffer),gt}function i(){return ue.buffer!=Re&&ut(ue.buffer),qn}function o(){return ue.buffer!=Re&&ut(ue.buffer),Ot}function l(){return ue.buffer!=Re&&ut(ue.buffer),pn}function u(){return ue.buffer!=Re&&ut(ue.buffer),An}function p(){return ue.buffer!=Re&&ut(ue.buffer),la}function d(){return ue.buffer!=Re&&ut(ue.buffer),Fn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,q){h=R,m=q});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,q)=>{throw q},v=typeof window=="object",I=typeof importScripts=="function",N=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,_="";function F(R){return c.locateFile?c.locateFile(R,_):_+R}var D,$,S,M;function B(R){R instanceof Hs||J("exiting due to exception: "+R)}if(N){var U=Av(),H=eN();I?_=H.dirname(_)+"/":_=__dirname+"/",D=(q,le)=>(q=_l(q)?new URL(q):H.normalize(q),U.readFileSync(q,le?void 0:"utf8")),S=q=>{var le=D(q,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(q,le,Ne)=>{q=_l(q)?new URL(q):H.normalize(q),U.readFile(q,function(Me,Fe){Me?Ne(Me):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(q){if(!(q instanceof Hs))throw q}),process.on("unhandledRejection",function(q){throw q}),x=(q,le)=>{if(Na())throw process.exitCode=q,le;B(le),process.exit(q)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=KR()}catch(q){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),q}global.Worker=R.Worker}else(v||I)&&(I?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof a!="undefined"&&a&&(_=a),_.indexOf("blob:")!==0?_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):_="",N||(D=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.send(null),q.responseText},I&&(S=R=>{var q=new XMLHttpRequest;return q.open("GET",R,!1),q.responseType="arraybuffer",q.send(null),new Uint8Array(q.response)}),$=(R,q,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){q(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);N&&typeof performance=="undefined"&&(global.performance=XR().performance);var j=console.log.bind(console),K=console.warn.bind(console);N&&(j=R=>U.writeSync(1,R+` +"use strict";var faceapi=(()=>{var cx=Object.defineProperty;var CR=Object.getOwnPropertyDescriptor;var ER=Object.getOwnPropertyNames;var _R=Object.prototype.hasOwnProperty;var AR=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var $h=(e,t)=>{for(var n in t)cx(e,n,{get:t[n],enumerable:!0})},FR=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ER(t))!_R.call(e,r)&&r!==n&&cx(e,r,{get:()=>t[r],enumerable:!(a=CR(t,r))||a.enumerable});return e};var $R=e=>FR(cx({},"__esModule",{value:!0}),e);var Qge={};$h(Qge,{AgeGenderNet:()=>Kd,BoundingBox:()=>il,Box:()=>ln,ComposableTask:()=>Sa,ComputeAllFaceDescriptorsTask:()=>Hr,ComputeFaceDescriptorsTaskBase:()=>Jd,ComputeSingleFaceDescriptorTask:()=>jr,DetectAllFaceLandmarksTask:()=>eh,DetectAllFacesTask:()=>Hp,DetectFaceLandmarksTaskBase:()=>Qd,DetectFacesTaskBase:()=>nh,DetectSingleFaceLandmarksTask:()=>th,DetectSingleFaceTask:()=>ah,Dimensions:()=>Un,FACE_EXPRESSION_LABELS:()=>Hk,FaceDetection:()=>Tt,FaceDetectionNet:()=>Jk,FaceExpressionNet:()=>qd,FaceExpressions:()=>Vr,FaceLandmark68Net:()=>bl,FaceLandmark68TinyNet:()=>Xd,FaceLandmarkNet:()=>Xk,FaceLandmarks:()=>sa,FaceLandmarks5:()=>Fk,FaceLandmarks68:()=>ul,FaceMatch:()=>Ap,FaceMatcher:()=>tI,FaceRecognitionNet:()=>yl,Gender:()=>wg,LabeledBox:()=>Fp,LabeledFaceDescriptors:()=>zs,NetInput:()=>vr,NeuralNetwork:()=>pn,ObjectDetection:()=>ol,Point:()=>Ue,PredictedBox:()=>$k,Rect:()=>ll,SsdMobilenetv1:()=>Ws,SsdMobilenetv1Options:()=>Ia,TinyFaceDetector:()=>kl,TinyFaceDetectorOptions:()=>Zd,TinyYolov2:()=>vl,TinyYolov2Options:()=>Ja,allFaces:()=>Yge,allFacesSsdMobilenetv1:()=>jD,allFacesTinyYolov2:()=>Xge,awaitMediaLoaded:()=>zk,bufferToImage:()=>Wk,computeFaceDescriptor:()=>Mge,createCanvas:()=>ml,createCanvasFromMedia:()=>Ud,createFaceDetectionNet:()=>Ege,createFaceRecognitionNet:()=>bge,createSsdMobilenetv1:()=>FD,createTinyFaceDetector:()=>Zge,createTinyYolov2:()=>Fge,detectAllFaces:()=>Fg,detectFaceLandmarks:()=>GD,detectFaceLandmarksTiny:()=>Rge,detectLandmarks:()=>qge,detectSingleFace:()=>Kge,draw:()=>qk,env:()=>tt,euclideanDistance:()=>eI,extendWithAge:()=>Ng,extendWithFaceDescriptor:()=>Sg,extendWithFaceDetection:()=>pl,extendWithFaceExpressions:()=>bg,extendWithFaceLandmarks:()=>Wp,extendWithGender:()=>Tg,extractFaceTensors:()=>Rp,extractFaces:()=>Dp,fetchImage:()=>age,fetchJson:()=>Uk,fetchNetWeights:()=>rge,fetchOrThrow:()=>Br,fetchVideo:()=>sge,getContext2dOrThrow:()=>Gn,getMediaDimensions:()=>hl,imageTensorToCanvas:()=>Bk,imageToSquare:()=>Vk,inverseSigmoid:()=>Yfe,iou:()=>Ck,isMediaElement:()=>ug,isMediaLoaded:()=>Vd,isWithAge:()=>yge,isWithFaceDetection:()=>xr,isWithFaceExpressions:()=>jk,isWithFaceLandmarks:()=>gl,isWithGender:()=>xge,loadAgeGenderModel:()=>Gge,loadFaceDetectionModel:()=>Hge,loadFaceExpressionModel:()=>Uge,loadFaceLandmarkModel:()=>Wge,loadFaceLandmarkTinyModel:()=>Bge,loadFaceRecognitionModel:()=>Vge,loadSsdMobilenetv1Model:()=>HD,loadTinyFaceDetectorModel:()=>Lge,loadTinyYolov2Model:()=>zge,loadWeightMap:()=>Gk,locateFaces:()=>jge,matchDimensions:()=>ige,minBbox:()=>Ek,nets:()=>nt,nonMaxSuppression:()=>_k,normalize:()=>Ya,padToSquare:()=>Ak,predictAgeAndGender:()=>Pge,recognizeFaceExpressions:()=>Oge,resizeResults:()=>qD,resolveInput:()=>cl,shuffleArray:()=>Xfe,sigmoid:()=>zd,ssdMobilenetv1:()=>UD,tf:()=>Oe,tinyFaceDetector:()=>$ge,tinyYolov2:()=>Dge,toNetInput:()=>vt,utils:()=>Tk,validateConfig:()=>Qk,version:()=>Jge});var Oe={};$h(Oe,{Abs:()=>uu,Acos:()=>Ci,Acosh:()=>Ei,AdadeltaOptimizer:()=>Yw,AdagradOptimizer:()=>Zw,AdamOptimizer:()=>Jw,AdamaxOptimizer:()=>Qw,Add:()=>Ss,AddN:()=>_i,All:()=>pu,Any:()=>cu,ArgMax:()=>du,ArgMin:()=>hu,Asin:()=>Ai,Asinh:()=>Fi,Atan:()=>$i,Atan2:()=>Ri,Atanh:()=>Di,AvgPool:()=>Mi,AvgPool3D:()=>mu,AvgPool3DGrad:()=>Wc,AvgPoolGrad:()=>zc,BackendWasm:()=>iD,BatchMatMul:()=>Oi,BatchToSpaceND:()=>fu,Bincount:()=>gu,BitwiseAnd:()=>bu,BroadcastArgs:()=>Bc,BroadcastTo:()=>hN,Callback:()=>sE,CallbackList:()=>J2,Cast:()=>Pi,Ceil:()=>Li,ClipByValue:()=>Ns,Complex:()=>Mm,ComplexAbs:()=>Vc,Concat:()=>yu,Conv2D:()=>zi,Conv2DBackpropFilter:()=>Om,Conv2DBackpropInput:()=>Wi,Conv3D:()=>Bi,Conv3DBackpropFilterV2:()=>xu,Conv3DBackpropInputV2:()=>vu,Cos:()=>Vi,Cosh:()=>Ui,CropAndResize:()=>ku,Cumprod:()=>wu,Cumsum:()=>Gi,CustomCallback:()=>eC,DataStorage:()=>$m,DenseBincount:()=>Uc,DepthToSpace:()=>Iu,DepthwiseConv2dNative:()=>Hi,DepthwiseConv2dNativeBackpropFilter:()=>Pm,DepthwiseConv2dNativeBackpropInput:()=>Lm,Diag:()=>Gc,Dilation2D:()=>ji,Dilation2DBackpropFilter:()=>ql,Dilation2DBackpropInput:()=>jl,Draw:()=>zm,ENV:()=>Rv,EarlyStopping:()=>iE,Einsum:()=>Wm,Elu:()=>Ki,EluGrad:()=>Su,Environment:()=>cN,Equal:()=>Nu,Erf:()=>Xi,Exp:()=>Yi,ExpandDims:()=>Tu,Expm1:()=>Zi,FFT:()=>Bm,Fill:()=>Hc,FlipLeftRight:()=>Cu,Floor:()=>Ji,FloorDiv:()=>Qi,FromPixels:()=>sm,FusedBatchNorm:()=>eo,FusedConv2D:()=>ui,FusedDepthwiseConv2D:()=>pi,GPGPUContext:()=>em,GatherNd:()=>_u,GatherV2:()=>Eu,GraphModel:()=>z1,Greater:()=>Au,GreaterEqual:()=>to,History:()=>Q2,IFFT:()=>Vm,Identity:()=>no,Imag:()=>Um,InputSpec:()=>zt,IsFinite:()=>ao,IsInf:()=>ro,IsNan:()=>so,KernelBackend:()=>Pc,LRN:()=>uo,LRNGrad:()=>Pu,LayerVariable:()=>G2,LayersModel:()=>Ar,LeakyRelu:()=>io,Less:()=>Fu,LessEqual:()=>$u,LinSpace:()=>Du,Log:()=>oo,Log1p:()=>lo,LogSoftmax:()=>fN,LogicalAnd:()=>Ru,LogicalNot:()=>Mu,LogicalOr:()=>Ou,LogicalXor:()=>mN,LowerBound:()=>IM,MathBackendCPU:()=>V1,MathBackendWebGL:()=>gk,MatrixBandPart:()=>SM,Max:()=>po,MaxPool:()=>ho,MaxPool3D:()=>Lu,MaxPool3DGrad:()=>qc,MaxPoolGrad:()=>jc,MaxPoolWithArgmax:()=>Kc,Maximum:()=>co,Mean:()=>mo,Min:()=>fo,Minimum:()=>go,MirrorPad:()=>bo,Mod:()=>yo,MomentumOptimizer:()=>e0,Multinomial:()=>zu,Multiply:()=>xo,Neg:()=>Wu,NonMaxSuppressionV3:()=>Vu,NonMaxSuppressionV4:()=>Uu,NonMaxSuppressionV5:()=>Gu,NotEqual:()=>Bu,OP_SCOPE_SUFFIX:()=>zv,OneHot:()=>vo,OnesLike:()=>Hu,Optimizer:()=>Or,OptimizerConstructors:()=>I2,Pack:()=>ju,PadV2:()=>wo,Pool:()=>NM,Pow:()=>ko,Prelu:()=>Io,Prod:()=>So,RMSPropOptimizer:()=>t0,RNN:()=>Pr,RaggedGather:()=>Gm,RaggedRange:()=>Hm,RaggedTensorToTensor:()=>jm,Range:()=>Xc,Rank:()=>Ax,Real:()=>qm,RealDiv:()=>qi,Reciprocal:()=>No,Reduction:()=>kn,Relu:()=>To,Relu6:()=>_o,Reshape:()=>qu,ResizeBilinear:()=>Eo,ResizeBilinearGrad:()=>Xu,ResizeNearestNeighbor:()=>Co,ResizeNearestNeighborGrad:()=>Ku,Reverse:()=>Ao,RotateWithOffset:()=>pp,Round:()=>Fo,Rsqrt:()=>$o,SGDOptimizer:()=>_f,ScatterNd:()=>Yu,SearchSorted:()=>Ju,Select:()=>Qu,Selu:()=>Do,Sequential:()=>Vf,Sigmoid:()=>Po,Sign:()=>Oo,Sin:()=>Ro,Sinh:()=>Mo,Slice:()=>ep,Softmax:()=>Bo,Softplus:()=>Lo,SpaceToBatchND:()=>tp,SparseFillEmptyRows:()=>Yc,SparseReshape:()=>ap,SparseSegmentMean:()=>Zc,SparseSegmentSum:()=>Jc,SparseToDense:()=>rp,SplitV:()=>np,Sqrt:()=>zo,Square:()=>Qc,SquaredDifference:()=>Vo,StaticRegexReplace:()=>ed,Step:()=>Cs,StridedSlice:()=>sp,StringNGrams:()=>td,StringSplit:()=>nd,StringToHashBucketFast:()=>ad,Sub:()=>Uo,Sum:()=>Wo,SymbolicTensor:()=>Ha,Tan:()=>Go,Tanh:()=>Ho,Tensor:()=>Ce,TensorBuffer:()=>Wt,TensorScatterUpdate:()=>Zu,Tile:()=>Ts,TopK:()=>ip,Transform:()=>op,Transpose:()=>_r,Unique:()=>rd,Unpack:()=>lp,UnsortedSegmentSum:()=>sd,UpperBound:()=>TM,Variable:()=>cs,ZerosLike:()=>up,_FusedMatMul:()=>li,abs:()=>Lt,acos:()=>Hv,acosh:()=>jv,add:()=>X,addN:()=>VN,all:()=>Jm,any:()=>Sc,argMax:()=>mi,argMin:()=>qv,asin:()=>Kv,asinh:()=>Xv,atan:()=>Yv,atan2:()=>Zv,atanh:()=>Jv,avgPool:()=>xa,avgPool3d:()=>ew,backend:()=>Bv,backend_util:()=>T,basicLSTMCell:()=>jN,batchNorm:()=>_s,batchNorm2d:()=>tw,batchNorm3d:()=>nw,batchNorm4d:()=>aw,batchToSpaceND:()=>dd,bincount:()=>rw,bitwiseAnd:()=>qN,booleanMaskAsync:()=>OT,broadcastArgs:()=>KN,broadcastTo:()=>si,broadcast_util:()=>cp,browser:()=>Xo,buffer:()=>Pe,callbacks:()=>Iq,cast:()=>re,ceil:()=>sw,clipByValue:()=>an,clone:()=>or,complex:()=>Fr,concat:()=>et,concat1d:()=>iw,concat2d:()=>ow,concat3d:()=>lw,concat4d:()=>uw,constraints:()=>K2,conv1d:()=>Qm,conv2d:()=>$t,conv2dTranspose:()=>ef,conv3d:()=>cw,conv3dTranspose:()=>dw,copyRegisteredKernels:()=>AM,cos:()=>hd,cosh:()=>tf,cosineWindow:()=>Sf,cumprod:()=>Cc,cumsum:()=>nf,customGrad:()=>dr,data:()=>AE,denseBincount:()=>um,deprecationWarn:()=>Wv,depthToSpace:()=>hw,depthwiseConv2d:()=>As,deregisterOp:()=>Tq,device_util:()=>ud,diag:()=>YN,dilation2d:()=>mw,disableDeprecationWarnings:()=>lO,dispose:()=>Ee,disposeVariables:()=>uO,div:()=>he,divNoNan:()=>fw,dot:()=>gw,dropout:()=>Hw,einsum:()=>Qs,elu:()=>dp,enableDebugMode:()=>oO,enableProdMode:()=>iO,enclosingPowerOfTwo:()=>jw,engine:()=>Ea,ensureShape:()=>JN,env:()=>G,equal:()=>ea,erf:()=>af,euclideanNorm:()=>xw,exp:()=>mn,expandDims:()=>Gt,expm1:()=>vw,eye:()=>rf,fft:()=>Id,fill:()=>yn,findBackend:()=>fO,findBackendFactory:()=>gO,floor:()=>mp,floorDiv:()=>Zm,forceHalfFloat:()=>eF,fused:()=>tu,gather:()=>fp,gatherND:()=>WT,gather_util:()=>r0,getBackend:()=>_N,getGradient:()=>Ex,getKernel:()=>wc,getKernelsForBackend:()=>im,getThreadsCount:()=>Wfe,gpgpu_util:()=>FA,grad:()=>K3,grads:()=>X3,greater:()=>Cn,greaterEqual:()=>Rr,ifft:()=>eu,imag:()=>md,image:()=>Qn,inTopKAsync:()=>BT,initializers:()=>X2,input:()=>mC,io:()=>jt,irfft:()=>yf,isFinite:()=>ww,isInf:()=>kw,isNaN:()=>Iw,keep:()=>Ht,kernel_impls:()=>gr,layers:()=>Y2,leakyRelu:()=>fd,less:()=>Yl,lessEqual:()=>Fs,linalg:()=>Xw,linspace:()=>aT,loadGraphModel:()=>$5,loadGraphModelSync:()=>D5,loadLayersModel:()=>yj,localResponseNormalization:()=>Sw,log:()=>ta,log1p:()=>gd,logSigmoid:()=>Nw,logSoftmax:()=>of,logSumExp:()=>bd,logicalAnd:()=>Fa,logicalNot:()=>yd,logicalOr:()=>lf,logicalXor:()=>Tw,losses:()=>QT,lowerBound:()=>sT,matMul:()=>$e,math:()=>p2,max:()=>fa,maxPool:()=>Dt,maxPool3d:()=>Cw,maxPoolWithArgmax:()=>iT,maximum:()=>fr,mean:()=>Et,memory:()=>lm,meshgrid:()=>oT,metrics:()=>nE,min:()=>Xl,minimum:()=>gs,mirrorPad:()=>Ew,mod:()=>_w,model:()=>wj,models:()=>aE,moments:()=>xd,movingAverage:()=>PT,mul:()=>z,multiRNNCell:()=>lT,multinomial:()=>uT,neg:()=>yt,nextFrame:()=>s0,norm:()=>hp,notEqual:()=>bi,oneHot:()=>Zl,ones:()=>Pn,onesLike:()=>na,op:()=>L,outerProduct:()=>pT,pad:()=>va,pad1d:()=>cT,pad2d:()=>dT,pad3d:()=>hT,pad4d:()=>mT,pool:()=>Aw,pow:()=>cr,prelu:()=>wd,print:()=>Gv,prod:()=>Fw,profile:()=>pO,raggedGather:()=>fT,raggedRange:()=>gT,raggedTensorToTensor:()=>bT,rand:()=>yT,randomGamma:()=>kT,randomNormal:()=>pf,randomStandardNormal:()=>IT,randomUniform:()=>$s,randomUniformInt:()=>ST,range:()=>yi,ready:()=>hO,real:()=>Jl,reciprocal:()=>Ow,registerBackend:()=>Ym,registerCallbackConstructor:()=>Ij,registerGradient:()=>gN,registerKernel:()=>id,registerOp:()=>Nq,regularizers:()=>rE,relu:()=>Ke,relu6:()=>cf,removeBackend:()=>mO,reshape:()=>W,reverse:()=>ya,reverse1d:()=>NT,reverse2d:()=>TT,reverse3d:()=>CT,reverse4d:()=>ET,rfft:()=>Sd,round:()=>df,rsqrt:()=>hf,scalar:()=>xe,scatterND:()=>LT,scatter_util:()=>vf,searchSorted:()=>uf,selu:()=>mf,separableConv2d:()=>Ds,sequential:()=>kj,serialization:()=>ne,setBackend:()=>dO,setPlatform:()=>bO,setThreadsCount:()=>zfe,setWasmPath:()=>Pfe,setWasmPaths:()=>Lfe,setWebGLContext:()=>tA,setdiff1dAsync:()=>_T,shared:()=>U1,sigmoid:()=>ma,sign:()=>Pw,signal:()=>JT,sin:()=>ff,sinh:()=>gf,slice:()=>Ve,slice1d:()=>kd,slice2d:()=>bf,slice3d:()=>qo,slice4d:()=>Ql,slice_util:()=>Kt,softmax:()=>qa,softplus:()=>jo,spaceToBatchND:()=>vd,sparse:()=>e2,sparseToDense:()=>zT,spectral:()=>ZT,split:()=>Ln,sqrt:()=>rn,square:()=>pt,squaredDifference:()=>xf,squeeze:()=>Rs,stack:()=>Ft,step:()=>Ko,stridedSlice:()=>Lw,string:()=>t2,sub:()=>pe,sum:()=>fe,sumOutType:()=>Xm,tan:()=>zw,tanh:()=>fs,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Aa,tensor3d:()=>Nd,tensor4d:()=>Da,tensor5d:()=>AT,tensor6d:()=>FT,tensorScatterUpdate:()=>DT,tensor_util:()=>Wa,test_util:()=>xT,tidy:()=>O,tile:()=>On,time:()=>cO,topk:()=>Bw,train:()=>Zs,transpose:()=>De,truncatedNormal:()=>kf,unique:()=>Vw,unregisterGradient:()=>_M,unregisterKernel:()=>EM,unsortedSegmentSum:()=>If,unstack:()=>dt,upcastType:()=>ga,upperBound:()=>RT,util:()=>w,valueAndGrad:()=>Y3,valueAndGrads:()=>Z3,variable:()=>Uw,variableGrads:()=>rT,version:()=>qfe,version_converter:()=>M5,version_core:()=>w4,version_cpu:()=>OK,version_layers:()=>E0,version_wasm:()=>Bfe,version_webgl:()=>Nee,webgl:()=>Tee,webgl_util:()=>eA,where:()=>nn,whereAsync:()=>Gw,zeros:()=>It,zerosLike:()=>qe});var DR=Object.create,Av=Object.defineProperty,RR=Object.getOwnPropertyDescriptor,MR=Object.getOwnPropertyNames,OR=Object.getPrototypeOf,PR=Object.prototype.hasOwnProperty,Vt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_e=(e,t)=>{for(var n in t)Av(e,n,{get:t[n],enumerable:!0})},LR=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of MR(t))!PR.call(e,r)&&r!==n&&Av(e,r,{get:()=>t[r],enumerable:!(a=RR(t,r))||a.enumerable});return e},Is=(e,t,n)=>(n=e!=null?DR(OR(e)):{},LR(t||!e||!e.__esModule?Av(n,"default",{value:e,enumerable:!0}):n,e)),zR=Vt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,H;return M?(S>>>=0,(H=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),H&&(i[S]=B),B)):(S|=0,(H=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),H&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?v:x;if(M){if(S<0)return v;if(S>=g)return F}else{if(S<=-b)return D;if(S+1>=b)return _}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var H=l(p(B,8)),q=x,K=0;K>>0:this.low},$.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},$.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},$.getHighBits=function(){return this.high},$.getHighBitsUnsigned=function(){return this.high>>>0},$.getLowBits=function(){return this.low},$.getLowBitsUnsigned=function(){return this.low>>>0},$.getNumBitsAbs=function(){if(this.isNegative())return this.eq(D)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&!(S&1<=0},$.isOdd=function(){return(this.low&1)===1},$.isEven=function(){return(this.low&1)===0},$.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},$.eq=$.equals,$.notEquals=function(S){return!this.eq(S)},$.neq=$.notEquals,$.ne=$.notEquals,$.lessThan=function(S){return this.comp(S)<0},$.lt=$.lessThan,$.lessThanOrEqual=function(S){return this.comp(S)<=0},$.lte=$.lessThanOrEqual,$.le=$.lessThanOrEqual,$.greaterThan=function(S){return this.comp(S)>0},$.gt=$.greaterThan,$.greaterThanOrEqual=function(S){return this.comp(S)>=0},$.gte=$.greaterThanOrEqual,$.ge=$.greaterThanOrEqual,$.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},$.comp=$.compare,$.negate=function(){return!this.unsigned&&this.eq(D)?D:this.not().add(I)},$.neg=$.negate,$.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,H=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,se=0;return se+=H+J,te+=se>>>16,se&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|se,ee<<16|ae,this.unsigned)},$.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},$.sub=$.subtract,$.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(D))return S.isOdd()?D:x;if(S.eq(D))return this.isOdd()?D:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,H=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,se=0,ie=0;return ie+=q*ee,se+=ie>>>16,ie&=65535,se+=H*ee,te+=se>>>16,se&=65535,se+=q*J,te+=se>>>16,se&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=H*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+H*Z+q*K,ae&=65535,u(se<<16|ie,ae<<16|te,this.unsigned)},$.mul=$.multiply,$.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?v:x;var B,U,H;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return v;if(S.gt(this.shru(1)))return N;H=v}else{if(this.eq(D)){if(S.eq(I)||S.eq(C))return D;if(S.eq(D))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),H=B.add(U.div(S)),H)}else if(S.eq(D))return this.unsigned?v:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();H=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),H=H.add(J),U=U.sub(ee)}return H},$.div=$.divide,$.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},$.mod=$.modulo,$.rem=$.modulo,$.not=function(){return u(~this.low,~this.high,this.unsigned)},$.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},$.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},$.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},$.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},$.shr=$.shiftRight,$.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},$.shru=$.shiftRightUnsigned,$.shr_u=$.shiftRightUnsigned,$.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},$.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},$.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},$.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},$.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),WR=Vt(()=>{}),BR=Vt(()=>{}),VR=Vt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}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)}),UR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),GR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=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^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),HR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),jR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,b,y=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,d.i=f}p(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 p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),qR=Vt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}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)}),KR=Vt(()=>{}),XR=Vt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,N,C){var _=[];N=N==!0?{entropy:!0}:N||{};var F=y(b(N.entropy?[I,v(a)]:I==null?x():I,3),_),D=new f(_),$=function(){for(var S=D.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return $.int32=function(){return D.g(4)|0},$.quick=function(){return D.g(4)/4294967296},$.double=$,y(v(D.S),a),(N.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,D),S.state=function(){return g(D,{})}),B?(r[l]=S,M):S})($,F,"global"in N?N.global:this==r,N.state)}function f(I){var N,C=I.length,_=this,F=0,D=_.i=_.j=0,$=_.S=[];for(C||(I=[C++]);F{var n=VR(),a=UR(),r=GR(),s=HR(),i=jR(),o=qR(),l=XR();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),QS=Vt(()=>{}),Fv=Vt(()=>{}),eN=Vt(()=>{}),YR=Vt(()=>{}),ZR=Vt(()=>{}),JR=Vt(()=>{}),QR=Vt((e,t)=>{var n=(()=>{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 ue.buffer!=Re&&ut(ue.buffer),gt}function i(){return ue.buffer!=Re&&ut(ue.buffer),jn}function o(){return ue.buffer!=Re&&ut(ue.buffer),Ot}function l(){return ue.buffer!=Re&&ut(ue.buffer),cn}function u(){return ue.buffer!=Re&&ut(ue.buffer),Fn}function p(){return ue.buffer!=Re&&ut(ue.buffer),la}function d(){return ue.buffer!=Re&&ut(ue.buffer),$n}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(R,j){h=R,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(R,j)=>{throw j},v=typeof window=="object",I=typeof importScripts=="function",N=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,_="";function F(R){return c.locateFile?c.locateFile(R,_):_+R}var D,$,S,M;function B(R){R instanceof js||J("exiting due to exception: "+R)}if(N){var U=Fv(),H=eN();I?_=H.dirname(_)+"/":_=__dirname+"/",D=(j,le)=>(j=_l(j)?new URL(j):H.normalize(j),U.readFileSync(j,le?void 0:"utf8")),S=j=>{var le=D(j,!0);return le.buffer||(le=new Uint8Array(le)),le},$=(j,le,Ne)=>{j=_l(j)?new URL(j):H.normalize(j),U.readFile(j,function(Me,Fe){Me?Ne(Me):le(Fe.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof js))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,le)=>{if(Na())throw process.exitCode=j,le;B(le),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let R;try{R=YR()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=R.Worker}else(v||I)&&(I?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof a!="undefined"&&a&&(_=a),_.indexOf("blob:")!==0?_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):_="",N||(D=R=>{var j=new XMLHttpRequest;return j.open("GET",R,!1),j.send(null),j.responseText},I&&(S=R=>{var j=new XMLHttpRequest;return j.open("GET",R,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),$=(R,j,le)=>{var Ne=new XMLHttpRequest;Ne.open("GET",R,!0),Ne.responseType="arraybuffer",Ne.onload=()=>{if(Ne.status==200||Ne.status==0&&Ne.response){j(Ne.response);return}le()},Ne.onerror=le,Ne.send(null)}),M=R=>document.title=R);N&&typeof performance=="undefined"&&(global.performance=ZR().performance);var q=console.log.bind(console),K=console.warn.bind(console);N&&(q=R=>U.writeSync(1,R+` `),K=R=>U.writeSync(2,R+` -`));var Z=c.print||j,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,se=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var xe=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Gs("no native wasm support detected");var ue,ye,ke=!1,Se;function Le(R,q){R||Gs(q)}var Ge=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function mt(R,q,le){q>>>=0;for(var Ne=q+le,Me=q;R[Me]&&!(Me>=Ne);)++Me;if(Me-q>16&&R.buffer&&Ge)return Ge.decode(R.buffer instanceof SharedArrayBuffer?R.slice(q,Me):R.subarray(q,Me));for(var Fe="";q>10,56320|pa&1023)}}return Fe}function st(R,q){return R>>>=0,R?mt(i(),R,q):""}function at(R,q,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Me=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var Ct=R.charCodeAt(++me);we=65536+((we&1023)<<10)|Ct&1023}if(we<=127){if(le>=Fe)break;q[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;q[le++>>>0]=192|we>>6,q[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;q[le++>>>0]=224|we>>12,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;q[le++>>>0]=240|we>>18,q[le++>>>0]=128|we>>12&63,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}}return q[le>>>0]=0,le-Me}function rt(R,q,le){return at(R,i(),q,le)}var Re,gt,qn,Ot,oa,pn,An,la,Fn;C&&(Re=c.buffer);function ut(R){Re=R,c.HEAP8=gt=new Int8Array(R),c.HEAP16=Ot=new Int16Array(R),c.HEAP32=pn=new Int32Array(R),c.HEAPU8=qn=new Uint8Array(R),c.HEAPU16=oa=new Uint16Array(R),c.HEAPU32=An=new Uint32Array(R),c.HEAPF32=la=new Float32Array(R),c.HEAPF64=Fn=new Float64Array(R)}var $n=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Re=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:$n/65536,maximum:65536,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),N&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Re=ue.buffer),$n=Re.byteLength,ut(Re);var jn,vr=[],Cl=[],Qa=[],qp=!1;function Na(){return xe}function jr(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Fg(c.preRun.shift());Kp(vr)}function Jt(){qp=!0,!C&&Kp(Cl)}function rh(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)nI(c.postRun.shift());Kp(Qa)}}function Fg(R){vr.unshift(R)}function $g(R){Cl.unshift(R)}function nI(R){Qa.unshift(R)}var Kr=0,El=null,wr=null;function Dg(R){Kr++,c.monitorRunDependencies&&c.monitorRunDependencies(Kr)}function sh(R){if(Kr--,c.monitorRunDependencies&&c.monitorRunDependencies(Kr),Kr==0&&(El!==null&&(clearInterval(El),El=null),wr)){var q=wr;wr=null,q()}}function Gs(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(R);throw m(q),q}var Rg="data:application/octet-stream;base64,";function ih(R){return R.startsWith(Rg)}function _l(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",ih(gn)||(gn=F(gn));function oh(R){try{if(R==gn&&ie)return new Uint8Array(ie);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(q){Gs(q)}}function Mg(){if(!ie&&(v||I)){if(typeof fetch=="function"&&!_l(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return oh(gn)});if($)return new Promise(function(R,q){$(gn,function(le){R(new Uint8Array(le))},q)})}return Promise.resolve().then(function(){return oh(gn)})}function Og(){var R={env:vh,wasi_snapshot_preview1:vh};function q(me,we){var Ct=me.exports;if(c.asm=Ct,Hg(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,$g(c.asm.__wasm_call_ctors),ye=we,!C){var pa=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(Ir){Ae.loadWasmModuleToWorker(Ir,function(){--pa||sh("wasm-instantiate")})})}}C||Dg("wasm-instantiate");function le(me){q(me.instance,me.module)}function Ne(me){return Mg().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Gs(we)})}function Me(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!ih(gn)&&!_l(gn)&&!N&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(Ct){return J("wasm streaming compile failed: "+Ct),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,q);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Me().catch(m),{}}var aI,rI,lh={};function Hs(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function Pg(R){var q=Ae.pthreads[R];delete Ae.pthreads[R],q.terminate(),ox(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(q),1),q.pthread_ptr=0}function Lg(R){var q=Ae.pthreads[R];q.postMessage({cmd:"cancel"})}function jp(R){var q=Ae.pthreads[R];Le(q),Ae.returnWorkerToPool(q)}function zg(R){var q=Ae.getNewWorker();if(!q)return 6;Ae.runningWorkers.push(q),Ae.pthreads[R.pthread_ptr]=q,q.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return q.runPthread=()=>{N&&q.ref(),q.postMessage(le,R.transferList),delete q.runPthread},q.loaded&&q.runPthread(),0}var uh={varargs:void 0,get:function(){uh.varargs+=4;var R=l()[uh.varargs-4>>>2];return R},getStr:function(R){var q=st(R);return q}};function ph(R){if(C)return Xr(1,1,R);Se=R,Na()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new Hs(R))}function Wg(R,q){if(Se=R,!q&&C)throw dh(R),"unwind";ph(R)}var ch=Wg;function Bg(R){if(R instanceof Hs||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){xe=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var q=R.pthread_ptr;delete Ae.pthreads[q],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,N&&R.unref(),ox(q)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,q){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=Th()){var Ct=Ae.pthreads[me.targetThread];Ct?Ct.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?Xp(me.queue):we==="spawnThread"?zg(me):we==="cleanupThread"?jp(me.thread):we==="killThread"?Pg(me.thread):we==="cancelThread"?Lg(me.thread):we==="loaded"?(R.loaded=!0,N&&R.unref(),q&&q(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},N&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Me of Ne)c.hasOwnProperty(Me)&&le.push(Me);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:ye})},allocateUnusedWorker:function(){var R,q=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(q),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Kp(R){for(;R.length>0;)R.shift()(c)}function Vg(){var R=Th(),q=l()[R+52>>>2],le=l()[R+56>>>2],Ne=q-le;pI(q,Ne),Ch(q)}c.establishStackSpace=Vg;function dh(R){if(C)return Xr(2,0,R);try{ch(R)}catch(q){Bg(q)}}var Al=[];function Ug(R){var q=Al[R];return q||(R>=Al.length&&(Al.length=R+1),Al[R]=q=jn.get(R)),q}function Gg(R,q){var le=Ug(R)(q);Na()?Ae.setExitStatus(le):uI(le)}c.invokeEntryPoint=Gg;function Hg(R){Ae.tlsInitFunctions.push(R)}function qg(R){iI(R,!I,1,!v),Ae.threadInitTLS()}function jg(R){C?postMessage({cmd:"cleanupThread",thread:R}):jp(R)}function hh(R,q,le,Ne){return C?Xr(3,1,R,q,le,Ne):mh(R,q,le,Ne)}function mh(R,q,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Me=[],Fe=0;if(C&&(Me.length===0||Fe))return hh(R,q,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Me};return C?(me.cmd="spawnThread",postMessage(me,Me),0):zg(me)}function Kg(){return 65536}var Xg=!0;function Yg(){return Xg}function Xp(R){Atomics.store(l(),R>>2,1),Th()&&lI(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=Xp;function Zg(R,q,le,Ne){if(R==q)setTimeout(()=>Xp(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Me=Ae.pthreads[R];if(!Me)return;Me.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Jg(R,q,le){return-1}function Qg(){Gs("")}function qs(R){qs.shown||(qs.shown={}),qs.shown[R]||(qs.shown[R]=1,N&&(R="warning: "+R),J(R))}function eb(){N||I||qs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function tb(){return Date.now()}function fh(){return 4294901760}function nb(){return fh()}var Yp;N?Yp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:Yp=()=>performance.timeOrigin+performance.now();function ab(R,q,le){i().copyWithin(R>>>0,q>>>0,q+le>>>0)}function rb(){return N?YR().cpus().length:navigator.hardwareConcurrency}function sb(R){var q=lx(),le=R();return Ch(q),le}function Xr(R,q){var le=arguments.length-2,Ne=arguments;return sb(()=>{for(var Me=le,Fe=Eh(Me*8),me=Fe>>3,we=0;we>>0]=Ct}return oI(R,Me,Fe,q)})}var Zp=[];function ib(R,q,le){Zp.length=q;for(var Ne=le>>3,Me=0;Me>>0];var Fe=R<0,me=Fe?lh[-R-1]:fb[R];return me.apply(null,Zp)}function ob(R){try{return ue.grow(R-Re.byteLength+65535>>>16),ut(ue.buffer),1}catch(q){}}function lb(R){var q=i().length;if(R=R>>>0,R<=q)return!1;var le=fh();if(R>le)return!1;let Ne=(Ct,pa)=>Ct+(pa-Ct%pa)%pa;for(var Me=1;Me<=4;Me*=2){var Fe=q*(1+.2/Me);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=ob(me);if(we)return!0}return!1}function ub(){throw"unwind"}function gh(R){return C?Xr(4,1,R):52}function bh(R,q,le,Ne,Me){return C?Xr(5,1,R,q,le,Ne,Me):70}var pb=[null,[],[]];function cb(R,q){var le=pb[R];q===0||q===10?((R===1?Z:J)(mt(le,0)),le.length=0):le.push(q)}function yh(R,q,le,Ne){if(C)return Xr(6,1,R,q,le,Ne);for(var Me=0,Fe=0;Fe>>2],we=u()[q+4>>>2];q+=8;for(var Ct=0;Ct>>0]);Me+=we}return u()[Ne>>>2]=Me,0}function xh(R){var q=c["_"+R];return q}function db(R,q){s().set(R,q>>>0)}function hb(R,q,le,Ne,Me){var Fe={string:ca=>{var Rl=0;if(ca!=null&&ca!==0){var hI=(ca.length<<2)+1;Rl=Eh(hI),rt(ca,Rl,hI)}return Rl},array:ca=>{var Rl=Eh(ca.length);return db(ca,Rl),Rl}};function me(ca){return q==="string"?st(ca):q==="boolean"?!!ca:ca}var we=xh(R),Ct=[],pa=0;if(Ne)for(var Ir=0;Irme==="number"||me==="boolean"),Fe=q!=="string";return Fe&&Me&&!Ne?xh(R):function(){return hb(R,q,le,arguments,Ne)}}Ae.init();var fb=[null,ph,dh,hh,gh,bh,yh],vh={__emscripten_init_main_thread_js:qg,__emscripten_thread_cleanup:jg,__pthread_create_js:mh,_emscripten_default_pthread_stack_size:Kg,_emscripten_get_now_is_monotonic:Yg,_emscripten_notify_task_queue:Zg,_emscripten_set_offscreencanvas_size:Jg,abort:Qg,emscripten_check_blocking_allowed:eb,emscripten_date_now:tb,emscripten_get_heap_max:nb,emscripten_get_now:Yp,emscripten_memcpy_big:ab,emscripten_num_logical_cores:rb,emscripten_receive_on_main_thread_js:ib,emscripten_resize_heap:lb,emscripten_unwind_to_js_event_loop:ub,exit:ch,fd_close:gh,fd_seek:bh,fd_write:yh,memory:ue||c.wasmMemory},sI=Og(),gb=c.___wasm_call_ctors=function(){return(gb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},bb=c._init=function(){return(bb=c._init=c.asm.init).apply(null,arguments)},yb=c._init_with_threads_count=function(){return(yb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},xb=c._get_threads_count=function(){return(xb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},vb=c._register_tensor=function(){return(vb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},wb=c._dispose_data=function(){return(wb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},kb=c._dispose=function(){return(kb=c._dispose=c.asm.dispose).apply(null,arguments)},Ib=c._Abs=function(){return(Ib=c._Abs=c.asm.Abs).apply(null,arguments)},Sb=c._Acos=function(){return(Sb=c._Acos=c.asm.Acos).apply(null,arguments)},Nb=c._Acosh=function(){return(Nb=c._Acosh=c.asm.Acosh).apply(null,arguments)},Tb=c._Add=function(){return(Tb=c._Add=c.asm.Add).apply(null,arguments)},Cb=c._AddN=function(){return(Cb=c._AddN=c.asm.AddN).apply(null,arguments)},Eb=c._All=function(){return(Eb=c._All=c.asm.All).apply(null,arguments)},_b=c._Any=function(){return(_b=c._Any=c.asm.Any).apply(null,arguments)},Ab=c._ArgMax=function(){return(Ab=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Fb=c._ArgMin=function(){return(Fb=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},$b=c._Asin=function(){return($b=c._Asin=c.asm.Asin).apply(null,arguments)},Db=c._Asinh=function(){return(Db=c._Asinh=c.asm.Asinh).apply(null,arguments)},Rb=c._Atan=function(){return(Rb=c._Atan=c.asm.Atan).apply(null,arguments)},Mb=c._Atan2=function(){return(Mb=c._Atan2=c.asm.Atan2).apply(null,arguments)},Ob=c._Atanh=function(){return(Ob=c._Atanh=c.asm.Atanh).apply(null,arguments)},Pb=c._AvgPool=function(){return(Pb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Lb=c._AvgPool3D=function(){return(Lb=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},zb=c._AvgPool3DGrad=function(){return(zb=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},Wb=c._AvgPoolGrad=function(){return(Wb=c._AvgPoolGrad=c.asm.AvgPoolGrad).apply(null,arguments)},Bb=c._BatchMatMul=function(){return(Bb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Vb=c._Bincount=function(){return(Vb=c._Bincount=c.asm.Bincount).apply(null,arguments)},Ub=c._BitwiseAnd=function(){return(Ub=c._BitwiseAnd=c.asm.BitwiseAnd).apply(null,arguments)},Gb=c._Ceil=function(){return(Gb=c._Ceil=c.asm.Ceil).apply(null,arguments)},Hb=c._ClipByValue=function(){return(Hb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},qb=c._Conv2D=function(){return(qb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},jb=c._Conv2DBackpropInput=function(){return(jb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Kb=c._Conv3D=function(){return(Kb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Xb=c._Conv3DBackpropFilterV2=function(){return(Xb=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Yb=c._Conv3DBackpropInputV2=function(){return(Yb=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},Zb=c._Cos=function(){return(Zb=c._Cos=c.asm.Cos).apply(null,arguments)},Jb=c._Cosh=function(){return(Jb=c._Cosh=c.asm.Cosh).apply(null,arguments)},Qb=c._CropAndResize=function(){return(Qb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},ey=c._Cumprod=function(){return(ey=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},ty=c._Cumsum=function(){return(ty=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},ny=c._DenseBincount=function(){return(ny=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},ay=c._DepthToSpace=function(){return(ay=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},ry=c._DepthwiseConv2dNative=function(){return(ry=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},sy=c._Diag=function(){return(sy=c._Diag=c.asm.Diag).apply(null,arguments)},iy=c._Dilation2D=function(){return(iy=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},oy=c._Dilation2DBackpropFilter=function(){return(oy=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},ly=c._Dilation2DBackpropInput=function(){return(ly=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},uy=c._Elu=function(){return(uy=c._Elu=c.asm.Elu).apply(null,arguments)},py=c._EluGrad=function(){return(py=c._EluGrad=c.asm.EluGrad).apply(null,arguments)},cy=c._Equal=function(){return(cy=c._Equal=c.asm.Equal).apply(null,arguments)},dy=c._Erf=function(){return(dy=c._Erf=c.asm.Erf).apply(null,arguments)},hy=c._Exp=function(){return(hy=c._Exp=c.asm.Exp).apply(null,arguments)},my=c._Expm1=function(){return(my=c._Expm1=c.asm.Expm1).apply(null,arguments)},fy=c._FlipLeftRight=function(){return(fy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},gy=c._Floor=function(){return(gy=c._Floor=c.asm.Floor).apply(null,arguments)},by=c._FloorDiv=function(){return(by=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},yy=c._FusedBatchNorm=function(){return(yy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},xy=c._FusedConv2D=function(){return(xy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},vy=c._FusedDepthwiseConv2D=function(){return(vy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},wy=c._Gather=function(){return(wy=c._Gather=c.asm.Gather).apply(null,arguments)},ky=c._GatherNd=function(){return(ky=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},Iy=c._Greater=function(){return(Iy=c._Greater=c.asm.Greater).apply(null,arguments)},Sy=c._GreaterEqual=function(){return(Sy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Ny=c._IsFinite=function(){return(Ny=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},Ty=c._IsInf=function(){return(Ty=c._IsInf=c.asm.IsInf).apply(null,arguments)},Cy=c._IsNan=function(){return(Cy=c._IsNan=c.asm.IsNan).apply(null,arguments)},Ey=c._LRN=function(){return(Ey=c._LRN=c.asm.LRN).apply(null,arguments)},_y=c._LRNGrad=function(){return(_y=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},Ay=c._LeakyRelu=function(){return(Ay=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Fy=c._Less=function(){return(Fy=c._Less=c.asm.Less).apply(null,arguments)},$y=c._LessEqual=function(){return($y=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Dy=c._LinSpace=function(){return(Dy=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},Ry=c._Log=function(){return(Ry=c._Log=c.asm.Log).apply(null,arguments)},My=c._Log1p=function(){return(My=c._Log1p=c.asm.Log1p).apply(null,arguments)},Oy=c._LogicalAnd=function(){return(Oy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Py=c._LogicalNot=function(){return(Py=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Ly=c._LogicalOr=function(){return(Ly=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},zy=c._LogicalXor=function(){return(zy=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Wy=c._Max=function(){return(Wy=c._Max=c.asm.Max).apply(null,arguments)},By=c._MaxPool=function(){return(By=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Vy=c._MaxPool3D=function(){return(Vy=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},Uy=c._MaxPool3DGrad=function(){return(Uy=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},Gy=c._MaxPoolGrad=function(){return(Gy=c._MaxPoolGrad=c.asm.MaxPoolGrad).apply(null,arguments)},Hy=c._MaxPoolWithArgmax=function(){return(Hy=c._MaxPoolWithArgmax=c.asm.MaxPoolWithArgmax).apply(null,arguments)},qy=c._Maximum=function(){return(qy=c._Maximum=c.asm.Maximum).apply(null,arguments)},jy=c._Mean=function(){return(jy=c._Mean=c.asm.Mean).apply(null,arguments)},Ky=c._Min=function(){return(Ky=c._Min=c.asm.Min).apply(null,arguments)},Xy=c._Minimum=function(){return(Xy=c._Minimum=c.asm.Minimum).apply(null,arguments)},Yy=c._MirrorPad=function(){return(Yy=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Zy=c._Mod=function(){return(Zy=c._Mod=c.asm.Mod).apply(null,arguments)},Jy=c._Multinomial=function(){return(Jy=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},Qy=c._Multiply=function(){return(Qy=c._Multiply=c.asm.Multiply).apply(null,arguments)},ex=c._Neg=function(){return(ex=c._Neg=c.asm.Neg).apply(null,arguments)},tx=c._NonMaxSuppressionV3=function(){return(tx=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},nx=c._NonMaxSuppressionV4=function(){return(nx=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},wh=c._NonMaxSuppressionV5=function(){return(wh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},kh=c._NotEqual=function(){return(kh=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},Jp=c._OneHot=function(){return(Jp=c._OneHot=c.asm.OneHot).apply(null,arguments)},ax=c._PadV2=function(){return(ax=c._PadV2=c.asm.PadV2).apply(null,arguments)},rx=c._Pow=function(){return(rx=c._Pow=c.asm.Pow).apply(null,arguments)},Fl=c._Prelu=function(){return(Fl=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ih=c._Prod=function(){return(Ih=c._Prod=c.asm.Prod).apply(null,arguments)},$l=c._RealDiv=function(){return($l=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Dl=c._Reciprocal=function(){return(Dl=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},sx=c._Relu=function(){return(sx=c._Relu=c.asm.Relu).apply(null,arguments)},Y=c._Relu6=function(){return(Y=c._Relu6=c.asm.Relu6).apply(null,arguments)},oe=c._ResizeBilinear=function(){return(oe=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Ie=c._ResizeBilinearGrad=function(){return(Ie=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},Ye=c._ResizeNearestNeighbor=function(){return(Ye=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},wt=c._ResizeNearestNeighborGrad=function(){return(wt=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},kt=c._Reverse=function(){return(kt=c._Reverse=c.asm.Reverse).apply(null,arguments)},He=c._RotateWithOffset=function(){return(He=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Be=c._Round=function(){return(Be=c._Round=c.asm.Round).apply(null,arguments)},Pt=c._Rsqrt=function(){return(Pt=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},ua=c._ScatterNd=function(){return(ua=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},kr=c._SearchSorted=function(){return(kr=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},Sh=c._SelectV2=function(){return(Sh=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},Qp=c._Selu=function(){return(Qp=c._Selu=c.asm.Selu).apply(null,arguments)},ix=c._Sigmoid=function(){return(ix=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Dn=c._Sign=function(){return(Dn=c._Sign=c.asm.Sign).apply(null,arguments)},Yr=c._Sin=function(){return(Yr=c._Sin=c.asm.Sin).apply(null,arguments)},Nh=c._Sinh=function(){return(Nh=c._Sinh=c.asm.Sinh).apply(null,arguments)},qD=c._Softmax=function(){return(qD=c._Softmax=c.asm.Softmax).apply(null,arguments)},jD=c._Softplus=function(){return(jD=c._Softplus=c.asm.Softplus).apply(null,arguments)},KD=c._SparseFillEmptyRows=function(){return(KD=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},XD=c._SparseReshape=function(){return(XD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},YD=c._SparseSegmentReduction=function(){return(YD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},ZD=c._SparseToDense=function(){return(ZD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},JD=c._Sqrt=function(){return(JD=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},QD=c._Square=function(){return(QD=c._Square=c.asm.Square).apply(null,arguments)},eR=c._SquaredDifference=function(){return(eR=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},tR=c._Step=function(){return(tR=c._Step=c.asm.Step).apply(null,arguments)},nR=c._StridedSlice=function(){return(nR=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},aR=c._Sub=function(){return(aR=c._Sub=c.asm.Sub).apply(null,arguments)},rR=c._Sum=function(){return(rR=c._Sum=c.asm.Sum).apply(null,arguments)},sR=c._Tan=function(){return(sR=c._Tan=c.asm.Tan).apply(null,arguments)},iR=c._Tanh=function(){return(iR=c._Tanh=c.asm.Tanh).apply(null,arguments)},oR=c._TensorScatterUpdate=function(){return(oR=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},lR=c._Tile=function(){return(lR=c._Tile=c.asm.Tile).apply(null,arguments)},uR=c._TopK=function(){return(uR=c._TopK=c.asm.TopK).apply(null,arguments)},pR=c._Transform=function(){return(pR=c._Transform=c.asm.Transform).apply(null,arguments)},cR=c._Transpose=function(){return(cR=c._Transpose=c.asm.Transpose).apply(null,arguments)},dR=c.__FusedMatMul=function(){return(dR=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},hR=c._malloc=function(){return(hR=c._malloc=c.asm.malloc).apply(null,arguments)},mR=c._free=function(){return(mR=c._free=c.asm.free).apply(null,arguments)},fR=c.__emscripten_tls_init=function(){return(fR=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Th=c._pthread_self=function(){return(Th=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},gR=c.___errno_location=function(){return(gR=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},iI=c.__emscripten_thread_init=function(){return(iI=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},bR=c.__emscripten_thread_crashed=function(){return(bR=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},yR=c._emscripten_main_thread_process_queued_calls=function(){return(yR=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},xR=c._emscripten_main_browser_thread_id=function(){return(xR=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},oI=c._emscripten_run_in_main_runtime_thread_js=function(){return(oI=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},vR=c._emscripten_dispatch_to_thread_=function(){return(vR=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},lI=c.__emscripten_proxy_execute_task_queue=function(){return(lI=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},ox=c.__emscripten_thread_free_data=function(){return(ox=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},uI=c.__emscripten_thread_exit=function(){return(uI=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},pI=c._emscripten_stack_set_limits=function(){return(pI=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},lx=c.stackSave=function(){return(lx=c.stackSave=c.asm.stackSave).apply(null,arguments)},Ch=c.stackRestore=function(){return(Ch=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Eh=c.stackAlloc=function(){return(Eh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},wR=c.dynCall_iijjiiii=function(){return(wR=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},kR=c.dynCall_jiji=function(){return(kR=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Na,c.wasmMemory=ue,c.cwrap=mb,c.ExitStatus=Hs,c.PThread=Ae;var _h;wr=function R(){_h||cI(),_h||(wr=R)};function cI(R){if(R=R||b,Kr>0)return;if(C){h(c),Jt(),startWorker(c);return}if(jr(),Kr>0)return;function q(){_h||(_h=!0,c.calledRun=!0,!ke&&(Jt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),rh()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),q()},1)):q()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();cI();var Ah;f&&(Ah={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var Fh;if(typeof WasmBackendModule!="undefined")Fh=WasmBackendModule;else if(typeof r!="undefined")Fh=r;else throw new Error("Could not find wasm module in post.js");if(Ah){var IR=Fh._dispose;Fh._dispose=function(){IR(),Ah.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),Ah.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}return 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)}),JR=Vt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}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;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),QR=Vt((e,t)=>{var n=(()=>{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(Y,oe){i=Y,o=oe});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,v,I;function N(Y){Y instanceof El||D("exiting due to exception: "+Y)}if(f){var C=Av(),_=eN();m?g=_.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=jr(Y)?new URL(Y):_.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),v=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=jr(Y)?new URL(Y):_.normalize(Y),C.readFile(Y,function(Ye,wt){Ye?Ie(Ye):oe(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof El))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(qn())throw process.exitCode=Y,oe;N(oe),process.exit(Y)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(v=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Ye=new XMLHttpRequest;Ye.open("GET",Y,!0),Ye.responseType="arraybuffer",Ye.onload=()=>{if(Ye.status==200||Ye.status==0&&Ye.response){oe(Ye.response);return}Ie()},Ye.onerror=Ie,Ye.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var $=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Qa("no native wasm support detected");var B,U=!1,H;function j(Y,oe){Y||Qa(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Ye=oe+Ie,wt=oe;Y[wt]&&!(wt>=Ye);)++wt;if(wt-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,wt));for(var kt="";oe>10,56320|ua&1023)}}return kt}function J(Y,oe){return Y>>>=0,Y?Z(ie,Y,oe):""}function ee(Y,oe,Ie,Ye){if(Ie>>>=0,!(Ye>0))return 0;for(var wt=Ie,kt=Ie+Ye-1,He=0;He=55296&&Be<=57343){var Pt=Y.charCodeAt(++He);Be=65536+((Be&1023)<<10)|Pt&1023}if(Be<=127){if(Ie>=kt)break;oe[Ie++>>>0]=Be}else if(Be<=2047){if(Ie+1>=kt)break;oe[Ie++>>>0]=192|Be>>6,oe[Ie++>>>0]=128|Be&63}else if(Be<=65535){if(Ie+2>=kt)break;oe[Ie++>>>0]=224|Be>>12,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}else{if(Ie+3>=kt)break;oe[Ie++>>>0]=240|Be>>18,oe[Ie++>>>0]=128|Be>>12&63,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}}return oe[Ie>>>0]=0,Ie-wt}function ae(Y,oe,Ie){return ee(Y,ie,oe,Ie)}var te,se,ie,xe,ue,ye,ke,Se,Le;function Ge(Y){te=Y,s.HEAP8=se=new Int8Array(Y),s.HEAP16=xe=new Int16Array(Y),s.HEAP32=ye=new Int32Array(Y),s.HEAPU8=ie=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=Le=new Float64Array(Y)}var mt=s.INITIAL_MEMORY||16777216,st,at=[],rt=[],Re=[],gt=!1;function qn(){return M}function Ot(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)An(s.preRun.shift());wr(at)}function oa(){gt=!0,wr(rt)}function pn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Fn(s.postRun.shift());wr(Re)}function An(Y){at.unshift(Y)}function la(Y){rt.unshift(Y)}function Fn(Y){Re.unshift(Y)}var ut=0,$n=null,jn=null;function vr(Y){ut++,s.monitorRunDependencies&&s.monitorRunDependencies(ut)}function Cl(Y){if(ut--,s.monitorRunDependencies&&s.monitorRunDependencies(ut),ut==0&&($n!==null&&(clearInterval($n),$n=null),jn)){var oe=jn;jn=null,oe()}}function Qa(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var qp="data:application/octet-stream;base64,";function Na(Y){return Y.startsWith(qp)}function jr(Y){return Y.startsWith("file://")}var Jt;Jt="tfjs-backend-wasm.wasm",Na(Jt)||(Jt=b(Jt));function rh(Y){try{if(Y==Jt&&S)return new Uint8Array(S);if(v)return v(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){Qa(oe)}}function Fg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!jr(Jt))return fetch(Jt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Jt+"'";return Y.arrayBuffer()}).catch(function(){return rh(Jt)});if(x)return new Promise(function(Y,oe){x(Jt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return rh(Jt)})}function $g(){var Y={env:jp,wasi_snapshot_preview1:jp};function oe(He,Be){var Pt=He.exports;s.asm=Pt,B=s.asm.memory,Ge(B.buffer),st=s.asm.__indirect_function_table,la(s.asm.__wasm_call_ctors),Cl("wasm-instantiate")}vr("wasm-instantiate");function Ie(He){oe(He.instance)}function Ye(He){return Fg().then(function(Be){return WebAssembly.instantiate(Be,Y)}).then(function(Be){return Be}).then(He,function(Be){D("failed to asynchronously prepare wasm: "+Be),Qa(Be)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Na(Jt)&&!jr(Jt)&&!f&&typeof fetch=="function"?fetch(Jt,{credentials:"same-origin"}).then(function(He){var Be=WebAssembly.instantiateStreaming(He,Y);return Be.then(Ie,function(Pt){return D("wasm streaming compile failed: "+Pt),D("falling back to ArrayBuffer instantiation"),Ye(Ie)})}):Ye(Ie)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(Y,oe);return kt}catch(He){D("Module.instantiateWasm callback failed with error: "+He),o(He)}return wt().catch(o),{}}var nI,Kr;function El(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function wr(Y){for(;Y.length>0;)Y.shift()(s)}function Dg(){Qa("")}function sh(){return 4294901760}function Gs(){return sh()}function Rg(Y,oe,Ie){ie.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function ih(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ge(B.buffer),1}catch(oe){}}function _l(Y){var oe=ie.length;Y=Y>>>0;var Ie=sh();if(Y>Ie)return!1;let Ye=(Pt,ua)=>Pt+(ua-Pt%ua)%ua;for(var wt=1;wt<=4;wt*=2){var kt=oe*(1+.2/wt);kt=Math.min(kt,Y+100663296);var He=Math.min(Ie,Ye(Math.max(Y,kt),65536)),Be=ih(He);if(Be)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=ye[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function oh(Y){return 52}function Mg(Y,oe,Ie,Ye,wt){return 70}var Og=[null,[],[]];function aI(Y,oe){var Ie=Og[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function rI(Y,oe,Ie,Ye){for(var wt=0,kt=0;kt>>2],Be=ke[oe+4>>>2];oe+=8;for(var Pt=0;Pt>>0]);wt+=Be}return ke[Ye>>>2]=wt,0}function lh(Y){var oe=s["_"+Y];return oe}function Hs(Y,oe){se.set(Y,oe>>>0)}function Pg(Y,oe,Ie,Ye,wt){var kt={string:Dn=>{var Yr=0;if(Dn!=null&&Dn!==0){var Nh=(Dn.length<<2)+1;Yr=Jp(Nh),ae(Dn,Yr,Nh)}return Yr},array:Dn=>{var Yr=Jp(Dn.length);return Hs(Dn,Yr),Yr}};function He(Dn){return oe==="string"?J(Dn):oe==="boolean"?!!Dn:Dn}var Be=lh(Y),Pt=[],ua=0;if(Ye)for(var kr=0;krHe==="number"||He==="boolean"),kt=oe!=="string";return kt&&wt&&!Ye?lh(Y):function(){return Pg(Y,oe,Ie,arguments,Ye)}}var jp={abort:Dg,emscripten_get_heap_max:Gs,emscripten_memcpy_big:Rg,emscripten_resize_heap:_l,fd_close:oh,fd_seek:Mg,fd_write:rI},zg=$g(),uh=s.___wasm_call_ctors=function(){return(uh=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},ph=s._init=function(){return(ph=s._init=s.asm.init).apply(null,arguments)},Wg=s._init_with_threads_count=function(){return(Wg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},ch=s._get_threads_count=function(){return(ch=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Bg=s._register_tensor=function(){return(Bg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Kp=s._dispose=function(){return(Kp=s._dispose=s.asm.dispose).apply(null,arguments)},Vg=s._Abs=function(){return(Vg=s._Abs=s.asm.Abs).apply(null,arguments)},dh=s._Acos=function(){return(dh=s._Acos=s.asm.Acos).apply(null,arguments)},Al=s._Acosh=function(){return(Al=s._Acosh=s.asm.Acosh).apply(null,arguments)},Ug=s._Add=function(){return(Ug=s._Add=s.asm.Add).apply(null,arguments)},Gg=s._AddN=function(){return(Gg=s._AddN=s.asm.AddN).apply(null,arguments)},Hg=s._All=function(){return(Hg=s._All=s.asm.All).apply(null,arguments)},qg=s._Any=function(){return(qg=s._Any=s.asm.Any).apply(null,arguments)},jg=s._ArgMax=function(){return(jg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},hh=s._ArgMin=function(){return(hh=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},mh=s._Asin=function(){return(mh=s._Asin=s.asm.Asin).apply(null,arguments)},Kg=s._Asinh=function(){return(Kg=s._Asinh=s.asm.Asinh).apply(null,arguments)},Xg=s._Atan=function(){return(Xg=s._Atan=s.asm.Atan).apply(null,arguments)},Yg=s._Atan2=function(){return(Yg=s._Atan2=s.asm.Atan2).apply(null,arguments)},Xp=s._Atanh=function(){return(Xp=s._Atanh=s.asm.Atanh).apply(null,arguments)},Zg=s._AvgPool=function(){return(Zg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Jg=s._AvgPool3D=function(){return(Jg=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},Qg=s._AvgPool3DGrad=function(){return(Qg=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},qs=s._AvgPoolGrad=function(){return(qs=s._AvgPoolGrad=s.asm.AvgPoolGrad).apply(null,arguments)},eb=s._BatchMatMul=function(){return(eb=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},tb=s._Bincount=function(){return(tb=s._Bincount=s.asm.Bincount).apply(null,arguments)},fh=s._BitwiseAnd=function(){return(fh=s._BitwiseAnd=s.asm.BitwiseAnd).apply(null,arguments)},nb=s._Ceil=function(){return(nb=s._Ceil=s.asm.Ceil).apply(null,arguments)},Yp=s._ClipByValue=function(){return(Yp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},ab=s._Conv2D=function(){return(ab=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},rb=s._Conv2DBackpropInput=function(){return(rb=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},sb=s._Conv3D=function(){return(sb=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},Xr=s._Conv3DBackpropFilterV2=function(){return(Xr=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Zp=s._Conv3DBackpropInputV2=function(){return(Zp=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},ib=s._Cos=function(){return(ib=s._Cos=s.asm.Cos).apply(null,arguments)},ob=s._Cosh=function(){return(ob=s._Cosh=s.asm.Cosh).apply(null,arguments)},lb=s._CropAndResize=function(){return(lb=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},ub=s._Cumprod=function(){return(ub=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},gh=s._Cumsum=function(){return(gh=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},bh=s._DenseBincount=function(){return(bh=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},pb=s._DepthToSpace=function(){return(pb=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},cb=s._DepthwiseConv2dNative=function(){return(cb=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},yh=s._Diag=function(){return(yh=s._Diag=s.asm.Diag).apply(null,arguments)},xh=s._Dilation2D=function(){return(xh=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},db=s._Dilation2DBackpropFilter=function(){return(db=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},hb=s._Dilation2DBackpropInput=function(){return(hb=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},mb=s._Elu=function(){return(mb=s._Elu=s.asm.Elu).apply(null,arguments)},fb=s._EluGrad=function(){return(fb=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},vh=s._Equal=function(){return(vh=s._Equal=s.asm.Equal).apply(null,arguments)},sI=s._Erf=function(){return(sI=s._Erf=s.asm.Erf).apply(null,arguments)},gb=s._Exp=function(){return(gb=s._Exp=s.asm.Exp).apply(null,arguments)},bb=s._Expm1=function(){return(bb=s._Expm1=s.asm.Expm1).apply(null,arguments)},yb=s._FlipLeftRight=function(){return(yb=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},xb=s._Floor=function(){return(xb=s._Floor=s.asm.Floor).apply(null,arguments)},vb=s._FloorDiv=function(){return(vb=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},wb=s._FusedBatchNorm=function(){return(wb=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},kb=s._FusedConv2D=function(){return(kb=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Ib=s._FusedDepthwiseConv2D=function(){return(Ib=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Sb=s._Gather=function(){return(Sb=s._Gather=s.asm.Gather).apply(null,arguments)},Nb=s._GatherNd=function(){return(Nb=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Tb=s._Greater=function(){return(Tb=s._Greater=s.asm.Greater).apply(null,arguments)},Cb=s._GreaterEqual=function(){return(Cb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Eb=s._IsFinite=function(){return(Eb=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},_b=s._IsInf=function(){return(_b=s._IsInf=s.asm.IsInf).apply(null,arguments)},Ab=s._IsNan=function(){return(Ab=s._IsNan=s.asm.IsNan).apply(null,arguments)},Fb=s._LRN=function(){return(Fb=s._LRN=s.asm.LRN).apply(null,arguments)},$b=s._LRNGrad=function(){return($b=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},Db=s._LeakyRelu=function(){return(Db=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Rb=s._Less=function(){return(Rb=s._Less=s.asm.Less).apply(null,arguments)},Mb=s._LessEqual=function(){return(Mb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Ob=s._LinSpace=function(){return(Ob=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},Pb=s._Log=function(){return(Pb=s._Log=s.asm.Log).apply(null,arguments)},Lb=s._Log1p=function(){return(Lb=s._Log1p=s.asm.Log1p).apply(null,arguments)},zb=s._LogicalAnd=function(){return(zb=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Wb=s._LogicalNot=function(){return(Wb=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Bb=s._LogicalOr=function(){return(Bb=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Vb=s._LogicalXor=function(){return(Vb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Ub=s._Max=function(){return(Ub=s._Max=s.asm.Max).apply(null,arguments)},Gb=s._MaxPool=function(){return(Gb=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Hb=s._MaxPool3D=function(){return(Hb=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},qb=s._MaxPool3DGrad=function(){return(qb=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},jb=s._MaxPoolGrad=function(){return(jb=s._MaxPoolGrad=s.asm.MaxPoolGrad).apply(null,arguments)},Kb=s._MaxPoolWithArgmax=function(){return(Kb=s._MaxPoolWithArgmax=s.asm.MaxPoolWithArgmax).apply(null,arguments)},Xb=s._Maximum=function(){return(Xb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Yb=s._Mean=function(){return(Yb=s._Mean=s.asm.Mean).apply(null,arguments)},Zb=s._Min=function(){return(Zb=s._Min=s.asm.Min).apply(null,arguments)},Jb=s._Minimum=function(){return(Jb=s._Minimum=s.asm.Minimum).apply(null,arguments)},Qb=s._MirrorPad=function(){return(Qb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},ey=s._Mod=function(){return(ey=s._Mod=s.asm.Mod).apply(null,arguments)},ty=s._Multinomial=function(){return(ty=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},ny=s._Multiply=function(){return(ny=s._Multiply=s.asm.Multiply).apply(null,arguments)},ay=s._Neg=function(){return(ay=s._Neg=s.asm.Neg).apply(null,arguments)},ry=s._NonMaxSuppressionV3=function(){return(ry=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},sy=s._NonMaxSuppressionV4=function(){return(sy=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},iy=s._NonMaxSuppressionV5=function(){return(iy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},oy=s._NotEqual=function(){return(oy=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},ly=s._OneHot=function(){return(ly=s._OneHot=s.asm.OneHot).apply(null,arguments)},uy=s._PadV2=function(){return(uy=s._PadV2=s.asm.PadV2).apply(null,arguments)},py=s._Pow=function(){return(py=s._Pow=s.asm.Pow).apply(null,arguments)},cy=s._Prelu=function(){return(cy=s._Prelu=s.asm.Prelu).apply(null,arguments)},dy=s._Prod=function(){return(dy=s._Prod=s.asm.Prod).apply(null,arguments)},hy=s._RealDiv=function(){return(hy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},my=s._Reciprocal=function(){return(my=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},fy=s._Relu=function(){return(fy=s._Relu=s.asm.Relu).apply(null,arguments)},gy=s._Relu6=function(){return(gy=s._Relu6=s.asm.Relu6).apply(null,arguments)},by=s._ResizeBilinear=function(){return(by=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},yy=s._ResizeBilinearGrad=function(){return(yy=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},xy=s._ResizeNearestNeighbor=function(){return(xy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},vy=s._ResizeNearestNeighborGrad=function(){return(vy=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},wy=s._Reverse=function(){return(wy=s._Reverse=s.asm.Reverse).apply(null,arguments)},ky=s._RotateWithOffset=function(){return(ky=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Iy=s._Round=function(){return(Iy=s._Round=s.asm.Round).apply(null,arguments)},Sy=s._Rsqrt=function(){return(Sy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ny=s._ScatterNd=function(){return(Ny=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ty=s._SearchSorted=function(){return(Ty=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},Cy=s._SelectV2=function(){return(Cy=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Ey=s._Selu=function(){return(Ey=s._Selu=s.asm.Selu).apply(null,arguments)},_y=s._Sigmoid=function(){return(_y=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Ay=s._Sign=function(){return(Ay=s._Sign=s.asm.Sign).apply(null,arguments)},Fy=s._Sin=function(){return(Fy=s._Sin=s.asm.Sin).apply(null,arguments)},$y=s._Sinh=function(){return($y=s._Sinh=s.asm.Sinh).apply(null,arguments)},Dy=s._Softmax=function(){return(Dy=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ry=s._Softplus=function(){return(Ry=s._Softplus=s.asm.Softplus).apply(null,arguments)},My=s._SparseFillEmptyRows=function(){return(My=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Oy=s._SparseReshape=function(){return(Oy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Py=s._SparseSegmentReduction=function(){return(Py=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Ly=s._SparseToDense=function(){return(Ly=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},zy=s._Sqrt=function(){return(zy=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Wy=s._Square=function(){return(Wy=s._Square=s.asm.Square).apply(null,arguments)},By=s._SquaredDifference=function(){return(By=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Vy=s._Step=function(){return(Vy=s._Step=s.asm.Step).apply(null,arguments)},Uy=s._StridedSlice=function(){return(Uy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Gy=s._Sub=function(){return(Gy=s._Sub=s.asm.Sub).apply(null,arguments)},Hy=s._Sum=function(){return(Hy=s._Sum=s.asm.Sum).apply(null,arguments)},qy=s._Tan=function(){return(qy=s._Tan=s.asm.Tan).apply(null,arguments)},jy=s._Tanh=function(){return(jy=s._Tanh=s.asm.Tanh).apply(null,arguments)},Ky=s._TensorScatterUpdate=function(){return(Ky=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},Xy=s._Tile=function(){return(Xy=s._Tile=s.asm.Tile).apply(null,arguments)},Yy=s._TopK=function(){return(Yy=s._TopK=s.asm.TopK).apply(null,arguments)},Zy=s._Transform=function(){return(Zy=s._Transform=s.asm.Transform).apply(null,arguments)},Jy=s._Transpose=function(){return(Jy=s._Transpose=s.asm.Transpose).apply(null,arguments)},Qy=s.__FusedMatMul=function(){return(Qy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},ex=s._malloc=function(){return(ex=s._malloc=s.asm.malloc).apply(null,arguments)},tx=s._free=function(){return(tx=s._free=s.asm.free).apply(null,arguments)},nx=s.___errno_location=function(){return(nx=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},wh=s.stackSave=function(){return(wh=s.stackSave=s.asm.stackSave).apply(null,arguments)},kh=s.stackRestore=function(){return(kh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Jp=s.stackAlloc=function(){return(Jp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},ax=s.dynCall_iijjiiii=function(){return(ax=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},rx=s.dynCall_jiji=function(){return(rx=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Lg;var Fl;jn=function Y(){Fl||Ih(),Fl||(jn=Y)};function Ih(Y){if(Y=Y||p,ut>0||(Ot(),ut>0))return;function oe(){Fl||(Fl=!0,s.calledRun=!0,!U&&(oa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),pn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Ih();var $l;l&&($l={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-1})});var Dl;if(typeof r!="undefined")Dl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Dl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if($l){var sx=Dl._dispose;Dl._dispose=function(){sx(),$l.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),$l.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}return 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)}),$m=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}},Pc=class{refCount(e){return Kn("refCount")}incRef(e){return Kn("incRef")}timerAvailable(){return!0}time(e){return Kn("time")}read(e){return Kn("read")}readSync(e){return Kn("readSync")}readToGPU(e,t){return Kn("readToGPU")}numDataIds(){return Kn("numDataIds")}disposeData(e,t){return Kn("disposeData")}write(e,t,n){return Kn("write")}move(e,t,n,a,r){return Kn("move")}createTensorFromGPUData(e,t,n){return Kn("createTensorFromGPUData")}memory(){return Kn("memory")}floatPrecision(){return Kn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Kn("dispose")}};function Kn(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function tN(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,nm(e,t,n)}function eM(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=0;for(;n>0;)a=Math.random()*n|0,n--,nm(e,n,a),nm(t,n,a)}function xc(e,t,n){return Math.max(e,Math.min(t,n))}function tM(e){return e%2===0?e:e+1}function nm(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function nM(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Ti(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ot(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function pM(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 $a(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>Hl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function aN(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:$a(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 rN(e,t){return Fv(e,t)}function Fv(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 sN(e,t){for(let n=0;nt+=n.length),t}function ns(e){return typeof e=="string"||e instanceof String}function lN(e){return typeof e=="boolean"}function uN(e){return typeof e=="number"}function Lc(e){return Array.isArray(e)?Lc(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":uN(e)?"float32":ns(e)?"string":lN(e)?"bool":"float32"}function us(e){return!!(e&&e.constructor&&e.call&&e.apply)}function rm(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function pN(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return pN(0,e,t,n)}function dM(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function $v(e,t){let n=Dm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Bl(e,new Float32Array(n));if(t==="int32")return Bl(e,new Int32Array(n));if(t==="bool")return Bl(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ra(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function mM(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]=yM(n,a)})}};function gM(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(bM(t,a[0],a[1]),a.join("="))),t}function bM(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function yM(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return Dv}var Dv=null;function xM(e){Dv=e}var cx;function dN(){if(cx==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");cx=e}return cx}function vM(){let e=dN();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Rv(e,t){let n=vM();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var uu="Abs",Ci="Acos",Ei="Acosh",Is="Add",_i="AddN",pu="All",cu="Any",du="ArgMax",hu="ArgMin",Ai="Asin",Fi="Asinh",$i="Atan",Di="Atanh",Ri="Atan2",Mi="AvgPool",zc="AvgPoolGrad",mu="AvgPool3D",Wc="AvgPool3DGrad",Oi="BatchMatMul",fu="BatchToSpaceND",gu="Bincount",bu="BitwiseAnd",hN="BroadcastTo",Bc="BroadcastArgs",Pi="Cast",Li="Ceil",Ss="ClipByValue",Mm="Complex",Vc="ComplexAbs",yu="Concat",zi="Conv2D",Om="Conv2DBackpropFilter",Wi="Conv2DBackpropInput",Bi="Conv3D",xu="Conv3DBackpropFilterV2",vu="Conv3DBackpropInputV2",Vi="Cos",Ui="Cosh",wu="Cumprod",Gi="Cumsum",ku="CropAndResize",Uc="DenseBincount",Iu="DepthToSpace",Hi="DepthwiseConv2dNative",Pm="DepthwiseConv2dNativeBackpropFilter",Lm="DepthwiseConv2dNativeBackpropInput",Gc="Diag",qi="Dilation2D",ql="Dilation2DBackpropInput",jl="Dilation2DBackpropFilter",zm="Draw",ji="RealDiv",Wm="Einsum",Ki="Elu",Su="EluGrad",Xi="Erf",Nu="Equal",Yi="Exp",Tu="ExpandDims",Zi="Expm1",Bm="FFT",Hc="Fill",Cu="FlipLeftRight",Ji="Floor",Qi="FloorDiv",eo="FusedBatchNorm",Eu="GatherV2",_u="GatherNd",Au="Greater",to="GreaterEqual",no="Identity",Vm="IFFT",Um="Imag",ao="IsFinite",ro="IsInf",so="IsNan",io="LeakyRelu",Fu="Less",$u="LessEqual",Du="LinSpace",oo="Log",lo="Log1p",Ru="LogicalAnd",Mu="LogicalNot",Ou="LogicalOr",mN="LogicalXor",fN="LogSoftmax",wM="LowerBound",uo="LRN",Pu="LRNGrad",kM="MatrixBandPart",po="Max",co="Maximum",ho="MaxPool",qc="MaxPoolGrad",Lu="MaxPool3D",jc="MaxPool3DGrad",Kc="MaxPoolWithArgmax",mo="Mean",fo="Min",go="Minimum",bo="MirrorPad",yo="Mod",zu="Multinomial",xo="Multiply",Wu="Neg",Bu="NotEqual",Vu="NonMaxSuppressionV3",Uu="NonMaxSuppressionV4",Gu="NonMaxSuppressionV5",Hu="OnesLike",vo="OneHot",qu="Pack",wo="PadV2",IM="Pool",ko="Pow",Io="Prelu",So="Prod",Gm="RaggedGather",Hm="RaggedRange",qm="RaggedTensorToTensor",Xc="Range",jm="Real",No="Reciprocal",To="Relu",ju="Reshape",Co="ResizeNearestNeighbor",Ku="ResizeNearestNeighborGrad",Eo="ResizeBilinear",Xu="ResizeBilinearGrad",_o="Relu6",Ao="Reverse",Fo="Round",$o="Rsqrt",Yu="ScatterNd",Zu="TensorScatterUpdate",Ju="SearchSorted",Qu="Select",Do="Selu",ep="Slice",Ro="Sin",Mo="Sinh",Oo="Sign",Po="Sigmoid",Lo="Softplus",zo="Sqrt",Wo="Sum",tp="SpaceToBatchND",np="SplitV",Bo="Softmax",Yc="SparseFillEmptyRows",ap="SparseReshape",Zc="SparseSegmentMean",Jc="SparseSegmentSum",rp="SparseToDense",Vo="SquaredDifference",Qc="Square",ed="StaticRegexReplace",sp="StridedSlice",td="StringNGrams",nd="StringSplit",ad="StringToHashBucketFast",Uo="Sub",Go="Tan",Ho="Tanh",Ns="Tile",ip="TopK",op="Transform",Er="Transpose",rd="Unique",lp="Unpack",sd="UnsortedSegmentSum",SM="UpperBound",up="ZerosLike",Ts="Step",sm="FromPixels",pp="RotateWithOffset",oi="_FusedMatMul",li="FusedConv2D",ui="FusedDepthwiseConv2D";function ts(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function NM(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var Kl=Rv("kernelRegistry",()=>new Map),vc=Rv("gradRegistry",()=>new Map);function wc(e,t){let n=Mv(e,t);return Kl.get(n)}function Cx(e){return vc.get(e)}function im(e){let t=Kl.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 id(e){let{kernelName:t,backendName:n}=e,a=Mv(t,n);Kl.has(a)&&ts(`The kernel '${t}' for backend '${n}' is already registered`),Kl.set(a,e)}function gN(e){let{kernelName:t}=e;vc.has(t)&&G().getBool("DEBUG")&&ts(`Overriding the gradient for '${t}'`),vc.set(t,e)}function TM(e,t){let n=Mv(e,t);if(!Kl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Kl.delete(n)}function CM(e){if(!vc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);vc.delete(e)}function EM(e,t){im(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});id(a)})}function Mv(e,t){return`${t}_${e}`}var w={};_e(w,{arraysEqual:()=>$r,arraysEqualWithNull:()=>nN,assert:()=>A,assertNonNegativeIntegerDimensions:()=>ra,assertNonNull:()=>Ti,assertShapesMatch:()=>Sn,bytesFromStringArray:()=>oN,bytesPerElement:()=>am,checkConversionForErrors:()=>sN,clamp:()=>xc,computeStrides:()=>lu,convertBackendValuesAndArrayBuffer:()=>dM,createScalarValue:()=>RM,createShuffledIndices:()=>lM,decodeString:()=>om,distSquared:()=>rM,encodeString:()=>ld,fetch:()=>OM,fingerPrint64:()=>DM,flatten:()=>ps,getArrayFromDType:()=>Fv,getTypedArrayFromDType:()=>rN,hasEncodingLoss:()=>cM,hexToLong:()=>od,indexToLoc:()=>fM,inferDtype:()=>Lc,inferFromImplicitShape:()=>pM,isBoolean:()=>lN,isFunction:()=>us,isInt:()=>Hl,isNumber:()=>uN,isPromise:()=>Rm,isScalarShape:()=>sM,isString:()=>ns,isTypedArray:()=>en,isValidDtype:()=>iN,locToIndex:()=>mM,makeOnesTypedArray:()=>$v,makeZerosNestedTypedArray:()=>hM,makeZerosTypedArray:()=>Dm,nearestDivisor:()=>rm,nearestLargerEven:()=>tM,now:()=>kc,parseAxisParam:()=>$a,randUniform:()=>aM,repeatedTry:()=>uM,rightPad:()=>fc,shuffle:()=>tN,shuffleCombo:()=>eM,sizeFromShape:()=>ot,sizeToSquarishShape:()=>oM,squeezeShape:()=>aN,sum:()=>nM,swap:()=>nm,tanh:()=>iM,toNestedArray:()=>Bl,toTypedArray:()=>Km});function bN(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var fI=ks(PR()),Zs=fI.default||fI;function od(e){return Zs.fromString(e,!0,16)}var yN=od("c3a5c85c97cb3127"),Xs=od("b492b66fbe98f273"),vn=od("9ae16a3b2f90404f");function Ex(e){return e.xor(e.shru(47))}function xN(e,t,n){let a=e.slice(t,t+n);return Zs.fromBytes(Array.from(a),!0,!0)}function bt(e,t){return xN(e,t,8)}function gI(e,t){return xN(e,t,4)}function Qt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function is(e,t,n=od("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function _M(e,t,n,a,r,s){r=r.add(e),s=Qt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Qt(r,44)),[r.add(a),s.add(i)]}function Dh(e,t,n,a){return _M(bt(e,t),bt(e,t+8),bt(e,t+16),bt(e,t+24),n,a)}function AM(e,t=e.length){if(t>=8){let n=vn.add(t*2),a=bt(e,0).add(vn),r=bt(e,t-8),s=Qt(r,37).mul(n).add(a),i=Qt(a,25).add(r).mul(n);return is(s,i,n)}if(t>=4){let n=vn.add(t*2),a=gI(e,0);return is(a.shl(3).add(t),gI(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return Ex(vn.mul(s).xor(yN.mul(i))).mul(vn)}return vn}function FM(e,t=e.length){let n=vn.add(t*2),a=bt(e,0).mul(Xs),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(vn);return is(Qt(a.add(r),43).add(Qt(s,30)).add(i),a.add(Qt(r.add(vn),18)).add(s),n)}function $M(e,t=e.length){let n=vn.add(t*2),a=bt(e,0).mul(vn),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(vn),o=Qt(a.add(r),43).add(Qt(s,30)).add(i),l=is(o,a.add(Qt(r.add(vn),18)).add(s),n),u=bt(e,16).mul(n),p=bt(e,24),d=o.add(bt(e,t-32)).mul(n),c=l.add(bt(e,t-24)).mul(n);return is(Qt(u.add(p),43).add(Qt(d,30)).add(c),u.add(Qt(p.add(a),18)).add(d),n)}function DM(e,t=e.length){let n=Zs.fromNumber(81,!0);if(t<=32)return t<=16?AM(e,t):FM(e,t);if(t<=64)return $M(e,t);let a=n,r=n.mul(Xs).add(113),s=Ex(r.mul(vn).add(113)).mul(vn),i=[Zs.UZERO,Zs.UZERO],o=[Zs.UZERO,Zs.UZERO];a=a.mul(vn).add(bt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(Xs),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(Xs),a=a.xor(o[1]),r=r.add(i[0]).add(bt(e,l+40)),s=Qt(s.add(o[0]),33).mul(Xs),i=Dh(e,l,i[1].mul(Xs),a.add(o[0])),o=Dh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Xs.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(d),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(bt(e,l+40))),s=Qt(s.add(o[0]),33).mul(d),i=Dh(e,l,i[1].mul(d),a.add(o[0])),o=Dh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],is(is(i[0],o[0],d).add(Ex(r).mul(yN)).add(s),is(i[1],o[1],d).add(a),d)}function RM(e,t){return t==="string"?ld(e):Km([e],t)}function MM(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Km(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ps(e)),G().getBool("DEBUG")&&sN(e,t),MM(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=kc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:kc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{LM(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 LM(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function WM(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],p=u.inputs;for(let d=0;d=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 p=s.inputs[l];if(!$r(u.shape,p.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 '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var bI=20,ec=3,dx=7;function VM(e,t,n,a){let r=lu(t),s=UM(e,t,n,r),i=t.length,o=jh(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(` +`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,se=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var ve=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Hs("no native wasm support detected");var ue,ye,ke=!1,Se;function Le(R,j){R||Hs(j)}var Ge=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function mt(R,j,le){j>>>=0;for(var Ne=j+le,Me=j;R[Me]&&!(Me>=Ne);)++Me;if(Me-j>16&&R.buffer&&Ge)return Ge.decode(R.buffer instanceof SharedArrayBuffer?R.slice(j,Me):R.subarray(j,Me));for(var Fe="";j>10,56320|pa&1023)}}return Fe}function st(R,j){return R>>>=0,R?mt(i(),R,j):""}function at(R,j,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Me=le,Fe=le+Ne-1,me=0;me=55296&&we<=57343){var Ct=R.charCodeAt(++me);we=65536+((we&1023)<<10)|Ct&1023}if(we<=127){if(le>=Fe)break;j[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;j[le++>>>0]=192|we>>6,j[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;j[le++>>>0]=224|we>>12,j[le++>>>0]=128|we>>6&63,j[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;j[le++>>>0]=240|we>>18,j[le++>>>0]=128|we>>12&63,j[le++>>>0]=128|we>>6&63,j[le++>>>0]=128|we&63}}return j[le>>>0]=0,le-Me}function rt(R,j,le){return at(R,i(),j,le)}var Re,gt,jn,Ot,oa,cn,Fn,la,$n;C&&(Re=c.buffer);function ut(R){Re=R,c.HEAP8=gt=new Int8Array(R),c.HEAP16=Ot=new Int16Array(R),c.HEAP32=cn=new Int32Array(R),c.HEAPU8=jn=new Uint8Array(R),c.HEAPU16=oa=new Uint16Array(R),c.HEAPU32=Fn=new Uint32Array(R),c.HEAPF32=la=new Float32Array(R),c.HEAPF64=$n=new Float64Array(R)}var Dn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Re=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Dn/65536,maximum:65536,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),N&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Re=ue.buffer),Dn=Re.byteLength,ut(Re);var qn,wr=[],Cl=[],Qa=[],jp=!1;function Na(){return ve}function qr(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)$g(c.preRun.shift());Kp(wr)}function Jt(){jp=!0,!C&&Kp(Cl)}function rh(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)nI(c.postRun.shift());Kp(Qa)}}function $g(R){wr.unshift(R)}function Dg(R){Cl.unshift(R)}function nI(R){Qa.unshift(R)}var Kr=0,El=null,kr=null;function Rg(R){Kr++,c.monitorRunDependencies&&c.monitorRunDependencies(Kr)}function sh(R){if(Kr--,c.monitorRunDependencies&&c.monitorRunDependencies(Kr),Kr==0&&(El!==null&&(clearInterval(El),El=null),kr)){var j=kr;kr=null,j()}}function Hs(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(R);throw m(j),j}var Mg="data:application/octet-stream;base64,";function ih(R){return R.startsWith(Mg)}function _l(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",ih(gn)||(gn=F(gn));function oh(R){try{if(R==gn&&ie)return new Uint8Array(ie);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(j){Hs(j)}}function Og(){if(!ie&&(v||I)){if(typeof fetch=="function"&&!_l(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return oh(gn)});if($)return new Promise(function(R,j){$(gn,function(le){R(new Uint8Array(le))},j)})}return Promise.resolve().then(function(){return oh(gn)})}function Pg(){var R={env:vh,wasi_snapshot_preview1:vh};function j(me,we){var Ct=me.exports;if(c.asm=Ct,jg(c.asm._emscripten_tls_init),qn=c.asm.__indirect_function_table,Dg(c.asm.__wasm_call_ctors),ye=we,!C){var pa=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(Sr){Ae.loadWasmModuleToWorker(Sr,function(){--pa||sh("wasm-instantiate")})})}}C||Rg("wasm-instantiate");function le(me){j(me.instance,me.module)}function Ne(me){return Og().then(function(we){return WebAssembly.instantiate(we,R)}).then(function(we){return we}).then(me,function(we){J("failed to asynchronously prepare wasm: "+we),Hs(we)})}function Me(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!ih(gn)&&!_l(gn)&&!N&&typeof fetch=="function"?fetch(gn,{credentials:"same-origin"}).then(function(me){var we=WebAssembly.instantiateStreaming(me,R);return we.then(le,function(Ct){return J("wasm streaming compile failed: "+Ct),J("falling back to ArrayBuffer instantiation"),Ne(le)})}):Ne(le)}if(c.instantiateWasm)try{var Fe=c.instantiateWasm(R,j);return Fe}catch(me){J("Module.instantiateWasm callback failed with error: "+me),m(me)}return Me().catch(m),{}}var aI,rI,lh={};function js(R){this.name="ExitStatus",this.message="Program terminated with exit("+R+")",this.status=R}function Lg(R){var j=Ae.pthreads[R];delete Ae.pthreads[R],j.terminate(),lx(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function zg(R){var j=Ae.pthreads[R];j.postMessage({cmd:"cancel"})}function qp(R){var j=Ae.pthreads[R];Le(j),Ae.returnWorkerToPool(j)}function Wg(R){var j=Ae.getNewWorker();if(!j)return 6;Ae.runningWorkers.push(j),Ae.pthreads[R.pthread_ptr]=j,j.pthread_ptr=R.pthread_ptr;var le={cmd:"run",start_routine:R.startRoutine,arg:R.arg,pthread_ptr:R.pthread_ptr};return j.runPthread=()=>{N&&j.ref(),j.postMessage(le,R.transferList),delete j.runPthread},j.loaded&&j.runPthread(),0}var uh={varargs:void 0,get:function(){uh.varargs+=4;var R=l()[uh.varargs-4>>>2];return R},getStr:function(R){var j=st(R);return j}};function ph(R){if(C)return Xr(1,1,R);Se=R,Na()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(R),ke=!0),x(R,new js(R))}function Bg(R,j){if(Se=R,!j&&C)throw dh(R),"unwind";ph(R)}var ch=Bg;function Vg(R){if(R instanceof js||R=="unwind")return Se;x(1,R)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var R=8;R--;)Ae.allocateUnusedWorker()},initWorker:function(){ve=!1},setExitStatus:function(R){Se=R},terminateAllThreads:function(){for(var R of Object.values(Ae.pthreads))Ae.returnWorkerToPool(R);for(var R of Ae.unusedWorkers)R.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(R){var j=R.pthread_ptr;delete Ae.pthreads[j],Ae.unusedWorkers.push(R),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(R),1),R.pthread_ptr=0,N&&R.unref(),lx(j)},receiveObjectTransfer:function(R){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(R=>R())},loadWasmModuleToWorker:function(R,j){R.onmessage=Fe=>{var me=Fe.data,we=me.cmd;if(R.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=R.pthread_ptr),me.targetThread&&me.targetThread!=Th()){var Ct=Ae.pthreads[me.targetThread];Ct?Ct.postMessage(me,me.transferList):J('Internal error! Worker sent a message "'+we+'" to target pthread '+me.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}we==="processProxyingQueue"?Xp(me.queue):we==="spawnThread"?Wg(me):we==="cleanupThread"?qp(me.thread):we==="killThread"?Lg(me.thread):we==="cancelThread"?zg(me.thread):we==="loaded"?(R.loaded=!0,N&&R.unref(),j&&j(R),R.runPthread&&R.runPthread()):we==="print"?Z("Thread "+me.threadId+": "+me.text):we==="printErr"?J("Thread "+me.threadId+": "+me.text):we==="alert"?alert("Thread "+me.threadId+": "+me.text):me.target==="setimmediate"?R.postMessage(me):we==="callHandler"?c[me.handler](...me.args):we&&J("worker sent an unknown command "+we),Ae.currentProxiedOperationCallerThread=void 0},R.onerror=Fe=>{var me="worker sent an error!";throw J(me+" "+Fe.filename+":"+Fe.lineno+": "+Fe.message),Fe},N&&(R.on("message",function(Fe){R.onmessage({data:Fe})}),R.on("error",function(Fe){R.onerror(Fe)}),R.on("detachedExit",function(){}));var le=[],Ne=["onExit","onAbort","print","printErr"];for(var Me of Ne)c.hasOwnProperty(Me)&&le.push(Me);R.postMessage({cmd:"load",handlers:le,urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:ye})},allocateUnusedWorker:function(){var R,j=F("tfjs-backend-wasm-threaded-simd.worker.js");R=new Worker(j),Ae.unusedWorkers.push(R)},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Kp(R){for(;R.length>0;)R.shift()(c)}function Ug(){var R=Th(),j=l()[R+52>>>2],le=l()[R+56>>>2],Ne=j-le;pI(j,Ne),Ch(j)}c.establishStackSpace=Ug;function dh(R){if(C)return Xr(2,0,R);try{ch(R)}catch(j){Vg(j)}}var Al=[];function Gg(R){var j=Al[R];return j||(R>=Al.length&&(Al.length=R+1),Al[R]=j=qn.get(R)),j}function Hg(R,j){var le=Gg(R)(j);Na()?Ae.setExitStatus(le):uI(le)}c.invokeEntryPoint=Hg;function jg(R){Ae.tlsInitFunctions.push(R)}function qg(R){iI(R,!I,1,!v),Ae.threadInitTLS()}function Kg(R){C?postMessage({cmd:"cleanupThread",thread:R}):qp(R)}function hh(R,j,le,Ne){return C?Xr(3,1,R,j,le,Ne):mh(R,j,le,Ne)}function mh(R,j,le,Ne){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Me=[],Fe=0;if(C&&(Me.length===0||Fe))return hh(R,j,le,Ne);if(Fe)return Fe;var me={startRoutine:le,pthread_ptr:R,arg:Ne,transferList:Me};return C?(me.cmd="spawnThread",postMessage(me,Me),0):Wg(me)}function Xg(){return 65536}var Yg=!0;function Zg(){return Yg}function Xp(R){Atomics.store(l(),R>>2,1),Th()&&lI(R),Atomics.compareExchange(l(),R>>2,1,0)}c.executeNotifiedProxyingQueue=Xp;function Jg(R,j,le,Ne){if(R==j)setTimeout(()=>Xp(Ne));else if(C)postMessage({targetThread:R,cmd:"processProxyingQueue",queue:Ne});else{var Me=Ae.pthreads[R];if(!Me)return;Me.postMessage({cmd:"processProxyingQueue",queue:Ne})}return 1}function Qg(R,j,le){return-1}function eb(){Hs("")}function qs(R){qs.shown||(qs.shown={}),qs.shown[R]||(qs.shown[R]=1,N&&(R="warning: "+R),J(R))}function tb(){N||I||qs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function nb(){return Date.now()}function fh(){return 4294901760}function ab(){return fh()}var Yp;N?Yp=()=>{var R=process.hrtime();return R[0]*1e3+R[1]/1e6}:Yp=()=>performance.timeOrigin+performance.now();function rb(R,j,le){i().copyWithin(R>>>0,j>>>0,j+le>>>0)}function sb(){return N?JR().cpus().length:navigator.hardwareConcurrency}function ib(R){var j=ux(),le=R();return Ch(j),le}function Xr(R,j){var le=arguments.length-2,Ne=arguments;return ib(()=>{for(var Me=le,Fe=Eh(Me*8),me=Fe>>3,we=0;we>>0]=Ct}return oI(R,Me,Fe,j)})}var Zp=[];function ob(R,j,le){Zp.length=j;for(var Ne=le>>3,Me=0;Me>>0];var Fe=R<0,me=Fe?lh[-R-1]:gb[R];return me.apply(null,Zp)}function lb(R){try{return ue.grow(R-Re.byteLength+65535>>>16),ut(ue.buffer),1}catch(j){}}function ub(R){var j=i().length;if(R=R>>>0,R<=j)return!1;var le=fh();if(R>le)return!1;let Ne=(Ct,pa)=>Ct+(pa-Ct%pa)%pa;for(var Me=1;Me<=4;Me*=2){var Fe=j*(1+.2/Me);Fe=Math.min(Fe,R+100663296);var me=Math.min(le,Ne(Math.max(R,Fe),65536)),we=lb(me);if(we)return!0}return!1}function pb(){throw"unwind"}function gh(R){return C?Xr(4,1,R):52}function bh(R,j,le,Ne,Me){return C?Xr(5,1,R,j,le,Ne,Me):70}var cb=[null,[],[]];function db(R,j){var le=cb[R];j===0||j===10?((R===1?Z:J)(mt(le,0)),le.length=0):le.push(j)}function yh(R,j,le,Ne){if(C)return Xr(6,1,R,j,le,Ne);for(var Me=0,Fe=0;Fe>>2],we=u()[j+4>>>2];j+=8;for(var Ct=0;Ct>>0]);Me+=we}return u()[Ne>>>2]=Me,0}function xh(R){var j=c["_"+R];return j}function hb(R,j){s().set(R,j>>>0)}function mb(R,j,le,Ne,Me){var Fe={string:ca=>{var Rl=0;if(ca!=null&&ca!==0){var hI=(ca.length<<2)+1;Rl=Eh(hI),rt(ca,Rl,hI)}return Rl},array:ca=>{var Rl=Eh(ca.length);return hb(ca,Rl),Rl}};function me(ca){return j==="string"?st(ca):j==="boolean"?!!ca:ca}var we=xh(R),Ct=[],pa=0;if(Ne)for(var Sr=0;Srme==="number"||me==="boolean"),Fe=j!=="string";return Fe&&Me&&!Ne?xh(R):function(){return mb(R,j,le,arguments,Ne)}}Ae.init();var gb=[null,ph,dh,hh,gh,bh,yh],vh={__emscripten_init_main_thread_js:qg,__emscripten_thread_cleanup:Kg,__pthread_create_js:mh,_emscripten_default_pthread_stack_size:Xg,_emscripten_get_now_is_monotonic:Zg,_emscripten_notify_task_queue:Jg,_emscripten_set_offscreencanvas_size:Qg,abort:eb,emscripten_check_blocking_allowed:tb,emscripten_date_now:nb,emscripten_get_heap_max:ab,emscripten_get_now:Yp,emscripten_memcpy_big:rb,emscripten_num_logical_cores:sb,emscripten_receive_on_main_thread_js:ob,emscripten_resize_heap:ub,emscripten_unwind_to_js_event_loop:pb,exit:ch,fd_close:gh,fd_seek:bh,fd_write:yh,memory:ue||c.wasmMemory},sI=Pg(),bb=c.___wasm_call_ctors=function(){return(bb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},yb=c._init=function(){return(yb=c._init=c.asm.init).apply(null,arguments)},xb=c._init_with_threads_count=function(){return(xb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},vb=c._get_threads_count=function(){return(vb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},wb=c._register_tensor=function(){return(wb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},kb=c._dispose_data=function(){return(kb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},Ib=c._dispose=function(){return(Ib=c._dispose=c.asm.dispose).apply(null,arguments)},Sb=c._Abs=function(){return(Sb=c._Abs=c.asm.Abs).apply(null,arguments)},Nb=c._Acos=function(){return(Nb=c._Acos=c.asm.Acos).apply(null,arguments)},Tb=c._Acosh=function(){return(Tb=c._Acosh=c.asm.Acosh).apply(null,arguments)},Cb=c._Add=function(){return(Cb=c._Add=c.asm.Add).apply(null,arguments)},Eb=c._AddN=function(){return(Eb=c._AddN=c.asm.AddN).apply(null,arguments)},_b=c._All=function(){return(_b=c._All=c.asm.All).apply(null,arguments)},Ab=c._Any=function(){return(Ab=c._Any=c.asm.Any).apply(null,arguments)},Fb=c._ArgMax=function(){return(Fb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},$b=c._ArgMin=function(){return($b=c._ArgMin=c.asm.ArgMin).apply(null,arguments)},Db=c._Asin=function(){return(Db=c._Asin=c.asm.Asin).apply(null,arguments)},Rb=c._Asinh=function(){return(Rb=c._Asinh=c.asm.Asinh).apply(null,arguments)},Mb=c._Atan=function(){return(Mb=c._Atan=c.asm.Atan).apply(null,arguments)},Ob=c._Atan2=function(){return(Ob=c._Atan2=c.asm.Atan2).apply(null,arguments)},Pb=c._Atanh=function(){return(Pb=c._Atanh=c.asm.Atanh).apply(null,arguments)},Lb=c._AvgPool=function(){return(Lb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},zb=c._AvgPool3D=function(){return(zb=c._AvgPool3D=c.asm.AvgPool3D).apply(null,arguments)},Wb=c._AvgPool3DGrad=function(){return(Wb=c._AvgPool3DGrad=c.asm.AvgPool3DGrad).apply(null,arguments)},Bb=c._AvgPoolGrad=function(){return(Bb=c._AvgPoolGrad=c.asm.AvgPoolGrad).apply(null,arguments)},Vb=c._BatchMatMul=function(){return(Vb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Ub=c._Bincount=function(){return(Ub=c._Bincount=c.asm.Bincount).apply(null,arguments)},Gb=c._BitwiseAnd=function(){return(Gb=c._BitwiseAnd=c.asm.BitwiseAnd).apply(null,arguments)},Hb=c._Ceil=function(){return(Hb=c._Ceil=c.asm.Ceil).apply(null,arguments)},jb=c._ClipByValue=function(){return(jb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},qb=c._Conv2D=function(){return(qb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},Kb=c._Conv2DBackpropInput=function(){return(Kb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Xb=c._Conv3D=function(){return(Xb=c._Conv3D=c.asm.Conv3D).apply(null,arguments)},Yb=c._Conv3DBackpropFilterV2=function(){return(Yb=c._Conv3DBackpropFilterV2=c.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Zb=c._Conv3DBackpropInputV2=function(){return(Zb=c._Conv3DBackpropInputV2=c.asm.Conv3DBackpropInputV2).apply(null,arguments)},Jb=c._Cos=function(){return(Jb=c._Cos=c.asm.Cos).apply(null,arguments)},Qb=c._Cosh=function(){return(Qb=c._Cosh=c.asm.Cosh).apply(null,arguments)},ey=c._CropAndResize=function(){return(ey=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},ty=c._Cumprod=function(){return(ty=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},ny=c._Cumsum=function(){return(ny=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},ay=c._DenseBincount=function(){return(ay=c._DenseBincount=c.asm.DenseBincount).apply(null,arguments)},ry=c._DepthToSpace=function(){return(ry=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},sy=c._DepthwiseConv2dNative=function(){return(sy=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},iy=c._Diag=function(){return(iy=c._Diag=c.asm.Diag).apply(null,arguments)},oy=c._Dilation2D=function(){return(oy=c._Dilation2D=c.asm.Dilation2D).apply(null,arguments)},ly=c._Dilation2DBackpropFilter=function(){return(ly=c._Dilation2DBackpropFilter=c.asm.Dilation2DBackpropFilter).apply(null,arguments)},uy=c._Dilation2DBackpropInput=function(){return(uy=c._Dilation2DBackpropInput=c.asm.Dilation2DBackpropInput).apply(null,arguments)},py=c._Elu=function(){return(py=c._Elu=c.asm.Elu).apply(null,arguments)},cy=c._EluGrad=function(){return(cy=c._EluGrad=c.asm.EluGrad).apply(null,arguments)},dy=c._Equal=function(){return(dy=c._Equal=c.asm.Equal).apply(null,arguments)},hy=c._Erf=function(){return(hy=c._Erf=c.asm.Erf).apply(null,arguments)},my=c._Exp=function(){return(my=c._Exp=c.asm.Exp).apply(null,arguments)},fy=c._Expm1=function(){return(fy=c._Expm1=c.asm.Expm1).apply(null,arguments)},gy=c._FlipLeftRight=function(){return(gy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},by=c._Floor=function(){return(by=c._Floor=c.asm.Floor).apply(null,arguments)},yy=c._FloorDiv=function(){return(yy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},xy=c._FusedBatchNorm=function(){return(xy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},vy=c._FusedConv2D=function(){return(vy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},wy=c._FusedDepthwiseConv2D=function(){return(wy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},ky=c._Gather=function(){return(ky=c._Gather=c.asm.Gather).apply(null,arguments)},Iy=c._GatherNd=function(){return(Iy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},Sy=c._Greater=function(){return(Sy=c._Greater=c.asm.Greater).apply(null,arguments)},Ny=c._GreaterEqual=function(){return(Ny=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Ty=c._IsFinite=function(){return(Ty=c._IsFinite=c.asm.IsFinite).apply(null,arguments)},Cy=c._IsInf=function(){return(Cy=c._IsInf=c.asm.IsInf).apply(null,arguments)},Ey=c._IsNan=function(){return(Ey=c._IsNan=c.asm.IsNan).apply(null,arguments)},_y=c._LRN=function(){return(_y=c._LRN=c.asm.LRN).apply(null,arguments)},Ay=c._LRNGrad=function(){return(Ay=c._LRNGrad=c.asm.LRNGrad).apply(null,arguments)},Fy=c._LeakyRelu=function(){return(Fy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},$y=c._Less=function(){return($y=c._Less=c.asm.Less).apply(null,arguments)},Dy=c._LessEqual=function(){return(Dy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Ry=c._LinSpace=function(){return(Ry=c._LinSpace=c.asm.LinSpace).apply(null,arguments)},My=c._Log=function(){return(My=c._Log=c.asm.Log).apply(null,arguments)},Oy=c._Log1p=function(){return(Oy=c._Log1p=c.asm.Log1p).apply(null,arguments)},Py=c._LogicalAnd=function(){return(Py=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Ly=c._LogicalNot=function(){return(Ly=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},zy=c._LogicalOr=function(){return(zy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Wy=c._LogicalXor=function(){return(Wy=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},By=c._Max=function(){return(By=c._Max=c.asm.Max).apply(null,arguments)},Vy=c._MaxPool=function(){return(Vy=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Uy=c._MaxPool3D=function(){return(Uy=c._MaxPool3D=c.asm.MaxPool3D).apply(null,arguments)},Gy=c._MaxPool3DGrad=function(){return(Gy=c._MaxPool3DGrad=c.asm.MaxPool3DGrad).apply(null,arguments)},Hy=c._MaxPoolGrad=function(){return(Hy=c._MaxPoolGrad=c.asm.MaxPoolGrad).apply(null,arguments)},jy=c._MaxPoolWithArgmax=function(){return(jy=c._MaxPoolWithArgmax=c.asm.MaxPoolWithArgmax).apply(null,arguments)},qy=c._Maximum=function(){return(qy=c._Maximum=c.asm.Maximum).apply(null,arguments)},Ky=c._Mean=function(){return(Ky=c._Mean=c.asm.Mean).apply(null,arguments)},Xy=c._Min=function(){return(Xy=c._Min=c.asm.Min).apply(null,arguments)},Yy=c._Minimum=function(){return(Yy=c._Minimum=c.asm.Minimum).apply(null,arguments)},Zy=c._MirrorPad=function(){return(Zy=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Jy=c._Mod=function(){return(Jy=c._Mod=c.asm.Mod).apply(null,arguments)},Qy=c._Multinomial=function(){return(Qy=c._Multinomial=c.asm.Multinomial).apply(null,arguments)},ex=c._Multiply=function(){return(ex=c._Multiply=c.asm.Multiply).apply(null,arguments)},tx=c._Neg=function(){return(tx=c._Neg=c.asm.Neg).apply(null,arguments)},nx=c._NonMaxSuppressionV3=function(){return(nx=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},ax=c._NonMaxSuppressionV4=function(){return(ax=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},wh=c._NonMaxSuppressionV5=function(){return(wh=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},kh=c._NotEqual=function(){return(kh=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},Jp=c._OneHot=function(){return(Jp=c._OneHot=c.asm.OneHot).apply(null,arguments)},rx=c._PadV2=function(){return(rx=c._PadV2=c.asm.PadV2).apply(null,arguments)},sx=c._Pow=function(){return(sx=c._Pow=c.asm.Pow).apply(null,arguments)},Fl=c._Prelu=function(){return(Fl=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ih=c._Prod=function(){return(Ih=c._Prod=c.asm.Prod).apply(null,arguments)},$l=c._RealDiv=function(){return($l=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Dl=c._Reciprocal=function(){return(Dl=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},ix=c._Relu=function(){return(ix=c._Relu=c.asm.Relu).apply(null,arguments)},Y=c._Relu6=function(){return(Y=c._Relu6=c.asm.Relu6).apply(null,arguments)},oe=c._ResizeBilinear=function(){return(oe=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Ie=c._ResizeBilinearGrad=function(){return(Ie=c._ResizeBilinearGrad=c.asm.ResizeBilinearGrad).apply(null,arguments)},Ye=c._ResizeNearestNeighbor=function(){return(Ye=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},wt=c._ResizeNearestNeighborGrad=function(){return(wt=c._ResizeNearestNeighborGrad=c.asm.ResizeNearestNeighborGrad).apply(null,arguments)},kt=c._Reverse=function(){return(kt=c._Reverse=c.asm.Reverse).apply(null,arguments)},He=c._RotateWithOffset=function(){return(He=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Be=c._Round=function(){return(Be=c._Round=c.asm.Round).apply(null,arguments)},Pt=c._Rsqrt=function(){return(Pt=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},ua=c._ScatterNd=function(){return(ua=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},Ir=c._SearchSorted=function(){return(Ir=c._SearchSorted=c.asm.SearchSorted).apply(null,arguments)},Sh=c._SelectV2=function(){return(Sh=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},Qp=c._Selu=function(){return(Qp=c._Selu=c.asm.Selu).apply(null,arguments)},ox=c._Sigmoid=function(){return(ox=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},Rn=c._Sign=function(){return(Rn=c._Sign=c.asm.Sign).apply(null,arguments)},Yr=c._Sin=function(){return(Yr=c._Sin=c.asm.Sin).apply(null,arguments)},Nh=c._Sinh=function(){return(Nh=c._Sinh=c.asm.Sinh).apply(null,arguments)},KD=c._Softmax=function(){return(KD=c._Softmax=c.asm.Softmax).apply(null,arguments)},XD=c._Softplus=function(){return(XD=c._Softplus=c.asm.Softplus).apply(null,arguments)},YD=c._SparseFillEmptyRows=function(){return(YD=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},ZD=c._SparseReshape=function(){return(ZD=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},JD=c._SparseSegmentReduction=function(){return(JD=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},QD=c._SparseToDense=function(){return(QD=c._SparseToDense=c.asm.SparseToDense).apply(null,arguments)},eR=c._Sqrt=function(){return(eR=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},tR=c._Square=function(){return(tR=c._Square=c.asm.Square).apply(null,arguments)},nR=c._SquaredDifference=function(){return(nR=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},aR=c._Step=function(){return(aR=c._Step=c.asm.Step).apply(null,arguments)},rR=c._StridedSlice=function(){return(rR=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},sR=c._Sub=function(){return(sR=c._Sub=c.asm.Sub).apply(null,arguments)},iR=c._Sum=function(){return(iR=c._Sum=c.asm.Sum).apply(null,arguments)},oR=c._Tan=function(){return(oR=c._Tan=c.asm.Tan).apply(null,arguments)},lR=c._Tanh=function(){return(lR=c._Tanh=c.asm.Tanh).apply(null,arguments)},uR=c._TensorScatterUpdate=function(){return(uR=c._TensorScatterUpdate=c.asm.TensorScatterUpdate).apply(null,arguments)},pR=c._Tile=function(){return(pR=c._Tile=c.asm.Tile).apply(null,arguments)},cR=c._TopK=function(){return(cR=c._TopK=c.asm.TopK).apply(null,arguments)},dR=c._Transform=function(){return(dR=c._Transform=c.asm.Transform).apply(null,arguments)},hR=c._Transpose=function(){return(hR=c._Transpose=c.asm.Transpose).apply(null,arguments)},mR=c.__FusedMatMul=function(){return(mR=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},fR=c._malloc=function(){return(fR=c._malloc=c.asm.malloc).apply(null,arguments)},gR=c._free=function(){return(gR=c._free=c.asm.free).apply(null,arguments)},bR=c.__emscripten_tls_init=function(){return(bR=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Th=c._pthread_self=function(){return(Th=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},yR=c.___errno_location=function(){return(yR=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},iI=c.__emscripten_thread_init=function(){return(iI=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},xR=c.__emscripten_thread_crashed=function(){return(xR=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},vR=c._emscripten_main_thread_process_queued_calls=function(){return(vR=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},wR=c._emscripten_main_browser_thread_id=function(){return(wR=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},oI=c._emscripten_run_in_main_runtime_thread_js=function(){return(oI=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},kR=c._emscripten_dispatch_to_thread_=function(){return(kR=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},lI=c.__emscripten_proxy_execute_task_queue=function(){return(lI=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},lx=c.__emscripten_thread_free_data=function(){return(lx=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},uI=c.__emscripten_thread_exit=function(){return(uI=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},pI=c._emscripten_stack_set_limits=function(){return(pI=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},ux=c.stackSave=function(){return(ux=c.stackSave=c.asm.stackSave).apply(null,arguments)},Ch=c.stackRestore=function(){return(Ch=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Eh=c.stackAlloc=function(){return(Eh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},IR=c.dynCall_iijjiiii=function(){return(IR=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},SR=c.dynCall_jiji=function(){return(SR=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Na,c.wasmMemory=ue,c.cwrap=fb,c.ExitStatus=js,c.PThread=Ae;var _h;kr=function R(){_h||cI(),_h||(kr=R)};function cI(R){if(R=R||b,Kr>0)return;if(C){h(c),Jt(),startWorker(c);return}if(qr(),Kr>0)return;function j(){_h||(_h=!0,c.calledRun=!0,!ke&&(Jt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),rh()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();cI();var Ah;f&&(Ah={uncaughtException:process.listeners("uncaughtException").filter(function(R){return!f.uncaughtException.indexOf(R)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(R){return!f.unhandledRejection.indexOf(R)>-1})});var Fh;if(typeof WasmBackendModule!="undefined")Fh=WasmBackendModule;else if(typeof r!="undefined")Fh=r;else throw new Error("Could not find wasm module in post.js");if(Ah){var NR=Fh._dispose;Fh._dispose=function(){NR(),Ah.uncaughtException.forEach(function(R){process.removeListener("uncaughtException",R)}),Ah.unhandledRejection.forEach(function(R){process.removeListener("unhandledRejection",R)})}}return 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)}),eM=Vt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}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;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),tM=Vt((e,t)=>{var n=(()=>{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(Y,oe){i=Y,o=oe});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(Y,oe)=>{throw oe},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(Y){return s.locateFile?s.locateFile(Y,g):g+Y}var y,x,v,I;function N(Y){Y instanceof El||D("exiting due to exception: "+Y)}if(f){var C=Fv(),_=eN();m?g=_.dirname(g)+"/":g=__dirname+"/",y=(Y,oe)=>(Y=qr(Y)?new URL(Y):_.normalize(Y),C.readFileSync(Y,oe?void 0:"utf8")),v=Y=>{var oe=y(Y,!0);return oe.buffer||(oe=new Uint8Array(oe)),oe},x=(Y,oe,Ie)=>{Y=qr(Y)?new URL(Y):_.normalize(Y),C.readFile(Y,function(Ye,wt){Ye?Ie(Ye):oe(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(Y){if(!(Y instanceof El))throw Y}),process.on("unhandledRejection",function(Y){throw Y}),c=(Y,oe)=>{if(jn())throw process.exitCode=Y,oe;N(oe),process.exit(Y)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",y=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.send(null),oe.responseText},m&&(v=Y=>{var oe=new XMLHttpRequest;return oe.open("GET",Y,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),x=(Y,oe,Ie)=>{var Ye=new XMLHttpRequest;Ye.open("GET",Y,!0),Ye.responseType="arraybuffer",Ye.onload=()=>{if(Ye.status==200||Ye.status==0&&Ye.response){oe(Ye.response);return}Ie()},Ye.onerror=Ie,Ye.send(null)},I=Y=>document.title=Y);var F=s.print||console.log.bind(console),D=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var $=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Qa("no native wasm support detected");var B,U=!1,H;function q(Y,oe){Y||Qa(oe)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(Y,oe,Ie){oe>>>=0;for(var Ye=oe+Ie,wt=oe;Y[wt]&&!(wt>=Ye);)++wt;if(wt-oe>16&&Y.buffer&&K)return K.decode(Y.subarray(oe,wt));for(var kt="";oe>10,56320|ua&1023)}}return kt}function J(Y,oe){return Y>>>=0,Y?Z(ie,Y,oe):""}function ee(Y,oe,Ie,Ye){if(Ie>>>=0,!(Ye>0))return 0;for(var wt=Ie,kt=Ie+Ye-1,He=0;He=55296&&Be<=57343){var Pt=Y.charCodeAt(++He);Be=65536+((Be&1023)<<10)|Pt&1023}if(Be<=127){if(Ie>=kt)break;oe[Ie++>>>0]=Be}else if(Be<=2047){if(Ie+1>=kt)break;oe[Ie++>>>0]=192|Be>>6,oe[Ie++>>>0]=128|Be&63}else if(Be<=65535){if(Ie+2>=kt)break;oe[Ie++>>>0]=224|Be>>12,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}else{if(Ie+3>=kt)break;oe[Ie++>>>0]=240|Be>>18,oe[Ie++>>>0]=128|Be>>12&63,oe[Ie++>>>0]=128|Be>>6&63,oe[Ie++>>>0]=128|Be&63}}return oe[Ie>>>0]=0,Ie-wt}function ae(Y,oe,Ie){return ee(Y,ie,oe,Ie)}var te,se,ie,ve,ue,ye,ke,Se,Le;function Ge(Y){te=Y,s.HEAP8=se=new Int8Array(Y),s.HEAP16=ve=new Int16Array(Y),s.HEAP32=ye=new Int32Array(Y),s.HEAPU8=ie=new Uint8Array(Y),s.HEAPU16=ue=new Uint16Array(Y),s.HEAPU32=ke=new Uint32Array(Y),s.HEAPF32=Se=new Float32Array(Y),s.HEAPF64=Le=new Float64Array(Y)}var mt=s.INITIAL_MEMORY||16777216,st,at=[],rt=[],Re=[],gt=!1;function jn(){return M}function Ot(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());kr(at)}function oa(){gt=!0,kr(rt)}function cn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)$n(s.postRun.shift());kr(Re)}function Fn(Y){at.unshift(Y)}function la(Y){rt.unshift(Y)}function $n(Y){Re.unshift(Y)}var ut=0,Dn=null,qn=null;function wr(Y){ut++,s.monitorRunDependencies&&s.monitorRunDependencies(ut)}function Cl(Y){if(ut--,s.monitorRunDependencies&&s.monitorRunDependencies(ut),ut==0&&(Dn!==null&&(clearInterval(Dn),Dn=null),qn)){var oe=qn;qn=null,oe()}}function Qa(Y){s.onAbort&&s.onAbort(Y),Y="Aborted("+Y+")",D(Y),U=!0,H=1,Y+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError(Y);throw o(oe),oe}var jp="data:application/octet-stream;base64,";function Na(Y){return Y.startsWith(jp)}function qr(Y){return Y.startsWith("file://")}var Jt;Jt="tfjs-backend-wasm.wasm",Na(Jt)||(Jt=b(Jt));function rh(Y){try{if(Y==Jt&&S)return new Uint8Array(S);if(v)return v(Y);throw"both async and sync fetching of the wasm failed"}catch(oe){Qa(oe)}}function $g(){if(!S&&(h||m)){if(typeof fetch=="function"&&!qr(Jt))return fetch(Jt,{credentials:"same-origin"}).then(function(Y){if(!Y.ok)throw"failed to load wasm binary file at '"+Jt+"'";return Y.arrayBuffer()}).catch(function(){return rh(Jt)});if(x)return new Promise(function(Y,oe){x(Jt,function(Ie){Y(new Uint8Array(Ie))},oe)})}return Promise.resolve().then(function(){return rh(Jt)})}function Dg(){var Y={env:qp,wasi_snapshot_preview1:qp};function oe(He,Be){var Pt=He.exports;s.asm=Pt,B=s.asm.memory,Ge(B.buffer),st=s.asm.__indirect_function_table,la(s.asm.__wasm_call_ctors),Cl("wasm-instantiate")}wr("wasm-instantiate");function Ie(He){oe(He.instance)}function Ye(He){return $g().then(function(Be){return WebAssembly.instantiate(Be,Y)}).then(function(Be){return Be}).then(He,function(Be){D("failed to asynchronously prepare wasm: "+Be),Qa(Be)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Na(Jt)&&!qr(Jt)&&!f&&typeof fetch=="function"?fetch(Jt,{credentials:"same-origin"}).then(function(He){var Be=WebAssembly.instantiateStreaming(He,Y);return Be.then(Ie,function(Pt){return D("wasm streaming compile failed: "+Pt),D("falling back to ArrayBuffer instantiation"),Ye(Ie)})}):Ye(Ie)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(Y,oe);return kt}catch(He){D("Module.instantiateWasm callback failed with error: "+He),o(He)}return wt().catch(o),{}}var nI,Kr;function El(Y){this.name="ExitStatus",this.message="Program terminated with exit("+Y+")",this.status=Y}function kr(Y){for(;Y.length>0;)Y.shift()(s)}function Rg(){Qa("")}function sh(){return 4294901760}function Hs(){return sh()}function Mg(Y,oe,Ie){ie.copyWithin(Y>>>0,oe>>>0,oe+Ie>>>0)}function ih(Y){try{return B.grow(Y-te.byteLength+65535>>>16),Ge(B.buffer),1}catch(oe){}}function _l(Y){var oe=ie.length;Y=Y>>>0;var Ie=sh();if(Y>Ie)return!1;let Ye=(Pt,ua)=>Pt+(ua-Pt%ua)%ua;for(var wt=1;wt<=4;wt*=2){var kt=oe*(1+.2/wt);kt=Math.min(kt,Y+100663296);var He=Math.min(Ie,Ye(Math.max(Y,kt),65536)),Be=ih(He);if(Be)return!0}return!1}var gn={varargs:void 0,get:function(){gn.varargs+=4;var Y=ye[gn.varargs-4>>>2];return Y},getStr:function(Y){var oe=J(Y);return oe}};function oh(Y){return 52}function Og(Y,oe,Ie,Ye,wt){return 70}var Pg=[null,[],[]];function aI(Y,oe){var Ie=Pg[Y];oe===0||oe===10?((Y===1?F:D)(Z(Ie,0)),Ie.length=0):Ie.push(oe)}function rI(Y,oe,Ie,Ye){for(var wt=0,kt=0;kt>>2],Be=ke[oe+4>>>2];oe+=8;for(var Pt=0;Pt>>0]);wt+=Be}return ke[Ye>>>2]=wt,0}function lh(Y){var oe=s["_"+Y];return oe}function js(Y,oe){se.set(Y,oe>>>0)}function Lg(Y,oe,Ie,Ye,wt){var kt={string:Rn=>{var Yr=0;if(Rn!=null&&Rn!==0){var Nh=(Rn.length<<2)+1;Yr=Jp(Nh),ae(Rn,Yr,Nh)}return Yr},array:Rn=>{var Yr=Jp(Rn.length);return js(Rn,Yr),Yr}};function He(Rn){return oe==="string"?J(Rn):oe==="boolean"?!!Rn:Rn}var Be=lh(Y),Pt=[],ua=0;if(Ye)for(var Ir=0;IrHe==="number"||He==="boolean"),kt=oe!=="string";return kt&&wt&&!Ye?lh(Y):function(){return Lg(Y,oe,Ie,arguments,Ye)}}var qp={abort:Rg,emscripten_get_heap_max:Hs,emscripten_memcpy_big:Mg,emscripten_resize_heap:_l,fd_close:oh,fd_seek:Og,fd_write:rI},Wg=Dg(),uh=s.___wasm_call_ctors=function(){return(uh=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},ph=s._init=function(){return(ph=s._init=s.asm.init).apply(null,arguments)},Bg=s._init_with_threads_count=function(){return(Bg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},ch=s._get_threads_count=function(){return(ch=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Vg=s._register_tensor=function(){return(Vg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Ae=s._dispose_data=function(){return(Ae=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Kp=s._dispose=function(){return(Kp=s._dispose=s.asm.dispose).apply(null,arguments)},Ug=s._Abs=function(){return(Ug=s._Abs=s.asm.Abs).apply(null,arguments)},dh=s._Acos=function(){return(dh=s._Acos=s.asm.Acos).apply(null,arguments)},Al=s._Acosh=function(){return(Al=s._Acosh=s.asm.Acosh).apply(null,arguments)},Gg=s._Add=function(){return(Gg=s._Add=s.asm.Add).apply(null,arguments)},Hg=s._AddN=function(){return(Hg=s._AddN=s.asm.AddN).apply(null,arguments)},jg=s._All=function(){return(jg=s._All=s.asm.All).apply(null,arguments)},qg=s._Any=function(){return(qg=s._Any=s.asm.Any).apply(null,arguments)},Kg=s._ArgMax=function(){return(Kg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},hh=s._ArgMin=function(){return(hh=s._ArgMin=s.asm.ArgMin).apply(null,arguments)},mh=s._Asin=function(){return(mh=s._Asin=s.asm.Asin).apply(null,arguments)},Xg=s._Asinh=function(){return(Xg=s._Asinh=s.asm.Asinh).apply(null,arguments)},Yg=s._Atan=function(){return(Yg=s._Atan=s.asm.Atan).apply(null,arguments)},Zg=s._Atan2=function(){return(Zg=s._Atan2=s.asm.Atan2).apply(null,arguments)},Xp=s._Atanh=function(){return(Xp=s._Atanh=s.asm.Atanh).apply(null,arguments)},Jg=s._AvgPool=function(){return(Jg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Qg=s._AvgPool3D=function(){return(Qg=s._AvgPool3D=s.asm.AvgPool3D).apply(null,arguments)},eb=s._AvgPool3DGrad=function(){return(eb=s._AvgPool3DGrad=s.asm.AvgPool3DGrad).apply(null,arguments)},qs=s._AvgPoolGrad=function(){return(qs=s._AvgPoolGrad=s.asm.AvgPoolGrad).apply(null,arguments)},tb=s._BatchMatMul=function(){return(tb=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},nb=s._Bincount=function(){return(nb=s._Bincount=s.asm.Bincount).apply(null,arguments)},fh=s._BitwiseAnd=function(){return(fh=s._BitwiseAnd=s.asm.BitwiseAnd).apply(null,arguments)},ab=s._Ceil=function(){return(ab=s._Ceil=s.asm.Ceil).apply(null,arguments)},Yp=s._ClipByValue=function(){return(Yp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},rb=s._Conv2D=function(){return(rb=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},sb=s._Conv2DBackpropInput=function(){return(sb=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},ib=s._Conv3D=function(){return(ib=s._Conv3D=s.asm.Conv3D).apply(null,arguments)},Xr=s._Conv3DBackpropFilterV2=function(){return(Xr=s._Conv3DBackpropFilterV2=s.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Zp=s._Conv3DBackpropInputV2=function(){return(Zp=s._Conv3DBackpropInputV2=s.asm.Conv3DBackpropInputV2).apply(null,arguments)},ob=s._Cos=function(){return(ob=s._Cos=s.asm.Cos).apply(null,arguments)},lb=s._Cosh=function(){return(lb=s._Cosh=s.asm.Cosh).apply(null,arguments)},ub=s._CropAndResize=function(){return(ub=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},pb=s._Cumprod=function(){return(pb=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},gh=s._Cumsum=function(){return(gh=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},bh=s._DenseBincount=function(){return(bh=s._DenseBincount=s.asm.DenseBincount).apply(null,arguments)},cb=s._DepthToSpace=function(){return(cb=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},db=s._DepthwiseConv2dNative=function(){return(db=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},yh=s._Diag=function(){return(yh=s._Diag=s.asm.Diag).apply(null,arguments)},xh=s._Dilation2D=function(){return(xh=s._Dilation2D=s.asm.Dilation2D).apply(null,arguments)},hb=s._Dilation2DBackpropFilter=function(){return(hb=s._Dilation2DBackpropFilter=s.asm.Dilation2DBackpropFilter).apply(null,arguments)},mb=s._Dilation2DBackpropInput=function(){return(mb=s._Dilation2DBackpropInput=s.asm.Dilation2DBackpropInput).apply(null,arguments)},fb=s._Elu=function(){return(fb=s._Elu=s.asm.Elu).apply(null,arguments)},gb=s._EluGrad=function(){return(gb=s._EluGrad=s.asm.EluGrad).apply(null,arguments)},vh=s._Equal=function(){return(vh=s._Equal=s.asm.Equal).apply(null,arguments)},sI=s._Erf=function(){return(sI=s._Erf=s.asm.Erf).apply(null,arguments)},bb=s._Exp=function(){return(bb=s._Exp=s.asm.Exp).apply(null,arguments)},yb=s._Expm1=function(){return(yb=s._Expm1=s.asm.Expm1).apply(null,arguments)},xb=s._FlipLeftRight=function(){return(xb=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},vb=s._Floor=function(){return(vb=s._Floor=s.asm.Floor).apply(null,arguments)},wb=s._FloorDiv=function(){return(wb=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},kb=s._FusedBatchNorm=function(){return(kb=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},Ib=s._FusedConv2D=function(){return(Ib=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Sb=s._FusedDepthwiseConv2D=function(){return(Sb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Nb=s._Gather=function(){return(Nb=s._Gather=s.asm.Gather).apply(null,arguments)},Tb=s._GatherNd=function(){return(Tb=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Cb=s._Greater=function(){return(Cb=s._Greater=s.asm.Greater).apply(null,arguments)},Eb=s._GreaterEqual=function(){return(Eb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},_b=s._IsFinite=function(){return(_b=s._IsFinite=s.asm.IsFinite).apply(null,arguments)},Ab=s._IsInf=function(){return(Ab=s._IsInf=s.asm.IsInf).apply(null,arguments)},Fb=s._IsNan=function(){return(Fb=s._IsNan=s.asm.IsNan).apply(null,arguments)},$b=s._LRN=function(){return($b=s._LRN=s.asm.LRN).apply(null,arguments)},Db=s._LRNGrad=function(){return(Db=s._LRNGrad=s.asm.LRNGrad).apply(null,arguments)},Rb=s._LeakyRelu=function(){return(Rb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Mb=s._Less=function(){return(Mb=s._Less=s.asm.Less).apply(null,arguments)},Ob=s._LessEqual=function(){return(Ob=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Pb=s._LinSpace=function(){return(Pb=s._LinSpace=s.asm.LinSpace).apply(null,arguments)},Lb=s._Log=function(){return(Lb=s._Log=s.asm.Log).apply(null,arguments)},zb=s._Log1p=function(){return(zb=s._Log1p=s.asm.Log1p).apply(null,arguments)},Wb=s._LogicalAnd=function(){return(Wb=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Bb=s._LogicalNot=function(){return(Bb=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Vb=s._LogicalOr=function(){return(Vb=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Ub=s._LogicalXor=function(){return(Ub=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Gb=s._Max=function(){return(Gb=s._Max=s.asm.Max).apply(null,arguments)},Hb=s._MaxPool=function(){return(Hb=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},jb=s._MaxPool3D=function(){return(jb=s._MaxPool3D=s.asm.MaxPool3D).apply(null,arguments)},qb=s._MaxPool3DGrad=function(){return(qb=s._MaxPool3DGrad=s.asm.MaxPool3DGrad).apply(null,arguments)},Kb=s._MaxPoolGrad=function(){return(Kb=s._MaxPoolGrad=s.asm.MaxPoolGrad).apply(null,arguments)},Xb=s._MaxPoolWithArgmax=function(){return(Xb=s._MaxPoolWithArgmax=s.asm.MaxPoolWithArgmax).apply(null,arguments)},Yb=s._Maximum=function(){return(Yb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Zb=s._Mean=function(){return(Zb=s._Mean=s.asm.Mean).apply(null,arguments)},Jb=s._Min=function(){return(Jb=s._Min=s.asm.Min).apply(null,arguments)},Qb=s._Minimum=function(){return(Qb=s._Minimum=s.asm.Minimum).apply(null,arguments)},ey=s._MirrorPad=function(){return(ey=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},ty=s._Mod=function(){return(ty=s._Mod=s.asm.Mod).apply(null,arguments)},ny=s._Multinomial=function(){return(ny=s._Multinomial=s.asm.Multinomial).apply(null,arguments)},ay=s._Multiply=function(){return(ay=s._Multiply=s.asm.Multiply).apply(null,arguments)},ry=s._Neg=function(){return(ry=s._Neg=s.asm.Neg).apply(null,arguments)},sy=s._NonMaxSuppressionV3=function(){return(sy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},iy=s._NonMaxSuppressionV4=function(){return(iy=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},oy=s._NonMaxSuppressionV5=function(){return(oy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},ly=s._NotEqual=function(){return(ly=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},uy=s._OneHot=function(){return(uy=s._OneHot=s.asm.OneHot).apply(null,arguments)},py=s._PadV2=function(){return(py=s._PadV2=s.asm.PadV2).apply(null,arguments)},cy=s._Pow=function(){return(cy=s._Pow=s.asm.Pow).apply(null,arguments)},dy=s._Prelu=function(){return(dy=s._Prelu=s.asm.Prelu).apply(null,arguments)},hy=s._Prod=function(){return(hy=s._Prod=s.asm.Prod).apply(null,arguments)},my=s._RealDiv=function(){return(my=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},fy=s._Reciprocal=function(){return(fy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},gy=s._Relu=function(){return(gy=s._Relu=s.asm.Relu).apply(null,arguments)},by=s._Relu6=function(){return(by=s._Relu6=s.asm.Relu6).apply(null,arguments)},yy=s._ResizeBilinear=function(){return(yy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},xy=s._ResizeBilinearGrad=function(){return(xy=s._ResizeBilinearGrad=s.asm.ResizeBilinearGrad).apply(null,arguments)},vy=s._ResizeNearestNeighbor=function(){return(vy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},wy=s._ResizeNearestNeighborGrad=function(){return(wy=s._ResizeNearestNeighborGrad=s.asm.ResizeNearestNeighborGrad).apply(null,arguments)},ky=s._Reverse=function(){return(ky=s._Reverse=s.asm.Reverse).apply(null,arguments)},Iy=s._RotateWithOffset=function(){return(Iy=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Sy=s._Round=function(){return(Sy=s._Round=s.asm.Round).apply(null,arguments)},Ny=s._Rsqrt=function(){return(Ny=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ty=s._ScatterNd=function(){return(Ty=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Cy=s._SearchSorted=function(){return(Cy=s._SearchSorted=s.asm.SearchSorted).apply(null,arguments)},Ey=s._SelectV2=function(){return(Ey=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},_y=s._Selu=function(){return(_y=s._Selu=s.asm.Selu).apply(null,arguments)},Ay=s._Sigmoid=function(){return(Ay=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Fy=s._Sign=function(){return(Fy=s._Sign=s.asm.Sign).apply(null,arguments)},$y=s._Sin=function(){return($y=s._Sin=s.asm.Sin).apply(null,arguments)},Dy=s._Sinh=function(){return(Dy=s._Sinh=s.asm.Sinh).apply(null,arguments)},Ry=s._Softmax=function(){return(Ry=s._Softmax=s.asm.Softmax).apply(null,arguments)},My=s._Softplus=function(){return(My=s._Softplus=s.asm.Softplus).apply(null,arguments)},Oy=s._SparseFillEmptyRows=function(){return(Oy=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Py=s._SparseReshape=function(){return(Py=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Ly=s._SparseSegmentReduction=function(){return(Ly=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},zy=s._SparseToDense=function(){return(zy=s._SparseToDense=s.asm.SparseToDense).apply(null,arguments)},Wy=s._Sqrt=function(){return(Wy=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},By=s._Square=function(){return(By=s._Square=s.asm.Square).apply(null,arguments)},Vy=s._SquaredDifference=function(){return(Vy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Uy=s._Step=function(){return(Uy=s._Step=s.asm.Step).apply(null,arguments)},Gy=s._StridedSlice=function(){return(Gy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Hy=s._Sub=function(){return(Hy=s._Sub=s.asm.Sub).apply(null,arguments)},jy=s._Sum=function(){return(jy=s._Sum=s.asm.Sum).apply(null,arguments)},qy=s._Tan=function(){return(qy=s._Tan=s.asm.Tan).apply(null,arguments)},Ky=s._Tanh=function(){return(Ky=s._Tanh=s.asm.Tanh).apply(null,arguments)},Xy=s._TensorScatterUpdate=function(){return(Xy=s._TensorScatterUpdate=s.asm.TensorScatterUpdate).apply(null,arguments)},Yy=s._Tile=function(){return(Yy=s._Tile=s.asm.Tile).apply(null,arguments)},Zy=s._TopK=function(){return(Zy=s._TopK=s.asm.TopK).apply(null,arguments)},Jy=s._Transform=function(){return(Jy=s._Transform=s.asm.Transform).apply(null,arguments)},Qy=s._Transpose=function(){return(Qy=s._Transpose=s.asm.Transpose).apply(null,arguments)},ex=s.__FusedMatMul=function(){return(ex=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},tx=s._malloc=function(){return(tx=s._malloc=s.asm.malloc).apply(null,arguments)},nx=s._free=function(){return(nx=s._free=s.asm.free).apply(null,arguments)},ax=s.___errno_location=function(){return(ax=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},wh=s.stackSave=function(){return(wh=s.stackSave=s.asm.stackSave).apply(null,arguments)},kh=s.stackRestore=function(){return(kh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Jp=s.stackAlloc=function(){return(Jp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},rx=s.dynCall_iijjiiii=function(){return(rx=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},sx=s.dynCall_jiji=function(){return(sx=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=zg;var Fl;qn=function Y(){Fl||Ih(),Fl||(qn=Y)};function Ih(Y){if(Y=Y||p,ut>0||(Ot(),ut>0))return;function oe(){Fl||(Fl=!0,s.calledRun=!0,!U&&(oa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),cn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),oe()},1)):oe()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Ih();var $l;l&&($l={uncaughtException:process.listeners("uncaughtException").filter(function(Y){return!l.uncaughtException.indexOf(Y)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(Y){return!l.unhandledRejection.indexOf(Y)>-1})});var Dl;if(typeof r!="undefined")Dl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Dl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if($l){var ix=Dl._dispose;Dl._dispose=function(){ix(),$l.uncaughtException.forEach(function(Y){process.removeListener("uncaughtException",Y)}),$l.unhandledRejection.forEach(function(Y){process.removeListener("unhandledRejection",Y)})}}return 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)}),$m=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}},Pc=class{refCount(e){return Kn("refCount")}incRef(e){return Kn("incRef")}timerAvailable(){return!0}time(e){return Kn("time")}read(e){return Kn("read")}readSync(e){return Kn("readSync")}readToGPU(e,t){return Kn("readToGPU")}numDataIds(){return Kn("numDataIds")}disposeData(e,t){return Kn("disposeData")}write(e,t,n){return Kn("write")}move(e,t,n,a,r){return Kn("move")}createTensorFromGPUData(e,t,n){return Kn("createTensorFromGPUData")}memory(){return Kn("memory")}floatPrecision(){return Kn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Kn("dispose")}};function Kn(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function tN(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,nm(e,t,n)}function nM(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=0;for(;n>0;)a=Math.random()*n|0,n--,nm(e,n,a),nm(t,n,a)}function xc(e,t,n){return Math.max(e,Math.min(t,n))}function aM(e){return e%2===0?e:e+1}function nm(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function rM(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Ti(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ot(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function dM(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 $a(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>Hl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function aN(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:$a(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 rN(e,t){return $v(e,t)}function $v(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 sN(e,t){for(let n=0;nt+=n.length),t}function ns(e){return typeof e=="string"||e instanceof String}function lN(e){return typeof e=="boolean"}function uN(e){return typeof e=="number"}function Lc(e){return Array.isArray(e)?Lc(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":uN(e)?"float32":ns(e)?"string":lN(e)?"bool":"float32"}function us(e){return!!(e&&e.constructor&&e.call&&e.apply)}function rm(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function pN(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return pN(0,e,t,n)}function mM(e,t){if(Array.isArray(e))return e;if(t==="float32")return e instanceof Float32Array?e:new Float32Array(e);if(t==="int32")return e instanceof Int32Array?e:new Int32Array(e);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(e));throw new Error(`Unknown dtype ${t}`)}function Dv(e,t){let n=Dm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Bl(e,new Float32Array(n));if(t==="int32")return Bl(e,new Int32Array(n));if(t==="bool")return Bl(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ra(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function gM(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]=vM(n,a)})}};function yM(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(xM(t,a[0],a[1]),a.join("="))),t}function xM(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function vM(e,t){let n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function G(){return Rv}var Rv=null;function wM(e){Rv=e}var dx;function dN(){if(dx==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");dx=e}return dx}function kM(){let e=dN();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Mv(e,t){let n=kM();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var uu="Abs",Ci="Acos",Ei="Acosh",Ss="Add",_i="AddN",pu="All",cu="Any",du="ArgMax",hu="ArgMin",Ai="Asin",Fi="Asinh",$i="Atan",Di="Atanh",Ri="Atan2",Mi="AvgPool",zc="AvgPoolGrad",mu="AvgPool3D",Wc="AvgPool3DGrad",Oi="BatchMatMul",fu="BatchToSpaceND",gu="Bincount",bu="BitwiseAnd",hN="BroadcastTo",Bc="BroadcastArgs",Pi="Cast",Li="Ceil",Ns="ClipByValue",Mm="Complex",Vc="ComplexAbs",yu="Concat",zi="Conv2D",Om="Conv2DBackpropFilter",Wi="Conv2DBackpropInput",Bi="Conv3D",xu="Conv3DBackpropFilterV2",vu="Conv3DBackpropInputV2",Vi="Cos",Ui="Cosh",wu="Cumprod",Gi="Cumsum",ku="CropAndResize",Uc="DenseBincount",Iu="DepthToSpace",Hi="DepthwiseConv2dNative",Pm="DepthwiseConv2dNativeBackpropFilter",Lm="DepthwiseConv2dNativeBackpropInput",Gc="Diag",ji="Dilation2D",jl="Dilation2DBackpropInput",ql="Dilation2DBackpropFilter",zm="Draw",qi="RealDiv",Wm="Einsum",Ki="Elu",Su="EluGrad",Xi="Erf",Nu="Equal",Yi="Exp",Tu="ExpandDims",Zi="Expm1",Bm="FFT",Hc="Fill",Cu="FlipLeftRight",Ji="Floor",Qi="FloorDiv",eo="FusedBatchNorm",Eu="GatherV2",_u="GatherNd",Au="Greater",to="GreaterEqual",no="Identity",Vm="IFFT",Um="Imag",ao="IsFinite",ro="IsInf",so="IsNan",io="LeakyRelu",Fu="Less",$u="LessEqual",Du="LinSpace",oo="Log",lo="Log1p",Ru="LogicalAnd",Mu="LogicalNot",Ou="LogicalOr",mN="LogicalXor",fN="LogSoftmax",IM="LowerBound",uo="LRN",Pu="LRNGrad",SM="MatrixBandPart",po="Max",co="Maximum",ho="MaxPool",jc="MaxPoolGrad",Lu="MaxPool3D",qc="MaxPool3DGrad",Kc="MaxPoolWithArgmax",mo="Mean",fo="Min",go="Minimum",bo="MirrorPad",yo="Mod",zu="Multinomial",xo="Multiply",Wu="Neg",Bu="NotEqual",Vu="NonMaxSuppressionV3",Uu="NonMaxSuppressionV4",Gu="NonMaxSuppressionV5",Hu="OnesLike",vo="OneHot",ju="Pack",wo="PadV2",NM="Pool",ko="Pow",Io="Prelu",So="Prod",Gm="RaggedGather",Hm="RaggedRange",jm="RaggedTensorToTensor",Xc="Range",qm="Real",No="Reciprocal",To="Relu",qu="Reshape",Co="ResizeNearestNeighbor",Ku="ResizeNearestNeighborGrad",Eo="ResizeBilinear",Xu="ResizeBilinearGrad",_o="Relu6",Ao="Reverse",Fo="Round",$o="Rsqrt",Yu="ScatterNd",Zu="TensorScatterUpdate",Ju="SearchSorted",Qu="Select",Do="Selu",ep="Slice",Ro="Sin",Mo="Sinh",Oo="Sign",Po="Sigmoid",Lo="Softplus",zo="Sqrt",Wo="Sum",tp="SpaceToBatchND",np="SplitV",Bo="Softmax",Yc="SparseFillEmptyRows",ap="SparseReshape",Zc="SparseSegmentMean",Jc="SparseSegmentSum",rp="SparseToDense",Vo="SquaredDifference",Qc="Square",ed="StaticRegexReplace",sp="StridedSlice",td="StringNGrams",nd="StringSplit",ad="StringToHashBucketFast",Uo="Sub",Go="Tan",Ho="Tanh",Ts="Tile",ip="TopK",op="Transform",_r="Transpose",rd="Unique",lp="Unpack",sd="UnsortedSegmentSum",TM="UpperBound",up="ZerosLike",Cs="Step",sm="FromPixels",pp="RotateWithOffset",li="_FusedMatMul",ui="FusedConv2D",pi="FusedDepthwiseConv2D";function ts(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.warn(...e)}function CM(...e){G().getBool("IS_TEST")||G().getBool("PROD")||console.log(...e)}var Kl=Mv("kernelRegistry",()=>new Map),vc=Mv("gradRegistry",()=>new Map);function wc(e,t){let n=Ov(e,t);return Kl.get(n)}function Ex(e){return vc.get(e)}function im(e){let t=Kl.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 id(e){let{kernelName:t,backendName:n}=e,a=Ov(t,n);Kl.has(a)&&ts(`The kernel '${t}' for backend '${n}' is already registered`),Kl.set(a,e)}function gN(e){let{kernelName:t}=e;vc.has(t)&&G().getBool("DEBUG")&&ts(`Overriding the gradient for '${t}'`),vc.set(t,e)}function EM(e,t){let n=Ov(e,t);if(!Kl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Kl.delete(n)}function _M(e){if(!vc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);vc.delete(e)}function AM(e,t){im(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});id(a)})}function Ov(e,t){return`${t}_${e}`}var w={};_e(w,{arraysEqual:()=>$r,arraysEqualWithNull:()=>nN,assert:()=>A,assertNonNegativeIntegerDimensions:()=>ra,assertNonNull:()=>Ti,assertShapesMatch:()=>Nn,bytesFromStringArray:()=>oN,bytesPerElement:()=>am,checkConversionForErrors:()=>sN,clamp:()=>xc,computeStrides:()=>lu,convertBackendValuesAndArrayBuffer:()=>mM,createScalarValue:()=>OM,createShuffledIndices:()=>pM,decodeString:()=>om,distSquared:()=>iM,encodeString:()=>ld,fetch:()=>LM,fingerPrint64:()=>MM,flatten:()=>ps,getArrayFromDType:()=>$v,getTypedArrayFromDType:()=>rN,hasEncodingLoss:()=>hM,hexToLong:()=>od,indexToLoc:()=>bM,inferDtype:()=>Lc,inferFromImplicitShape:()=>dM,isBoolean:()=>lN,isFunction:()=>us,isInt:()=>Hl,isNumber:()=>uN,isPromise:()=>Rm,isScalarShape:()=>oM,isString:()=>ns,isTypedArray:()=>en,isValidDtype:()=>iN,locToIndex:()=>gM,makeOnesTypedArray:()=>Dv,makeZerosNestedTypedArray:()=>fM,makeZerosTypedArray:()=>Dm,nearestDivisor:()=>rm,nearestLargerEven:()=>aM,now:()=>kc,parseAxisParam:()=>$a,randUniform:()=>sM,repeatedTry:()=>cM,rightPad:()=>fc,shuffle:()=>tN,shuffleCombo:()=>nM,sizeFromShape:()=>ot,sizeToSquarishShape:()=>uM,squeezeShape:()=>aN,sum:()=>rM,swap:()=>nm,tanh:()=>lM,toNestedArray:()=>Bl,toTypedArray:()=>Km});function bN(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var fI=Is(zR()),Js=fI.default||fI;function od(e){return Js.fromString(e,!0,16)}var yN=od("c3a5c85c97cb3127"),Ys=od("b492b66fbe98f273"),wn=od("9ae16a3b2f90404f");function _x(e){return e.xor(e.shru(47))}function xN(e,t,n){let a=e.slice(t,t+n);return Js.fromBytes(Array.from(a),!0,!0)}function bt(e,t){return xN(e,t,8)}function gI(e,t){return xN(e,t,4)}function Qt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function is(e,t,n=od("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function FM(e,t,n,a,r,s){r=r.add(e),s=Qt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Qt(r,44)),[r.add(a),s.add(i)]}function Dh(e,t,n,a){return FM(bt(e,t),bt(e,t+8),bt(e,t+16),bt(e,t+24),n,a)}function $M(e,t=e.length){if(t>=8){let n=wn.add(t*2),a=bt(e,0).add(wn),r=bt(e,t-8),s=Qt(r,37).mul(n).add(a),i=Qt(a,25).add(r).mul(n);return is(s,i,n)}if(t>=4){let n=wn.add(t*2),a=gI(e,0);return is(a.shl(3).add(t),gI(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return _x(wn.mul(s).xor(yN.mul(i))).mul(wn)}return wn}function DM(e,t=e.length){let n=wn.add(t*2),a=bt(e,0).mul(Ys),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(wn);return is(Qt(a.add(r),43).add(Qt(s,30)).add(i),a.add(Qt(r.add(wn),18)).add(s),n)}function RM(e,t=e.length){let n=wn.add(t*2),a=bt(e,0).mul(wn),r=bt(e,8),s=bt(e,t-8).mul(n),i=bt(e,t-16).mul(wn),o=Qt(a.add(r),43).add(Qt(s,30)).add(i),l=is(o,a.add(Qt(r.add(wn),18)).add(s),n),u=bt(e,16).mul(n),p=bt(e,24),d=o.add(bt(e,t-32)).mul(n),c=l.add(bt(e,t-24)).mul(n);return is(Qt(u.add(p),43).add(Qt(d,30)).add(c),u.add(Qt(p.add(a),18)).add(d),n)}function MM(e,t=e.length){let n=Js.fromNumber(81,!0);if(t<=32)return t<=16?$M(e,t):DM(e,t);if(t<=64)return RM(e,t);let a=n,r=n.mul(Ys).add(113),s=_x(r.mul(wn).add(113)).mul(wn),i=[Js.UZERO,Js.UZERO],o=[Js.UZERO,Js.UZERO];a=a.mul(wn).add(bt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(Ys),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(Ys),a=a.xor(o[1]),r=r.add(i[0]).add(bt(e,l+40)),s=Qt(s.add(o[0]),33).mul(Ys),i=Dh(e,l,i[1].mul(Ys),a.add(o[0])),o=Dh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Ys.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Qt(a.add(r).add(i[0]).add(bt(e,l+8)),37).mul(d),r=Qt(r.add(i[1]).add(bt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(bt(e,l+40))),s=Qt(s.add(o[0]),33).mul(d),i=Dh(e,l,i[1].mul(d),a.add(o[0])),o=Dh(e,l+32,s.add(o[1]),r.add(bt(e,l+16))),[s,a]=[a,s],is(is(i[0],o[0],d).add(_x(r).mul(yN)).add(s),is(i[1],o[1],d).add(a),d)}function OM(e,t){return t==="string"?ld(e):Km([e],t)}function PM(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Km(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ps(e)),G().getBool("DEBUG")&&sN(e,t),PM(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=kc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:kc()-i})}if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{WM(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 WM(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function VM(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],p=u.inputs;for(let d=0;d=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 p=s.inputs[l];if(!$r(u.shape,p.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 '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var bI=20,ec=3,hx=7;function GM(e,t,n,a){let r=lu(t),s=HM(e,t,n,r),i=t.length,o=qh(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 UM(e,t,n,a){let r=ot(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?ic(e):e;if(o>1)for(let u=0;ubI){let f=ec*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-ec)*i,o*i));return n==="complex64"&&(g=ic(g),b=ic(b)),["["+g.map((y,x)=>sc(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>sc(y,r[o-ec+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?ic(e):Array.from(e)).map((f,g)=>sc(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>bI){for(let f=0;f0?c[0]+h:"");for(let f=1;f1)for(let u=0;ubI){let f=ec*i,g=Array.from(e.slice(0,f)),b=Array.from(e.slice((o-ec)*i,o*i));return n==="complex64"&&(g=ic(g),b=ic(b)),["["+g.map((y,x)=>sc(y,r[x],n)).join(", ")+", ..., "+b.map((y,x)=>sc(y,r[o-ec+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?ic(e):Array.from(e)).map((f,g)=>sc(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>bI){for(let f=0;f0?c[0]+h:"");for(let f=1;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||Fv(t,this.size),this.strides=lu(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 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;aom(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),za().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=za().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>om(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await za().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),za().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Pl.print(this,e)}clone(){return this.throwIfDisposed(),Pl.clone(this)}toString(e=!1){let t=this.dataSync();return VM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Pl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),za().makeVariable(this,e,t,n)}};Object.defineProperty(Ce,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Rv("Tensor",()=>Ce)}Q();var cs=class extends Ce{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!$r(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);za().disposeTensor(this),this.dataId=e.dataId,za().incRef(this,null)}dispose(){za().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(cs,Symbol.hasInstance,{value:e=>e instanceof Ce&&e.assign!=null&&e.assign instanceof Function});var Wa={};_e(Wa,{assertTypesMatch:()=>IN,getTensorsInContainer:()=>Ov,isTensorInList:()=>XM,makeTypesMatch:()=>At});var _x;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(_x||(_x={}));var Ax;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Ax||(Ax={}));var Fx;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Fx||(Fx={}));var $x;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})($x||($x={}));var Dx;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Dx||(Dx={}));var KM={float32:$x,int32:Ax,bool:Fx,complex64:Dx};function ga(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return KM[e][t]}function Xm(e){return ga(e,"int32")}function wN(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function kN(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function At(e,t){if(e.dtype===t.dtype)return[e,t];let n=ga(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function IN(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function XM(e,t){return t.some(n=>n.id===e.id)}function Ov(e){let t=[];return SN(e,t,new Set),t}function SN(e,t,n){if(e==null)return;if(e instanceof Ce){t.push(e);return}if(!YM(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),SN(s,t,n))}}function YM(e){return Array.isArray(e)||typeof e=="object"}function hx(e){return e.kernelName!=null}var yI=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()}},Pv=class Rx{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new yI}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let n=0;n{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){im(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let n=this.registryFactory[t];if(n==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let a=n.factory();if(a&&!(a instanceof Pc)&&typeof a.then=="function"){let r=++this.pendingBackendInitId,s=a.then(i=>r(rthis.registryFactory[n].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let n=0;nthis.startScope(a),()=>this.endScope(r),()=>(r=n(),r instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(t,n,a){t();try{let r=a();return n(),r}catch(r){throw n(),r}}nextTensorId(){return Rx.nextTensorId++}nextVariableId(){return Rx.nextVariableId++}clone(t){let n=P.runKernel(no,{x:t}),a={x:t},r=i=>({x:()=>{let o="float32",l={x:i},u={dtype:o};return P.runKernel(Pi,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,a,[n],r,s,{}),n}runKernel(t,n,a){if(this.backendName==null&&this.backend,wc(t,this.backendName)==null)throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:n,attrs:a})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,n,a){let r=this.backend.numDataIds(),s=0;a.forEach(l=>{s+=l.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=r-n-s-i;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${t}'`)}runKernelFunc(t){let n,a=[],r=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let o;this.backendName==null&&this.backend;let l,u=hx(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(hx(t)){let{kernelName:m,inputs:f,attrs:g}=t;this.backendName==null&&this.backend;let b=wc(m,this.backendName);A(b!=null,()=>`Cannot find registered kernel '${m}' for backend '${this.backendName}'`),o=()=>{let y=this.backend.numDataIds();l=b.kernelFunc({inputs:f,attrs:g,backend:this.backend});let x=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(m,y,x);let v=x.map(I=>I.rank!=null?I:this.makeTensorFromTensorInfo(I));if(r){let I=this.getTensorsForGradient(m,f,v);a=this.saveTensorsForBackwardMode(I)}return v}}else{let{forwardFunc:m}=t,f=g=>{r&&(a=g.map(b=>this.keep(this.clone(b))))};o=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>m(this.backend,f));let b=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,b),b}}let{inputs:p,attrs:d}=t,c=hx(t)?null:t.backwardsFunc,h;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?n=o():(h=this.profiler.profileKernel(u,p,()=>o()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(h),n=h.outputs)}),r&&this.addTapeNode(u,p,n,c,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(p).map(m=>p[m]!=null?p[m].shape:null),outputShapes:n.map(m=>m.shape),kernelTimeMs:h.timeMs,extraInfo:h.extraInfo}),Array.isArray(l)?n:n[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,n,a){let r=Cx(t);if(r!=null){let s=r.inputsToSave||[],i=r.outputsToSave||[],o;r.saveAllInputs?(A(Array.isArray(n),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(n).map(u=>n[u])):o=s.map(u=>n[u]);let l=a.filter((u,p)=>i[p]);return o.concat(l)}return[]}makeTensor(t,n,a,r){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");a=a||"float32",r=r||this.backend;let s=t;a==="string"&&ns(t[0])&&(s=t.map(l=>ld(l)));let i=r.write(s,n,a),o=new Ce(n,a,i,this.nextTensorId());if(this.trackTensor(o,r),a==="string"){let l=this.state.tensorInfo.get(i),u=oN(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return o}makeTensorFromDataId(t,n,a,r){a=a||"float32";let s={dataId:t,shape:n,dtype:a};return this.makeTensorFromTensorInfo(s,r)}makeTensorFromTensorInfo(t,n){let{dataId:a,shape:r,dtype:s}=t,i=new Ce(r,s,a,this.nextTensorId());return this.trackTensor(i,n),i}makeVariable(t,n=!0,a,r){a=a||this.nextVariableId().toString(),r!=null&&r!==t.dtype&&(t=t.cast(r));let s=new cs(t,n,a,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(t,n){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let a=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(a=t.size*am(t.dtype)),this.state.numBytes+=a,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:n||this.backend,dtype:t.dtype,shape:t.shape,bytes:a})),t instanceof cs||this.track(t)}incRef(t,n){this.trackTensor(t,n),this.backend.incRef(t.dataId)}removeDataId(t,n){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===n&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let n=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=n.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let a=t.size*am(t.dtype);this.state.numBytes-=a}n.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,n.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let n=this.state.registeredVariables[t];this.disposeVariable(n)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let n=this.state.numBytes,a=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(r=>r.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-n,this.state.activeProfile.newTensors=this.state.numTensors-a;for(let r of this.state.activeProfile.kernels)r.kernelTimeMs=await r.kernelTimeMs,r.extraInfo=await r.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,n,a,r,s,i){let o={id:this.state.nextTapeNodeId++,kernelName:t,inputs:n,outputs:a,saved:s},l=Cx(t);l!=null&&(r=l.gradFunc),r!=null&&(o.gradient=u=>(u=u.map((p,d)=>{if(p==null){let c=a[d],h=Dm(c.size,c.dtype);return this.makeTensor(h,c.shape,c.dtype)}return p}),r(u.length>1?u:u[0],s,i))),this.state.activeTape.push(o)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let n={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(n.name=t),this.state.scopeStack.push(n),this.state.activeScope=n}endScope(t){let n=Ov(t),a=new Set(n.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===r.id&&this.track(s)})}gradients(t,n,a,r=!1){if(A(n.length>0,()=>"gradients() received an empty list of xs."),a!=null&&a.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${a.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));A(s instanceof Ce,()=>"The result y returned by f() must be a tensor.");let i=WM(this.state.activeTape,n,s);if(!r&&i.length===0&&n.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 o={};o[s.id]=a==null?ZM(s.shape):a,BM(o,i,u=>this.tidy(u),JM);let l=n.map(u=>o[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let p of u.saved)p.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(t){return A(us(t),()=>"The f passed in customGrad(f) must be a function."),(...n)=>{A(n.every(o=>o instanceof Ce),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let a,r={};n.forEach((o,l)=>{r[l]=o});let s=(o,l)=>(a=t(...n,l),A(a.value instanceof Ce,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(us(a.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),a.value),i=(o,l)=>{let u=a.gradFunc(o,l),p=Array.isArray(u)?u:[u];A(p.length===n.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(p.every(c=>c instanceof Ce),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let d={};return p.forEach((c,h)=>{d[h]=()=>c}),d};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:r})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,n){return this.state.tensorInfo.get(t).backend.readToGPU(t,n)}async time(t){let n=kc(),a=await this.backend.time(t);return a.wallMs=kc()-n,a}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new yI;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Pv.nextTensorId=0;Pv.nextVariableId=0;function ZM(e){let t=$v(ot(e),"float32");return P.makeTensor(t,e,"float32")}function NN(){let e=dN();if(e._tfengine==null){let t=new cN(e);e._tfengine=new Pv(t)}return xM(e._tfengine.ENV),HM(()=>e._tfengine),e._tfengine}var P=NN();function JM(e,t){let n={a:e,b:t};return P.runKernel(Is,n)}var ud={};_e(ud,{isBrowser:()=>TN,isMobile:()=>tO,mockIsMobile:()=>eO});function QM(){return typeof navigator!="undefined"&&navigator!=null}var Mx;function eO(e){Mx=e}function tO(e){if(Mx!==void 0)return Mx;if(e||QM()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function TN(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var zn=G();zn.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.")});zn.registerFlag("IS_BROWSER",()=>TN());zn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");zn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));zn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));zn.registerFlag("PROD",()=>!1);zn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>zn.getBool("DEBUG"));zn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);zn.registerFlag("IS_TEST",()=>!1);zn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>zn.getBool("DEBUG"));zn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);zn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);zn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function pr(e,t){let n=e;if(en(e))return t==="string"?[]:[e.length];if(wN(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(kN(e))return[e.buffer.size/(t==null?4:am(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||en(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&CN(e,a,[]),a}function CN(e,t,n){if(n=n||[],!Array.isArray(e)&&!en(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(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),xI(a,r,t,n),e==null||!en(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=pr(e,r);!en(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Km(e,r):ps(e,[],!0);return P.makeTensor(i,s,r)}function Ic(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 Lv="__op";function L(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+Lv;let r=(...s)=>{P.startScope(n);try{let i=a(...s);return Rm(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 nO(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");Sn(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(Mm,r)}var Ar=L({complex_:nO});function Cs(e,t,n,a){if(a==null)a=Lc(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(kN(e)||wN(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return P.backend.createTensorFromGPUData(e,t||n,a)}if(!en(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){ra(t);let r=ot(t),s=ot(n);A(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!en(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Km(e,a):ps(e,[],!0),P.makeTensor(e,t,a)}function bn(e,t,n){let a=pr(e,n);return Cs(e,t,a,n)}var pi={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Dr=class EN{static join(t){return new EN(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(a=>en(a)?a.buffer:a),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let n=0;for(let a=0;a=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function n(r){return t=r.end?1:0}if(n(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let a=aO(this.shards,n);return a===-1?-1:(this.previousShardIndex=a,this.previousShardIndex)}};function aO(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}function rO(){G().set("PROD",!0)}function sO(){G().set("DEBUG",!0)}function iO(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function zv(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}jM(zv);function oO(){P.disposeVariables()}function Ea(){return P}function lm(){return P.memory()}function lO(e){return P.profile(e)}function O(e,t){return P.tidy(e,t)}function Ee(e){Ov(e).forEach(t=>t.dispose())}function Ht(e){return P.keep(e)}function uO(e){return P.time(e)}function pO(e){return P.setBackend(e)}function cO(){return P.ready()}function _N(){return P.backendName}function dO(e){P.removeBackend(e)}function hO(e){return P.findBackend(e)}function mO(e){return P.findBackendFactory(e)}function Ym(e,t,n=1){return P.registerBackend(e,t,n)}function Wv(){return P.backend}function fO(e,t){G().setPlatform(e,t)}var ds=4;async function gO(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,b)=>g+b.length,0)+ds*c.length,m=new Uint8Array(h),f=0;for(let g=0;gn.slice(r+o,r+l));a[s.name]=FN(s,n.slice(r,r+i)),r+=i}return a}function bO(e,t){let n=ot(e.shape),a;if("quantization"in e){let r=e.quantization;a=pi[r.dtype]}else if(e.dtype==="string"){let r=0;for(let s=0;s(r=await vI(a,r,p),r.slice(u,p)));r=await vI(a,r,i);let o=r.slice(0,i);r=r.slice(i);let l=FN(s,o);if(n[s.name]=l,_N()==="webgpu"){let u=Wv();"uploadToGPU"in u&&ot(l.shape)>=G().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&u.uploadToGPU(l.dataId)}}return n}function xO(e){if(e===null)throw new Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,n=[];e.forEach(s=>{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 Bv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function wI(e){return Bv?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function vO(e){if(Bv)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{let a=n<<13,r=0;for(;!(a&8388608);)r-=8388608,a<<=1;return a&=-8388609,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 SO(){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 NO(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function TO(){let e=IO(),t=SO(),n=NO();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 ba=class La{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return La.instance==null&&(La.instance=new La),La.instance}static registerSaveRouter(t){La.getInstance().saveRouters.push(t)}static registerLoadRouter(t){La.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return La.getHandlers(t,"save")}static getLoadHandlers(t,n){return La.getHandlers(t,"load",n)}static getHandlers(t,n,a){let r=[];return(n==="load"?La.getInstance().loadRouters:La.getInstance().saveRouters).forEach(s=>{let i=s(t,a);i!==null&&r.push(i)}),r}},CO=e=>ba.registerSaveRouter(e),EO=e=>ba.registerLoadRouter(e),_O=e=>ba.getSaveHandlers(e),AO=(e,t)=>ba.getLoadHandlers(e,t),Px="tensorflowjs",Lx=1,ni="models_store",as="model_info_store";function MN(){if(!G().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 zx(e){let t=e.result;t.createObjectStore(ni,{keyPath:"modelPath"}),t.createObjectStore(as,{keyPath:"modelPath"})}var ci=class{constructor(e){if(this.indexedDB=MN(),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(Px,Lx);r.onupgradeneeded=()=>zx(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ni,"readonly"),o=i.objectStore(ni).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{t.weightData=Dr.join(t.weightData);let i=pd(t),o=s.transaction(as,"readwrite"),l=o.objectStore(as),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(ni,"readwrite");let d=p.objectStore(ni),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(as);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ci.URL_SCHEME="indexeddb://";var ON=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ci.URL_SCHEME)?FO(e.slice(ci.URL_SCHEME.length)):null;ba.registerSaveRouter(ON);ba.registerLoadRouter(ON);function FO(e){return new ci(e)}function $O(e){return e.startsWith(ci.URL_SCHEME)?e.slice(ci.URL_SCHEME.length):e}var DO=class{constructor(){this.indexedDB=MN()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Px,Lx);n.onupgradeneeded=()=>zx(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(as,"readonly"),s=r.objectStore(as).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=$O(e),new Promise((t,n)=>{let a=this.indexedDB.open(Px,Lx);a.onupgradeneeded=()=>zx(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(as,"readwrite"),i=s.objectStore(as),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),p=()=>{l=r.transaction(ni,"readwrite");let d=l.objectStore(ni).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),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)})}},Cr="/",Ll="tensorflowjs_models",PN="info",RO="model_topology",MO="weight_specs",OO="weight_data",PO="model_metadata";function LN(e){return{info:[Ll,e,PN].join(Cr),topology:[Ll,e,RO].join(Cr),weightSpecs:[Ll,e,MO].join(Cr),weightData:[Ll,e,OO].join(Cr),modelMetadata:[Ll,e,PO].join(Cr)}}function zN(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function LO(e){let t=e.split(Cr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Cr)}function zO(e){return e.startsWith(di.URL_SCHEME)?e.slice(di.URL_SCHEME.length):e}var di=class{constructor(e){if(!G().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=LN(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=pd(e),r=Dr.join(e.weightData);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,vO(r));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:a}}catch(s){throw zN(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${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),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=wO(s),t}};di.URL_SCHEME="localstorage://";var WN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(di.URL_SCHEME)?WO(e.slice(di.URL_SCHEME.length)):null;ba.registerSaveRouter(WN);ba.registerLoadRouter(WN);function WO(e){return new di(e)}var BO=class{constructor(){A(G().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=Ll+Cr,n=Cr+PN;for(let a=0;a"scheme must not be undefined or null."),t.endsWith(Vl)&&(t=t.slice(0,t.indexOf(Vl))),A(t.length>0,()=>"scheme must not be an empty string.");let a=Zr.getInstance();A(a.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),a.managers[t]=n}static getManager(t){let n=Zr.getInstance().managers[t];if(n==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return n}static getSchemes(){return Object.keys(Zr.getInstance().managers)}};function Kh(e){if(e.indexOf(Vl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${hs.getSchemes().join(",")}`);return{scheme:e.split(Vl)[0],path:e.split(Vl)[1]}}async function BN(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=ba.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=ba.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Kh(e).scheme,l=Kh(e).path,u=o===Kh(e).scheme,p=await r.load();n&&u&&await hs.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await hs.getManager(o).removeModel(l),d.modelArtifactsInfo}async function VO(){let e=hs.getSchemes(),t={};for(let n of e){let a=await hs.getManager(n).listModels();for(let r in a){let s=n+Vl+r;t[s]=a[r]}}return t}async function UO(e){let t=Kh(e);return hs.getManager(t.scheme).removeModel(t.path)}async function GO(e,t){return BN(e,t,!1)}async function HO(e,t){return BN(e,t,!0)}var qO=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}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)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!G().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(e){return bN(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new qO);try{hs.registerManager(di.URL_SCHEME,new BO)}catch(e){}try{hs.registerManager(ci.URL_SCHEME,new DO)}catch(e){}}var jO={importFetch:()=>LR()},mx,KO=class{constructor(){this.util=zR(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(mx==null&&(mx=jO.importFetch()),mx(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new KO);function Pe(e,t="float32",n){return t=t||"float32",ra(e),new Wt(e,t,n)}function XO(e,t){let n=E(e,"x","cast");if(!iN(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(Pi,a,r)}var re=L({cast_:XO});function YO(e){let t={x:E(e,"x","clone","string_or_numeric")};return P.runKernel(no,t)}var or=L({clone_:YO});function Uv(e,t=!1){console.log(e.toString(t))}NN();var ZO={buffer:Pe,cast:re,clone:or,print:Uv};qM(ZO);function JO(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Is,r)}var X=L({add_:JO});function QO(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Qi,r)}var Zm=L({floorDiv_:QO});function eP(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=At(n,a),n.dtype==="int32"&&a.dtype==="int32")return Zm(n,a);let r={a:n,b:a},s={};return P.runKernel(ji,r,s)}var he=L({div_:eP});function tP(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(xo,r)}var z=L({mul_:tP});function nP(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return P.runKernel(Vc,n)}else{let n={x:t};return P.runKernel(uu,n)}}var Lt=L({abs_:nP});function aP(e){let t={x:E(e,"x","acos")};return P.runKernel(Ci,t)}var Gv=L({acos_:aP});function rP(e){let t={x:E(e,"x","acosh")};return P.runKernel(Ei,t)}var Hv=L({acosh_:rP});function sP(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(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(!$r(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return P.runKernel(_i,a)}var VN=L({addN_:sP});function iP(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return P.runKernel(pu,a,r)}var Jm=L({all_:iP});function oP(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return P.runKernel(cu,a,r)}var Sc=L({any_:oP});function lP(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return P.runKernel(du,n,a)}var hi=L({argMax_:lP});function uP(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return P.runKernel(hu,n,a)}var qv=L({argMin_:uP});function pP(e){let t={x:E(e,"x","asin")};return P.runKernel(Ai,t)}var jv=L({asin_:pP});function cP(e){let t={x:E(e,"x","asinh")};return P.runKernel(Fi,t)}var Kv=L({asinh_:cP});function dP(e){let t={x:E(e,"x","atan")};return P.runKernel($i,t)}var Xv=L({atan_:dP});function hP(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Ri,r)}var Yv=L({atan2_:hP});function mP(e){let t={x:E(e,"x","atanh")};return P.runKernel(Di,t)}var Zv=L({atanh_:mP});function fP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=HN(r);return cd(e,o,n,s,a,null,null,l)}function UN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Nc(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 cd(e,u,n,a,r,s,!1,i)}function gP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Wx(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return GN(e,p,n,a,r,!1,d,s)}function cd(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Nc(n),[b,y]=Nc(a),x=Ul(c,b),v=Ul(h,y),{padInfo:I,outHeight:N,outWidth:C}=xP(r,u,p,f,g,x,v,s,o),_=i?m*d:m,F;return o==="channelsFirst"?F=[l,_,N,C]:o==="channelsLast"&&(F=[l,N,C,_]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:N,outWidth:C,outChannels:_,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function GN(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[b,y,x]=Wx(n),[v,I,N]=Wx(a),C=Ul(h,v),_=Ul(m,I),F=Ul(f,N),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=vP(r,u,p,d,b,y,x,C,_,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:_,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:I,dilationWidth:N,inShape:e,outShape:U,filterShape:t}}function bP(e,t,n,a,r){a==null&&(a=Jv(e,t,n));let s=e[0],i=e[1],o=Tc((s-t+2*a)/n+1,r),l=Tc((i-t+2*a)/n+1,r);return[o,l]}function yP(e,t,n,a,r,s){r==null&&(r=Jv(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=Tc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function Jv(e,t,n,a=1){let r=Ul(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Nc(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Wx(e){return typeof e=="number"?[e,e,e]:e}function Ul(e,t){return t<=1?e:e+(e-1)*(t-1)}function xP(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=bP([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),b=h-g;u={top:m,bottom:f,left:g,right:b,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=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:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=Tc((t-s+c+h)/a+1,o),d=Tc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function vP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=yP([t,n,a,1],[o,l,u],1,[r,s,i],e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,v=Math.floor(g/2),I=g-v,N=Math.floor(b/2),C=b-N;d={top:v,bottom:I,left:N,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Tc(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 ms(e){let[t,n,a]=Nc(e);return t===1&&n===1&&a===1}function hr(e,t){return ms(e)||ms(t)}function mi(e){return Nc(e).every(t=>t>0)}function HN(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Nn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(Hl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(Hl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function wP(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return P.runKernel(ju,n,a)}var W=L({reshape_:wP});function kP(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(hr(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=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Nn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(Mi,u,p);return d=re(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var xa=L({avgPool_:kP});function IP(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Nn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(mu,u,p);return d=re(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Qv=L({avgPool3d_:IP});function SP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=Ic(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 or(n[0]);let a=n,r={axis:t};return P.runKernel(yu,a,r)}var et=L({concat_:SP});function NP(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=At(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return P.runKernel(Oi,i,o)}var $e=L({matMul_:NP});function TP(e){let t={x:E(e,"x","sigmoid","float32")};return P.runKernel(Po,t)}var ma=L({sigmoid_:TP});function CP(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return P.runKernel(ep,r,s)}var Ve=L({slice_:CP});function EP(e){let t={x:E(e,"x","tanh","float32")};return P.runKernel(Ho,t)}var fi=L({tanh_:EP});function _P(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=et([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ve(m,[0,0],b),x=Ve(m,[0,g],b),v=Ve(m,[0,g*2],b),I=Ve(m,[0,g*3],b),N=X(z(ma(y),fi(x)),z(p,ma(X(i,v)))),C=z(fi(N),ma(I));return[N,C]}var qN=L({basicLSTMCell_:_P});function AP(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(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(fu,s,i)}var dd=L({batchToSpaceND_:AP});function FP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function $P(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:FP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=P.runKernel(eo,d,c);return W(h,i.shape)}var Es=L({batchNorm_:$P});function DP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Es(i,o,l,p,u,s)}var ew=L({batchNorm2d_:DP});function RP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Es(i,o,l,p,u,s)}var tw=L({batchNorm3d_:RP});function MP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Es(i,o,l,p,u,s)}var nw=L({batchNorm4d_:MP});function OP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(gu,s,i)}var aw=L({bincount_:OP});function PP(e,t){let n=E(e,"x","bitwiseAnd"),a=E(t,"y","bitwiseAnd");if(!$r(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return P.runKernel(bu,r)}var jN=L({bitwiseAnd_:PP});function LP(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return P.runKernel(Bc,r)}var KN=L({broadcastArgs_:LP});function zP(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(ra(t),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 or(n);let i={x:n},o={reps:s};return P.runKernel(Ns,i,o)}var ri=L({broadcastTo_:zP});function WP(e){let t={x:E(e,"x","ceil","float32")};return P.runKernel(Li,t)}var rw=L({ceil_:WP});function yn(e,t,n){ra(e),n=n||Lc(t);let a={shape:e,value:t,dtype:n};return P.runKernel(Hc,{},a)}function BP(e,t,n){let a=E(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return yn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return P.runKernel(Ss,r,s)}var an=L({clipByValue_:BP});function VP(e){return et(e,0)}var sw=L({concat1d_:VP});function UP(e,t){return et(e,t)}var iw=L({concat2d_:UP});function GP(e,t){return et(e,t)}var ow=L({concat3d_:GP});function HP(e,t){return et(e,t)}var lw=L({concat4d_:HP});function qP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`),Nn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(hr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(mi(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(mi(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(zi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:qP});function jP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.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}.`),Nn("conv1d",a,i),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(hr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(mi(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(mi(n),()=>"Error in conv1D: Stride should be larger than 0."),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var Qm=L({conv1d_:jP});function KP(e,t,n,a,r,s="NHWC",i){A(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=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Nn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=P.runKernel(Wi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var uw=L({conv2DBackpropInput_:KP});function XP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return uw(n,i,o,a,r,"NHWC",s)}var ef=L({conv2dTranspose_:XP});function YP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(hr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`),A(mi(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(mi(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=P.runKernel(Bi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var pw=L({conv3d_:YP});function ZP(e,t,n,a,r){A(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=W(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];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=P.runKernel(vu,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var XN=L({conv3DBackpropInput_:ZP});function JP(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return XN(n,s,i,a,r)}var cw=L({conv3dTranspose_:JP});function QP(e){let t={x:E(e,"x","cos","float32")};return P.runKernel(Vi,t)}var hd=L({cos_:QP});function e3(e){let t={x:E(e,"x","cosh","float32")};return P.runKernel(Ui,t)}var tf=L({cosh_:e3});function t3(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(wu,r,s)}var Cc=L({cumprod_:t3});function n3(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(Gi,r,s)}var nf=L({cumsum_:n3});function a3(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(Uc,i,o)}var um=L({denseBincount_:a3});function r3(e,t,n="NHWC"){let a=E(e,"x","depthToSpace","float32"),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];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function ic(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||$v(t,this.size),this.strides=lu(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 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;aom(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),za().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=za().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>om(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await za().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),za().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Pl.print(this,e)}clone(){return this.throwIfDisposed(),Pl.clone(this)}toString(e=!1){let t=this.dataSync();return GM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Pl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),za().makeVariable(this,e,t,n)}};Object.defineProperty(Ce,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Mv("Tensor",()=>Ce)}Q();var cs=class extends Ce{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!$r(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);za().disposeTensor(this),this.dataId=e.dataId,za().incRef(this,null)}dispose(){za().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(cs,Symbol.hasInstance,{value:e=>e instanceof Ce&&e.assign!=null&&e.assign instanceof Function});var Wa={};_e(Wa,{assertTypesMatch:()=>IN,getTensorsInContainer:()=>Pv,isTensorInList:()=>ZM,makeTypesMatch:()=>At});var Ax;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Ax||(Ax={}));var Fx;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Fx||(Fx={}));var $x;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})($x||($x={}));var Dx;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Dx||(Dx={}));var Rx;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Rx||(Rx={}));var YM={float32:Dx,int32:Fx,bool:$x,complex64:Rx};function ga(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return YM[e][t]}function Xm(e){return ga(e,"int32")}function wN(e){return e!=null&&typeof e=="object"&&"texture"in e&&e.texture instanceof WebGLTexture}function kN(e){return typeof GPUBuffer!="undefined"&&e!=null&&typeof e=="object"&&"buffer"in e&&e.buffer instanceof GPUBuffer}function At(e,t){if(e.dtype===t.dtype)return[e,t];let n=ga(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function IN(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function ZM(e,t){return t.some(n=>n.id===e.id)}function Pv(e){let t=[];return SN(e,t,new Set),t}function SN(e,t,n){if(e==null)return;if(e instanceof Ce){t.push(e);return}if(!JM(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),SN(s,t,n))}}function JM(e){return Array.isArray(e)||typeof e=="object"}function mx(e){return e.kernelName!=null}var yI=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()}},Lv=class Mx{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new yI}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let n=0;n{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){im(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let n=this.registryFactory[t];if(n==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let a=n.factory();if(a&&!(a instanceof Pc)&&typeof a.then=="function"){let r=++this.pendingBackendInitId,s=a.then(i=>r(rthis.registryFactory[n].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let n=0;nthis.startScope(a),()=>this.endScope(r),()=>(r=n(),r instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(t,n,a){t();try{let r=a();return n(),r}catch(r){throw n(),r}}nextTensorId(){return Mx.nextTensorId++}nextVariableId(){return Mx.nextVariableId++}clone(t){let n=P.runKernel(no,{x:t}),a={x:t},r=i=>({x:()=>{let o="float32",l={x:i},u={dtype:o};return P.runKernel(Pi,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,a,[n],r,s,{}),n}runKernel(t,n,a){if(this.backendName==null&&this.backend,wc(t,this.backendName)==null)throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:n,attrs:a})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,n,a){let r=this.backend.numDataIds(),s=0;a.forEach(l=>{s+=l.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=r-n-s-i;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${t}'`)}runKernelFunc(t){let n,a=[],r=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let o;this.backendName==null&&this.backend;let l,u=mx(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(mx(t)){let{kernelName:m,inputs:f,attrs:g}=t;this.backendName==null&&this.backend;let b=wc(m,this.backendName);A(b!=null,()=>`Cannot find registered kernel '${m}' for backend '${this.backendName}'`),o=()=>{let y=this.backend.numDataIds();l=b.kernelFunc({inputs:f,attrs:g,backend:this.backend});let x=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(m,y,x);let v=x.map(I=>I.rank!=null?I:this.makeTensorFromTensorInfo(I));if(r){let I=this.getTensorsForGradient(m,f,v);a=this.saveTensorsForBackwardMode(I)}return v}}else{let{forwardFunc:m}=t,f=g=>{r&&(a=g.map(b=>this.keep(this.clone(b))))};o=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>m(this.backend,f));let b=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,b),b}}let{inputs:p,attrs:d}=t,c=mx(t)?null:t.backwardsFunc,h;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?n=o():(h=this.profiler.profileKernel(u,p,()=>o()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(h),n=h.outputs)}),r&&this.addTapeNode(u,p,n,c,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(p).map(m=>p[m]!=null?p[m].shape:null),outputShapes:n.map(m=>m.shape),kernelTimeMs:h.timeMs,extraInfo:h.extraInfo}),Array.isArray(l)?n:n[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,n,a){let r=Ex(t);if(r!=null){let s=r.inputsToSave||[],i=r.outputsToSave||[],o;r.saveAllInputs?(A(Array.isArray(n),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(n).map(u=>n[u])):o=s.map(u=>n[u]);let l=a.filter((u,p)=>i[p]);return o.concat(l)}return[]}makeTensor(t,n,a,r){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");a=a||"float32",r=r||this.backend;let s=t;a==="string"&&ns(t[0])&&(s=t.map(l=>ld(l)));let i=r.write(s,n,a),o=new Ce(n,a,i,this.nextTensorId());if(this.trackTensor(o,r),a==="string"){let l=this.state.tensorInfo.get(i),u=oN(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return o}makeTensorFromDataId(t,n,a,r){a=a||"float32";let s={dataId:t,shape:n,dtype:a};return this.makeTensorFromTensorInfo(s,r)}makeTensorFromTensorInfo(t,n){let{dataId:a,shape:r,dtype:s}=t,i=new Ce(r,s,a,this.nextTensorId());return this.trackTensor(i,n),i}makeVariable(t,n=!0,a,r){a=a||this.nextVariableId().toString(),r!=null&&r!==t.dtype&&(t=t.cast(r));let s=new cs(t,n,a,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(t,n){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let a=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(a=t.size*am(t.dtype)),this.state.numBytes+=a,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:n||this.backend,dtype:t.dtype,shape:t.shape,bytes:a})),t instanceof cs||this.track(t)}incRef(t,n){this.trackTensor(t,n),this.backend.incRef(t.dataId)}removeDataId(t,n){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===n&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let n=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=n.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let a=t.size*am(t.dtype);this.state.numBytes-=a}n.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,n.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let n=this.state.registeredVariables[t];this.disposeVariable(n)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let n=this.state.numBytes,a=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(r=>r.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-n,this.state.activeProfile.newTensors=this.state.numTensors-a;for(let r of this.state.activeProfile.kernels)r.kernelTimeMs=await r.kernelTimeMs,r.extraInfo=await r.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,n,a,r,s,i){let o={id:this.state.nextTapeNodeId++,kernelName:t,inputs:n,outputs:a,saved:s},l=Ex(t);l!=null&&(r=l.gradFunc),r!=null&&(o.gradient=u=>(u=u.map((p,d)=>{if(p==null){let c=a[d],h=Dm(c.size,c.dtype);return this.makeTensor(h,c.shape,c.dtype)}return p}),r(u.length>1?u:u[0],s,i))),this.state.activeTape.push(o)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let n={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(n.name=t),this.state.scopeStack.push(n),this.state.activeScope=n}endScope(t){let n=Pv(t),a=new Set(n.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===r.id&&this.track(s)})}gradients(t,n,a,r=!1){if(A(n.length>0,()=>"gradients() received an empty list of xs."),a!=null&&a.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${a.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));A(s instanceof Ce,()=>"The result y returned by f() must be a tensor.");let i=VM(this.state.activeTape,n,s);if(!r&&i.length===0&&n.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 o={};o[s.id]=a==null?QM(s.shape):a,UM(o,i,u=>this.tidy(u),eO);let l=n.map(u=>o[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let p of u.saved)p.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(t){return A(us(t),()=>"The f passed in customGrad(f) must be a function."),(...n)=>{A(n.every(o=>o instanceof Ce),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let a,r={};n.forEach((o,l)=>{r[l]=o});let s=(o,l)=>(a=t(...n,l),A(a.value instanceof Ce,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(us(a.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),a.value),i=(o,l)=>{let u=a.gradFunc(o,l),p=Array.isArray(u)?u:[u];A(p.length===n.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(p.every(c=>c instanceof Ce),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let d={};return p.forEach((c,h)=>{d[h]=()=>c}),d};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:r})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,n){return this.state.tensorInfo.get(t).backend.readToGPU(t,n)}async time(t){let n=kc(),a=await this.backend.time(t);return a.wallMs=kc()-n,a}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new yI;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Lv.nextTensorId=0;Lv.nextVariableId=0;function QM(e){let t=Dv(ot(e),"float32");return P.makeTensor(t,e,"float32")}function NN(){let e=dN();if(e._tfengine==null){let t=new cN(e);e._tfengine=new Lv(t)}return wM(e._tfengine.ENV),qM(()=>e._tfengine),e._tfengine}var P=NN();function eO(e,t){let n={a:e,b:t};return P.runKernel(Ss,n)}var ud={};_e(ud,{isBrowser:()=>TN,isMobile:()=>aO,mockIsMobile:()=>nO});function tO(){return typeof navigator!="undefined"&&navigator!=null}var Ox;function nO(e){Ox=e}function aO(e){if(Ox!==void 0)return Ox;if(e||tO()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function TN(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Wn=G();Wn.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.")});Wn.registerFlag("IS_BROWSER",()=>TN());Wn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Wn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Wn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));Wn.registerFlag("PROD",()=>!1);Wn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Wn.getBool("DEBUG"));Wn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Wn.registerFlag("IS_TEST",()=>!1);Wn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>Wn.getBool("DEBUG"));Wn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Wn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Wn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function pr(e,t){let n=e;if(en(e))return t==="string"?[]:[e.length];if(wN(e)){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}else if(kN(e))return[e.buffer.size/(t==null?4:am(t))];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||en(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&CN(e,a,[]),a}function CN(e,t,n){if(n=n||[],!Array.isArray(e)&&!en(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(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),xI(a,r,t,n),e==null||!en(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=pr(e,r);!en(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Km(e,r):ps(e,[],!0);return P.makeTensor(i,s,r)}function Ic(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 zv="__op";function L(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+zv;let r=(...s)=>{P.startScope(n);try{let i=a(...s);return Rm(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 rO(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");Nn(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(Mm,r)}var Fr=L({complex_:rO});function Es(e,t,n,a){if(a==null)a=Lc(e);else if(a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(kN(e)||wN(e)){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return P.backend.createTensorFromGPUData(e,t||n,a)}if(!en(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){ra(t);let r=ot(t),s=ot(n);A(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!en(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Km(e,a):ps(e,[],!0),P.makeTensor(e,t,a)}function bn(e,t,n){let a=pr(e,n);return Es(e,t,a,n)}var ci={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Dr=class EN{static join(t){return new EN(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(a=>en(a)?a.buffer:a),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let n=0;for(let a=0;a=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function n(r){return t=r.end?1:0}if(n(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let a=sO(this.shards,n);return a===-1?-1:(this.previousShardIndex=a,this.previousShardIndex)}};function sO(e,t){let n=0,a=e.length;for(;n<=a;){let r=Math.floor((a-n)/2)+n,s=t(e[r]);if(s===0)return r;s<0?a=r:n=r+1}return-1}function iO(){G().set("PROD",!0)}function oO(){G().set("DEBUG",!0)}function lO(){G().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Wv(e){G().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}XM(Wv);function uO(){P.disposeVariables()}function Ea(){return P}function lm(){return P.memory()}function pO(e){return P.profile(e)}function O(e,t){return P.tidy(e,t)}function Ee(e){Pv(e).forEach(t=>t.dispose())}function Ht(e){return P.keep(e)}function cO(e){return P.time(e)}function dO(e){return P.setBackend(e)}function hO(){return P.ready()}function _N(){return P.backendName}function mO(e){P.removeBackend(e)}function fO(e){return P.findBackend(e)}function gO(e){return P.findBackendFactory(e)}function Ym(e,t,n=1){return P.registerBackend(e,t,n)}function Bv(){return P.backend}function bO(e,t){G().setPlatform(e,t)}var ds=4;async function yO(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,b)=>g+b.length,0)+ds*c.length,m=new Uint8Array(h),f=0;for(let g=0;gn.slice(r+o,r+l));a[s.name]=FN(s,n.slice(r,r+i)),r+=i}return a}function xO(e,t){let n=ot(e.shape),a;if("quantization"in e){let r=e.quantization;a=ci[r.dtype]}else if(e.dtype==="string"){let r=0;for(let s=0;s(r=await vI(a,r,p),r.slice(u,p)));r=await vI(a,r,i);let o=r.slice(0,i);r=r.slice(i);let l=FN(s,o);if(n[s.name]=l,_N()==="webgpu"){let u=Bv();"uploadToGPU"in u&&ot(l.shape)>=G().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&u.uploadToGPU(l.dataId)}}return n}function wO(e){if(e===null)throw new Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,n=[];e.forEach(s=>{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 Vv=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function wI(e){return Vv?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function kO(e){if(Vv)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{let a=n<<13,r=0;for(;!(a&8388608);)r-=8388608,a<<=1;return a&=-8388609,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 TO(){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 CO(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function EO(){let e=NO(),t=TO(),n=CO();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 ba=class La{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return La.instance==null&&(La.instance=new La),La.instance}static registerSaveRouter(t){La.getInstance().saveRouters.push(t)}static registerLoadRouter(t){La.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return La.getHandlers(t,"save")}static getLoadHandlers(t,n){return La.getHandlers(t,"load",n)}static getHandlers(t,n,a){let r=[];return(n==="load"?La.getInstance().loadRouters:La.getInstance().saveRouters).forEach(s=>{let i=s(t,a);i!==null&&r.push(i)}),r}},_O=e=>ba.registerSaveRouter(e),AO=e=>ba.registerLoadRouter(e),FO=e=>ba.getSaveHandlers(e),$O=(e,t)=>ba.getLoadHandlers(e,t),Lx="tensorflowjs",zx=1,ai="models_store",as="model_info_store";function MN(){if(!G().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 Wx(e){let t=e.result;t.createObjectStore(ai,{keyPath:"modelPath"}),t.createObjectStore(as,{keyPath:"modelPath"})}var di=class{constructor(e){if(this.indexedDB=MN(),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(Lx,zx);r.onupgradeneeded=()=>Wx(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ai,"readonly"),o=i.objectStore(ai).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{t.weightData=Dr.join(t.weightData);let i=pd(t),o=s.transaction(as,"readwrite"),l=o.objectStore(as),u;try{u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i})}catch(d){return a(d)}let p;u.onsuccess=()=>{p=s.transaction(ai,"readwrite");let d=p.objectStore(ai),c;try{c=d.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i})}catch(h){return a(h)}c.onsuccess=()=>n({modelArtifactsInfo:i}),c.onerror=h=>{l=o.objectStore(as);let m=l.delete(this.modelPath);m.onsuccess=()=>(s.close(),a(c.error)),m.onerror=f=>(s.close(),a(c.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};di.URL_SCHEME="indexeddb://";var ON=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(di.URL_SCHEME)?DO(e.slice(di.URL_SCHEME.length)):null;ba.registerSaveRouter(ON);ba.registerLoadRouter(ON);function DO(e){return new di(e)}function RO(e){return e.startsWith(di.URL_SCHEME)?e.slice(di.URL_SCHEME.length):e}var MO=class{constructor(){this.indexedDB=MN()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Lx,zx);n.onupgradeneeded=()=>Wx(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(as,"readonly"),s=r.objectStore(as).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=RO(e),new Promise((t,n)=>{let a=this.indexedDB.open(Lx,zx);a.onupgradeneeded=()=>Wx(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(as,"readwrite"),i=s.objectStore(as),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),p=()=>{l=r.transaction(ai,"readwrite");let d=l.objectStore(ai).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),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)})}},Er="/",Ll="tensorflowjs_models",PN="info",OO="model_topology",PO="weight_specs",LO="weight_data",zO="model_metadata";function LN(e){return{info:[Ll,e,PN].join(Er),topology:[Ll,e,OO].join(Er),weightSpecs:[Ll,e,PO].join(Er),weightData:[Ll,e,LO].join(Er),modelMetadata:[Ll,e,zO].join(Er)}}function zN(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function WO(e){let t=e.split(Er);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Er)}function BO(e){return e.startsWith(hi.URL_SCHEME)?e.slice(hi.URL_SCHEME.length):e}var hi=class{constructor(e){if(!G().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=LN(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=pd(e),r=Dr.join(e.weightData);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,kO(r));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:a}}catch(s){throw zN(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${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),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=IO(s),t}};hi.URL_SCHEME="localstorage://";var WN=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(hi.URL_SCHEME)?VO(e.slice(hi.URL_SCHEME.length)):null;ba.registerSaveRouter(WN);ba.registerLoadRouter(WN);function VO(e){return new hi(e)}var UO=class{constructor(){A(G().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=Ll+Er,n=Er+PN;for(let a=0;a"scheme must not be undefined or null."),t.endsWith(Vl)&&(t=t.slice(0,t.indexOf(Vl))),A(t.length>0,()=>"scheme must not be an empty string.");let a=Zr.getInstance();A(a.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),a.managers[t]=n}static getManager(t){let n=Zr.getInstance().managers[t];if(n==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return n}static getSchemes(){return Object.keys(Zr.getInstance().managers)}};function Kh(e){if(e.indexOf(Vl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${hs.getSchemes().join(",")}`);return{scheme:e.split(Vl)[0],path:e.split(Vl)[1]}}async function BN(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=ba.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=ba.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Kh(e).scheme,l=Kh(e).path,u=o===Kh(e).scheme,p=await r.load();n&&u&&await hs.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await hs.getManager(o).removeModel(l),d.modelArtifactsInfo}async function GO(){let e=hs.getSchemes(),t={};for(let n of e){let a=await hs.getManager(n).listModels();for(let r in a){let s=n+Vl+r;t[s]=a[r]}}return t}async function HO(e){let t=Kh(e);return hs.getManager(t.scheme).removeModel(t.path)}async function jO(e,t){return BN(e,t,!1)}async function qO(e,t){return BN(e,t,!0)}var KO=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}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)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!G().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(e){return bN(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new KO);try{hs.registerManager(hi.URL_SCHEME,new UO)}catch(e){}try{hs.registerManager(di.URL_SCHEME,new MO)}catch(e){}}var XO={importFetch:()=>WR()},fx,YO=class{constructor(){this.util=BR(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(fx==null&&(fx=XO.importFetch()),fx(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)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}};G().get("IS_NODE")&&!G().get("IS_BROWSER")&&G().setPlatform("node",new YO);function Pe(e,t="float32",n){return t=t||"float32",ra(e),new Wt(e,t,n)}function ZO(e,t){let n=E(e,"x","cast");if(!iN(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(Pi,a,r)}var re=L({cast_:ZO});function JO(e){let t={x:E(e,"x","clone","string_or_numeric")};return P.runKernel(no,t)}var or=L({clone_:JO});function Gv(e,t=!1){console.log(e.toString(t))}NN();var QO={buffer:Pe,cast:re,clone:or,print:Gv};KM(QO);function eP(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Ss,r)}var X=L({add_:eP});function tP(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Qi,r)}var Zm=L({floorDiv_:tP});function nP(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=At(n,a),n.dtype==="int32"&&a.dtype==="int32")return Zm(n,a);let r={a:n,b:a},s={};return P.runKernel(qi,r,s)}var he=L({div_:nP});function aP(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(xo,r)}var z=L({mul_:aP});function rP(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return P.runKernel(Vc,n)}else{let n={x:t};return P.runKernel(uu,n)}}var Lt=L({abs_:rP});function sP(e){let t={x:E(e,"x","acos")};return P.runKernel(Ci,t)}var Hv=L({acos_:sP});function iP(e){let t={x:E(e,"x","acosh")};return P.runKernel(Ei,t)}var jv=L({acosh_:iP});function oP(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(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(!$r(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return P.runKernel(_i,a)}var VN=L({addN_:oP});function lP(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return P.runKernel(pu,a,r)}var Jm=L({all_:lP});function uP(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return P.runKernel(cu,a,r)}var Sc=L({any_:uP});function pP(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return P.runKernel(du,n,a)}var mi=L({argMax_:pP});function cP(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return P.runKernel(hu,n,a)}var qv=L({argMin_:cP});function dP(e){let t={x:E(e,"x","asin")};return P.runKernel(Ai,t)}var Kv=L({asin_:dP});function hP(e){let t={x:E(e,"x","asinh")};return P.runKernel(Fi,t)}var Xv=L({asinh_:hP});function mP(e){let t={x:E(e,"x","atan")};return P.runKernel($i,t)}var Yv=L({atan_:mP});function fP(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Ri,r)}var Zv=L({atan2_:fP});function gP(e){let t={x:E(e,"x","atanh")};return P.runKernel(Di,t)}var Jv=L({atanh_:gP});function bP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=HN(r);return cd(e,o,n,s,a,null,null,l)}function UN(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Nc(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 cd(e,u,n,a,r,s,!1,i)}function yP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Bx(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return GN(e,p,n,a,r,!1,d,s)}function cd(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Nc(n),[b,y]=Nc(a),x=Ul(c,b),v=Ul(h,y),{padInfo:I,outHeight:N,outWidth:C}=wP(r,u,p,f,g,x,v,s,o),_=i?m*d:m,F;return o==="channelsFirst"?F=[l,_,N,C]:o==="channelsLast"&&(F=[l,N,C,_]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:N,outWidth:C,outChannels:_,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:v,dilationHeight:b,dilationWidth:y,inShape:e,outShape:F,filterShape:t}}function GN(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[b,y,x]=Bx(n),[v,I,N]=Bx(a),C=Ul(h,v),_=Ul(m,I),F=Ul(f,N),{padInfo:D,outDepth:$,outHeight:S,outWidth:M}=kP(r,u,p,d,b,y,x,C,_,F,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,$,S,M]:i==="channelsLast"&&(U=[l,$,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:$,outHeight:S,outWidth:M,outChannels:B,padInfo:D,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:_,effectiveFilterWidth:F,dilationDepth:v,dilationHeight:I,dilationWidth:N,inShape:e,outShape:U,filterShape:t}}function xP(e,t,n,a,r){a==null&&(a=Qv(e,t,n));let s=e[0],i=e[1],o=Tc((s-t+2*a)/n+1,r),l=Tc((i-t+2*a)/n+1,r);return[o,l]}function vP(e,t,n,a,r,s){r==null&&(r=Qv(e,t[0],a[0]));let i=[0,0,0,n];for(let o=0;o<3;o++)e[o]+2*r>=t[o]&&(i[o]=Tc((e[o]-t[o]+2*r)/a[o]+1,s));return i}function Qv(e,t,n,a=1){let r=Ul(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Nc(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Bx(e){return typeof e=="number"?[e,e,e]:e}function Ul(e,t){return t<=1?e:e+(e-1)*(t-1)}function wP(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=xP([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),b=h-g;u={top:m,bottom:f,left:g,right:b,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=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:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=Tc((t-s+c+h)/a+1,o),d=Tc((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function kP(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(e==="valid"&&(e=0),typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=vP([t,n,a,1],[o,l,u],1,[r,s,i],e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,v=Math.floor(g/2),I=g-v,N=Math.floor(b/2),C=b-N;d={top:v,bottom:I,left:N,right:C,front:y,back:x,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Tc(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 ms(e){let[t,n,a]=Nc(e);return t===1&&n===1&&a===1}function mr(e,t){return ms(e)||ms(t)}function fi(e){return Nc(e).every(t=>t>0)}function HN(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Tn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(Hl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(Hl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function IP(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return P.runKernel(qu,n,a)}var W=L({reshape_:IP});function SP(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(mr(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=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Tn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(Mi,u,p);return d=re(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var xa=L({avgPool_:SP});function NP(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),A(typeof n=="number"&&n>0||Array.isArray(n)&&n[0]>0&&n[1]>0&&n[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${n}'`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(mu,u,p);return d=re(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var ew=L({avgPool3d_:NP});function TP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=Ic(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 or(n[0]);let a=n,r={axis:t};return P.runKernel(yu,a,r)}var et=L({concat_:TP});function CP(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=At(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return P.runKernel(Oi,i,o)}var $e=L({matMul_:CP});function EP(e){let t={x:E(e,"x","sigmoid","float32")};return P.runKernel(Po,t)}var ma=L({sigmoid_:EP});function _P(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return P.runKernel(ep,r,s)}var Ve=L({slice_:_P});function AP(e){let t={x:E(e,"x","tanh","float32")};return P.runKernel(Ho,t)}var fs=L({tanh_:AP});function FP(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=et([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ve(m,[0,0],b),x=Ve(m,[0,g],b),v=Ve(m,[0,g*2],b),I=Ve(m,[0,g*3],b),N=X(z(ma(y),fs(x)),z(p,ma(X(i,v)))),C=z(fs(N),ma(I));return[N,C]}var jN=L({basicLSTMCell_:FP});function $P(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(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(fu,s,i)}var dd=L({batchToSpaceND_:$P});function DP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function RP(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:DP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=P.runKernel(eo,d,c);return W(h,i.shape)}var _s=L({batchNorm_:RP});function MP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),_s(i,o,l,p,u,s)}var tw=L({batchNorm2d_:MP});function OP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),_s(i,o,l,p,u,s)}var nw=L({batchNorm3d_:OP});function PP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.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}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),_s(i,o,l,p,u,s)}var aw=L({batchNorm4d_:PP});function LP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(gu,s,i)}var rw=L({bincount_:LP});function zP(e,t){let n=E(e,"x","bitwiseAnd"),a=E(t,"y","bitwiseAnd");if(!$r(n.shape,a.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${n.shape}, y: ${a.shape}`);if(n.dtype!=="int32"||a.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${n.dtype} and type of y: ${a.dtype}`);let r={a:n,b:a};return P.runKernel(bu,r)}var qN=L({bitwiseAnd_:zP});function WP(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return P.runKernel(Bc,r)}var KN=L({broadcastArgs_:WP});function BP(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(ra(t),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 or(n);let i={x:n},o={reps:s};return P.runKernel(Ts,i,o)}var si=L({broadcastTo_:BP});function VP(e){let t={x:E(e,"x","ceil","float32")};return P.runKernel(Li,t)}var sw=L({ceil_:VP});function yn(e,t,n){ra(e),n=n||Lc(t);let a={shape:e,value:t,dtype:n};return P.runKernel(Hc,{},a)}function UP(e,t,n){let a=E(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return yn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return P.runKernel(Ns,r,s)}var an=L({clipByValue_:UP});function GP(e){return et(e,0)}var iw=L({concat1d_:GP});function HP(e,t){return et(e,t)}var ow=L({concat2d_:HP});function jP(e,t){return et(e,t)}var lw=L({concat3d_:jP});function qP(e,t){return et(e,t)}var uw=L({concat4d_:qP});function KP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`),Tn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(mr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(fi(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),A(fi(n),()=>"Error in conv2D: Strides should be larger than 0.");let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(zi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:KP});function XP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.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}.`),Tn("conv1d",a,i),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(mr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(fi(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),A(fi(n),()=>"Error in conv1D: Stride should be larger than 0."),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var Qm=L({conv1d_:XP});function YP(e,t,n,a,r,s="NHWC",i){A(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=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Tn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=P.runKernel(Wi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var pw=L({conv2DBackpropInput_:YP});function ZP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return pw(n,i,o,a,r,"NHWC",s)}var ef=L({conv2dTranspose_:ZP});function JP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(mr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`),A(fi(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),A(fi(n),()=>"Error in conv3D: Strides should be larger than 0.");let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=P.runKernel(Bi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var cw=L({conv3d_:JP});function QP(e,t,n,a,r){A(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=W(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];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=P.runKernel(vu,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var XN=L({conv3DBackpropInput_:QP});function e3(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return XN(n,s,i,a,r)}var dw=L({conv3dTranspose_:e3});function t3(e){let t={x:E(e,"x","cos","float32")};return P.runKernel(Vi,t)}var hd=L({cos_:t3});function n3(e){let t={x:E(e,"x","cosh","float32")};return P.runKernel(Ui,t)}var tf=L({cosh_:n3});function a3(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(wu,r,s)}var Cc=L({cumprod_:a3});function r3(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return P.runKernel(Gi,r,s)}var nf=L({cumsum_:r3});function s3(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(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(Uc,i,o)}var um=L({denseBincount_:s3});function i3(e,t,n="NHWC"){let a=E(e,"x","depthToSpace","float32"),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];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),A(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(Iu,o,l)}var dw=L({depthToSpace_:r3});function s3(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Nn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(Hi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var _s=L({depthwiseConv2d_:s3});function i3(e){let t={x:E(e,"x","diag")};return P.runKernel(Gc,t)}var YN=L({diag_:i3});function o3(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=P.runKernel(qi,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var hw=L({dilation2d_:o3}),cp={};_e(cp,{assertAndGetBroadcastShape:()=>ct,getBroadcastDims:()=>ZN,getReductionAxes:()=>Bt});function ZN(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Bt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ct(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=$e(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var fw=L({dot_:d3});function h3(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return P.runKernel(Wm,n,a)}var Js=L({einsum_:h3});function m3(e){let t={x:E(e,"x","elu","float32")};return P.runKernel(Ki,t)}var dp=L({elu_:m3});function f3(e,t){let n=E(e,"x","ensureShape","string_or_numeric");if(!nN(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var JN=L({ensureShape_:f3});function g3(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=re(t,"float32"));let n={x:t};return P.runKernel(Xi,n)}var gw=L({erf_:g3});function bw(e,t){for(let n=0;ne[s]);return[n,r]}function gi(e,t){let n=t.map(a=>1);return QN(e,n,t)}function b3(e,t,n){A(bw(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function tT(e,t){if(bw(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function yw(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function y3(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return P.runKernel(Tu,a,r)}var Gt=L({expandDims_:E3});function _3(e){let t={x:E(e,"x","expm1")};return P.runKernel(Zi,t)}var vw=L({expm1_:_3});function A3(e,t){let n=E(e,"x","tile","string_or_numeric");A(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(Ns,a,r)}var Mn=L({tile_:A3});function F3(e,t,n,a="float32"){t==null&&(t=e);let r=Pe([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}.`),A(Hl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=P.runKernel(uo,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Sw=L({localResponseNormalization_:U3});function G3(e){let t={x:E(e,"x","log","float32")};return P.runKernel(oo,t)}var ta=L({log_:G3});function H3(e){let t={x:E(e,"x","log1p")};return P.runKernel(lo,t)}var gd=L({log1p_:H3});function q3(e){return A(us(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(a),[a],r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),rf(i),i[0]})}}function j3(e){return A(us(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Ic(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(...a),a,r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),rf(i),i})}}function K3(e){return A(us(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ce,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=P.gradients(()=>e(t),[t],n);return rf(a),{grad:a[0],value:r}}}function X3(e){return A(us(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ce),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=P.gradients(()=>e(...t),t,n);return n!=null&&Sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),rf(a.grads),a}}function rT(e,t){A(us(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof cs),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in P.registeredVariables)t.push(P.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() 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);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function cr(e){return P.customGrad(e)}function rf(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 Y3(e){let t={x:E(e,"x","neg")};return P.runKernel(Wu,t)}var yt=L({neg_:Y3});function Z3(e){let t={x:E(e,"x","softplus")};return P.runKernel(Lo,t)}var qo=L({softplus_:Z3});function J3(e){let t=E(e,"x","logSigmoid");return cr(n=>({value:yt(qo(yt(n))),gradFunc:a=>z(a,ma(yt(n)))}))(t)}var Nw=L({logSigmoid_:J3});function Q3(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Uo,r)}var pe=L({sub_:Q3});function eL(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 cr((a,r)=>{let s=fa(a,t,!0),i=pe(a,s),o=pe(re(i,"float32"),ta(fe(mn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=mn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var sf=L({logSoftmax_:eL});function tL(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=$a(t,a.shape),s=fa(a,r,!0),i=pe(a,s),o=mn(i),l=fe(o,r),u=ta(l),p=X(W(s,u.shape),u);if(n){let d=gi(p.shape,r);return W(p,d)}return p}var bd=L({logSumExp_:tL});function nL(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Ru,r)}var Fa=L({logicalAnd_:nL});function aL(e){let t={x:E(e,"x","logicalNot","bool")};return P.runKernel(Mu,t)}var yd=L({logicalNot_:aL});function rL(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Ou,r)}var of=L({logicalOr_:rL});function sL(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return ct(n.shape,a.shape),Fa(of(e,t),yd(Fa(e,t)))}var Tw=L({logicalXor_:sL}),Rh=2147483648;function iL(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(ot(l.shape)>=Rh)throw new Error(`values tensor size must less than ${Rh}`);if(o.shape[1]>=Rh)throw new Error(`trailing dim_size must less than ${Rh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return P.runKernel(Ju,u,p)}var lf=L({searchSorted_:iL});function sT(e,t){return lf(e,t,"left")}function oL(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(hr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Nn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(ho,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:oL});function lL(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(Lu,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Cw=L({maxPool3d_:lL});function uL(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=P.runKernel(Kc,s,i);return{result:o[0],indexes:o[1]}}var iT=L({maxPoolWithArgmax_:uL});function pL(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=At(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(co,r)}var mr=L({maximum_:pL});function cL(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return P.runKernel(mo,a,r)}var Et=L({mean_:cL});function It(e,t="float32"){if(ra(e),t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Ar(a,r)}let n=Dm(ot(e),t);return P.makeTensor(n,e,t)}function On(e,t="float32"){if(ra(e),t==="complex64"){let a=On(e,"float32"),r=It(e,"float32");return Ar(a,r)}let n=$v(ot(e),t);return P.makeTensor(n,e,t)}function oT(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=E(e,"x","meshgrid",e instanceof Ce?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof Ce?t.dtype:"float32"),s=ot(a.shape),i=ot(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(On([i,1],a.dtype),a),$e(r,On([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,On([1,i],a.dtype)),$e(On([s,1],r.dtype),r)])}function dL(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=At(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(go,r)}var fs=L({minimum_:dL});function hL(e,t,n){A(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");A(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."),A(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(bo,i,s)}var Ew=L({mirrorPad_:hL});function mL(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(yo,r)}var _w=L({mod_:mL});function fL(e,t=null,n=!1){e=E(e,"x","moments");let a=$a(t,e.shape),r=Et(e,a,n),s=r.shape;n||(s=gi(r.shape,a));let i=pt(pe(re(e,"float32"),W(r,s))),o=Et(i,a,n);return{mean:r,variance:o}}var xd=L({moments_:fL});function gL(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=Ic(n,"c","multiRNNCell"),i=Ic(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=P.runKernel(zu,o,l);return i===1?W(u,[u.size]):u}var uT=L({multinomial_:bL});function yL(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=At(n,a),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Bu,r)}var bi=L({notEqual_:yL});function xL(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:E(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return P.runKernel(vo,s,i)}var Zl=L({oneHot_:xL});function vL(e){let t={x:E(e,"x","onesLike")};return P.runKernel(Hu,t)}var na=L({onesLike_:vL});function wL(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return $e(r,s)}var pT=L({outerProduct_:wL});function kL(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 P.runKernel(wo,s,r)}var va=L({pad_:kL});function IL(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),va(e,[t],n)}var cT=L({pad1d_:IL});function SL(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),va(e,t,n)}var dT=L({pad2d_:SL});function NL(e,t,n=0){return A(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."),va(e,t,n)}var hT=L({pad3d_:NL});function TL(e,t,n=0){return A(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."),va(e,t,n)}var mT=L({pad4d_:TL});function CL(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(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(tp,r,s)}var vd=L({spaceToBatchND_:CL});function EL(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(hr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=UN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=AL([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=_L([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:vd(l,d,m),y=(n==="avg"?()=>xa(b,t,s,g,i):()=>Dt(b,t,s,g,i))(),x=h?y:dd(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function _L(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function AL(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 Aw=L({pool_:EL});function FL(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return P.runKernel(Io,r)}var wd=L({prelu_:FL});function $L(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=re(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(So,r,s)}var Fw=L({prod_:$L});function DL(e,t,n,a){let r=e.map((p,d)=>E(p,`tensors${d}`,"raggedGather","int32")),s=E(t,"paramsDenseValues","raggedGather"),i=E(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=P.runKernel(Gm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var fT=L({raggedGather_:DL});function RL(e,t,n){let a=E(e,"starts","raggedRange"),r=E(t,"limits","raggedRange",a.dtype),s=E(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=P.runKernel(Hm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var gT=L({raggedRange_:RL});function ML(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return P.runKernel(qm,u,p)}var bT=L({raggedTensorToTensor_:ML});function OL(e,t,n){ra(e);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;svT,createVideoElement:()=>GL,encodeStrings:()=>wT,expectArrayBuffersEqual:()=>UL,expectArraysClose:()=>LL,expectArraysEqual:()=>WL,expectNumbersClose:()=>BL,expectPromiseToFail:()=>zL,expectValuesInRange:()=>VL,play:()=>HL,testEpsilon:()=>Dw});var PL=.001,vT=.1;function LL(e,t,n){return n==null&&(n=Dw()),Bx(e,t,(a,r)=>Rw(a,r,n))}function Dw(){return P.backend.floatPrecision()===32?PL:vT}function Bx(e,t,n){let a=!0;if((en(e)||en(t))&&(a=!1),en(e)&&en(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=pr(e),o=pr(t);if(!$r(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=en(e)?e:ps(e),s=en(t)?t:ps(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. + ${a.shape}`),A(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(Iu,o,l)}var hw=L({depthToSpace_:i3});function o3(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.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}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Tn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=P.runKernel(Hi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var As=L({depthwiseConv2d_:o3});function l3(e){let t={x:E(e,"x","diag")};return P.runKernel(Gc,t)}var YN=L({diag_:l3});function u3(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0),A(l.shape[3]===o.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${o.shape[2]}`);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=P.runKernel(ji,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var mw=L({dilation2d_:u3}),cp={};_e(cp,{assertAndGetBroadcastShape:()=>ct,getBroadcastDims:()=>ZN,getReductionAxes:()=>Bt});function ZN(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Bt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ct(e,t){let n=Math.max(e.length,t.length),a=new Array(n);for(let r=0;r`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(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=$e(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=$e(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=$e(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return $e(n,i)}}var gw=L({dot_:m3});function f3(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return P.runKernel(Wm,n,a)}var Qs=L({einsum_:f3});function g3(e){let t={x:E(e,"x","elu","float32")};return P.runKernel(Ki,t)}var dp=L({elu_:g3});function b3(e,t){let n=E(e,"x","ensureShape","string_or_numeric");if(!nN(n.shape,t))throw new Error(`EnsureShape: Shape of tensor ${n.shape} is not compatible with expected shape ${t}`);return e}var JN=L({ensureShape_:b3});function y3(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=re(t,"float32"));let n={x:t};return P.runKernel(Xi,n)}var af=L({erf_:y3});function bw(e,t){for(let n=0;ne[s]);return[n,r]}function gi(e,t){let n=t.map(a=>1);return QN(e,n,t)}function x3(e,t,n){A(bw(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function tT(e,t){if(bw(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function yw(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function v3(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return P.runKernel(Tu,a,r)}var Gt=L({expandDims_:A3});function F3(e){let t={x:E(e,"x","expm1")};return P.runKernel(Zi,t)}var vw=L({expm1_:F3});function $3(e,t){let n=E(e,"x","tile","string_or_numeric");A(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(Ts,a,r)}var On=L({tile_:$3});function D3(e,t,n,a="float32"){t==null&&(t=e);let r=Pe([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}.`),A(Hl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=P.runKernel(uo,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Sw=L({localResponseNormalization_:H3});function j3(e){let t={x:E(e,"x","log","float32")};return P.runKernel(oo,t)}var ta=L({log_:j3});function q3(e){let t={x:E(e,"x","log1p")};return P.runKernel(lo,t)}var gd=L({log1p_:q3});function K3(e){return A(us(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(a),[a],r);return r!=null&&Nn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),sf(i),i[0]})}}function X3(e){return A(us(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Ic(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(...a),a,r);return r!=null&&Nn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),sf(i),i})}}function Y3(e){return A(us(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ce,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=P.gradients(()=>e(t),[t],n);return sf(a),{grad:a[0],value:r}}}function Z3(e){return A(us(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ce),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=P.gradients(()=>e(...t),t,n);return n!=null&&Nn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),sf(a.grads),a}}function rT(e,t){A(us(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof cs),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in P.registeredVariables)t.push(P.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() 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);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function dr(e){return P.customGrad(e)}function sf(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 J3(e){let t={x:E(e,"x","neg")};return P.runKernel(Wu,t)}var yt=L({neg_:J3});function Q3(e){let t={x:E(e,"x","softplus")};return P.runKernel(Lo,t)}var jo=L({softplus_:Q3});function eL(e){let t=E(e,"x","logSigmoid");return dr(n=>({value:yt(jo(yt(n))),gradFunc:a=>z(a,ma(yt(n)))}))(t)}var Nw=L({logSigmoid_:eL});function tL(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(Uo,r)}var pe=L({sub_:tL});function nL(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 dr((a,r)=>{let s=fa(a,t,!0),i=pe(a,s),o=pe(re(i,"float32"),ta(fe(mn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=mn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var of=L({logSoftmax_:nL});function aL(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=$a(t,a.shape),s=fa(a,r,!0),i=pe(a,s),o=mn(i),l=fe(o,r),u=ta(l),p=X(W(s,u.shape),u);if(n){let d=gi(p.shape,r);return W(p,d)}return p}var bd=L({logSumExp_:aL});function rL(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Ru,r)}var Fa=L({logicalAnd_:rL});function sL(e){let t={x:E(e,"x","logicalNot","bool")};return P.runKernel(Mu,t)}var yd=L({logicalNot_:sL});function iL(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Ou,r)}var lf=L({logicalOr_:iL});function oL(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return ct(n.shape,a.shape),Fa(lf(e,t),yd(Fa(e,t)))}var Tw=L({logicalXor_:oL}),Rh=2147483648;function lL(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(ot(l.shape)>=Rh)throw new Error(`values tensor size must less than ${Rh}`);if(o.shape[1]>=Rh)throw new Error(`trailing dim_size must less than ${Rh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return P.runKernel(Ju,u,p)}var uf=L({searchSorted_:lL});function sT(e,t){return uf(e,t,"left")}function uL(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(mr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Tn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(ho,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:uL});function pL(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(Lu,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Cw=L({maxPool3d_:pL});function cL(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=P.runKernel(Kc,s,i);return{result:o[0],indexes:o[1]}}var iT=L({maxPoolWithArgmax_:cL});function dL(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=At(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(co,r)}var fr=L({maximum_:dL});function hL(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return P.runKernel(mo,a,r)}var Et=L({mean_:hL});function It(e,t="float32"){if(ra(e),t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Fr(a,r)}let n=Dm(ot(e),t);return P.makeTensor(n,e,t)}function Pn(e,t="float32"){if(ra(e),t==="complex64"){let a=Pn(e,"float32"),r=It(e,"float32");return Fr(a,r)}let n=Dv(ot(e),t);return P.makeTensor(n,e,t)}function oT(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=E(e,"x","meshgrid",e instanceof Ce?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof Ce?t.dtype:"float32"),s=ot(a.shape),i=ot(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[$e(Pn([i,1],a.dtype),a),$e(r,Pn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[$e(a,Pn([1,i],a.dtype)),$e(Pn([s,1],r.dtype),r)])}function mL(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=At(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(go,r)}var gs=L({minimum_:mL});function fL(e,t,n){A(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");A(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."),A(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(bo,i,s)}var Ew=L({mirrorPad_:fL});function gL(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=At(n,a);let r={a:n,b:a};return P.runKernel(yo,r)}var _w=L({mod_:gL});function bL(e,t=null,n=!1){e=E(e,"x","moments");let a=$a(t,e.shape),r=Et(e,a,n),s=r.shape;n||(s=gi(r.shape,a));let i=pt(pe(re(e,"float32"),W(r,s))),o=Et(i,a,n);return{mean:r,variance:o}}var xd=L({moments_:bL});function yL(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=Ic(n,"c","multiRNNCell"),i=Ic(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=P.runKernel(zu,o,l);return i===1?W(u,[u.size]):u}var uT=L({multinomial_:xL});function vL(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=At(n,a),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Bu,r)}var bi=L({notEqual_:vL});function wL(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:E(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return P.runKernel(vo,s,i)}var Zl=L({oneHot_:wL});function kL(e){let t={x:E(e,"x","onesLike")};return P.runKernel(Hu,t)}var na=L({onesLike_:kL});function IL(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return $e(r,s)}var pT=L({outerProduct_:IL});function SL(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 P.runKernel(wo,s,r)}var va=L({pad_:SL});function NL(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),va(e,[t],n)}var cT=L({pad1d_:NL});function TL(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),va(e,t,n)}var dT=L({pad2d_:TL});function CL(e,t,n=0){return A(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."),va(e,t,n)}var hT=L({pad3d_:CL});function EL(e,t,n=0){return A(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."),va(e,t,n)}var mT=L({pad4d_:EL});function _L(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(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(tp,r,s)}var vd=L({spaceToBatchND_:_L});function AL(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(mr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=UN(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=$L([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=FL([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:vd(l,d,m),y=(n==="avg"?()=>xa(b,t,s,g,i):()=>Dt(b,t,s,g,i))(),x=h?y:dd(y,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function FL(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function $L(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 Aw=L({pool_:AL});function DL(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return P.runKernel(Io,r)}var wd=L({prelu_:DL});function RL(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=re(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return P.runKernel(So,r,s)}var Fw=L({prod_:RL});function ML(e,t,n,a){let r=e.map((p,d)=>E(p,`tensors${d}`,"raggedGather","int32")),s=E(t,"paramsDenseValues","raggedGather"),i=E(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=P.runKernel(Gm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var fT=L({raggedGather_:ML});function OL(e,t,n){let a=E(e,"starts","raggedRange"),r=E(t,"limits","raggedRange",a.dtype),s=E(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=P.runKernel(Hm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var gT=L({raggedRange_:OL});function PL(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return P.runKernel(jm,u,p)}var bT=L({raggedTensorToTensor_:PL});function LL(e,t,n){ra(e);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;svT,createVideoElement:()=>jL,encodeStrings:()=>wT,expectArrayBuffersEqual:()=>HL,expectArraysClose:()=>WL,expectArraysEqual:()=>VL,expectNumbersClose:()=>UL,expectPromiseToFail:()=>BL,expectValuesInRange:()=>GL,play:()=>qL,testEpsilon:()=>Dw});var zL=.001,vT=.1;function WL(e,t,n){return n==null&&(n=Dw()),Vx(e,t,(a,r)=>Rw(a,r,n))}function Dw(){return P.backend.floatPrecision()===32?zL:vT}function Vx(e,t,n){let a=!0;if((en(e)||en(t))&&(a=!1),en(e)&&en(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=pr(e),o=pr(t);if(!$r(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=en(e)?e:ps(e),s=en(t)?t:ps(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()),typeof expect!="undefined"&&expect().nothing()}function WL(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return ns(e)||ns(e[0])||ns(t)||ns(t[0])?Bx(e,n,(a,r)=>a==r):Bx(e,t,(a,r)=>Rw(a,r,0))}function BL(e,t,n){if(n==null&&(n=Dw()),!Rw(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Rw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function VL(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function UL(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function HL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var Mw=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=$w.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(s>=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},qL=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=$w.alea(r.toString()),this.randn=new Mw(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=$w.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function KL(e,t,n=1,a="float32",r){if(ra(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new qL(t,n,a,r),i=Pe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ya(t,0)}var NT=L({reverse1d_:rz});function sz(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ya(n,t)}var TT=L({reverse2d_:sz});function iz(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ya(n,t)}var CT=L({reverse3d_:iz});function oz(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ya(n,t)}var ET=L({reverse4d_:oz});function lz(e){let t={x:E(e,"x","round")};return P.runKernel(Fo,t)}var cf=L({round_:lz});function uz(e){let t={x:E(e,"x","rsqrt","float32")};return P.runKernel($o,t)}var df=L({rsqrt_:uz});function pz(e){let t={x:E(e,"x","selu")};return P.runKernel(Do,t)}var hf=L({selu_:pz});function cz(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(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");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.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 c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=_s(p,l,a,r,i,s),f=$t(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var $s=L({separableConv2d_:cz});async function dz(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(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 p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Ve(a,[t],[n])}var kd=L({slice1d_:gz});function bz(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var gf=L({slice2d_:bz});function yz(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var jo=L({slice3d_:yz});function xz(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var Ql=L({slice4d_:xz});function vz(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 P.runKernel(Bo,a,r)}var ja=L({softmax_:vz});function wz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Bm,t)}var Id=L({fft_:wz});function kz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Vm,t)}var eu=L({ifft_:kz});function Iz(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=eu(r)}else{let r=[n,2*(t-1)],s=W(Jl(e),[n,t]),i=W(md(e),[n,t]),o=ya(Ve(s,[0,1],[n,t-2]),1),l=z(ya(Ve(i,[0,1],[n,t-2]),1),ve(-1)),u=et([s,o],1),p=et([i,l],1),d=W(Ar(u,p),[r[0],r[1]]);a=eu(d)}if(a=Jl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var bf=L({irfft_:Iz});function Sz(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return P.runKernel(np,a,r)}var Pn=L({split_:Sz});function Nz(e,t){A(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=Ve(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=et([e,It(m)],e.shape.length-1),n=t}else r=e;let s=je(r),i=W(Ar(r,s),[a,n]),o=Id(i),l=Math.floor(n/2)+1,u=Jl(o),p=md(o),d=Pn(u,[l,n-l],u.shape.length-1),c=Pn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Ar(d[0],c[0]),h)}var Sd=L({rfft_:Nz});function Tz(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=At(n,a),ct(n.shape,a.shape);let r={a:n,b:a},s={};return P.runKernel(Vo,r,s)}var yf=L({squaredDifference_:Tz});function Cz(e,t){let n=E(e,"x","squeeze","string_or_numeric");return W(n,aN(n.shape,t).newShape)}var Ds=L({squeeze_:Cz});function Ez(e,t=0){let n=Ic(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return P.runKernel(qu,a,r)}var Ft=L({stack_:Ez});function _z(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return P.runKernel(Ts,n,a)}var Ko=L({step_:_z});function Az(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return P.runKernel(sp,u,p)}var Lw=L({stridedSlice_:Az});function Fz(e){let t={x:E(e,"x","tan","float32")};return P.runKernel(Go,t)}var zw=L({tan_:Fz});function qe(e,t){Ti(e);let n=pr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Cs(e,null,n,t)}function Aa(e,t,n){if(Ti(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=pr(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 Cs(e,t,a,n)}function Nd(e,t,n){if(Ti(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=pr(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 Cs(e,t,a,n)}function Da(e,t,n){if(Ti(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=pr(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 Cs(e,t,a,n)}function AT(e,t,n){if(Ti(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=pr(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 Cs(e,t,a,n)}function FT(e,t,n){if(Ti(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=pr(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,Cs(e,t,a,n)}var xf={};_e(xf,{calculateShapes:()=>$T,validateInput:()=>vf,validateUpdateShape:()=>Ww});function Ww(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 d=r;d= 0 but got ${t}`);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(ip,s,i);return{values:o,indices:l}}var Bw=L({topk_:Dz});function Rz(e,t=0,n=1,a,r){if(ra(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Mw(t,n,a,!0,r),i=Pe(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(rd,a,r);return{values:s,indices:i}}var Vw=L({unique_:Mz});function Oz(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(Hl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return P.runKernel(sd,s,i)}var kf=L({unsortedSegmentSum_:Oz});function Pz(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(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(lp,a,r)}var dt=L({unstack_:Pz});function RT(e,t){return lf(e,t,"right")}function Uw(e,t=!0,n,a){return P.makeVariable(e,t,n,a)}function MT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Sn(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;fo).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?O(()=>{let i=Jl(a),o=md(a);return i=P.runKernel(Er,{x:i},s),o=P.runKernel(Er,{x:o},s),n&&(o=yt(o)),Ar(i,o)}):P.runKernel(Er,r,s)}var De=L({transpose_:Wz});function Bz(e,t,n,a,r=!0){let s=E(e,"v","movingAverage"),i=E(t,"x","movingAverage"),o=E(n,"decay","movingAverage");IN(s,i),A($r(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=ve(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=he(p,pe(l,Fr(o,d)))}return X(s,p)}var PT=L({movingAverage_:Bz});function Vz(e,t,n){ra(n);let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");vf(r,a,n);let s={indices:a,updates:r},i={shape:n};return P.runKernel(Yu,s,i)}var LT=L({scatterND_:Vz});function Uz(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 Gz(e,t,n,a=0){ra(n);let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);Uz(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return P.runKernel(rp,o,l)}var zT=L({sparseToDense_:Gz});function Hz(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return P.runKernel(_u,a)}var WT=L({gatherND_:Hz});function qz(e,t){if(t==null)return e.shape.slice();if($r(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.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ce?r.clone():r;let s=qz(r,n),i=1-t,o=he(mp(X(Fs(s,0,1,"float32",a),i)),i);return z(r,o)}var Hw=L({dropout_:jz});function qw(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function If(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(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}`),Sn(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];A(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],p=rN("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fZz,depthwiseConv2d:()=>tW,matMul:()=>aW});function Xz(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Nn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return P.runKernel(Om,d,c)}var jw=L({conv2DBackpropFilter_:Xz});function Sf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,Ko(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Nf(e,t){let n=t,a=Bt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function Tf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return dp(e);if(t==="relu6")return pf(e);if(t==="prelu")return wd(e,n);if(t==="leakyrelu")return fd(e,a);if(t==="sigmoid")return ma(e);throw new Error(`Unknown fused activation ${t}.`)}var Cf=(e,t)=>!(e>0)||t==="linear";function Yz({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:p}){if(l=l||"linear",Cf(P.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let N=$t(e,t,n,a,r,s,i);return o!=null&&(N=X(N,o)),Tf(N,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Nn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(hr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=cd(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=E(o,"bias","fused conv2d"),[b]=At(b,d),r==="NHWC"?ct(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;if(u!=null){let N=u.shape;if(A(N.length<=1||N.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${N.length}.`),N.length===1)A(N[0]===1||N[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the number of output channels (${g.outChannels}).`);else if(N.length===3)try{ct(N,g.outShape)}catch(C){let _=`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(_)}y=E(u,"prelu weights","fused conv2d")}let x=(N,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[_,F,D,$]=C,S=Sf(N,D,l);A(ms(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=uw(F.shape,S,_,n,a),B=jw(F,S,_.shape,n,a),U=[M,B];if($!=null){let H=Nf($,S);U.push(H)}return U},v={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((N,C,_)=>{let F=P.runKernel(li,v,I);return _([C,N,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):cr((N,C,_,F)=>{let D=P.runKernel(li,v,I);return F([C,N,D,_]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var Zz=L({fusedConv2d_:Yz});function Jz(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return P.runKernel(Pm,u,p)}var VT=L({depthwiseConv2dNativeBackpropFilter_:Jz});function Qz(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=P.runKernel(Lm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var UT=L({depthwiseConv2dNativeBackpropInput_:Qz});function eW({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:p}){if(Cf(P.state.gradientDepth,l)===!1){let I=_s(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),Tf(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(hr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Nn("fused depthwiseConv2d",a,i);let f=cd(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=At(g,d),ct(f.outShape,g.shape));let b;u!=null&&(b=E(u,"prelu weights","fused depthwiseConv2d"));let y=(I,N)=>{A(ms(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,_,F,D]=N,$=Sf(I,F,l),S=UT(_.shape,$,C,n,a,s,i),M=VT(_,$,C.shape,n,a,s,i);if(D!=null){let B=Nf(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((I,N,C)=>{let _=P.runKernel(ui,x,v);return C([N,I,_]),m&&(_=W(_,[_.shape[1],_.shape[2],_.shape[3]])),{value:_,gradFunc:y}})(h,c):cr((I,N,C,_)=>{let F=P.runKernel(ui,x,v);return _([N,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var tW=L({fusedDepthwiseConv2d_:eW});function nW({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(Cf(P.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),Tf(D,s,i,o)}let l=E(e,"a","fused matMul"),u=E(t,"b","fused matMul");[l,u]=At(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=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),b=ot(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let y=ct(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),v=a?W(u,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=At(I,l),ct(y,I.shape));let N;i!=null&&(N=E(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=Sf(W(D,B.shape),B,s),j,K;if(!n&&!a?(j=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(j=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(j=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(j=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=Nf(U,H);return[j,K,Z]}else return[j,K]},_={a:x,b:v,bias:I,preluActivationWeights:N},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?cr((D,$,S)=>{let M=P.runKernel(oi,_,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,v):cr((D,$,S,M)=>{let B=P.runKernel(oi,_,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,v,I)}var aW=L({fusedMatMul_:nW});function rW(e){return If(e,.54,.46)}var sW=L({hammingWindow_:rW});function iW(e){return If(e,.5,.5)}var GT=L({hannWindow_:iW});function oW(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ve(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return P.runKernel(ku,p,d)}var cW=L({cropAndResize_:pW});function dW(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return P.runKernel(Cu,n,{})}var hW=L({flipLeftRight_:dW});function mW(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Mn(t,r)}var fW=L({grayscaleToRGB_:mW});function gW(e){let t=E(e,"image","RGBToGrayscale"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),A(a===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${a}.`);let r=t.dtype,s=re(t,"float32"),i=qe([.2989,.587,.114]),o;switch(t.rank){case 2:o=Js("ij,j->i",s,i);break;case 3:o=Js("ijk,k->ij",s,i);break;case 4:o=Js("ijkl,l->ijk",s,i);break;case 5:o=Js("ijklm,m->ijkl",s,i);break;case 6:o=Js("ijklmn,n->ijklm",s,i);break;default:throw new Error("Not a valid tensor rank.")}return o=Gt(o,-1),re(o,r)}var bW=L({rgbToGrayscale_:gW});function yW(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(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(pp,s,i)}var xW=L({rotateWithOffset_:yW});function gp(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),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function vW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=gp(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(Vu,{boxes:s,scores:i},l)}var wW=L({nonMaxSuppression_:vW});function kW(e,t,n){let a=IW(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function IW(e,t,n){return NW(e,t,n||SW)}function SW(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 qT(e,t,n,a,r){return Kw(e,t,n,a,r,0)}function jT(e,t,n,a,r,s){return Kw(e,t,n,a,r,0,!1,s,!0)}function KT(e,t,n,a,r,s){return Kw(e,t,n,a,r,s,!0)}function Kw(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(II);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let N=TW(e,y,d[I]);if(N>=a){v=!0;break}if(g.score=g.score*CW(a,p,N),g.score<=r)break}g.suppressBeginIndex=d.length,v||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&kW(u,g,II))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function TW(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]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function CW(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function II(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function EW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=gp(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],p=l[1],{selectedIndices:d}=qT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),qe(d,"int32")}var _W=EW;function AW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=gp(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=P.runKernel(Gu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var FW=L({nonMaxSuppressionWithScore_:AW});async function $W(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=gp(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()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=KT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:qe(c,"int32"),selectedScores:qe(h)}}var DW=$W;function RW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=gp(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=P.runKernel(Uu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var MW=L({nonMaxSuppressionPadded_:RW});async function OW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=gp(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=jT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:qe(m,"int32"),validOutputs:ve(f,"int32")}}var PW=OW;function LW(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(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=W(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(Eo,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var XT=L({resizeBilinear_:LW});function zW(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(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=W(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(Co,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var YT=L({resizeNearestNeighbor_:zW});function WW(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(qe([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=Pn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=aw(re(cf(h),"int32"),bn([]),256);u=BW(f,l)}let m=n?As(h,u):Tn(h,u);return re(z(m,255),"int32")}function BW(e,t){let n=qe([-1]),a=qe([0]),r=qe([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(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"),A(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(op,l,u)}var GW=L({transform_:UW});function HW(e,t,n){let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=E(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=nn(Yl(t,0),s,fs(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=E(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=nn(Yl(n,0),i,fs(n,i)));let u=W(yi(0,s,1,"int32"),[-1,1]),p=yi(0,i,1,"int32"),d=pe(u,p),c=Fa(As(d,o),Rr(d,yt(l))),h=It([s,i],a.dtype);return W(Ft(dt(W(a,[-1,s,i])).map(m=>nn(c,m,h))),r)}var qW=L({bandPart_:HW});function jW(e){let t;if(Array.isArray(e)){t=!1,A(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=Pn(e,e.shape[0],0).map(r=>Ds(r,[0]));A(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 SI(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=dt(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=SI(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function SI(e,t=!1){return P.tidy(()=>{A(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=af(n),s=or(e),i=Aa([[1]],[1,1]),o=or(i),l=n>=a?a:n;for(let u=0;u{let h=Ve(s,[u,u],[n-u,1]),m=hp(h),f=Ve(s,[u,u],[1,1]),g=nn(Tn(f,0),Aa([[-1]]),Aa([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=or(i):o=et([i,Ve(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),v=Ve(s,[u,0],[n-u,a]),I=z(x,o),N=De(o);if(u===0)s=pe(v,$e(I,$e(N,v)));else{let F=pe(v,$e(I,$e(N,v)));s=et([Ve(s,[0,0],[u,a]),F],0)}let C=De(I),_=Ve(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(_,$e($e(_,o),C));else{let F=pe(_,$e($e(_,o),C));r=et([Ve(r,[0,0],[n,u]),F],1)}return[o,s,r]}),Ee([p,d,c])}return!t&&n>a&&(r=Ve(r,[0,0],[n,a]),s=Ve(s,[0,0],[a,a])),[r,s]})}var YW=L({qr_:XW}),wn;(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"})(wn||(wn={}));function ZW(e,t,n=wn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===wn.NONE)return s;if(n===wn.SUM)return fe(s);if(n===wn.MEAN){if(r==null)return Et(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,ve(i)):o}}if(n===wn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ve(a.size));{let i=z(r,On(a.shape)),o=re(fe(bi(i,ve(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Mr=L({computeWeightedLoss_:ZW});function JW(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),Sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Mr(o,i,a)}var QW=L({absoluteDifference_:JW});function eB(e,t,n,a,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),Sn(s.shape,i.shape,"Error in cosineDistance: ");let l=ve(1),u=pe(l,fe(z(s,i),n,!0));return Mr(u,o,r)}var tB=L({cosineDistance_:eB});function nB(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),Sn(r.shape,s.shape,"Error in hingeLoss: ");let o=ve(1);r=pe(z(ve(2),r),o);let l=Ke(pe(o,z(r,s)));return Mr(l,i,a)}var aB=L({hingeLoss_:nB});function rB(e,t,n,a=1,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),Sn(s.shape,i.shape,"Error in huberLoss: ");let l=ve(a),u=Lt(pe(i,s)),p=fs(u,l),d=pe(u,p),c=X(z(ve(.5),pt(p)),z(l,d));return Mr(c,o,r)}var sB=L({huberLoss_:rB});function iB(e,t,n,a=1e-7,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),Sn(s.shape,i.shape,"Error in logLoss: ");let l=ve(1),u=ve(a),p=yt(z(s,ta(X(i,u)))),d=z(pe(l,s),ta(X(pe(l,i),u))),c=pe(p,d);return Mr(c,o,r)}var oB=L({logLoss_:iB});function lB(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),Sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=yf(r,s);return Mr(o,i,a)}var uB=L({meanSquaredError_:lB});function pB(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");Sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=gd(mn(yt(Lt(a))));return X(pe(r,s),i)}function cB(e,t,n,a=0,r=wn.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")),Sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=pB(s,i);return Mr(l,o,r)}var dB=L({sigmoidCrossEntropy_:cB});function hB(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 cr((a,r,s)=>{let i=bd(r,[n],!0),o=pe(re(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=gi(u.shape,[n]);return[z(W(u,h),pe(re(d,"float32"),mn(c))),z(W(u,h),pe(mn(c),re(d,"float32")))]}}})(e,t)}function mB(e,t,n,a=0,r=wn.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")),Sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ve(a),p=ve(1),d=ve(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=hB(s,i);return Mr(l,o,r)}var fB=L({softmaxCrossEntropy_:mB});function gB(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape - ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=P.runKernel(Yc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var bB=L({sparseFillEmptyRows_:gB});function yB(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape - ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=P.runKernel(ap,i);return{outputIndices:o[0],outputShape:o[1]}}var xB=L({sparseReshape_:yB});function vB(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function BL(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function VL(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return ns(e)||ns(e[0])||ns(t)||ns(t[0])?Vx(e,n,(a,r)=>a==r):Vx(e,t,(a,r)=>Rw(a,r,0))}function UL(e,t,n){if(n==null&&(n=Dw()),!Rw(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Rw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function GL(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function HL(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function qL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var Mw=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=$w.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(s>=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},KL=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=$w.alea(r.toString()),this.randn=new Mw(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=$w.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function YL(e,t,n=1,a="float32",r){if(ra(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new KL(t,n,a,r),i=Pe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ya(t,0)}var NT=L({reverse1d_:iz});function oz(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ya(n,t)}var TT=L({reverse2d_:oz});function lz(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ya(n,t)}var CT=L({reverse3d_:lz});function uz(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ya(n,t)}var ET=L({reverse4d_:uz});function pz(e){let t={x:E(e,"x","round")};return P.runKernel(Fo,t)}var df=L({round_:pz});function cz(e){let t={x:E(e,"x","rsqrt","float32")};return P.runKernel($o,t)}var hf=L({rsqrt_:cz});function dz(e){let t={x:E(e,"x","selu")};return P.runKernel(Do,t)}var mf=L({selu_:dz});function hz(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(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");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.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 c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=As(p,l,a,r,i,s),f=$t(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ds=L({separableConv2d_:hz});async function mz(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(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 p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Ve(a,[t],[n])}var kd=L({slice1d_:yz});function xz(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var bf=L({slice2d_:xz});function vz(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var qo=L({slice3d_:vz});function wz(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Ve(a,t,n)}var Ql=L({slice4d_:wz});function kz(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 P.runKernel(Bo,a,r)}var qa=L({softmax_:kz});function Iz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Bm,t)}var Id=L({fft_:Iz});function Sz(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return P.runKernel(Vm,t)}var eu=L({ifft_:Sz});function Nz(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=eu(r)}else{let r=[n,2*(t-1)],s=W(Jl(e),[n,t]),i=W(md(e),[n,t]),o=ya(Ve(s,[0,1],[n,t-2]),1),l=z(ya(Ve(i,[0,1],[n,t-2]),1),xe(-1)),u=et([s,o],1),p=et([i,l],1),d=W(Fr(u,p),[r[0],r[1]]);a=eu(d)}if(a=Jl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var yf=L({irfft_:Nz});function Tz(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return P.runKernel(np,a,r)}var Ln=L({split_:Tz});function Cz(e,t){A(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=Ve(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=et([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Fr(r,s),[a,n]),o=Id(i),l=Math.floor(n/2)+1,u=Jl(o),p=md(o),d=Ln(u,[l,n-l],u.shape.length-1),c=Ln(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Fr(d[0],c[0]),h)}var Sd=L({rfft_:Cz});function Ez(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=At(n,a),ct(n.shape,a.shape);let r={a:n,b:a},s={};return P.runKernel(Vo,r,s)}var xf=L({squaredDifference_:Ez});function _z(e,t){let n=E(e,"x","squeeze","string_or_numeric");return W(n,aN(n.shape,t).newShape)}var Rs=L({squeeze_:_z});function Az(e,t=0){let n=Ic(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return P.runKernel(ju,a,r)}var Ft=L({stack_:Az});function Fz(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return P.runKernel(Cs,n,a)}var Ko=L({step_:Fz});function $z(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return P.runKernel(sp,u,p)}var Lw=L({stridedSlice_:$z});function Dz(e){let t={x:E(e,"x","tan","float32")};return P.runKernel(Go,t)}var zw=L({tan_:Dz});function je(e,t){Ti(e);let n=pr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Es(e,null,n,t)}function Aa(e,t,n){if(Ti(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=pr(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 Es(e,t,a,n)}function Nd(e,t,n){if(Ti(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=pr(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 Es(e,t,a,n)}function Da(e,t,n){if(Ti(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=pr(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 Es(e,t,a,n)}function AT(e,t,n){if(Ti(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=pr(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 Es(e,t,a,n)}function FT(e,t,n){if(Ti(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=pr(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,Es(e,t,a,n)}var vf={};_e(vf,{calculateShapes:()=>$T,validateInput:()=>wf,validateUpdateShape:()=>Ww});function Ww(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 d=r;d= 0 but got ${t}`);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(ip,s,i);return{values:o,indices:l}}var Bw=L({topk_:Mz});function Oz(e,t=0,n=1,a,r){if(ra(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Mw(t,n,a,!0,r),i=Pe(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(rd,a,r);return{values:s,indices:i}}var Vw=L({unique_:Pz});function Lz(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(Hl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return P.runKernel(sd,s,i)}var If=L({unsortedSegmentSum_:Lz});function zz(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(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(lp,a,r)}var dt=L({unstack_:zz});function RT(e,t){return uf(e,t,"right")}function Uw(e,t=!0,n,a){return P.makeVariable(e,t,n,a)}function MT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Nn(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;fo).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?O(()=>{let i=Jl(a),o=md(a);return i=P.runKernel(_r,{x:i},s),o=P.runKernel(_r,{x:o},s),n&&(o=yt(o)),Fr(i,o)}):P.runKernel(_r,r,s)}var De=L({transpose_:Vz});function Uz(e,t,n,a,r=!0){let s=E(e,"v","movingAverage"),i=E(t,"x","movingAverage"),o=E(n,"decay","movingAverage");IN(s,i),A($r(s.shape,i.shape),()=>"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=he(p,pe(l,cr(o,d)))}return X(s,p)}var PT=L({movingAverage_:Uz});function Gz(e,t,n){ra(n);let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");wf(r,a,n);let s={indices:a,updates:r},i={shape:n};return P.runKernel(Yu,s,i)}var LT=L({scatterND_:Gz});function Hz(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 jz(e,t,n,a=0){ra(n);let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);Hz(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return P.runKernel(rp,o,l)}var zT=L({sparseToDense_:jz});function qz(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return P.runKernel(_u,a)}var WT=L({gatherND_:qz});function Kz(e,t){if(t==null)return e.shape.slice();if($r(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.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ce?r.clone():r;let s=Kz(r,n),i=1-t,o=he(mp(X($s(s,0,1,"float32",a),i)),i);return z(r,o)}var Hw=L({dropout_:Xz});function jw(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Sf(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(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}`),Nn(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];A(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],p=rN("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fQz,depthwiseConv2d:()=>aW,matMul:()=>sW});function Zz(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Tn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return P.runKernel(Om,d,c)}var qw=L({conv2DBackpropFilter_:Zz});function Nf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,Ko(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Tf(e,t){let n=t,a=Bt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function Cf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ke(e);if(t==="elu")return dp(e);if(t==="relu6")return cf(e);if(t==="prelu")return wd(e,n);if(t==="leakyrelu")return fd(e,a);if(t==="sigmoid")return ma(e);throw new Error(`Unknown fused activation ${t}.`)}var Ef=(e,t)=>!(e>0)||t==="linear";function Jz({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:p}){if(l=l||"linear",Ef(P.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let N=$t(e,t,n,a,r,s,i);return o!=null&&(N=X(N,o)),Cf(N,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Tn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(mr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=cd(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=E(o,"bias","fused conv2d"),[b]=At(b,d),r==="NHWC"?ct(g.outShape,b.shape):(A(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),A(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;if(u!=null){let N=u.shape;if(A(N.length<=1||N.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${N.length}.`),N.length===1)A(N[0]===1||N[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the number of output channels (${g.outChannels}).`);else if(N.length===3)try{ct(N,g.outShape)}catch(C){let _=`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(_)}y=E(u,"prelu weights","fused conv2d")}let x=(N,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[_,F,D,$]=C,S=Nf(N,D,l);A(ms(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=pw(F.shape,S,_,n,a),B=qw(F,S,_.shape,n,a),U=[M,B];if($!=null){let H=Tf($,S);U.push(H)}return U},v={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?dr((N,C,_)=>{let F=P.runKernel(ui,v,I);return _([C,N,F]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:x}})(h,c):dr((N,C,_,F)=>{let D=P.runKernel(ui,v,I);return F([C,N,D,_]),m&&(D=W(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:x}})(h,c,b)}var Qz=L({fusedConv2d_:Jz});function eW(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return P.runKernel(Pm,u,p)}var VT=L({depthwiseConv2dNativeBackpropFilter_:eW});function tW(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=P.runKernel(Lm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var UT=L({depthwiseConv2dNativeBackpropInput_:tW});function nW({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:p}){if(Ef(P.state.gradientDepth,l)===!1){let I=As(e,t,n,a,r,s,i);return o!=null&&(I=X(I,o)),Cf(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(mr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Tn("fused depthwiseConv2d",a,i);let f=cd(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=At(g,d),ct(f.outShape,g.shape));let b;u!=null&&(b=E(u,"prelu weights","fused depthwiseConv2d"));let y=(I,N)=>{A(ms(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,_,F,D]=N,$=Nf(I,F,l),S=UT(_.shape,$,C,n,a,s,i),M=VT(_,$,C.shape,n,a,s,i);if(D!=null){let B=Tf(g,$);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},v={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?dr((I,N,C)=>{let _=P.runKernel(pi,x,v);return C([N,I,_]),m&&(_=W(_,[_.shape[1],_.shape[2],_.shape[3]])),{value:_,gradFunc:y}})(h,c):dr((I,N,C,_)=>{let F=P.runKernel(pi,x,v);return _([N,I,F,C]),m&&(F=W(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:y}})(h,c,g)}var aW=L({fusedDepthwiseConv2d_:nW});function rW({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(Ef(P.state.gradientDepth,s)===!1){let D=$e(e,t,n,a);return r!=null&&(D=X(D,r)),Cf(D,s,i,o)}let l=E(e,"a","fused matMul"),u=E(t,"b","fused matMul");[l,u]=At(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=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),b=ot(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let y=ct(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),v=a?W(u,[b,h,d]):W(u,[b,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=At(I,l),ct(y,I.shape));let N;i!=null&&(N=E(i,"prelu weights","fused matMul"));let C=(D,$)=>{let[S,M,B,U]=$,H=Nf(W(D,B.shape),B,s),q,K;if(!n&&!a?(q=$e(H,M,!1,!0),K=$e(S,H,!0,!1)):!n&&a?(q=$e(H,M,!1,!1),K=$e(H,S,!0,!1)):n&&!a?(q=$e(M,H,!1,!0),K=$e(S,H,!1,!1)):(q=$e(M,H,!0,!0),K=$e(H,S,!0,!0)),r!=null){let Z=Tf(U,H);return[q,K,Z]}else return[q,K]},_={a:x,b:v,bias:I,preluActivationWeights:N},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?dr((D,$,S)=>{let M=P.runKernel(li,_,F);return S([D,$,M]),{value:W(M,y),gradFunc:C}})(x,v):dr((D,$,S,M)=>{let B=P.runKernel(li,_,F);return M([D,$,B,S]),{value:W(B,y),gradFunc:C}})(x,v,I)}var sW=L({fusedMatMul_:rW});function iW(e){return Sf(e,.54,.46)}var oW=L({hammingWindow_:iW});function lW(e){return Sf(e,.5,.5)}var GT=L({hannWindow_:lW});function uW(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Ve(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return P.runKernel(ku,p,d)}var hW=L({cropAndResize_:dW});function mW(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return P.runKernel(Cu,n,{})}var fW=L({flipLeftRight_:mW});function gW(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,On(t,r)}var bW=L({grayscaleToRGB_:gW});function yW(e){let t=E(e,"image","RGBToGrayscale"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),A(a===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${a}.`);let r=t.dtype,s=re(t,"float32"),i=je([.2989,.587,.114]),o;switch(t.rank){case 2:o=Qs("ij,j->i",s,i);break;case 3:o=Qs("ijk,k->ij",s,i);break;case 4:o=Qs("ijkl,l->ijk",s,i);break;case 5:o=Qs("ijklm,m->ijkl",s,i);break;case 6:o=Qs("ijklmn,n->ijklm",s,i);break;default:throw new Error("Not a valid tensor rank.")}return o=Gt(o,-1),re(o,r)}var xW=L({rgbToGrayscale_:yW});function vW(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(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(pp,s,i)}var wW=L({rotateWithOffset_:vW});function gp(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),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function kW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=gp(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(Vu,{boxes:s,scores:i},l)}var IW=L({nonMaxSuppression_:kW});function SW(e,t,n){let a=NW(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function NW(e,t,n){return CW(e,t,n||TW)}function TW(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 jT(e,t,n,a,r){return Kw(e,t,n,a,r,0)}function qT(e,t,n,a,r,s){return Kw(e,t,n,a,r,0,!1,s,!0)}function KT(e,t,n,a,r,s){return Kw(e,t,n,a,r,s,!0)}function Kw(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(II);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let N=EW(e,y,d[I]);if(N>=a){v=!0;break}if(g.score=g.score*_W(a,p,N),g.score<=r)break}g.suppressBeginIndex=d.length,v||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&SW(u,g,II))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function EW(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]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function _W(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function II(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function AW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=gp(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],p=l[1],{selectedIndices:d}=jT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),je(d,"int32")}var FW=AW;function $W(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=gp(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=P.runKernel(Gu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var DW=L({nonMaxSuppressionWithScore_:$W});async function RW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=gp(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()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=KT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(c,"int32"),selectedScores:je(h)}}var MW=RW;function OW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=gp(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=P.runKernel(Uu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var PW=L({nonMaxSuppressionPadded_:OW});async function LW(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=gp(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=qT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:je(m,"int32"),validOutputs:xe(f,"int32")}}var zW=LW;function WW(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(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=W(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(Eo,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var XT=L({resizeBilinear_:WW});function BW(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(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=W(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(Co,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var YT=L({resizeNearestNeighbor_:BW});function VW(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(je([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=Ln(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),b=z(c,o);h=X(X(f,g),b)}else h=e;if(t==="otsu"){let f=rw(re(df(h),"int32"),bn([]),256);u=UW(f,l)}let m=n?Fs(h,u):Cn(h,u);return re(z(m,255),"int32")}function UW(e,t){let n=je([-1]),a=je([0]),r=je([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(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"),A(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(op,l,u)}var jW=L({transform_:HW});function qW(e,t,n){let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2),o,l;typeof t=="number"?(A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),o=E(t<0?s:t,"numLower","bandPart")):(A(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),o=nn(Yl(t,0),s,gs(t,s))),typeof n=="number"?(A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`),A(n<=i,()=>`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`),l=E(n<0?i:n,"numUpper","bandPart")):(A(n.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=nn(Yl(n,0),i,gs(n,i)));let u=W(yi(0,s,1,"int32"),[-1,1]),p=yi(0,i,1,"int32"),d=pe(u,p),c=Fa(Fs(d,o),Rr(d,yt(l))),h=It([s,i],a.dtype);return W(Ft(dt(W(a,[-1,s,i])).map(m=>nn(c,m,h))),r)}var KW=L({bandPart_:qW});function XW(e){let t;if(Array.isArray(e)){t=!1,A(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=Ln(e,e.shape[0],0).map(r=>Rs(r,[0]));A(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 SI(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=dt(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=SI(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function SI(e,t=!1){return P.tidy(()=>{A(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=rf(n),s=or(e),i=Aa([[1]],[1,1]),o=or(i),l=n>=a?a:n;for(let u=0;u{let h=Ve(s,[u,u],[n-u,1]),m=hp(h),f=Ve(s,[u,u],[1,1]),g=nn(Cn(f,0),Aa([[-1]]),Aa([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=or(i):o=et([i,Ve(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he($e(g,b),m)),v=Ve(s,[u,0],[n-u,a]),I=z(x,o),N=De(o);if(u===0)s=pe(v,$e(I,$e(N,v)));else{let F=pe(v,$e(I,$e(N,v)));s=et([Ve(s,[0,0],[u,a]),F],0)}let C=De(I),_=Ve(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(_,$e($e(_,o),C));else{let F=pe(_,$e($e(_,o),C));r=et([Ve(r,[0,0],[n,u]),F],1)}return[o,s,r]}),Ee([p,d,c])}return!t&&n>a&&(r=Ve(r,[0,0],[n,a]),s=Ve(s,[0,0],[a,a])),[r,s]})}var JW=L({qr_:ZW}),kn;(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"})(kn||(kn={}));function QW(e,t,n=kn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===kn.NONE)return s;if(n===kn.SUM)return fe(s);if(n===kn.MEAN){if(r==null)return Et(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,xe(i)):o}}if(n===kn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),xe(a.size));{let i=z(r,Pn(a.shape)),o=re(fe(bi(i,xe(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Mr=L({computeWeightedLoss_:QW});function eB(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),Nn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Mr(o,i,a)}var tB=L({absoluteDifference_:eB});function nB(e,t,n,a,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),Nn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return Mr(u,o,r)}var aB=L({cosineDistance_:nB});function rB(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),Nn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Ke(pe(o,z(r,s)));return Mr(l,i,a)}var sB=L({hingeLoss_:rB});function iB(e,t,n,a=1,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),Nn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=gs(u,l),d=pe(u,p),c=X(z(xe(.5),pt(p)),z(l,d));return Mr(c,o,r)}var oB=L({huberLoss_:iB});function lB(e,t,n,a=1e-7,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),Nn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=yt(z(s,ta(X(i,u)))),d=z(pe(l,s),ta(X(pe(l,i),u))),c=pe(p,d);return Mr(c,o,r)}var uB=L({logLoss_:lB});function pB(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),Nn(r.shape,s.shape,"Error in meanSquaredError: ");let o=xf(r,s);return Mr(o,i,a)}var cB=L({meanSquaredError_:pB});function dB(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");Nn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ke(a),s=z(a,n),i=gd(mn(yt(Lt(a))));return X(pe(r,s),i)}function hB(e,t,n,a=0,r=kn.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")),Nn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=X(z(s,pe(p,u)),z(d,u))}let l=dB(s,i);return Mr(l,o,r)}var mB=L({sigmoidCrossEntropy_:hB});function fB(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 dr((a,r,s)=>{let i=bd(r,[n],!0),o=pe(re(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=gi(u.shape,[n]);return[z(W(u,h),pe(re(d,"float32"),mn(c))),z(W(u,h),pe(mn(c),re(d,"float32")))]}}})(e,t)}function gB(e,t,n,a=0,r=kn.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")),Nn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=X(z(s,pe(p,u)),he(u,d))}let l=fB(s,i);return Mr(l,o,r)}var bB=L({softmaxCrossEntropy_:gB});function yB(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=P.runKernel(Yc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var xB=L({sparseFillEmptyRows_:yB});function vB(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape + ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=P.runKernel(ap,i);return{outputIndices:o[0],outputShape:o[1]}}var wB=L({sparseReshape_:vB});function kB(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(Zc,i)}var wB=L({sparseSegmentMean_:vB});function kB(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(Zc,i)}var IB=L({sparseSegmentMean_:kB});function SB(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(Jc,i)}var IB=L({sparseSegmentSum_:kB});function SB(e,t,n,a,r,s,i,o){let l=E(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=E(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=P.runKernel(td,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var NB=L({stringNGrams_:SB});function TB(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=P.runKernel(nd,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var CB=L({stringSplit_:TB});function EB(e,t){let n=E(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return P.runKernel(ad,r,a)}var _B=L({stringToHashBucketFast_:EB});function AB(e,t,n,a=!0){let r=E(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return P.runKernel(ed,{x:r},s)}var FB=L({staticRegexReplace_:AB}),ZT={fft:Id,ifft:eu,rfft:Sd,irfft:bf},JT={hammingWindow:sW,hannWindow:GT,frame:HT,stft:uW},Qn={flipLeftRight:hW,grayscaleToRGB:fW,resizeNearestNeighbor:YT,resizeBilinear:XT,rgbToGrayscale:bW,rotateWithOffset:xW,cropAndResize:cW,nonMaxSuppression:wW,nonMaxSuppressionAsync:_W,nonMaxSuppressionWithScore:FW,nonMaxSuppressionWithScoreAsync:DW,nonMaxSuppressionPadded:MW,nonMaxSuppressionPaddedAsync:PW,threshold:VW,transform:GW},Xw={bandPart:qW,gramSchmidt:KW,qr:YW},QT={absoluteDifference:QW,computeWeightedLoss:Mr,cosineDistance:tB,hingeLoss:aB,huberLoss:sB,logLoss:oB,meanSquaredError:uB,sigmoidCrossEntropy:dB,softmaxCrossEntropy:fB},e2={sparseFillEmptyRows:bB,sparseReshape:xB,sparseSegmentMean:wB,sparseSegmentSum:IB},t2={stringNGrams:NB,stringSplit:CB,stringToHashBucketFast:_B,staticRegexReplace:FB},ne={};_e(ne,{Serializable:()=>n2,SerializationMap:()=>a2,getRegisteredName:()=>DB,registerClass:()=>r2});var $B=new Map,Vx=new Map,n2=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},a2=class zl{constructor(){this.classNameMap={}}static getMap(){return zl.instance==null&&(zl.instance=new zl),zl.instance}static register(t){zl.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function r2(e,t,n){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof t=="undefined"&&(t="Custom"),typeof n=="undefined"&&(n=e.className);let a=n,r=t+">"+a;return a2.register(e),$B.set(r,e),Vx.set(e,r),e}function DB(e){return Vx.has(e)?Vx.get(e):e.className}var Or=class extends n2{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 rT(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ve(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() 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:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Yw=class extends Or{static get className(){return"Adadelta"}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:O(()=>je(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:O(()=>je(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;O(()=>{let l=X(z(i,this.rho),z(pt(s),1-this.rho)),u=z(he(hn(X(o,this.epsilon)),hn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(pt(u),1-this.rho));i.assign(l),o.assign(p);let d=X(z(u,-this.learningRate),a);a.assign(d)})}),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)}},Zw=class extends Or{static get className(){return"Adagrad"}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];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:O(()=>yn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;O(()=>{let i=X(s,pt(r));s.assign(i);let o=X(z(he(r,hn(X(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)}},Jw=class extends Or{static get className(){return"Adam"}constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],O(()=>{this.accBeta1=ve(t).variable(),this.accBeta2=ve(n).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=pe(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:O(()=>je(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:O(()=>je(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(z(p,this.beta2),z(pt(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=X(z(he(h,X(hn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(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),O(()=>{this.accBeta1.assign(Fr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Fr(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)}},Qw=class extends Or{static get className(){return"Adamax"}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=[],O(()=>{this.iteration=ve(0).variable(),this.accBeta1=ve(t).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,X(z(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:je(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:je(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=mr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(z(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)}},Ef=class extends Or{static get className(){return"SGD"}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];O(()=>{let s=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(ve(-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)}},e0=class extends Ef{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ve(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:O(()=>je(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&O(()=>{let i,o=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(z(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)}},t0=class extends Or{static get className(){return"RMSProp"}constructor(e,t=.9,n=0,a=null,r=!1){if(super(),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:O(()=>je(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:O(()=>je(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:O(()=>je(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;O(()=>{let l=X(z(i,this.decay),z(pt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),hn(pe(l,X(pt(p),this.epsilon)))),c=X(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=X(z(i,this.decay),z(pt(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),hn(X(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),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)}},RB=[Yw,Zw,Jw,Qw,e0,t0,Ef];function MB(){for(let e of RB)r2(e)}var qt={};_e(qt,{CompositeArrayBuffer:()=>Dr,browserFiles:()=>VB,browserHTTPRequest:()=>KB,concatenateArrayBuffers:()=>kO,copyModel:()=>GO,decodeWeights:()=>AN,decodeWeightsStream:()=>$N,encodeWeights:()=>gO,fromMemory:()=>YB,fromMemorySync:()=>u2,getLoadHandlers:()=>AO,getModelArtifactsForJSON:()=>Vv,getModelArtifactsForJSONSync:()=>RN,getModelArtifactsInfoForJSON:()=>pd,getSaveHandlers:()=>_O,getWeightSpecs:()=>Ox,http:()=>a0,isHTTPScheme:()=>Gx,listModels:()=>VO,loadWeights:()=>GB,moveModel:()=>HO,registerLoadRouter:()=>EO,registerSaveRouter:()=>CO,removeModel:()=>UO,weightsLoaderFactory:()=>i2,withSaveHandler:()=>ZB,withSaveHandlerSync:()=>JB});var OB="model",PB=".json",LB=".weights.bin";function NI(e){return new Promise(t=>setTimeout(t)).then(e)}var pm=class Ux{constructor(t){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Ux.URL_SCHEME)&&(t=t.slice(Ux.URL_SCHEME.length)),(t==null||t.length===0)&&(t=OB),this.modelJsonFileName=t+PB,this.weightDataFileName=t+LB}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let n=Dr.join(t.weightData),a=window.URL.createObjectURL(new Blob([n],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let r=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],s=DN(t,r),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),o=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(o.download=this.modelJsonFileName,o.href=i,await NI(()=>o.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let l=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;l.download=this.weightDataFileName,l.href=a,await NI(()=>l.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:pd(t)}}}};pm.URL_SCHEME="downloads://";var zB=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Vv(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,s])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>kI(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=kI(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},WB=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pm.URL_SCHEME)?BB(e.slice(pm.URL_SCHEME.length)):null;ba.registerSaveRouter(WB);function BB(e="model"){return new pm(e)}function VB(e){return new zB(e)}function TI(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 p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(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(e.map(s))}async function s2(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,a=e.map(s=>n(s,t.requestInit,{isBinary:!0})),r=(t.onProgress==null?await Promise.all(a):await TI(a,t.onProgress,0,.5)).map(s=>s.arrayBuffer());return t.onProgress==null?await Promise.all(r):await TI(r,t.onProgress,.5,1)}function UB(e,t){var n;let a=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,r=0,s;return(n=t.onProgress)===null||n===void 0||n.call(t,0),new ReadableStream({pull:async i=>{for(var o;rs2(r,{requestInit:a}))(e,t,n)}function i2(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=pi[b]*ot(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((v,I)=>{v===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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 p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=new Dr(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=AN(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var HB="application/octet-stream",qB="application/json",n0=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=G().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`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||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=DN(e,n);if(t.body.append("model.json",new Blob([JSON.stringify(a)],{type:qB}),"model.json"),e.weightData!=null){let s=Dr.join(e.weightData);t.body.append("model.weights.bin",new Blob([s],{type:HB}),"model.weights.bin")}let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:pd(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async loadModelJSON(){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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return Vv(e,t=>this.loadWeights(t))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),n=Ox(e.weightsManifest),a=()=>UB(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:n,getWeightStream:a})}async getWeightUrls(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=jB(t),r=this.weightPathPrefix||n,s=[],i=[];for(let o of e)for(let l of o.paths)this.weightUrlConverter!=null?i.push(this.weightUrlConverter(l)):s.push(r+l+a);return this.weightUrlConverter&&s.push(...await Promise.all(i)),s}async loadWeights(e){let t=await this.getWeightUrls(e),n=Ox(e),a=await s2(t,this.loadOptions);return[n,a]}};n0.URL_SCHEME_REGEX=/^https?:\/\//;function jB(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Gx(e){return e.match(n0.URL_SCHEME_REGEX)!=null}var o2=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Gx(a)):n=Gx(e),n)return a0(e,t)}return null};ba.registerSaveRouter(o2);ba.registerLoadRouter(o2);function a0(e,t){return new n0(e,t)}function KB(e,t){return a0(e,t)}var fx=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},l2=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},XB=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function YB(e,t,n,a){let r=arguments;return new XB(u2(...r))}function u2(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new fx(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 fx({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 fx({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function ZB(e){return new l2(e)}function JB(e){return new l2(e)}var p2={};_e(p2,{confusionMatrix:()=>e4});function QB(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(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.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Zl(re(a,"int32"),n),i=Zl(re(r,"int32"),n),o=De(s),l=$e(o,i);return re(l,"int32")}var e4=L({confusionMatrix_:QB}),Xo={};_e(Xo,{draw:()=>l4,fromPixels:()=>u4,fromPixelsAsync:()=>s4,toPixels:()=>o4});var js,CI=!1;function c2(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(wc(sm,P.backendName)!=null){let c={pixels:e},h={numChannels:t};return P.runKernel(sm,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(js==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")js=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else js=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});js.canvas.width=l,js.canvas.height=u,js.drawImage(e,0,0,l,u),p=js.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}function i4(e){let t=(e==null?void 0:e.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function o4(e,t){let n=E(e,"img","toPixels");if(!(e instanceof Ce)){let u=n;n=re(u,"int32"),u.dispose()}d2(n);let[a,r]=n.shape.slice(0,2),s=n.rank===2?1:n.shape[2],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?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){CI||wc(zm,P.backendName)!=null&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),CI=!0),t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}function l4(e,t,n){let a=E(e,"img","draw");if(!(e instanceof Ce)){let i=a;a=re(i,"int32"),i.dispose()}d2(a),i4(n==null?void 0:n.imageOptions);let r={image:a},s={canvas:t,options:n};P.runKernel(zm,r,s)}var u4=L({fromPixels_:c2}),r0={};_e(r0,{prepareAndValidate:()=>h2});function h2(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 d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Kt={};_e(Kt,{assertParamsValid:()=>c4,computeFlatOffset:()=>g4,computeOutShape:()=>h4,getNormalizedAxes:()=>m4,isSliceContinous:()=>f4,maskToAxes:()=>d4,parseSliceParams:()=>k2,sliceInfo:()=>b4,startForAxis:()=>v2,startIndicesWithElidedDims:()=>b2,stopForAxis:()=>w2,stopIndicesWithElidedDims:()=>y2,stridesForAxis:()=>x2,stridesWithElidedDims:()=>m2});var Hx=-2,p4=-1;function c4(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),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 d4(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function h4(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=b2(i,h,m,a,e),d=y2(o,h,m,r,e),c=m2(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=f2(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=f2(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=xc(0,i,l-1),i}function w2(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=xc(0,i,l):i=xc(-1,i,l-1),i}function f4(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 g4(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{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:(A(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 b4(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&i&i-1)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let y=0;y0?0:-1,c.strides[y]>0?v:v-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=v)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=EI(c.begin[y],0,c.strides[y],v,I,N),c.end[y]=EI(c.end[y],1,c.strides[y],v,I,N);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===v;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let _,F=!1;if(c.beginValid&&c.endValid?(_=c.end[y]-c.begin[y],F=!0):x?(_=1,F=!0):C&&v>=0&&(c.strides[y]<0?_=-v:_=v,F=!0),F){let D;_===0||_<0!=c.strides[y]<0?D=0:D=Math.trunc(_/c.strides[y])+(_%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Hx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Hx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function y4(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var x4="4.16.0",I2=class{static sgd(e){return new Ef(e)}static momentum(e,t,n=!1){return new e0(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new t0(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Jw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Yw(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Qw(e,t,n,a,r)}static adagrad(e,t=.1){return new Zw(e,t)}},Ys=I2,v4=typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e();function s0(){return new Promise(e=>v4(()=>e()))}var T={};_e(T,{ERF_A1:()=>M4,ERF_A2:()=>O4,ERF_A3:()=>P4,ERF_A4:()=>L4,ERF_A5:()=>z4,ERF_P:()=>R4,PARALLELIZE_THRESHOLD:()=>i0,RowPartitionType:()=>nr,SELU_SCALE:()=>N2,SELU_SCALEALPHA:()=>S2,applyActivation:()=>Tf,assertAndGetBroadcastShape:()=>ct,assertAxesAreInnerMostDims:()=>b3,assertParamsConsistent:()=>w4,assignToTypedArray:()=>H4,axesAreInnerMostDims:()=>bw,calculateShapes:()=>$T,checkEinsumDimSizes:()=>Z4,checkPadOnDimRoundingMode:()=>Nn,combineLocations:()=>QN,combineRaggedTensorToTensorShapes:()=>I4,complexWithEvenIndex:()=>V4,complexWithOddIndex:()=>U4,computeConv2DInfo:()=>cd,computeConv3DInfo:()=>GN,computeDefaultPad:()=>Jv,computeDilation2DInfo:()=>fP,computeOptimalWindowSize:()=>C4,computeOutAndReduceShapes:()=>eT,computeOutShape:()=>k4,computePool2DInfo:()=>UN,computePool3DInfo:()=>gP,convertConv2DDataFormat:()=>HN,decodeEinsumEquation:()=>X4,eitherStridesOrDilationsAreOne:()=>hr,expandShapeToKeepDim:()=>gi,exponent:()=>j4,exponents:()=>q4,fromStringArrayToUint8:()=>yV,fromUint8ToStringArray:()=>bV,getAxesPermutation:()=>tT,getBroadcastDims:()=>ZN,getComplexWithIndex:()=>G4,getEinsumComputePath:()=>J4,getEinsumPermutation:()=>Y4,getFusedBiasGradient:()=>Nf,getFusedDyActivation:()=>Sf,getImageCenter:()=>E4,getInnerMostAxes:()=>y3,getPermuted:()=>A4,getRaggedRank:()=>N4,getReductionAxes:()=>Bt,getReshaped:()=>_4,getReshapedPermuted:()=>F4,getRowPartitionTypesHelper:()=>S4,getSliceBeginCoords:()=>$4,getSliceSize:()=>D4,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>nV,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>aV,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>rV,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>oV,getSparseReshapeInputOutputMismatchErrorMessage:()=>uV,getSparseReshapeInputOutputMultipleErrorMessage:()=>lV,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>sV,getSparseReshapeNegativeOutputDimErrorMessage:()=>iV,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>hV,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>pV,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>cV,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>dV,getUndoAxesPermutation:()=>yw,isIdentityPermutation:()=>Q4,log:()=>NM,mergeRealAndImagArrays:()=>W4,prepareAndValidate:()=>h2,prepareSplitSize:()=>tV,segment_util:()=>T2,shouldFuse:()=>Cf,slice_util:()=>Kt,splitRealAndImagArrays:()=>B4,stridesOrDilationsArePositive:()=>mi,tupleValuesAreOne:()=>ms,upcastType:()=>ga,validateDefaultValueShape:()=>T4,validateInput:()=>vf,validateUpdateShape:()=>Ww,warn:()=>ts});function w4(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(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 k4(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function S4(e){let t={FIRST_DIM_SIZE:nr.FIRST_DIM_SIZE,VALUE_ROWIDS:nr.VALUE_ROWIDS,ROW_LENGTHS:nr.ROW_LENGTHS,ROW_SPLITS:nr.ROW_SPLITS,ROW_LIMITS:nr.ROW_LIMITS,ROW_STARTS:nr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function N4(e){return e.length===0?0:e[0]===nr.FIRST_DIM_SIZE?e.length-1:e.length}function T4(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var i0=30;function C4(e){return e<=i0?e:rm(e,Math.floor(Math.sqrt(e)))}function E4(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function _4(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function F4(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,_I=",",AI="...";function X4(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(K4,"").length)/gx.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${gx}").`);let[a,r]=e.split(gx);A(a.indexOf(AI)===-1,()=>`The ellipsis notation ("${AI}") is not supported yet.`);let s=a.split(_I),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function Z4(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function J4(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function eV(e,t){let n=[];for(let a=0;a"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);A(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}A(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}function nV(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function aV(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function rV(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function sV(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function iV(e,t){return`size ${e} must be non-negative, not ${t}`}function oV(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function lV(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a SparseTensor with ${n} - dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function uV(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function pV(){return"segment ids must be >= 0"}function cV(){return"segment ids are not increasing"}function dV(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function hV(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var T2={};_e(T2,{collectGatherOpShapeInfo:()=>gV,computeOutShape:()=>fV,segOpComputeOptimalWindowSize:()=>mV});function mV(e,t){let n=!1,a;for(e<=i0?(a=e,n=!0):a=rm(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=rm(e,a+1);return a}function fV(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(nom(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function yV(e){return e.map(t=>ld(t))}var fr={};_e(fr,{nonMaxSuppressionV3Impl:()=>qT,nonMaxSuppressionV4Impl:()=>jT,nonMaxSuppressionV5Impl:()=>KT,whereImpl:()=>MT});MB();var C2={kernelName:uu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,Ko(re(n,"float32"),-1))}}},xV={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pt(re(n,"float32")),r=hn(pe(ve(1),a));return yt(he(e,r))}}}},vV={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=hn(pe(pt(re(n,"float32")),1));return he(e,a)}}}},wV={kernelName:Is,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},kV={kernelName:_i,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},IV={kernelName:du,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},SV={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},NV={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,hn(pe(ve(1),pt(re(n,"float32")))))}}},TV={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=hn(X(ve(1),pt(re(n,"float32"))));return he(e,a)}}}},CV={kernelName:Ri,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=X(pt(n),pt(a)),i=z(e,he(a,s)),o=Bt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(pt(n),pt(a)),i=yt(z(e,he(n,s))),o=Bt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},EV={kernelName:$i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(pt(re(n,"float32")),1))}}},_V={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ve(1),pt(re(n,"float32"))))}}};function AV(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.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}.`),Nn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=P.runKernel(Wc,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var FV=L({avgPool3dGrad_:AV}),$V={kernelName:mu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>FV(e,a,r,s,i,o)}}};function DV(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(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=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(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(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=P.runKernel(zc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var RV=L({avgPoolGrad_:DV}),MV={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>RV(e,a,r,s,i)}}},OV={kernelName:Oi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},PV={kernelName:fu,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>vd(e,a,r)}}},LV={kernelName:hN,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:()=>fe(e,o,!0)}}},zV={kernelName:Pi,gradFunc:e=>({x:()=>e.clone()})},WV={kernelName:Li,gradFunc:e=>({x:()=>je(e)})},BV={kernelName:Ss,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>nn(Fa(Rr(a,r),As(a,s)),e,je(e))}}},VV={kernelName:Vc,inputsToSave:["x"],gradFunc:C2.gradFunc},UV={kernelName:yu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=$a(r,t[0].shape)[0],i=a.map(o=>o[s]);return Pn(e,i,s).map(o=>()=>o)}},GV={kernelName:zi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ms(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>uw(a.shape,e,r,i,o,l),filter:()=>jw(a,e,r.shape,i,o,l)}}},HV={kernelName:Wi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>$t(e,r,s,i,o,1,l),filter:()=>jw(e,a,r.shape,s,i,o,l)}}};function qV(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(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(xu,o,l)}var jV=L({conv3DBackpropFilter_:qV}),KV={kernelName:Bi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ms(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:()=>XN(i.shape,e,o,r,s),filter:()=>jV(i,e,o.shape,r,s)}}},XV={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(mf(re(n,"float32"))),e)}}},YV={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(ff(re(n,"float32")),e)}}},ZV={kernelName:Gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=tT([r],a.rank),l=nf(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},JV={kernelName:Hi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ms(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;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(hr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Nn("depthwiseConv2d",s,i),{x:()=>UT(l.shape,e,u,r,s,o,i),filter:()=>VT(l,e,u.shape,r,s,o,i)}}},QV={kernelName:qi,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(ql,s,n),filter:()=>P.runKernel(jl,i,n)}}},eU={kernelName:Ki,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>P.runKernel(Su,a)}}},tU={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(mn(yt(pt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},nU={kernelName:Yi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},aU={kernelName:Tu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},rU={kernelName:Zi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,mn(n))}}},sU={kernelName:Ji,gradFunc:e=>({x:()=>je(e)})},iU={kernelName:Qi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},oU={kernelName:eo,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ve(1):o,u=Bt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Mn(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,ve(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},lU={kernelName:Eu,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s,batchDims:i}=n,o=$a(s,a.shape)[0],l=(u,p,d)=>()=>{let c=u.shape,h=p.size,m=c.slice(0,o),f=m.length,g=c.slice(s,c.length).slice(1),b=g.length,y=FI(0,f),x=FI(f+1,f+1+b),v=$I([m,[h],g]),I=W(d,v),N=W(p,[h]),C=$I([[f],y,x]),_=De(I,C),F=kf(_,N,u.shape[o]),D=yw(C);return F=De(F,D),F};if(i===1){let u=a.shape[0],p=a.split(u,0);return{x:()=>Ft(p.map((d,c)=>l(d,r.slice(c,1),e.slice(c,1))())).reshape(a.shape),indices:()=>r}}else return{x:l(a,r,e),indices:()=>r}}};function FI(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>je(n),b:()=>je(a)}}},pU={kernelName:no,gradFunc:e=>({x:()=>re(e,"float32")})},cU={kernelName:ao,gradFunc:e=>({x:()=>je(e)})},dU={kernelName:ro,gradFunc:e=>({x:()=>je(e)})},hU={kernelName:so,gradFunc:e=>({x:()=>je(e)})},mU={kernelName:io,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Tn(a,0);return{x:()=>nn(s,e,z(e,r))}}},fU={kernelName:lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},gU={kernelName:oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,re(n,"float32"))}}},bU={kernelName:fN,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=mn(a);return pe(e,z(fe(e,r,!0),s))}}}};function yU(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(Pu,o,l)}var xU=L({localResponseNormalizationBackprop_:yU}),vU={kernelName:uo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>xU(a,r,e,s,i,o,l)}}};function E2(e,t,n,a){return t.rankz(e,re(ea(n,t),e.dtype))}}var DI={kernelName:po,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=$a(r,s.shape),l=E2(e,i,s,o);return{x:()=>l.x()}}},wU={kernelName:co,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re(Rr(n,a),"float32")),b:()=>z(e,re(Yl(n,a),"float32"))}}};function kU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Nn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=P.runKernel(jc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var IU=L({maxPool3dGrad_:kU}),SU={kernelName:Lu,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>IU(e,a,r,s,i,o,l)}}};function NU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Nn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return P.runKernel(qc,p,d)}var TU=L({maxPoolGrad_:NU}),CU={kernelName:ho,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>TU(e,a,r,s,i,o)}}},EU={kernelName:mo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=$a(r,a.shape),i=eT(a.shape,s)[1],o=ot(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,On(a.shape,"float32")),o)}}}},_U={kernelName:fo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=$a(r,s.shape),l=E2(e,i,s,o);return{x:()=>l.x()}}},AU={kernelName:go,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re(As(n,a),"float32")),b:()=>z(e,re(Tn(n,a),"float32"))}}},FU={kernelName:bo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},$U={kernelName:yo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=Bt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(mp(he(n,a)))),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},DU={kernelName:xo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=z(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},RU={kernelName:Wu,gradFunc:e=>({x:()=>yt(e)})},MU={kernelName:vo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},OU={kernelName:Hu,gradFunc:e=>({x:()=>je(e)})},PU={kernelName:qu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},RI={kernelName:wo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},LU={kernelName:ko,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ct(s.shape,i.shape);return{a:()=>{let l=re(i,"float32"),u=z(e,z(l,Fr(s,pe(l,ve(1))))),p=Bt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Tn(s,0),u=nn(l,ta(s),je(s)),p=z(e,z(r,u)),d=Bt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},zU={kernelName:Io,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Tn(n,0);return{x:()=>nn(r,e,z(e,a)),alpha:()=>{let s=nn(r,je(e),z(e,n)),i=Bt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function WU(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=Cc(e,n,!0,!1),i=Cc(e,n,!0,!0),o=z(s,i);return z(r,o)}function BU(e,t,n){let a=e.shape.length,r=a-n.length,s=T.getAxesPermutation(n,a),i=e;s!=null&&(i=De(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=WU(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=T.getUndoAxesPermutation(s);p=De(p,d)}return p}var VU={kernelName:So,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>BU(a,e,s)}}},UU={kernelName:ji,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},GU={kernelName:No,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(pt(n)))}}},HU={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(As(n,6),Ko(n));return{x:()=>z(e,re(a,"float32"))}}},qU={kernelName:To,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,re(Ko(n),"float32"))}}},jU={kernelName:ju,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},KU={kernelName:Eo,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Xu,r,n)}}},XU={kernelName:Co,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Ku,r,n)}}},YU={kernelName:Ao,gradFunc:(e,t,n)=>{let{dims:a}=n,r=$a(a,e.shape);return{x:()=>ya(e,r)}}},ZU={kernelName:Fo,gradFunc:e=>({x:()=>je(e)})},JU={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(Fr(n,1.5),2)))}}},QU={kernelName:Qu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>re(je(n),"float32"),t:()=>z(e,re(n,e.dtype)),e:()=>z(e,re(yd(n),e.dtype))}}},eG={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Tn(n,ve(0)),r=ve(S2),s=ve(N2),i=z(e,s),o=z(z(e,r),mn(re(n,"float32")));return nn(a,i,o)}}}},tG={kernelName:Po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ve(1),n)))}}},nG={kernelName:Oo,gradFunc:e=>({x:()=>je(e)})},aG={kernelName:Ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(hd(re(n,"float32")),e)}}},rG={kernelName:Mo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(tf(re(n,"float32")),e)}}},sG={kernelName:ep,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=k2(a,r,s),u=[];for(let p=0;pva(e,u)}}},iG={kernelName:Bo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},oG={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ma(n))}}},MI={kernelName:tp,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>dd(e,a,r)}}},OI={kernelName:np,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>et(e,a)}}},lG={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(hn(re(n,"float32")),2))}}},uG={kernelName:Qc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(re(n,"float32"),2))}}},pG={kernelName:Vo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ve(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},cG={kernelName:Ts,gradFunc:e=>({x:()=>je(e)})},dG={kernelName:Uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},hG={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;$a(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,On(a.shape,"float32"));return{x:()=>o}}},mG={kernelName:Go,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pt(hd(n)))}}},fG={kernelName:Ho,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ve(1),pt(n)),e)}}},gG={kernelName:Ns,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=je(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=yw(r);return{x:()=>De(e,s)}}},yG={kernelName:lp,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},xG={kernelName:sd,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>vG(e,n)}}};function vG(e,t){let n=mr(t,je(t)),a=fp(e,n),r=Rr(t,ve(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>je(e)})},kG=[C2,xV,vV,wV,kV,IV,SV,NV,TV,CV,EV,_V,$V,MV,OV,PV,LV,zV,WV,BV,VV,UV,HV,GV,KV,XV,YV,ZV,JV,QV,UU,eU,tU,nU,aU,rU,iU,sU,oU,lU,uU,pU,cU,dU,hU,mU,fU,gU,bU,vU,DI,DI,wU,SU,CU,EU,_U,AU,FU,$U,DU,RU,MU,OU,PU,RI,RI,LU,zU,VU,GU,HU,qU,jU,KU,XU,YU,ZU,JU,QU,eG,tG,nG,aG,rG,sG,iG,oG,MI,MI,OI,OI,lG,pG,uG,cG,dG,hG,mG,fG,gG,bG,yG,xG,wG];for(let e of kG)gN(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Gv(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Hv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Jm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),Sc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),hi(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),qv(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),jv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Kv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Xv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Yv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Zv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),xa(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),dd(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),Es(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ri(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),rw(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),an(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ce&&(e=[e]),et([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Qm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),ef(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),$t(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),hd(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),tf(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Cc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),nf(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),dw(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),_s(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),hw(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),mw(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),fw(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),dp(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),gw(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),xw(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),mn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Gt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),vw(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),Id(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),mp(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Zm(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),fp(this,e,t,n)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Rr(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Tn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),eu(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),bf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),ww(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),kw(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),Iw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),fd(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),As(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Yl(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Sw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),Nw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),sf(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),bd(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),gd(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Fa(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),yd(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),of(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Tw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),fa(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),mr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Et(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),Xl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),fs(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Ew(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),_w(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),hp(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),bi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Zl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),na(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),va(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Aw(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Fr(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),wd(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),Fw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Ow(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),pf(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),XT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),YT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ya(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),Sd(this)};Q().prototype.round=function(){return this.throwIfDisposed(),cf(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),df(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),hf(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),$s(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ma(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Pw(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),mf(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),ff(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ve(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),ja(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),qo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),vd(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),Pn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),hn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),pt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),yf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),Ds(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ce?[this,e]:[this,...e];return Ft(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),Ko(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Lw(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),zw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),fi(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Mn(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),re(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),re(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),re(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Bw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Vw(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),kf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),nn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),je(this)};var Qr=class _2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,_2.prototype)}},sr=class A2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,A2.prototype)}},V=class F2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,F2.prototype)}},ze=class $2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,$2.prototype)}},IG=class D2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,D2.prototype)}},R2=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Ta={};function o0(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function qx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>qx(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:qx(a))}}}function Td(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 Ta)i=Ta[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(Jc,i)}var NB=L({sparseSegmentSum_:SB});function TB(e,t,n,a,r,s,i,o){let l=E(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=E(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=P.runKernel(td,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var CB=L({stringNGrams_:TB});function EB(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=P.runKernel(nd,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var _B=L({stringSplit_:EB});function AB(e,t){let n=E(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return P.runKernel(ad,r,a)}var FB=L({stringToHashBucketFast_:AB});function $B(e,t,n,a=!0){let r=E(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return P.runKernel(ed,{x:r},s)}var DB=L({staticRegexReplace_:$B}),ZT={fft:Id,ifft:eu,rfft:Sd,irfft:yf},JT={hammingWindow:oW,hannWindow:GT,frame:HT,stft:cW},Qn={flipLeftRight:fW,grayscaleToRGB:bW,resizeNearestNeighbor:YT,resizeBilinear:XT,rgbToGrayscale:xW,rotateWithOffset:wW,cropAndResize:hW,nonMaxSuppression:IW,nonMaxSuppressionAsync:FW,nonMaxSuppressionWithScore:DW,nonMaxSuppressionWithScoreAsync:MW,nonMaxSuppressionPadded:PW,nonMaxSuppressionPaddedAsync:zW,threshold:GW,transform:jW},Xw={bandPart:KW,gramSchmidt:YW,qr:JW},QT={absoluteDifference:tB,computeWeightedLoss:Mr,cosineDistance:aB,hingeLoss:sB,huberLoss:oB,logLoss:uB,meanSquaredError:cB,sigmoidCrossEntropy:mB,softmaxCrossEntropy:bB},e2={sparseFillEmptyRows:xB,sparseReshape:wB,sparseSegmentMean:IB,sparseSegmentSum:NB},t2={stringNGrams:CB,stringSplit:_B,stringToHashBucketFast:FB,staticRegexReplace:DB},ne={};_e(ne,{Serializable:()=>n2,SerializationMap:()=>a2,getRegisteredName:()=>MB,registerClass:()=>r2});var RB=new Map,Ux=new Map,n2=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},a2=class zl{constructor(){this.classNameMap={}}static getMap(){return zl.instance==null&&(zl.instance=new zl),zl.instance}static register(t){zl.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function r2(e,t,n){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof t=="undefined"&&(t="Custom"),typeof n=="undefined"&&(n=e.className);let a=n,r=t+">"+a;return a2.register(e),RB.set(r,e),Ux.set(e,r),e}function MB(e){return Ux.has(e)?Ux.get(e):e.className}var Or=class extends n2{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 rT(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(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:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Yw=class extends Or{static get className(){return"Adadelta"}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:O(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:O(()=>qe(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;O(()=>{let l=X(z(i,this.rho),z(pt(s),1-this.rho)),u=z(he(rn(X(o,this.epsilon)),rn(X(i,this.epsilon))),s),p=X(z(o,this.rho),z(pt(u),1-this.rho));i.assign(l),o.assign(p);let d=X(z(u,-this.learningRate),a);a.assign(d)})}),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)}},Zw=class extends Or{static get className(){return"Adagrad"}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];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:O(()=>yn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;O(()=>{let i=X(s,pt(r));s.assign(i);let o=X(z(he(r,rn(X(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)}},Jw=class extends Or{static get className(){return"Adam"}constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],O(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=pe(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:O(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:O(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=X(z(p,this.beta2),z(pt(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=X(z(he(h,X(rn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(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),O(()=>{this.accBeta1.assign(cr(this.beta1,this.iterations_+1)),this.accBeta2.assign(cr(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)}},Qw=class extends Or{static get className(){return"Adamax"}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=[],O(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=P.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,X(z(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:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=X(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=fr(c,h);u.assign(d),p.assign(m);let f=X(z(he(a,n),he(d,X(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(z(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)}},_f=class extends Or{static get className(){return"SGD"}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];O(()=>{let s=X(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(xe(-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)}},e0=class extends _f{static get className(){return"Momentum"}constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=P.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&O(()=>{let i,o=X(z(this.m,r),s);this.useNesterov?i=X(z(this.c,X(s,z(o,this.m))),a):i=X(z(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)}},t0=class extends Or{static get className(){return"RMSProp"}constructor(e,t=.9,n=0,a=null,r=!1){if(super(),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:O(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:O(()=>qe(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;O(()=>{let l=X(z(i,this.decay),z(pt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=X(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),rn(pe(l,X(pt(p),this.epsilon)))),c=X(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=X(z(i,this.decay),z(pt(s),1-this.decay)),p=X(z(o,this.momentum),he(z(s,this.learningRate),rn(X(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),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)}},OB=[Yw,Zw,Jw,Qw,e0,t0,_f];function PB(){for(let e of OB)r2(e)}var jt={};_e(jt,{CompositeArrayBuffer:()=>Dr,browserFiles:()=>GB,browserHTTPRequest:()=>YB,concatenateArrayBuffers:()=>SO,copyModel:()=>jO,decodeWeights:()=>AN,decodeWeightsStream:()=>$N,encodeWeights:()=>yO,fromMemory:()=>JB,fromMemorySync:()=>u2,getLoadHandlers:()=>$O,getModelArtifactsForJSON:()=>Uv,getModelArtifactsForJSONSync:()=>RN,getModelArtifactsInfoForJSON:()=>pd,getSaveHandlers:()=>FO,getWeightSpecs:()=>Px,http:()=>a0,isHTTPScheme:()=>Hx,listModels:()=>GO,loadWeights:()=>jB,moveModel:()=>qO,registerLoadRouter:()=>AO,registerSaveRouter:()=>_O,removeModel:()=>HO,weightsLoaderFactory:()=>i2,withSaveHandler:()=>QB,withSaveHandlerSync:()=>e4});var LB="model",zB=".json",WB=".weights.bin";function NI(e){return new Promise(t=>setTimeout(t)).then(e)}var pm=class Gx{constructor(t){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Gx.URL_SCHEME)&&(t=t.slice(Gx.URL_SCHEME.length)),(t==null||t.length===0)&&(t=LB),this.modelJsonFileName=t+zB,this.weightDataFileName=t+WB}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let n=Dr.join(t.weightData),a=window.URL.createObjectURL(new Blob([n],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let r=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],s=DN(t,r),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),o=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(o.download=this.modelJsonFileName,o.href=i,await NI(()=>o.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let l=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;l.download=this.weightDataFileName,l.href=a,await NI(()=>l.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:pd(t)}}}};pm.URL_SCHEME="downloads://";var BB=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Uv(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,s])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>kI(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=kI(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},VB=e=>G().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pm.URL_SCHEME)?UB(e.slice(pm.URL_SCHEME.length)):null;ba.registerSaveRouter(VB);function UB(e="model"){return new pm(e)}function GB(e){return new BB(e)}function TI(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 p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(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(e.map(s))}async function s2(e,t){t==null&&(t={});let n=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,a=e.map(s=>n(s,t.requestInit,{isBinary:!0})),r=(t.onProgress==null?await Promise.all(a):await TI(a,t.onProgress,0,.5)).map(s=>s.arrayBuffer());return t.onProgress==null?await Promise.all(r):await TI(r,t.onProgress,.5,1)}function HB(e,t){var n;let a=t.fetchFunc==null?G().platform.fetch:t.fetchFunc,r=0,s;return(n=t.onProgress)===null||n===void 0||n.call(t,0),new ReadableStream({pull:async i=>{for(var o;rs2(r,{requestInit:a}))(e,t,n)}function i2(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=ci[b]*ot(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((v,I)=>{v===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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 p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=new Dr(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=AN(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var qB="application/octet-stream",KB="application/json",n0=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=G().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`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||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=DN(e,n);if(t.body.append("model.json",new Blob([JSON.stringify(a)],{type:KB}),"model.json"),e.weightData!=null){let s=Dr.join(e.weightData);t.body.append("model.weights.bin",new Blob([s],{type:qB}),"model.weights.bin")}let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:pd(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async loadModelJSON(){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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return Uv(e,t=>this.loadWeights(t))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),n=Px(e.weightsManifest),a=()=>HB(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:n,getWeightStream:a})}async getWeightUrls(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=XB(t),r=this.weightPathPrefix||n,s=[],i=[];for(let o of e)for(let l of o.paths)this.weightUrlConverter!=null?i.push(this.weightUrlConverter(l)):s.push(r+l+a);return this.weightUrlConverter&&s.push(...await Promise.all(i)),s}async loadWeights(e){let t=await this.getWeightUrls(e),n=Px(e),a=await s2(t,this.loadOptions);return[n,a]}};n0.URL_SCHEME_REGEX=/^https?:\/\//;function XB(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Hx(e){return e.match(n0.URL_SCHEME_REGEX)!=null}var o2=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Hx(a)):n=Hx(e),n)return a0(e,t)}return null};ba.registerSaveRouter(o2);ba.registerLoadRouter(o2);function a0(e,t){return new n0(e,t)}function YB(e,t){return a0(e,t)}var gx=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},l2=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},ZB=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function JB(e,t,n,a){let r=arguments;return new ZB(u2(...r))}function u2(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new gx(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 gx({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 gx({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function QB(e){return new l2(e)}function e4(e){return new l2(e)}var p2={};_e(p2,{confusionMatrix:()=>n4});function t4(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(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.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Zl(re(a,"int32"),n),i=Zl(re(r,"int32"),n),o=De(s),l=$e(o,i);return re(l,"int32")}var n4=L({confusionMatrix_:t4}),Xo={};_e(Xo,{draw:()=>p4,fromPixels:()=>c4,fromPixelsAsync:()=>o4,toPixels:()=>u4});var Ks,CI=!1;function c2(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(wc(sm,P.backendName)!=null){let c={pixels:e},h={numChannels:t};return P.runKernel(sm,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Ks==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ks=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ks=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ks.canvas.width=l,Ks.canvas.height=u,Ks.drawImage(e,0,0,l,u),p=Ks.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}function l4(e){let t=(e==null?void 0:e.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function u4(e,t){let n=E(e,"img","toPixels");if(!(e instanceof Ce)){let u=n;n=re(u,"int32"),u.dispose()}d2(n);let[a,r]=n.shape.slice(0,2),s=n.rank===2?1:n.shape[2],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?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){CI||wc(zm,P.backendName)!=null&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),CI=!0),t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}function p4(e,t,n){let a=E(e,"img","draw");if(!(e instanceof Ce)){let i=a;a=re(i,"int32"),i.dispose()}d2(a),l4(n==null?void 0:n.imageOptions);let r={image:a},s={canvas:t,options:n};P.runKernel(zm,r,s)}var c4=L({fromPixels_:c2}),r0={};_e(r0,{prepareAndValidate:()=>h2});function h2(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 d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Kt={};_e(Kt,{assertParamsValid:()=>h4,computeFlatOffset:()=>y4,computeOutShape:()=>f4,getNormalizedAxes:()=>g4,isSliceContinous:()=>b4,maskToAxes:()=>m4,parseSliceParams:()=>k2,sliceInfo:()=>x4,startForAxis:()=>v2,startIndicesWithElidedDims:()=>b2,stopForAxis:()=>w2,stopIndicesWithElidedDims:()=>y2,stridesForAxis:()=>x2,stridesWithElidedDims:()=>m2});var jx=-2,d4=-1;function h4(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),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 m4(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function f4(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=b2(i,h,m,a,e),d=y2(o,h,m,r,e),c=m2(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=f2(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=f2(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=xc(0,i,l-1),i}function w2(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=xc(0,i,l):i=xc(-1,i,l-1),i}function b4(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 y4(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{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:(A(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 x4(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&i&i-1)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let y=0;y0?0:-1,c.strides[y]>0?v:v-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=v)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=EI(c.begin[y],0,c.strides[y],v,I,N),c.end[y]=EI(c.end[y],1,c.strides[y],v,I,N);let D=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===v;h=h&&D,m=m&&(y===0&&c.strides[y]===1||D)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let _,F=!1;if(c.beginValid&&c.endValid?(_=c.end[y]-c.begin[y],F=!0):x?(_=1,F=!0):C&&v>=0&&(c.strides[y]<0?_=-v:_=v,F=!0),F){let D;_===0||_<0!=c.strides[y]<0?D=0:D=Math.trunc(_/c.strides[y])+(_%c.strides[y]!==0?1:0),g.push(D)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===jx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==jx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function v4(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var w4="4.21.0",I2=class{static sgd(e){return new _f(e)}static momentum(e,t,n=!1){return new e0(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new t0(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Jw(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Yw(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Qw(e,t,n,a,r)}static adagrad(e,t=.1){return new Zw(e,t)}},Zs=I2,k4=typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e();function s0(){return new Promise(e=>k4(()=>e()))}var T={};_e(T,{ERF_A1:()=>P4,ERF_A2:()=>L4,ERF_A3:()=>z4,ERF_A4:()=>W4,ERF_A5:()=>B4,ERF_P:()=>O4,PARALLELIZE_THRESHOLD:()=>i0,RowPartitionType:()=>nr,SELU_SCALE:()=>N2,SELU_SCALEALPHA:()=>S2,applyActivation:()=>Cf,assertAndGetBroadcastShape:()=>ct,assertAxesAreInnerMostDims:()=>x3,assertParamsConsistent:()=>I4,assignToTypedArray:()=>q4,axesAreInnerMostDims:()=>bw,calculateShapes:()=>$T,checkEinsumDimSizes:()=>Q4,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>QN,combineRaggedTensorToTensorShapes:()=>N4,complexWithEvenIndex:()=>G4,complexWithOddIndex:()=>H4,computeConv2DInfo:()=>cd,computeConv3DInfo:()=>GN,computeDefaultPad:()=>Qv,computeDilation2DInfo:()=>bP,computeOptimalWindowSize:()=>_4,computeOutAndReduceShapes:()=>eT,computeOutShape:()=>S4,computePool2DInfo:()=>UN,computePool3DInfo:()=>yP,convertConv2DDataFormat:()=>HN,decodeEinsumEquation:()=>Z4,eitherStridesOrDilationsAreOne:()=>mr,expandShapeToKeepDim:()=>gi,exponent:()=>X4,exponents:()=>K4,fromStringArrayToUint8:()=>vV,fromUint8ToStringArray:()=>xV,getAxesPermutation:()=>tT,getBroadcastDims:()=>ZN,getComplexWithIndex:()=>j4,getEinsumComputePath:()=>eV,getEinsumPermutation:()=>J4,getFusedBiasGradient:()=>Tf,getFusedDyActivation:()=>Nf,getImageCenter:()=>A4,getInnerMostAxes:()=>v3,getPermuted:()=>$4,getRaggedRank:()=>C4,getReductionAxes:()=>Bt,getReshaped:()=>F4,getReshapedPermuted:()=>D4,getRowPartitionTypesHelper:()=>T4,getSliceBeginCoords:()=>R4,getSliceSize:()=>M4,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>rV,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>sV,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>iV,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>uV,getSparseReshapeInputOutputMismatchErrorMessage:()=>cV,getSparseReshapeInputOutputMultipleErrorMessage:()=>pV,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>oV,getSparseReshapeNegativeOutputDimErrorMessage:()=>lV,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>fV,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>dV,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>hV,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>mV,getUndoAxesPermutation:()=>yw,isIdentityPermutation:()=>tV,log:()=>CM,mergeRealAndImagArrays:()=>V4,prepareAndValidate:()=>h2,prepareSplitSize:()=>aV,segment_util:()=>T2,shouldFuse:()=>Ef,slice_util:()=>Kt,splitRealAndImagArrays:()=>U4,stridesOrDilationsArePositive:()=>fi,tupleValuesAreOne:()=>ms,upcastType:()=>ga,validateDefaultValueShape:()=>E4,validateInput:()=>wf,validateUpdateShape:()=>Ww,warn:()=>ts});function I4(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(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 S4(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function T4(e){let t={FIRST_DIM_SIZE:nr.FIRST_DIM_SIZE,VALUE_ROWIDS:nr.VALUE_ROWIDS,ROW_LENGTHS:nr.ROW_LENGTHS,ROW_SPLITS:nr.ROW_SPLITS,ROW_LIMITS:nr.ROW_LIMITS,ROW_STARTS:nr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function C4(e){return e.length===0?0:e[0]===nr.FIRST_DIM_SIZE?e.length-1:e.length}function E4(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var i0=30;function _4(e){return e<=i0?e:rm(e,Math.floor(Math.sqrt(e)))}function A4(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function F4(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function D4(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,_I=",",AI="...";function Z4(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(Y4,"").length)/bx.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${bx}").`);let[a,r]=e.split(bx);A(a.indexOf(AI)===-1,()=>`The ellipsis notation ("${AI}") is not supported yet.`);let s=a.split(_I),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function Q4(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function eV(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function nV(e,t){let n=[];for(let a=0;a"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);A(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}A(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}function rV(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function sV(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function iV(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function oV(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function lV(e,t){return`size ${e} must be non-negative, not ${t}`}function uV(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function pV(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a SparseTensor with ${n} + dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function cV(e,t){let n=ot(e),a=ot(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function dV(){return"segment ids must be >= 0"}function hV(){return"segment ids are not increasing"}function mV(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function fV(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var T2={};_e(T2,{collectGatherOpShapeInfo:()=>yV,computeOutShape:()=>bV,segOpComputeOptimalWindowSize:()=>gV});function gV(e,t){let n=!1,a;for(e<=i0?(a=e,n=!0):a=rm(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=rm(e,a+1);return a}function bV(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(nom(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function vV(e){return e.map(t=>ld(t))}var gr={};_e(gr,{nonMaxSuppressionV3Impl:()=>jT,nonMaxSuppressionV4Impl:()=>qT,nonMaxSuppressionV5Impl:()=>KT,whereImpl:()=>MT});PB();var C2={kernelName:uu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,Ko(re(n,"float32"),-1))}}},wV={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pt(re(n,"float32")),r=rn(pe(xe(1),a));return yt(he(e,r))}}}},kV={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=rn(pe(pt(re(n,"float32")),1));return he(e,a)}}}},IV={kernelName:Ss,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},SV={kernelName:_i,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},NV={kernelName:du,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},TV={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},CV={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,rn(pe(xe(1),pt(re(n,"float32")))))}}},EV={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=rn(X(xe(1),pt(re(n,"float32"))));return he(e,a)}}}},_V={kernelName:Ri,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=X(pt(n),pt(a)),i=z(e,he(a,s)),o=Bt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=X(pt(n),pt(a)),i=yt(z(e,he(n,s))),o=Bt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},AV={kernelName:$i,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(pt(re(n,"float32")),1))}}},FV={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(xe(1),pt(re(n,"float32"))))}}};function $V(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.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}.`),Tn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=P.runKernel(Wc,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var DV=L({avgPool3dGrad_:$V}),RV={kernelName:mu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>DV(e,a,r,s,i,o)}}};function MV(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(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=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(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(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=P.runKernel(zc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var OV=L({avgPoolGrad_:MV}),PV={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>OV(e,a,r,s,i)}}},LV={kernelName:Oi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>$e(e,r,!1,!0),b:()=>$e(a,e,!0,!1)}:!s&&i?{a:()=>$e(e,r,!1,!1),b:()=>$e(e,a,!0,!1)}:s&&!i?{a:()=>$e(r,e,!1,!0),b:()=>$e(a,e,!1,!1)}:{a:()=>$e(r,e,!0,!0),b:()=>$e(e,a,!0,!0)}}},zV={kernelName:fu,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>vd(e,a,r)}}},WV={kernelName:hN,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:()=>fe(e,o,!0)}}},BV={kernelName:Pi,gradFunc:e=>({x:()=>e.clone()})},VV={kernelName:Li,gradFunc:e=>({x:()=>qe(e)})},UV={kernelName:Ns,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>nn(Fa(Rr(a,r),Fs(a,s)),e,qe(e))}}},GV={kernelName:Vc,inputsToSave:["x"],gradFunc:C2.gradFunc},HV={kernelName:yu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=$a(r,t[0].shape)[0],i=a.map(o=>o[s]);return Ln(e,i,s).map(o=>()=>o)}},jV={kernelName:zi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ms(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>pw(a.shape,e,r,i,o,l),filter:()=>qw(a,e,r.shape,i,o,l)}}},qV={kernelName:Wi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>$t(e,r,s,i,o,1,l),filter:()=>qw(e,a,r.shape,s,i,o,l)}}};function KV(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(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(xu,o,l)}var XV=L({conv3DBackpropFilter_:KV}),YV={kernelName:Bi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ms(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:()=>XN(i.shape,e,o,r,s),filter:()=>XV(i,e,o.shape,r,s)}}},ZV={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(ff(re(n,"float32"))),e)}}},JV={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(gf(re(n,"float32")),e)}}},QV={kernelName:Gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=tT([r],a.rank),l=nf(e,r,s,!i);return o!=null&&(l=De(l,o)),l}}}},eU={kernelName:Hi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ms(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;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(mr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Tn("depthwiseConv2d",s,i),{x:()=>UT(l.shape,e,u,r,s,o,i),filter:()=>VT(l,e,u.shape,r,s,o,i)}}},tU={kernelName:ji,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(jl,s,n),filter:()=>P.runKernel(ql,i,n)}}},nU={kernelName:Ki,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>P.runKernel(Su,a)}}},aU={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(mn(yt(pt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},rU={kernelName:Yi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},sU={kernelName:Tu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},iU={kernelName:Zi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,mn(n))}}},oU={kernelName:Ji,gradFunc:e=>({x:()=>qe(e)})},lU={kernelName:Qi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},uU={kernelName:eo,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Bt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,On(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},pU={kernelName:Eu,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s,batchDims:i}=n,o=$a(s,a.shape)[0],l=(u,p,d)=>()=>{let c=u.shape,h=p.size,m=c.slice(0,o),f=m.length,g=c.slice(s,c.length).slice(1),b=g.length,y=FI(0,f),x=FI(f+1,f+1+b),v=$I([m,[h],g]),I=W(d,v),N=W(p,[h]),C=$I([[f],y,x]),_=De(I,C),F=If(_,N,u.shape[o]),D=yw(C);return F=De(F,D),F};if(i===1){let u=a.shape[0],p=a.split(u,0);return{x:()=>Ft(p.map((d,c)=>l(d,r.slice(c,1),e.slice(c,1))())).reshape(a.shape),indices:()=>r}}else return{x:l(a,r,e),indices:()=>r}}};function FI(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},dU={kernelName:no,gradFunc:e=>({x:()=>re(e,"float32")})},hU={kernelName:ao,gradFunc:e=>({x:()=>qe(e)})},mU={kernelName:ro,gradFunc:e=>({x:()=>qe(e)})},fU={kernelName:so,gradFunc:e=>({x:()=>qe(e)})},gU={kernelName:io,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>nn(s,e,z(e,r))}}},bU={kernelName:lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,X(n,1))}}},yU={kernelName:oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,re(n,"float32"))}}},xU={kernelName:fN,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=mn(a);return pe(e,z(fe(e,r,!0),s))}}}};function vU(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(Pu,o,l)}var wU=L({localResponseNormalizationBackprop_:vU}),kU={kernelName:uo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>wU(a,r,e,s,i,o,l)}}};function E2(e,t,n,a){return t.rankz(e,re(ea(n,t),e.dtype))}}var DI={kernelName:po,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=$a(r,s.shape),l=E2(e,i,s,o);return{x:()=>l.x()}}},IU={kernelName:co,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re(Rr(n,a),"float32")),b:()=>z(e,re(Yl(n,a),"float32"))}}};function SU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Tn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=P.runKernel(qc,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var NU=L({maxPool3dGrad_:SU}),TU={kernelName:Lu,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>NU(e,a,r,s,i,o,l)}}};function CU(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Tn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return P.runKernel(jc,p,d)}var EU=L({maxPoolGrad_:CU}),_U={kernelName:ho,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>EU(e,a,r,s,i,o)}}},AU={kernelName:mo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=$a(r,a.shape),i=eT(a.shape,s)[1],o=ot(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Pn(a.shape,"float32")),o)}}}},FU={kernelName:fo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=$a(r,s.shape),l=E2(e,i,s,o);return{x:()=>l.x()}}},$U={kernelName:go,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,re(Fs(n,a),"float32")),b:()=>z(e,re(Cn(n,a),"float32"))}}},DU={kernelName:bo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},RU={kernelName:yo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=Bt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(mp(he(n,a)))),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},MU={kernelName:xo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=z(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},OU={kernelName:Wu,gradFunc:e=>({x:()=>yt(e)})},PU={kernelName:vo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},LU={kernelName:Hu,gradFunc:e=>({x:()=>qe(e)})},zU={kernelName:ju,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},RI={kernelName:wo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Ve(e,s,a.shape)}}},WU={kernelName:ko,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ct(s.shape,i.shape);return{a:()=>{let l=re(i,"float32"),u=z(e,z(l,cr(s,pe(l,xe(1))))),p=Bt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=nn(l,ta(s),qe(s)),p=z(e,z(r,u)),d=Bt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},BU={kernelName:Io,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>nn(r,e,z(e,a)),alpha:()=>{let s=nn(r,qe(e),z(e,n)),i=Bt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function VU(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=Cc(e,n,!0,!1),i=Cc(e,n,!0,!0),o=z(s,i);return z(r,o)}function UU(e,t,n){let a=e.shape.length,r=a-n.length,s=T.getAxesPermutation(n,a),i=e;s!=null&&(i=De(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=VU(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=T.getUndoAxesPermutation(s);p=De(p,d)}return p}var GU={kernelName:So,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>UU(a,e,s)}}},HU={kernelName:qi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=he(e,re(a,"float32")),i=Bt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,re(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=pt(a);return yt(he(s,re(o,"float32")))}}}},jU={kernelName:No,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(pt(n)))}}},qU={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Fs(n,6),Ko(n));return{x:()=>z(e,re(a,"float32"))}}},KU={kernelName:To,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,re(Ko(n),"float32"))}}},XU={kernelName:qu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},YU={kernelName:Eo,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Xu,r,n)}}},ZU={kernelName:Co,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>P.runKernel(Ku,r,n)}}},JU={kernelName:Ao,gradFunc:(e,t,n)=>{let{dims:a}=n,r=$a(a,e.shape);return{x:()=>ya(e,r)}}},QU={kernelName:Fo,gradFunc:e=>({x:()=>qe(e)})},eG={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(cr(n,1.5),2)))}}},tG={kernelName:Qu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>re(qe(n),"float32"),t:()=>z(e,re(n,e.dtype)),e:()=>z(e,re(yd(n),e.dtype))}}},nG={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,xe(0)),r=xe(S2),s=xe(N2),i=z(e,s),o=z(z(e,r),mn(re(n,"float32")));return nn(a,i,o)}}}},aG={kernelName:Po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},rG={kernelName:Oo,gradFunc:e=>({x:()=>qe(e)})},sG={kernelName:Ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(hd(re(n,"float32")),e)}}},iG={kernelName:Mo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(tf(re(n,"float32")),e)}}},oG={kernelName:ep,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=k2(a,r,s),u=[];for(let p=0;pva(e,u)}}},lG={kernelName:Bo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},uG={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ma(n))}}},MI={kernelName:tp,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>dd(e,a,r)}}},OI={kernelName:np,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>et(e,a)}}},pG={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(rn(re(n,"float32")),2))}}},cG={kernelName:Qc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(re(n,"float32"),2))}}},dG={kernelName:Vo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},hG={kernelName:Cs,gradFunc:e=>({x:()=>qe(e)})},mG={kernelName:Uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(yt(s),a.shape)}}}},fG={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;$a(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Pn(a.shape,"float32"));return{x:()=>o}}},gG={kernelName:Go,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pt(hd(n)))}}},bG={kernelName:Ho,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),pt(n)),e)}}},yG={kernelName:Ts,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=yw(r);return{x:()=>De(e,s)}}},vG={kernelName:lp,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},wG={kernelName:sd,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>kG(e,n)}}};function kG(e,t){let n=fr(t,qe(t)),a=fp(e,n),r=Rr(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},SG=[C2,wV,kV,IV,SV,NV,TV,CV,EV,_V,AV,FV,RV,PV,LV,zV,WV,BV,VV,UV,GV,HV,qV,jV,YV,ZV,JV,QV,eU,tU,HU,nU,aU,rU,sU,iU,lU,oU,uU,pU,cU,dU,hU,mU,fU,gU,bU,yU,xU,kU,DI,DI,IU,TU,_U,AU,FU,$U,DU,RU,MU,OU,PU,LU,zU,RI,RI,WU,BU,GU,jU,qU,KU,XU,YU,ZU,JU,QU,eG,tG,nG,aG,rG,sG,iG,oG,lG,uG,MI,MI,OI,OI,pG,dG,cG,hG,mG,fG,gG,bG,yG,xG,vG,wG,IG];for(let e of SG)gN(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Hv(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),jv(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),X(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Jm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),Sc(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),mi(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),qv(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),Kv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Xv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Yv(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Zv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Jv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),xa(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),dd(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),_s(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),si(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),re(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),sw(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),an(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ce&&(e=[e]),et([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Qm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),ef(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),$t(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),hd(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),tf(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Cc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),nf(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),hw(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),As(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),mw(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),fw(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),gw(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),dp(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),af(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),xw(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),mn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Gt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),vw(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),Id(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),mp(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Zm(this,e)};Q().prototype.gather=function(e,t,n){return this.throwIfDisposed(),fp(this,e,t,n)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Rr(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Cn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),eu(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),yf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),ww(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),kw(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),Iw(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),fd(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Fs(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Yl(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Sw(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),Nw(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),of(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),bd(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),gd(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Fa(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),yd(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),lf(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Tw(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),$e(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),fa(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),fr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Et(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),Xl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),gs(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Ew(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),_w(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),hp(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),bi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Zl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),na(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),va(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Aw(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),cr(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),wd(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),Fw(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Ow(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Ke(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),cf(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),XT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),YT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ya(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),Sd(this)};Q().prototype.round=function(){return this.throwIfDisposed(),df(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),hf(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),mf(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ds(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ma(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Pw(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),ff(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),gf(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Ve(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),qa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),jo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),vd(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),Ln(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),rn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),pt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),xf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),Rs(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ce?[this,e]:[this,...e];return Ft(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),Ko(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Lw(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),zw(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),fs(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),On(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),re(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),re(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),re(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Bw(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),De(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Vw(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),If(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),nn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Qr=class _2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,_2.prototype)}},sr=class A2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,A2.prototype)}},V=class F2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,F2.prototype)}},ze=class $2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,$2.prototype)}},NG=class D2 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,D2.prototype)}},R2=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Ta={};function o0(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function qx(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>qx(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:qx(a))}}}function Td(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 Ta)i=Ta[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 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 Ta?[o,l]=Ta.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 u={};for(let h of Object.keys(Ta))u[h]=Ta[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Ta);for(let h of Object.keys(n))Ta[h]=n[h];qx(s.config);let c=l(o,s.config,n,r);return Ta=Object.assign({},d),c}else{let u=Object.assign({},Ta);for(let d of Object.keys(n))Ta[d]=n[d];let p=new o(s.config);return Ta=Object.assign({},u),p}}}function SG(e,t){return et?1:0}function Mh(e,t){return-1*SG(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 NG(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 Yo(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 l0(e,t,n=0,a=1/0){return ar(n>=0),ar(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function tn(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>tn(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${M2(e)}.`)}function M2(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>M2(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function TG(e,t,n){let a=n!=null?n():w.now(),r;return(...s)=>{let i=n!=null?n():w.now();return i-a0){let n=`${e}_${t}`;return Ml.set(n,1),n}else return e}var MG=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function B2(e){return!!e.match(MG)}function OG(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;rt&&(t=a)}return t}function Ua(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Cd(e,1);return jx(n,[1,t,1])})}function LG(e){let t=[ls(e.shape)];return W(e,t)}function zG(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 W(e,t)}function ii(e,t,n){return O(()=>{switch(e.rank){case 1:return kd(e,t,n);case 2:return gf(e,[t,0],[n,e.shape[1]]);case 3:return jo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Ql(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ve(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ve(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 yx(e,t,n){return O(()=>{switch(e.rank){case 1:return kd(e,t,n);case 2:return gf(e,[0,t],[e.shape[0],n]);case 3:return jo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Ql(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 Ph(e,t,n,a){return O(()=>{switch(e.rank){case 1:return kd(e,t,n);case 2:switch(a){case 1:return ii(e,t,n);case 2:return yx(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 ii(e,t,n);case 2:return jo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return yx(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 ii(e,t,n);case 2:return Ql(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Ql(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return yx(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 u0(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),et(e,t)}function zI(e,t){switch(e.rank){case 1:return sw([e,t]);case 2:return iw([e,t],0);case 3:return ow([e,t],0);case 4:return lw([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function jx(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 Mn(e,t)}function Af(e,t=0,n=1,a,r){return uf(e,t,n,a,r)}function ur(e,t,n,a){if(e.rank<2||t.rank<2)throw new ze(`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 ze(`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)return tu.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Kx(e.rank,a,Ga()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(c,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=W(De(t,p),[l,-1]);let d=[...r,...u];return W(tu.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Kx(e.rank,a,Ga()):null,activation:n}),d)}}function V2(e,t,n){return O(()=>(Array.isArray(t)?t=qe(t,"int32"):t=re(t,"int32"),fp(e,t,n)))}function Ed(e){return z(e,e)}function Kx(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?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Ka(e,t,n){return O(()=>(n==null&&(n=Ga()),Rt(n),X(e,Kx(e.rank,t,n))))}function WG(e,t=1){if(t!==1)throw new ze(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return dp(e)}function BG(e){return O(()=>he(e,X(Lt(e),1)))}function U2(e,t,n,a){return O(()=>Hw(e,t,n,a))}function VG(e){return O(()=>{let t=X(.5,z(.2,e));return an(t,0,1)})}function _d(e,t,n=!1){return n?e():t()}var UG=["fanIn","fanOut","fanAvg"],GG=["normal","uniform","truncatedNormal"];function HG(e){Yo(UG,"FanMode",e)}function qG(e){Yo(GG,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},p0=class extends Ra{apply(e,t){return It(e,t)}};p0.className="Zeros";ne.registerClass(p0);var Ff=class extends Ra{apply(e,t){return On(e,t)}};Ff.className="Ones";ne.registerClass(Ff);var c0=class extends Ra{constructor(e){if(super(),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 O(()=>z(ve(this.value),On(e,t)))}getConfig(){return{value:this.value}}};c0.className="Constant";ne.registerClass(c0);var d0=class extends Ra{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 Fs(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};d0.className="RandomUniform";ne.registerClass(d0);var h0=class extends Ra{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 ze(`randomNormal does not support dType ${t}.`);return Af(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};h0.className="RandomNormal";ne.registerClass(h0);var m0=class extends Ra{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 ze(`truncatedNormal does not support dType ${t}.`);return wf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};m0.className="TruncatedNormal";ne.registerClass(m0);var f0=class extends Ra{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return O(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,af(e[0]))})}getConfig(){return{gain:this.gain}}};f0.className="Identity";ne.registerClass(f0);function jG(e,t="channelsLast"){let n,a;if(Rt(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 Wn=class extends Ra{constructor(e){if(super(),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,HG(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,qG(this.distribution),this.seed=e.seed}apply(e,t){let n=jG(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 ze(`${this.getClassName()} does not support dType ${t}.`);return wf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Fs(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Wn.className="VarianceScaling";ne.registerClass(Wn);var $f=class extends Wn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};$f.className="GlorotUniform";ne.registerClass($f);var Df=class extends Wn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};Df.className="GlorotNormal";ne.registerClass(Df);var Rf=class extends Wn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};Rf.className="HeNormal";ne.registerClass(Rf);var Mf=class extends Wn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};Mf.className="HeUniform";ne.registerClass(Mf);var Of=class extends Wn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};Of.className="LeCunNormal";ne.registerClass(Of);var Pf=class extends Wn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Wn.className}};Pf.className="LeCunUniform";ne.registerClass(Pf);var g0=class extends Ra{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return O(()=>{if(e.length<2)throw new ze("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=w.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=Af(s,0,1,t,this.seed),o=Xw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var VI="Variable",G2=class{constructor(e,t="float32",n=VI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=P2(),n=n==null?VI:n,this.originalName=z2(n),this.name=W2(this.originalName),this.trainable_=a,this.constraint=r,this.val=Uw(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),KG(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 KG(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Yx(e){return e.map(t=>t.read())}function b0(e){e.forEach(t=>{t[0].write(t[1])})}var zt=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||{}}},Ha=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=P2(),s!=null&&(this.originalName=z2(s),this.name=W2(this.originalName)),this.rank=t.length}},XG=0,Lf=class{constructor(e,t){this.callArgs=t,this.id=XG++,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}}},YG=0,We=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=YG++,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=Sr(n)+"_"+_f(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 sr(`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 Rn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Rn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Qr(`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 Qr(`Layer ${this.name} is not connected, no input to return.`);return Rn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Qr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Qr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Rn(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){let t=it(e);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=it(this.inputSpec);if(t.length!==n.length)throw new V(`Layer ${this.name} expects ${n.length} inputs, but it received ${t.length} input tensors. Input received: ${e}`);for(let a=0;as.maxNDim)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?o[u]:o[o.length+u];if(p!=null&&[p,null].indexOf(d)===-1)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${p} but got shape ${o}.`)}}if(s.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of it(e))s.push(i.shape);this.build(Rn(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);this.supportsMasking&&this.setMaskMetadata(e,s);let i=it(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=Rn(o),this.activityRegularizer!=null)throw new ze("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=ZG(e),i=this.computeOutputShape(s),o,l=JG(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ha(l,u,this,it(e),t,this.name,p)):o=new Ha(l,i,this,it(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new ze("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 Qr(`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 Qr(`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 sr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return dm(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Yx(e?this.trainableWeights:this.weights)}setWeights(e){O(()=>{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=Yx(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?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=it(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}setMaskMetadata(e,t,n){if(!this.supportsMasking)return;let a=this.computeMask(e,n),r=it(t),s=it(a);if(r.length!==s.length)throw new Error(`${this.name} outputs ${r.length} tensors but ${r.length} masks for those tensors`);for(let i=0;ie.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 ZG(e){e=it(e);let t=[];for(let n of e)t.push(n.shape);return Rn(t)}function JG(e){return"float32"}function H2(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;sm.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=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=hm.get(p),c;if(d==null){let m=aH(i,t);d=m.sorted,c=m.recipientCounts,hm.put(p,d),mm.put(p,c)}c={},r||Object.assign(c,mm.get(p));let h=new Wl(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=UI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=UI(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:rH(a)}}function rH(e){let t={};for(let n in e)t[n]=e[n].size;return t}function UI(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 sH(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,nH);var K2={};_e(K2,{maxNorm:()=>oH,minMaxNorm:()=>pH,nonNeg:()=>uH,unitNorm:()=>lH});function y0(e,t){return O(()=>hn(fe(z(e,e),t,!0)))}var Ad=class extends ne.Serializable{getConfig(){return{}}},x0=class extends Ad{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 O(()=>{let t=y0(e,this.axis),n=an(t,0,this.maxValue);return z(e,he(n,X(jt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};x0.className="MaxNorm";ne.registerClass(x0);var v0=class extends Ad{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return O(()=>he(e,X(jt(),y0(e,this.axis))))}getConfig(){return{axis:this.axis}}};v0.className="UnitNorm";ne.registerClass(v0);var w0=class extends Ad{apply(e){return Ke(e)}};w0.className="NonNeg";ne.registerClass(w0);var k0=class extends Ad{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 O(()=>{let t=y0(e,this.axis),n=X(z(this.rate,an(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(jt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};k0.className="MinMaxNorm";ne.registerClass(k0);var GI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return o0(e)}function HI(e,t={}){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in GI?GI[e]:e,config:{}};return HI(t)}else return e instanceof Ad?e:HI(e)}function oH(e){return new x0(e)}function lH(e){return new v0(e)}function uH(){return new w0}function pH(e){return new k0(e)}var X2={};_e(X2,{constant:()=>hH,glorotNormal:()=>vH,glorotUniform:()=>xH,heNormal:()=>wH,heUniform:()=>kH,identity:()=>bH,leCunNormal:()=>IH,leCunUniform:()=>SH,ones:()=>dH,orthogonal:()=>NH,randomNormal:()=>fH,randomUniform:()=>mH,truncatedNormal:()=>gH,varianceScaling:()=>yH,zeros:()=>cH});function cH(){return new p0}function dH(){return new Ff}function hH(e){return new c0(e)}function mH(e){return new d0(e)}function fH(e){return new h0(e)}function gH(e){return new m0(e)}function bH(e){return new f0(e)}function yH(e){return new Wn(e)}function xH(e){return new $f(e)}function vH(e){return new Df(e)}function wH(e){return new Rf(e)}function kH(e){return new Mf(e)}function IH(e){return new Of(e)}function SH(e){return new Pf(e)}function NH(e){return new g0(e)}var Y2={};_e(Y2,{Layer:()=>We,RNN:()=>Pr,RNNCell:()=>$d,activation:()=>tq,add:()=>pq,alphaDropout:()=>jq,average:()=>cq,averagePooling1d:()=>R1,averagePooling2d:()=>M1,averagePooling3d:()=>O1,avgPool1d:()=>vq,avgPool2d:()=>kq,avgPool3d:()=>Sq,avgPooling1d:()=>wq,avgPooling2d:()=>Iq,avgPooling3d:()=>Nq,batchNormalization:()=>bq,bidirectional:()=>zq,categoryEncoding:()=>Jq,centerCrop:()=>Yq,concatenate:()=>dq,conv1d:()=>q6,conv2d:()=>j6,conv2dTranspose:()=>K6,conv3d:()=>X6,conv3dTranspose:()=>Y6,convLstm2d:()=>Mq,convLstm2dCell:()=>Oq,cropping2D:()=>J6,dense:()=>nq,depthwiseConv2d:()=>eq,dot:()=>gq,dropout:()=>aq,elu:()=>W6,embedding:()=>uq,flatten:()=>sq,gaussianDropout:()=>qq,gaussianNoise:()=>Hq,globalAveragePooling1d:()=>Tq,globalAveragePooling2d:()=>Cq,globalMaxPool1d:()=>Bq,globalMaxPool2d:()=>Vq,globalMaxPooling1d:()=>YC,globalMaxPooling2d:()=>ZC,gru:()=>_q,gruCell:()=>Aq,input:()=>mC,inputLayer:()=>z6,layerNormalization:()=>yq,leakyReLU:()=>V6,lstm:()=>Fq,lstmCell:()=>$q,masking:()=>Kq,maxPool1d:()=>Uq,maxPool2d:()=>Gq,maxPooling1d:()=>JC,maxPooling2d:()=>QC,maxPooling3d:()=>Eq,maximum:()=>hq,minimum:()=>mq,multiply:()=>fq,permute:()=>lq,prelu:()=>U6,randomWidth:()=>Qq,reLU:()=>B6,repeatVector:()=>iq,rescaling:()=>Xq,reshape:()=>oq,resizing:()=>Zq,rnn:()=>Pq,separableConv2d:()=>Z6,simpleRNN:()=>Dq,simpleRNNCell:()=>Rq,softmax:()=>G6,spatialDropout1d:()=>rq,stackedRNNCells:()=>Lq,thresholdedReLU:()=>H6,timeDistributed:()=>Wq,upSampling2d:()=>Q6,zeroPadding2d:()=>xq});async function Jr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sX(this.totals[a],z(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:O(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Ht(t[n])}))}},Q2=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 eC(n,t))}var I0=class er{constructor(){}static registerCallbackConstructor(t,n){w.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),er.checkForDuplicate(n),er.constructors[t]==null&&(er.constructors[t]=[]),er.constructors[t].push(n)}static checkForDuplicate(t){for(let n in er.constructors)er.constructors[+n].forEach(a=>{if(a===t)throw new V("Duplicate callback constructor.")})}static clear(){er.constructors={}}static createCallbacks(t){let n=[];for(let a in er.constructors){let r=+a;t>=r&&n.push(...er.constructors[r])}return n.map(a=>new a)}};I0.constructors={};function nC(e,t,n,a,r,s,i,o,l){let u=new Q2,p=[new CH,...I0.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new J2(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ba(e,t={},n=!1){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function fm(e,t){return O(()=>{e.dtype!=="float32"&&(e=re(e,"float32"));let n=fe(Ed(e),t,!0),a=yn(n.shape,jt()),r=hn(mr(n,a));return he(e,r)})}function Zo(e,t){return O(()=>Et(Ed(pe(t,e)),-1))}function zf(e,t){return O(()=>Et(Lt(pe(t,e)),-1))}function yp(e,t){return O(()=>{let n=pe(e,t),a=an(Lt(e),jt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Et(r,-1))})}function EH(e,t){return O(()=>{let n=an(t,jt(),Number.MAX_VALUE),a=ta(X(1,n)),r=an(e,jt(),Number.MAX_VALUE),s=ta(X(1,r));return Et(Ed(pe(a,s)),-1)})}function _H(e,t){return O(()=>{let n=mr(0,pe(1,z(e,t)));return Et(Ed(n),-1)})}function AH(e,t){return O(()=>{let n=mr(0,pe(1,z(e,t)));return Et(n,-1)})}function FH(e,t){return O(()=>{let n=fe(z(e,t),-1),a=fa(z(pe(1,e),t),-1);return mr(0,X(1,pe(a,n)))})}function $H(e,t){return O(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,qo(z(-2,a))),n);return Et(r,-1)})}function Ec(e,t,n=!1){return O(()=>{if(n)t=ja(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=an(t,jt(),1-jt()),yt(fe(z(re(e,"float32"),ta(t)),t.shape.length-1))})}function gm(e,t,n=!1){return O(()=>{let a=re(mp(LG(e)),"int32");t=an(t,jt(),1-jt());let r=t.shape,s=W(Zl(a,r[r.length-1]),r);return Ec(s,t,n)})}function DH(e,t){if(!w.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 O(()=>{let n=Ke(t),a=yt(Lt(t));return X(pe(n,z(t,e)),gd(mn(a)))})}function Wf(e,t){return O(()=>{let n;return n=an(t,jt(),1-jt()),n=ta(he(n,pe(1,n))),Et(DH(e,n),-1)})}function RH(e,t){return O(()=>{let n=an(e,jt(),1),a=an(t,jt(),1);return fe(z(e,ta(he(n,a))),-1)})}function MH(e,t){return O(()=>{let n=ta(X(jt(),t));return Et(pe(t,z(e,n)),-1)})}function S0(e,t){return O(()=>{let n=fm(e,-1),a=fm(t,-1),r=z(n,a);return yt(fe(r,-1))})}var bm={meanSquaredError:Zo,meanAbsoluteError:zf,meanAbsolutePercentageError:yp,meanSquaredLogarithmicError:EH,squaredHinge:_H,hinge:AH,categoricalHinge:FH,logcosh:$H,categoricalCrossentropy:Ec,sparseCategoricalCrossentropy:gm,binaryCrossentropy:Wf,kullbackLeiblerDivergence:RH,poisson:MH,cosineProximity:S0};function xx(e){if(typeof e=="string"){if(e in bm)return bm[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 N0(e,t){return O(()=>{let n=z(.5,na(t)),a=lr(Tn(t,n),e.dtype);return Et(ea(e,a),-1)})}function T0(e,t){return O(()=>lr(ea(hi(e,-1),hi(t,-1)),"float32"))}function aC(e,t){return O(()=>re(fe(Fa(ea(e,1),ea(t,1))),"float32"))}function OH(e,t){return O(()=>re(fe(Fa(ea(e,1),ea(t,0))),"float32"))}function PH(e,t){return O(()=>re(fe(Fa(ea(e,0),ea(t,1))),"float32"))}function rC(e,t){return O(()=>{let n=aC(e,t),a=PH(e,t),r=X(n,a);return re(nn(Tn(r,0),he(n,r),0),"float32")})}function LH(e,t){return O(()=>{let n=aC(e,t),a=OH(e,t),r=X(n,a);return re(nn(Tn(r,0),he(n,r),0),"float32")})}function sC(e,t){return Wf(e,t)}function iC(e,t){return e.rank===t.rank&&(e=Ds(e,[e.rank-1])),t=hi(t,-1),t.dtype!==e.dtype&&(t=re(t,e.dtype)),re(ea(e,t),"float32")}var zH=Zo,WH=Zo,BH=zf,VH=zf,UH=yp,GH=yp,C0=Ec,HH=S0,oC=gm,ym={binaryAccuracy:N0,categoricalAccuracy:T0,precision:rC,categoricalCrossentropy:C0,sparseCategoricalCrossentropy:oC,mse:zH,MSE:WH,mae:BH,MAE:VH,mape:UH,MAPE:GH,cosine:HH};function qH(e){if(typeof e=="string"&&e in ym)return ym[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Lh(e){if(ar(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(bm))if(bm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(ym))if(ym[n]===e){t=n;break}return t!==void 0?t:e.name}}function jH(e){let t={Adagrad:()=>Ys.adagrad(.01),Adadelta:()=>Ys.adadelta(1,.95,jt()),Adam:()=>Ys.adam(.001,.9,.999,jt()),Adamax:()=>Ys.adamax(.002,.9,.999,jt(),0),RMSProp:()=>Ys.rmsprop(.001,.9,0,jt()),SGD:()=>Ys.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}`)}function jI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Zx(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>1048576&&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 <= 1048576.`)}}function Zx(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"||!Zx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Zx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function KH(e,t,n,a=console.log){let r=YH(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),xm(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||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 xm(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 ZH(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];xm(o,t,n)}function JH(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;c{let t=Object.keys(e);if(t.length===0)return!1;let n=t[0].split("/");return!isNaN(parseInt(n[n.length-1],10))},e6=class tr extends We{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let y=this.getClassName().toLowerCase();this.name=_f(y)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],os(this.inputs).length!==this.inputs.length)throw new V(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(y=>y.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 x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;this.outputLayers.push(x),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(I)}for(let y of this.inputs){let x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;ar(v===0,"input layer has >1 nodes"),ar(I===0,"input layer has >1 tensors"),this.inputLayers.push(x),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(I)}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 n={},a={},r={},s={},i={},o=[],l=(y,x,v,I,N,C)=>{(I==null||N==null||C==null)&&(I=y.sourceLayer,N=y.nodeIndex,C=y.tensorIndex);let _=I.inboundNodes[N];if(v.indexOf(_)!==-1)throw new sr(`The tensor ${y.name} at layer "${I.name}" is part of a cycle.`);if(x.indexOf(_)!==-1)return;this.containerNodes.add(tr.nodeKey(I,N)),I.id in i||(i[I.id]=Object.keys(i).length),v.indexOf(_)===-1&&v.push(_);let F=_.inboundLayers.length;for(let D=0;D=0;)v.splice(v.indexOf(_),1);o.push(_)},u=[],p=[];for(let y of this.outputs)l(y,u,p);let d=o.slice().reverse();for(let y of d){a[y.id]=y,y.id in n||(n[y.id]=0);let x=n[y.id],v=r[y.outboundLayer.id]==null?0:r[y.outboundLayer.id];x=Math.max(x,v),r[y.outboundLayer.id]=x,s[y.outboundLayer.id]=y.outboundLayer,n[y.id]=x;for(let I=0;IparseInt(y,10)).sort(Mh);this.layers=[];for(let y of m){let x=h[y];x.sort((v,I)=>{let N=i[v.id],C=i[I.id];return NC?1:0});for(let v of x)v instanceof tr&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=h,m=Object.keys(c).map(y=>parseInt(y,10)).sort(Mh);let f=this.inputs.slice(),g=[];for(let y of m)for(let x of c[y]){let v=x.outboundLayer;if(v!=null){for(let I of x.inputTensors)if(f.indexOf(I)===-1)throw new sr(`Graph disconnected: cannot obtain value for tensor ${I} at layer "${v.name}". The following previous layers were accessed without issue: ${g}`);for(let I of x.outputTensors)f.push(I);g.push(v.name)}}this.nodesByDepth=c;let b=this.layers.map(y=>y.name);for(let y of b){let x=b.filter(v=>v===y).length;if(x!==1)throw new sr(`The name "${y}" is used ${x} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(b))}this.outboundNodes=[],this.inboundNodes=[],new Lf({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let n of this.layers)t.numDisposedVariables+=n.dispose().numDisposedVariables;for(let n of this.internalContainerRefs)t.numDisposedVariables+=n.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(n=>{n._trainableWeights.forEach(a=>a.trainable=t)}),this.trainable_=t}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 t=[];for(let n of this.layers)t=t.concat(n.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let n of this.layers)t.push(...n.nonTrainableWeights);if(!this.trainable){let n=[];for(let a of this.layers)n.push(...a.trainableWeights);return n.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,n=!0){let a={},r=0,s=QH(t);s&&this.parseWeights(t);for(let o of this.layers)for(let[l,u]of o.weights.entries()){let p=s?`${u.name.split("/").slice(0,-1).join("/")+"/"}${l}`:u.originalName;if(a[p]!=null)throw new V(`Duplicate weight name: ${p}`);a[p]=u,r++}let i=[];for(let o in t){let l=o;if(a[o]==null){let u=o.split("/");l=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(a[l]!=null)i.push([a[l],t[o]]);else if(n)throw new V(`Provided weight data has no target variable: ${o}`);delete a[l]}if(n){let o=[];for(let l in a)o.push(l);if(o.length>0)throw new V(`${o.length} of ${r} weights are not set: ${o}`)}b0(i)}parseWeights(t){for(let n in Object.keys(t)){let a=n.split("/"),r=["vars","layer_checkpoint_dependencies"],s=a.map(i=>i.startsWith("_")?i.slice(1):i).filter(i=>!r.includes(i)).join("/");s!==n&&(t[s]=t[n],delete t[n])}}updatedConfig(){let t=this.getConfig(),n={};return n.className=this.getClassName(),n.config=t,n.kerasVersion=`tfjs-layers ${E0}`,n.backend="TensorFlow.js",n}toJSON(t,n=!0){let a=Jx(this.updatedConfig());return n?JSON.stringify(a):a}call(t,n){return O(()=>{t=it(t);let a=new Wl;for(let r=0;r{t=it(t);let a;return n==null?a=xi(null,t.length):a=it(n),this.runInternalGraph(t,a)[1]})}computeOutputShape(t){let n=cm(t);if(n.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let a={};for(let o=0;oparseInt(o,10)).sort(Mh);if(r.length>1)for(let o of r){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer;if(this.inputLayers.map(f=>f.id).indexOf(p.id)!==-1)continue;let d=[];for(let f=0;fparseInt(l,10)).sort(Mh);for(let l of r){let u=this.nodesByDepth[l];for(let p of u){let d=p.outboundLayer,c=p.inputTensors,h=p.outputTensors,m=new Array;for(let f of c)f.id in a&&m.push(a[f.id]);if(m.length===c.length){let f={},g,b,y,x;if(p.callArgs!=null&&(f=p.callArgs),m.length===1){let[v,I]=m[0];f.mask==null&&(f.mask=I),y=it(d.call(v,f)),x=it(d.computeMask(v,I)),g=[v],b=[I]}else g=m.map(v=>v[0]),b=m.map(v=>v[1]),f.mask==null&&(f.mask=b),y=it(d.call(g,f)),x=it(d.computeMask(g,b));if(d.activityRegularizer)throw new ze("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let t=[];for(let n of this.layers)for(let a=0;a0){let f=[];for(let g=0;g0&&g.apply(Rn(y),x)}function u(g){let b=g.name,y=Ba(g,n.customObjects!=null?n.customObjects:{});y.setFastWeightInitDuringBuild(r),s[b]=y,g.inboundNodes.forEach(x=>{if(!(x instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${x}`);o(y,x)})}let p=n.name,d=n.layers;for(let g of d)u(g);for(;!NG(i);)for(let g of d){let b=s[g.name];if(b.name in i){let y=i[b.name];delete i[b.name];for(let x of y)l(b,x)}}let c=[],h=[],m=n.inputLayers;for(let g of m){let b=g[0],y=g[1],x=g[2];ar(b in s);let v=s[b].inboundNodes[y].outputTensors;c.push(v[x])}let f=n.outputLayers;for(let g of f){let b=g[0],y=g[1],x=g[2];ar(b in s);let v=s[b].inboundNodes[y].outputTensors;h.push(v[x])}return new t({inputs:c,outputs:h,name:p})}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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){O(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function t6(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 uC(e,t){return t6(e,t,"classWeight")}async function pC(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=O(()=>{if(e.shape.length===1)return or(e);if(e.shape.length===2){if(e.shape[1]>1)return hi(e,1);if(e.shape[1]===1)return W(e,[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 n6(e,t){return z(e,t)}var a6=32;function cC(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=KI("input",e.inputNames,n),i=KI("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 KI(e,t,n){if(n instanceof Ce)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 V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function r6(e){if(e.length===3)throw new ze("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function s6(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(XI(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=r6(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 p=tC(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=nC(p,d,n.epochs,null,null,i6(t,n),null,r,u);c.setModel(e),e.history=h,await c.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;XI(n.validationData)?v=it(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=it(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?a6:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new ze("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=o6(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=cC(e,u.value),c=p.concat(d),h=O(()=>r(c));if(Ee(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&Ee(b)}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 tc(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>ii(a,t,n-t)):ii(e,t,n-t)}function Qx(e,t){return O(()=>e==null?null:Array.isArray(e)?e.map(n=>Qx(n,t)):V2(e,t.dtype==="int32"?t:re(t,"int32")))}function wx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function dC(e){let t=[];e instanceof Ce&&(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 Ce)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 u6(e){return e instanceof Ce}function ev(e){return Array.isArray(e)}function YI(e){return!u6(e)&&!ev(e)}function ZI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(ev(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(ev(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=dC(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function p6(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&&!w.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 c6(e,t,n){let a=[Zo,Wf,Ec];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 h6="layers-model",_r=class extends e6{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).");KH(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=jH(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Or))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(xx(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=>xx(s))}else{let s=xx(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=d6(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])};si("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Wf?["accuracy","acc"].indexOf(c)!==-1?p=N0:["crossentropy","ce"].indexOf(c)!==-1&&(p=sC):this.lossFunctions[s]===gm?["accuracy","acc"].indexOf(c)!==-1?p=iC:["crossentropy","ce"].indexOf(c)!==-1&&(p=oC):["accuracy","acc"].indexOf(c)!==-1?p=T0:["crossentropy","ce"].indexOf(c)!==-1&&(p=C0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=qH(c),u=l+Lh(c);let h;si(u,()=>{h=d}),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;vx(a);let r=this.standardizeUserDataXY(e,t,!0,a);try{let s=r[0].concat(r[1]);this.makeTestFunction();let i=this.testFunction,o=this.testLoop(i,s,a,n.verbose,n.steps);return Rn(o)}finally{Pa(r[0],e),Pa(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),l6(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 Wl;if(e instanceof Ce&&(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 O(()=>{let a=this.checkNumSamples(e);if(n)throw new ze("Verbose predictLoop() is not implemented yet.");let r=wx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=tc(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return Rn(s.map(i=>et(i,0)))})}predict(e,t={}){let n=dC(e);JI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return vx(a),this.predictLoop(n,a)}finally{Pa(n,e)}}predictOnBatch(e){JI(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 sr("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=uC(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new ze("Verbose mode is not implemented yet.");if(r!=null)throw new ze("steps mode in testLoop() is not implemented yet");{let o=wx(s,n),l=qe(Ua(0,s));for(let u=0;u1){let s=PI(e.slice(0,n),a);r+=`_${s}`}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 l=[];for(let c=0;c1&&c{d=X(d,c)}),d},o=this.collectedTrainableWeights.map(l=>l.read());return[this.optimizer_.minimize(i,!0,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>O(()=>{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;l0){if(m=!0,n.validationData.length===2)o=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new ze("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; ${n.validationData} is invalid.`);let N=await this.standardizeUserData(o,l,null,null,!0,c);u=N[0],p=N[1],f=u.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;let N=Math.floor(a[0].shape[0]*(1-n.validationSplit)),C=a[0].shape[0];u=tc(a,N,C),s=a,a=tc(a,0,N),p=tc(r,N,C),i=r,r=tc(r,0,N),f=u.concat(p)}else n.validationSteps!=null&&(m=!0);let g=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let b=this.makeTrainFunction(),y=this.getDedupedMetricsNames(),x,v;m?(this.makeTestFunction(),x=this.testFunction,v=y.slice().concat(y.map(N=>"val_"+N))):(x=null,f=[],v=y.slice());let I=tC(n.callbacks,n.yieldEvery);return await this.fitLoop(b,g,y,c,n.epochs,n.verbose,I,x,f,n.shuffle,v,n.initialEpoch,null,null)}finally{this.isTraining=!1,Pa(a,e),Pa(r,t),Pa(s,e),Pa(i,t),Pa(u,o),Pa(p,l),d!=null&&Ee(d)}}async fitLoop(e,t,n,a,r,s,i,o,l,u,p,d,c,h){a==null&&(a=32),r==null&&(r=1),u==null&&(u=!0),d==null&&(d=0);let m=!1;if(o!=null&&l!=null&&(m=!0),h!=null&&(m=!0,c==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let f=this.checkNumSamples(t,a,c,"steps_per_epoch"),g;f!=null&&(g=Ua(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=nC(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=N[C][0],D=N[C][1],$=ii(I,F,D-F);_.batch=C,_.size=D-F;let S=Qx(t,$),M=e(S);for(let B=0;BSr(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]=Sr(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[Sr(Lh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Sr(Lh(e)));{let e={};for(let t in this.metrics)e[t]=Sr(Lh(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=_c(e.optimizer_config),n=Ba(t),a;if(typeof e.loss=="string")a=Qs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Qs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Qs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Qs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Qs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let r=qt.getSaveHandlers(e);if(r.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(r.length>1)throw new V(`Found more than one (${r.length}) save handlers for URL '${e}'`);e=r[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 qt.encodeWeights(this.getNamedWeights(t)),a={modelTopology:this.toJSON(null,!1),format:h6,generatedBy:`TensorFlow.js tfjs-layers v${E0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let r="optimizer",{data:s,specs:i}=await qt.encodeWeights(await this.optimizer.getWeights(),r);n.specs.push(...i),n.data=qt.concatenateArrayBuffers([n.data,s])}return this.userDefinedMetadata!=null&&(jI(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,e.save(a)}setUserDefinedMetadata(e){jI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};_r.className="Model";ne.registerClass(_r);var hC=class extends _r{};hC.className="Functional";ne.registerClass(hC);async function m6(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=_c(n),r=Ba(a,t);if(e.weightsManifest!=null){let s=await qt.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 f6(e,t){if(t==null&&(t={}),typeof e=="string"){let n=qt.getLoadHandlers(e,t);if(n.length===0)n.push(qt.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 g6(e,void 0,t)}async function g6(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=Ba(_c(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:p}=b6(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Ee(u),Ee(p.map(d=>d.tensor))}return o}function b6(e,t){let n=qt.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 Bf=class tv extends _r{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:_f("sequential_"),t.layers!=null)for(let n of t.layers)this.add(n)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new V(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let n=t instanceof tv||t instanceof _r,a;if(n){if(a=t,a.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(a.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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let r=q2({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(r)}if(n)this.outputs=a.outputs,this.inputs=a.inputs;else{if(t.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=H2(this.outputs[0])}this.inboundNodes=[],new Lf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:xi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(r=>r.shape),outputShapes:this.outputs[0].shape})}else{let r=t.apply(this.outputs[0]);if(Array.isArray(r))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(t),this.outputs=[r],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,n){return this.model==null&&this.build(),this.model.call(t,n)}build(t){if(Je(t),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 _r({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(t,n,a=console.log){this.built||this.build(),super.summary(t,n,a)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,n,a={}){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.evaluate(t,n,a)}async evaluateDataset(t,n){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,n)}predict(t,n={}){return this.model==null&&this.build(),this.model.predict(t,n)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,n,a={}){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.fit(t,n,a)}async fitDataset(t,n){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.fitDataset(t,n)}async trainOnBatch(t,n){return this.model.trainOnBatch(t,n)}static fromConfig(t,n,a={},r=!1){let s,i={};if(n instanceof Array){if(n[0].className==null||n[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");s=n}else w.assert(n.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=n.layers,delete n.layers,i=n;let o=new t(i);if(!(o instanceof tv))throw new ze(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(let l of s){let u=Ba(l,void 0,r);r&&u.setFastWeightInitDuringBuild(!0),o.add(u)}return o}set stopTraining(t){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}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 t=[];for(let n of this.layers){let a={};a.className=n.getClassName(),a.config=n.getConfig(),t.push(a)}return{name:this.name,layers:t}}};Bf.className="Sequential";ne.registerClass(Bf);function y6(e){return new _r(e)}function x6(e){return new Bf(e)}function mC(e){return q2(e)}function v6(e,t){I0.registerCallbackConstructor(e,t)}var Vn=class extends ne.Serializable{getConfig(){return{}}},fC=class extends Vn{apply(e,t=1){return WG(e,t)}};fC.className="elu";ne.registerClass(fC);var gC=class extends Vn{apply(e){return hf(e)}};gC.className="selu";ne.registerClass(gC);var bC=class extends Vn{apply(e){return Ke(e)}};bC.className="relu";ne.registerClass(bC);var yC=class extends Vn{apply(e){return O(()=>fs(6,Ke(e)))}};yC.className="relu6";ne.registerClass(yC);var xC=class extends Vn{apply(e){return e}};xC.className="linear";ne.registerClass(xC);var vC=class extends Vn{apply(e){return ma(e)}};vC.className="sigmoid";ne.registerClass(vC);var wC=class extends Vn{apply(e){return VG(e)}};wC.className="hardSigmoid";ne.registerClass(wC);var kC=class extends Vn{apply(e){return qo(e)}};kC.className="softplus";ne.registerClass(kC);var IC=class extends Vn{apply(e){return BG(e)}};IC.className="softsign";ne.registerClass(IC);var SC=class extends Vn{apply(e){return fi(e)}};SC.className="tanh";ne.registerClass(SC);var _0=class extends Vn{apply(e,t=-1){return ja(e,t)}};_0.className="softmax";ne.registerClass(_0);var NC=class extends Vn{apply(e,t=-1){return sf(e,t)}};NC.className="logSoftmax";ne.registerClass(NC);var TC=class extends Vn{apply(e,t=1){return O(()=>z(ma(z(e,t)),e))}};TC.className="swish";ne.registerClass(TC);var CC=class extends Vn{apply(e){return O(()=>z(e,fi(qo(e))))}};CC.className="mish";ne.registerClass(CC);function bs(e){return e.getClassName()}function kx(e,t={}){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ys(e){if(e==null){let t={};return t.className="linear",t.config={},kx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},kx(t)}else return e instanceof Vn?e:kx(e)}function A0(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 EC=class extends ne.Serializable{},Fd=class extends EC{constructor(e){super(),A0(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 O(()=>{let t=It([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,Ed(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Fd.className="L1L2";ne.registerClass(Fd);function w6(e){return A0(e),new Fd({l1:e!=null?e.l1:null,l2:0})}function k6(e){return A0(e),new Fd({l2:e!=null?e.l2:null,l1:0})}var QI={l1l2:"L1L2"};function ft(e){return o0(e)}function eS(e,t={}){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Nt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in QI?QI[e]:e,config:{}};return eS(t)}else return e instanceof EC?e:eS(e)}var F0=class extends We{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Te(e);let n=Ke(e);return this.maxValue!=null&&(n=an(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};F0.className="ReLU";ne.registerClass(F0);var $0=class extends We{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=Te(e);return fd(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};$0.className="LeakyReLU";ne.registerClass($0);var D0=class extends We{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Nt(e.alphaRegularizer),this.alphaConstraint=Yt(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=Je(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{let n=Te(e),a=t.mask;if(a!=null){let r=z(pe(On(n.shape),re(a,n.dtype)),ve(-1e9));n=X(n,r)}return this.axis instanceof Array?this.axis.length>1?mn(pe(n,bd(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(e){return e}getConfig(){let e={axis:this.axis},t=super.getConfig();return Object.assign(e,t),e}};O0.className="Softmax";ne.registerClass(O0);function Gl(e,t,n){if(typeof e=="number")return xi(e,t);if(e.length!==t)throw new V(`The ${n} argument must be an integer or tuple of ${t} integers. Received: ${e.length} elements.`);for(let a=0;a(Rt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function _C(e,t){return O(()=>(Rt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function I6(e,t,n,a=1,r="valid",s,i=1){return O(()=>{if(s==null&&(s=Ga()),Rt(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=De(e,[0,2,1])),r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Qm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ka(o,n)),o})}function tS(e,t,n,a=[1,1],r="valid",s,i,o=null){return O(()=>{if(s==null&&(s=Ga()),Rt(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=P0(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=tu.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function S6(e,t,n,a=[1,1,1],r="valid",s,i){return O(()=>{if(s==null&&(s=Ga()),Rt(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=_C(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=pw(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ka(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var AC=class FC extends We{constructor(t,n){if(super(n),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",FC.verifyArgs(n),this.rank=t,tn(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ze(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Gl(n.kernelSize,t,"kernelSize"),this.strides=Gl(n.strides==null?1:n.strides,t,"strides"),this.padding=n.padding==null?"valid":n.padding,wa(this.padding),this.dataFormat=n.dataFormat==null?"channelsLast":n.dataFormat,Rt(this.dataFormat),this.activation=ys(n.activation),this.useBias=n.useBias==null?!0:n.useBias,this.biasInitializer=St(n.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(n.biasConstraint),this.biasRegularizer=Nt(n.biasRegularizer),this.activityRegularizer=Nt(n.activityRegularizer),this.dilationRate=Gl(n.dilationRate==null?1:n.dilationRate,t,"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(t){if(ar("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!l0(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:bs(this.activation),useBias:this.useBias,biasInitializer:_t(this.biasInitializer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},n=super.getConfig();return Object.assign(t,n),t}},Vf=class $C extends AC{constructor(t,n){super(t,n),this.kernel=null,$C.verifyArgs(n),this.filters=n.filters,tn(this.filters,"filters"),this.kernelInitializer=St(n.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(n.kernelConstraint),this.kernelRegularizer=Nt(n.kernelRegularizer)}build(t){t=Je(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${t[n]}`);let a=t[n],r=this.kernelSize.concat([a,this.filters]);this.kernel=this.addWeight("kernel",r,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:{[n]:a}}],this.built=!0}call(t,n){return O(()=>{t=Te(t);let a,r=this.bias==null?null:this.bias.read(),s=O2(this.activation.getClassName());if(s!=null&&this.rank===2)a=tS(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)a=I6(t,this.kernel.read(),r,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)a=tS(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)a=S6(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ze("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(a=this.activation.apply(a))}return a})}computeOutputShape(t){t=Je(t);let n=[],a=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},Uf=class DC extends Vf{constructor(t){super(2,t),DC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!l0(t.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(t.kernelSize)}.`)}};Uf.className="Conv2D";ne.registerClass(Uf);var Gf=class RC extends Vf{constructor(t){super(3,t),RC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Gf.className="Conv3D";ne.registerClass(Gf);var L0=class extends Uf{constructor(e){if(super(e),this.inputSpec=[new zt({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=Je(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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(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],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=rr(o,d,u,this.padding),m=rr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,1]));let g=ef(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(g,[0,3,1,2])),this.bias!=null&&(g=Ka(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Je(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]=rr(t[a],o,s,this.padding),t[r]=rr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};L0.className="Conv2DTranspose";ne.registerClass(L0);var z0=class extends Gf{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==5)throw new V("Input should have rank 5; 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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.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,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],b=rr(l,m,d,this.padding),y=rr(u,f,c,this.padding),x=rr(p,g,h,this.padding),v=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=cw(n,this.kernel.read(),v,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(I,[0,4,1,2,3])),this.bias!==null&&(I=Ka(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=rr(t[a],u,i,this.padding),t[r]=rr(t[r],p,o,this.padding),t[s]=rr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};z0.className="Conv3DTranspose";ne.registerClass(z0);var MC=class extends Vf{constructor(e,t){if(super(e,t),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=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Nt(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Nt(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Te(e);let n;if(this.rank===1)throw new ze("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(e,[0,2,3,1])),n=$s(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=De(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=_t(this.depthwiseInitializer),e.pointwiseInitializer=_t(this.pointwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.pointwiseRegularizer=ft(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};MC.className="SeparableConv";var W0=class extends MC{constructor(e){super(2,e)}};W0.className="SeparableConv2D";ne.registerClass(W0);var B0=class OC extends Vf{constructor(t){super(1,t),OC.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!l0(t.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};B0.className="Conv1D";ne.registerClass(B0);var V0=class extends We{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 O(()=>{if(e=Te(e),this.dataFormat==="channelsLast"){let n=Ph(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ph(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ph(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ph(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}};V0.className="Cropping2D";ne.registerClass(V0);var U0=class extends We{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,DG(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 O(()=>{let n=Te(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};U0.className="UpSampling2D";ne.registerClass(U0);function N6(e,t,n=[1,1],a="valid",r,s){return O(()=>{r==null&&(r=Ga()),Rt(r);let i=P0(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=_s(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}var G0=class extends AC{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Nt(e.depthwiseRegularizer)}build(e){if(e=Je(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 O(()=>{e=Te(e);let n=N6(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Je(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=Va(t,this.kernelSize[0],this.padding,this.strides[0]),s=Va(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=_t(this.depthwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};G0.className="DepthwiseConv2D";ne.registerClass(G0);function PC(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 LC(e,t,n,a=!1,r,s,i=!1,o=!1){return O(()=>{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(Ua(2,l));if(t=De(t,u),s!=null)throw new ze("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=re(re(r,"bool"),"float32"),r.rank===l-1&&(r=Gt(r,-1)),r=De(r,u)),a&&(t=ya(t,0),r!=null&&(r=ya(r,0)));let p=[],d,c=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let v=O(()=>{let I=f[b],N=pe(na(I),I),C=X(z(x[0],I),z(c[0],N)),_=c.map((F,D)=>X(z(x[1][D],I),z(F,N)));return{output:C,newStates:_}});d=v.output,c=v.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var Pr=class zC extends We{constructor(t){super(t);let n;if(t.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?n=new jf({cells:t.cell}):n=t.cell,n.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=n,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ua(0,t).map(n=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Xx(t)&&(t=t[0]),t=t;let n=this.cell.stateSize;Array.isArray(n)||(n=[n]);let a=n[0],r;if(this.returnSequences?r=[t[0],t[1],a]:r=[t[0],a],this.returnState){let s=[];for(let i of n)s.push([t[0],i]);return[r].concat(s)}else return r}computeMask(t,n){return O(()=>{Array.isArray(n)&&(n=n[0]);let a=this.returnSequences?n:null;if(this.returnState){let r=this.states.map(s=>null);return[a].concat(r)}else return a})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,n=[];for(let a=0;ai.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 zt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(t,n=!1){O(()=>{if(!this.stateful)throw new Qr("Cannot call resetStates() on an RNN Layer that is not stateful.");let a=this.inputSpec[0].shape[0];if(a==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(r=>It([a,r])):this.states_=[It([a,this.cell.stateSize])];else if(t==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(r=>It([a,r])):this.states_[0]=It([a,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);n===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let r=0;rHt(r.clone()))})}apply(t,n){let a=n==null?null:n.initialState,r=n==null?null:n.constants;n==null&&(n={});let s=PC(t,a,r,this.numConstants);t=s.inputs,a=s.initialState,r=s.constants;let i=[],o=[];if(a!=null){n.initialState=a,i=i.concat(a),this.stateSpec=[];for(let l of a)this.stateSpec.push(new zt({shape:l.shape}));o=o.concat(this.stateSpec)}if(r!=null&&(n.constants=r,i=i.concat(r),this.numConstants=r.length),i[0]instanceof Ha){let l=[t].concat(i),u=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,n);return this.inputSpec=p,d}else return super.apply(t,n)}call(t,n){return O(()=>{let a=n==null?null:n.mask,r=n==null?null:n.training,s=n==null?null:n.initialState;t=Te(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new V(`RNN Layer has ${i} 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 o={training:r},l=LC((h,m)=>{let f=this.cell.call([h].concat(m),o);return[f[0],f.slice(1)]},t,s,this.goBackwards,a,null,this.unroll,this.returnSequences),u=l[0],p=l[1],d=l[2];this.stateful&&this.resetStates(d,r);let c=this.returnSequences?p:u;return this.returnState?[c].concat(d):c})}getInitialState(t){return O(()=>{let n=It(t.shape);return n=fe(n,[1,2]),n=Cd(n),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(a=>a>1?jx(n,[1,a]):n):this.cell.stateSize>1?[jx(n,[1,this.cell.stateSize])]:[n]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),n={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(n.numConstants=this.numConstants);let a=this.cell.getConfig();return this.getClassName()===zC.className&&(n.cell={className:this.cell.getClassName(),config:a}),Object.assign(Object.assign(Object.assign({},a),t),n)}static fromConfig(t,n,a={}){let r=n.cell,s=Ba(r,a);return new t(Object.assign(n,{cell:s}))}};Pr.className="RNN";ne.registerClass(Pr);var $d=class extends We{},Hf=class extends $d{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,tn(this.units,"units"),this.activation=ys(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=nu([1,gs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=nu([1,gs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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;0na(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0na(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=ur(z(e,s),this.kernel.read()):r=ur(e,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),i!=null&&(n=z(n,i));let o=X(r,ur(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:bs(this.activation),useBias:this.useBias,kernelInitializer:_t(this.kernelInitializer),recurrentInitializer:_t(this.recurrentInitializer),biasInitializer:_t(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),recurrentRegularizer:ft(this.recurrentRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),recurrentConstraint:Xt(this.recurrentConstraint),biasConstraint:Xt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Hf.className="SimpleRNNCell";ne.registerClass(Hf);var H0=class extends Pr{constructor(e){e.cell=new Hf(e),super(e)}call(e,t){return O(()=>{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)}};H0.className="SimpleRNN";ne.registerClass(H0);var qf=class extends $d{constructor(e){if(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",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,tn(this.units,"units"),this.activation=ys(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ys(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=nu([1,gs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=nu([1,gs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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],0na(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));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)}};q0.className="GRU";ne.registerClass(q0);var Dd=class extends $d{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,tn(this.units,"units"),this.activation=ys(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ys(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=nu([1,gs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=nu([1,gs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Je(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 Ra{apply(i,o){let l=r.apply([s]),u=new Ff().apply([s]),p=r.apply([s*2]);return zI(zI(l,u),p)}},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 O(()=>{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],0na(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;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)}};j0.className="LSTM";ne.registerClass(j0);var jf=class extends $d{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 O(()=>{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{si(`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(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ba(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 Yx(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):U2(t(),n),o=()=>_d(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var T6=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 O(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){O(()=>{if(!this.stateful)throw new Qr("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(()=>It(r)):this.states_=[It(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(()=>It(r)):this.states_[0]=It(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;sHt(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],p=Va(l,a[0],r,s[0],i[0]),d=Va(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};WC.className="ConvRNN2D";var Kf=class extends Dd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,tn(this.filters,"filters"),this.kernelSize=Gl(n,2,"kernelSize"),this.kernelSize.forEach(o=>tn(o,"kernelSize")),this.strides=Gl(a||1,2,"strides"),this.strides.forEach(o=>tn(o,"strides")),this.padding=r||"valid",wa(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=Gl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>tn(o,"dilationRate"))}build(e){var t;e=Je(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 Ra{apply(p,d){let c=l.apply([u]),h=On([u]),m=l.apply([u*2]);return u0([c,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 O(()=>{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;0na(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0na(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),b=l(r,h,3),y=3,[x,v,I,N]=Pn(this.kernel.read(),i,y),[C,_,F,D]=this.useBias?Pn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,v,_,this.padding),d=this.inputConv(d,I,F,this.padding),c=this.inputConv(c,N,D,this.padding);let[$,S,M,B]=Pn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),j=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(j));return[K,K,j]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=T6(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=$t(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Ka(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Kf.className="ConvLSTM2DCell";ne.registerClass(Kf);var K0=class extends WC{constructor(e){let t=new Kf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};K0.className="ConvLSTM2D";ne.registerClass(K0);var Xf=class extends We{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=Te(e);if(0U2(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()}};Xf.className="Dropout";ne.registerClass(Xf);var X0=class extends Xf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};X0.className="SpatialDropout1D";ne.registerClass(X0);var Y0=class extends We{constructor(e){if(super(e),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,tn(this.units,"units"),this.activation=ys(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Nt(e.kernelRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Je(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=Je(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=O2(this.activation.getClassName()),r;return a!=null?r=ur(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=ur(n,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:bs(this.activation),useBias:this.useBias,kernelInitializer:_t(this.kernelInitializer),biasInitializer:_t(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Y0.className="Dense";ne.registerClass(Y0);var Z0=class extends We{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Je(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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Te(e);return this.activation.apply(n)})}getConfig(){let e={activation:bs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};J0.className="Activation";ne.registerClass(J0);var Q0=class extends We{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 O(()=>(e=Te(e),PG(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Q0.className="RepeatVector";ne.registerClass(Q0);var e1=class extends We{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Te(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};e1.className="Reshape";ne.registerClass(e1);var t1=class extends We{constructor(e){if(super(e),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=Ua(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Je(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return De(Te(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};t1.className="Permute";ne.registerClass(t1);var n1=class extends We{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=Te(e);return Sc(bi(n,this.maskValue),-1)}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=Sc(bi(n,this.maskValue),-1,!0);return z(n,re(a,n.dtype))})}};n1.className="Masking";ne.registerClass(n1);var a1=class extends We{constructor(e){if(super(e),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(it(e.inputLength))}this.inputDim=e.inputDim,tn(this.inputDim,"inputDim"),this.outputDim=e.outputDim,tn(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Nt(e.embeddingsRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.embeddingsConstraint=Yt(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 O(()=>this.maskZero?(e=Te(e),bi(e,je(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=it(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=Te(e);n.dtype!=="int32"&&(n=lr(n,"int32"));let a=V2(this.embeddings.read(),W(n,[n.size]));return W(a,Je(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:_t(this.embeddingsInitializer),embeddingsRegularizer:ft(this.embeddingsRegularizer),activityRegularizer:ft(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};a1.className="Embedding";ne.registerClass(a1);var Jo=class extends We{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new ze}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 O(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=gs(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ua(1,l).concat([0]);n.push(De(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],p=[u].concat(o.slice(0,o.length-1));s=W(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ua(0,i-1));s=De(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:Gt(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 O(()=>u0(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 O(()=>{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 ze("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 ze("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 O(()=>{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 p=l;p"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 ze("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)=>nc(r,e[s].shape.length)):a=[nc(this.axes,t.shape.length),nc(this.axes,n.shape.length)],this.normalize&&(t=fm(t,a[0]),n=fm(n,a[1])),C6(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[nc(this.axes,e.length),nc(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 ze("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}};p1.className="Dot";ne.registerClass(p1);var c1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return _d(()=>X(Af(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};c1.className="GaussianNoise";ne.registerClass(c1);var d1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return this.rate>0&&this.rate<1?_d(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Af(n.shape,1,a))},()=>n,t.training||!1):n})}};d1.className="GaussianDropout";ne.registerClass(d1);var h1=class extends We{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Te(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 O(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return _d(()=>{let a=Te(e),r=-1.6732632423543772*1.0507009873554805,s=Rr(Fs(n),this.rate);s=lr(s,"float32");let i=((1-this.rate)*(1+this.rate*r**2))**-.5,o=-i*r*this.rate,l=X(z(a,s),z(X(s,-1),r));return X(z(l,i),o)},()=>Te(e),t.training||!1)}return e})}};h1.className="AlphaDropout";ne.registerClass(h1);function Ac(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=ew(e,t,n,a,r,s);else if(e.rank===3)i=tw(e,t,n,a,r,s);else if(e.rank===4)i=nw(e,t,n,a,r,s);else throw new ze(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function E6(e,t,n,a,r=.001){return O(()=>{let s=xd(e,a),i=s.mean,o=s.variance;return[Ac(e,i,o,n,t,r),i,o]})}function _6(e,t,n,a,r=.001){return O(()=>{let s=xd(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ua(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Ac(e,u,p,c,d,r),i,o]})}function A6(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),Ua(0,e.rank-1))?E6(e,t,n,a,r):_6(e,t,n,a,r)}var m1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer)}build(e){e=Je(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 zt({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 O(()=>{let n=t.training==null?!1:t.training,a=Te(e),r=a.shape,s=r.length,i=Ua(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=xi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!w.arraysEqual(u,Ua(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Ac(a,g,b,y,x,this.epsilon)}else return Ac(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 d();let[c,h,m]=A6(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{O(()=>{let x=1-y,v=g.read(),I=z(pe(v,b),x);g.write(pe(v,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:_t(this.betaInitializer),gammaInitializer:_t(this.gammaInitializer),movingMeanInitializer:_t(this.movingMeanInitializer),movingVarianceInitializer:_t(this.movingVarianceInitializer),betaRegularizer:ft(this.betaRegularizer),gammaRegularizer:ft(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};m1.className="BatchNormalization";ne.registerClass(m1);var f1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Je(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=Te(e),a=n.shape,r=a.length;return O(()=>{let{mean:s,variance:i}=xd(n,this.axis,!0),o=xi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{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=Ga()),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]],va(e,a)})}var g1=class extends We{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ga():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 zt({ndim:4})]}computeOutputShape(e){e=Je(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 O(()=>F6(Te(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};g1.className="ZeroPadding2D";ne.registerClass(g1);function Yf(e,t,n,a,r,s){return O(()=>{Rt(r),L2(s),wa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=P0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=xa(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function BC(e,t,n,a,r,s){return O(()=>{Rt(r),L2(s),wa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=_C(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Cw(e,t,n,o):i=Qv(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var VC=class extends We{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(tn(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)}`);tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,wa(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Je(e);let t=Va(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return O(()=>{this.invokeCallHook(e,t),e=Cd(Te(e),2);let n=this.poolingFunction(Te(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Ds(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},b1=class extends VC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Yf(e,t,n,a,r,"max")}};b1.className="MaxPooling1D";ne.registerClass(b1);var y1=class extends VC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Yf(e,t,n,a,r,"avg")}};y1.className="AveragePooling1D";ne.registerClass(y1);var UC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),wa(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},x1=class extends UC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Yf(e,t,n,a,r,"max")}};x1.className="MaxPooling2D";ne.registerClass(x1);var v1=class extends UC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Yf(e,t,n,a,r,"avg")}};v1.className="AveragePooling2D";ne.registerClass(v1);var GC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),wa(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Je(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=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(n,this.poolSize[1],this.padding,this.strides[1]),a=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},w1=class extends GC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),BC(e,t,n,a,r,"max")}};w1.className="MaxPooling3D";ne.registerClass(w1);var k1=class extends GC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),BC(e,t,n,a,r,"avg")}};k1.className="AveragePooling3D";ne.registerClass(k1);var HC=class extends We{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ze}},I1=class extends HC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return Et(n,1)})}};I1.className="GlobalAveragePooling1D";ne.registerClass(I1);var S1=class extends HC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return fa(n,1)})}};S1.className="GlobalMaxPooling1D";ne.registerClass(S1);var qC=class extends We{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ze}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},N1=class extends qC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?Et(n,[1,2]):Et(n,[2,3])})}};N1.className="GlobalAveragePooling2D";ne.registerClass(N1);var T1=class extends qC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?fa(n,[1,2]):fa(n,[2,3])})}};T1.className="GlobalMaxPooling2D";ne.registerClass(T1);var jC=class extends We{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=Ba(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},C1=class extends jC{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Je(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=Je(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 O(()=>(e=Te(e),LC((n,a)=>[Te(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};C1.className="TimeDistributed";ne.registerClass(C1);function $6(e){Yo($G,"BidirectionalMergeMode",e)}var D6="concat",E1=class extends jC{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ba(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ba(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?D6:e.mergeMode,$6(this.mergeMode),e.weights)throw new ze("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()):Rn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=PC(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(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new ze("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ha;for(let l of s)if(l instanceof Ha!==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),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return O(()=>{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=ya(r,1));let i;return this.mergeMode==="concat"?i=u0([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(a,r)):this.mergeMode==="mul"?i=z(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){si(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),si(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=Ba(t.layer);if(delete t.layer,t.numConstants!=null)throw new ze("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};E1.className="Bidirectional";ne.registerClass(E1);var _1=class extends We{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>(e=Te(e),e.dtype!=="float32"&&(e=lr(e,"float32")),X(z(e,this.scale),this.offset)))}};_1.className="Rescaling";ne.registerClass(_1);var{resizeBilinear:R6,cropAndResize:M6}=Qn,A1=class extends We{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,a,r,s,i,o){return O(()=>{let l,u=!1,p=t/s,d=n/i,c=(a+t)/s,h=(r+n)/i,m=[p,d,c,h],f=[];e.rank===3?(u=!0,l=Ft([e])):l=e;for(let x=0;x{let r=R6(e,[t,n]);return lr(r,a)})}call(e,t){return O(()=>{let n=Te(e),a=n.dtype,r=n.shape,s=r[r.length-3],i=r[r.length-2],o=0;s!==this.height&&(o=Math.floor((s-this.height)/2));let l=0;return i!==this.width&&(l=Math.floor((i-this.width)/2),l===0&&(l=1)),o>=0&&l>=0?this.centerCrop(n,o,l,this.height,this.width,s,i,a):this.upsize(e,this.height,this.width,a)})}getConfig(){let e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};A1.className="CenterCrop";ne.registerClass(A1);function O6(e,t,n,a){let r=Te(e);if(r.dtype!=="int32"&&(r=lr(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Gt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Gt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=um(o,a,n,i):l=um(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var F1=class extends We{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Je(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return O(()=>{e=Te(e),e.dtype!=="int32"&&(e=lr(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. - Received countWeights=${t.countWeights}`);n=Te(t.countWeights)}let a=fa(e),r=Xl(e),s=Tn(this.numTokens,a).bufferSync().get(0),i=Rr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return O6(e,this.outputMode,this.numTokens,n)})}};F1.className="CategoryEncoding";ne.registerClass(F1);var P6=["bilinear","nearest"],nS=new Set(P6),$1=class extends We{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(nS.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!e.cropToAspectRatio}computeOutputShape(e){e=Je(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Qn.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Qn.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...nS]} are supported`)})}};$1.className="Resizing";ne.registerClass($1);var KC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};KC.className="RandomSeed";var XC=class extends We{constructor(e){super(e),this.randomGenerator=new KC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};XC.className="BaseRandomLayer";var L6=["bilinear","nearest"],aS=new Set(L6),D1=class extends XC{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUppert?1:0}function Mh(e,t){return-1*TG(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 CG(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 Yo(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 l0(e,t,n=0,a=1/0){return ar(n>=0),ar(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function tn(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>tn(n,`element ${a+1} of ${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${M2(e)}.`)}function M2(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>M2(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function EG(e,t,n){let a=n!=null?n():w.now(),r;return(...s)=>{let i=n!=null?n():w.now();return i-a0){let n=`${e}_${t}`;return Ml.set(n,1),n}else return e}var PG=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function B2(e){return!!e.match(PG)}function LG(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;rt&&(t=a)}return t}function Ua(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Cd(e,1);return Kx(n,[1,t,1])})}function WG(e){let t=[ls(e.shape)];return W(e,t)}function BG(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 W(e,t)}function oi(e,t,n){return O(()=>{switch(e.rank){case 1:return kd(e,t,n);case 2:return bf(e,[t,0],[n,e.shape[1]]);case 3:return qo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Ql(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ve(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Ve(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 xx(e,t,n){return O(()=>{switch(e.rank){case 1:return kd(e,t,n);case 2:return bf(e,[0,t],[e.shape[0],n]);case 3:return qo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Ql(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 Ph(e,t,n,a){return O(()=>{switch(e.rank){case 1:return kd(e,t,n);case 2:switch(a){case 1:return oi(e,t,n);case 2:return xx(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 oi(e,t,n);case 2:return qo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return xx(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 oi(e,t,n);case 2:return Ql(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Ql(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return xx(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 u0(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),et(e,t)}function zI(e,t){switch(e.rank){case 1:return iw([e,t]);case 2:return ow([e,t],0);case 3:return lw([e,t],0);case 4:return uw([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Kx(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 On(e,t)}function Ff(e,t=0,n=1,a,r){return pf(e,t,n,a,r)}function ur(e,t,n,a){if(e.rank<2||t.rank<2)throw new ze(`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 ze(`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)return tu.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Xx(e.rank,a,Ga()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(c,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=W(De(t,p),[l,-1]);let d=[...r,...u];return W(tu.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Xx(e.rank,a,Ga()):null,activation:n}),d)}}function V2(e,t,n){return O(()=>(Array.isArray(t)?t=je(t,"int32"):t=re(t,"int32"),fp(e,t,n)))}function Ed(e){return z(e,e)}function Xx(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?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Ka(e,t,n){return O(()=>(n==null&&(n=Ga()),Rt(n),X(e,Xx(e.rank,t,n))))}function VG(e,t=1){if(t!==1)throw new ze(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return dp(e)}function UG(e){return O(()=>he(e,X(Lt(e),1)))}function U2(e,t,n,a){return O(()=>Hw(e,t,n,a))}function GG(e){return O(()=>{let t=X(.5,z(.2,e));return an(t,0,1)})}function _d(e,t,n=!1){return n?e():t()}var HG=["fanIn","fanOut","fanAvg"],jG=["normal","uniform","truncatedNormal"];function qG(e){Yo(HG,"FanMode",e)}function KG(e){Yo(jG,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},p0=class extends Ra{apply(e,t){return It(e,t)}};p0.className="Zeros";ne.registerClass(p0);var $f=class extends Ra{apply(e,t){return Pn(e,t)}};$f.className="Ones";ne.registerClass($f);var c0=class extends Ra{constructor(e){if(super(),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 O(()=>z(xe(this.value),Pn(e,t)))}getConfig(){return{value:this.value}}};c0.className="Constant";ne.registerClass(c0);var d0=class extends Ra{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 $s(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};d0.className="RandomUniform";ne.registerClass(d0);var h0=class extends Ra{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 ze(`randomNormal does not support dType ${t}.`);return Ff(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};h0.className="RandomNormal";ne.registerClass(h0);var m0=class extends Ra{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 ze(`truncatedNormal does not support dType ${t}.`);return kf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};m0.className="TruncatedNormal";ne.registerClass(m0);var f0=class extends Ra{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return O(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,rf(e[0]))})}getConfig(){return{gain:this.gain}}};f0.className="Identity";ne.registerClass(f0);function XG(e,t="channelsLast"){let n,a;if(Rt(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 Bn=class extends Ra{constructor(e){if(super(),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,qG(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,KG(this.distribution),this.seed=e.seed}apply(e,t){let n=XG(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 ze(`${this.getClassName()} does not support dType ${t}.`);return kf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return $s(e,-i,i,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var Df=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Df.className="GlorotUniform";ne.registerClass(Df);var Rf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Rf.className="GlorotNormal";ne.registerClass(Rf);var Mf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Mf.className="HeNormal";ne.registerClass(Mf);var Of=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Of.className="HeUniform";ne.registerClass(Of);var Pf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Pf.className="LeCunNormal";ne.registerClass(Pf);var Lf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Lf.className="LeCunUniform";ne.registerClass(Lf);var g0=class extends Ra{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return O(()=>{if(e.length<2)throw new ze("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;let n=w.sizeFromShape(e.slice(0,-1)),a=e[e.length-1],r=n*a;r>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${r}) elements: Slowness may result.`);let s=[Math.max(a,n),Math.min(a,n)],i=Ff(s,0,1,t,this.seed),o=Xw.qr(i,!1),l=o[0],u=o[1].flatten().stridedSlice([0],[Math.min(a,n)*Math.min(a,n)],[Math.min(a,n)+1]);return l=z(l,u.sign()),na*r);return t}var VI="Variable",G2=class{constructor(e,t="float32",n=VI,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=P2(),n=n==null?VI:n,this.originalName=z2(n),this.name=W2(this.originalName),this.trainable_=a,this.constraint=r,this.val=Uw(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),YG(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 YG(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Zx(e){return e.map(t=>t.read())}function b0(e){e.forEach(t=>{t[0].write(t[1])})}var zt=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||{}}},Ha=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=P2(),s!=null&&(this.originalName=z2(s),this.name=W2(this.originalName)),this.rank=t.length}},ZG=0,zf=class{constructor(e,t){this.callArgs=t,this.id=ZG++,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}}},JG=0,We=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=JG++,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=Nr(n)+"_"+Af(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 sr(`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 Mn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Mn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Qr(`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 Qr(`Layer ${this.name} is not connected, no input to return.`);return Mn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Qr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Qr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Mn(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){let t=it(e);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=it(this.inputSpec);if(t.length!==n.length)throw new V(`Layer ${this.name} expects ${n.length} inputs, but it received ${t.length} input tensors. Input received: ${e}`);for(let a=0;as.maxNDim)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?o[u]:o[o.length+u];if(p!=null&&[p,null].indexOf(d)===-1)throw new V(`Input ${a} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${p} but got shape ${o}.`)}}if(s.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of it(e))s.push(i.shape);this.build(Mn(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);this.supportsMasking&&this.setMaskMetadata(e,s);let i=it(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=Mn(o),this.activityRegularizer!=null)throw new ze("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=QG(e),i=this.computeOutputShape(s),o,l=eH(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ha(l,u,this,it(e),t,this.name,p)):o=new Ha(l,i,this,it(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new ze("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 Qr(`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 Qr(`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 sr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return dm(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Zx(e?this.trainableWeights:this.weights)}setWeights(e){O(()=>{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=Zx(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?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=it(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}setMaskMetadata(e,t,n){if(!this.supportsMasking)return;let a=this.computeMask(e,n),r=it(t),s=it(a);if(r.length!==s.length)throw new Error(`${this.name} outputs ${r.length} tensors but ${r.length} masks for those tensors`);for(let i=0;ie.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 QG(e){e=it(e);let t=[];for(let n of e)t.push(n.shape);return Mn(t)}function eH(e){return"float32"}function H2(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;sm.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=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=hm.get(p),c;if(d==null){let m=sH(i,t);d=m.sorted,c=m.recipientCounts,hm.put(p,d),mm.put(p,c)}c={},r||Object.assign(c,mm.get(p));let h=new Wl(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=UI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=UI(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:iH(a)}}function iH(e){let t={};for(let n in e)t[n]=e[n].size;return t}function UI(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 oH(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,rH);var K2={};_e(K2,{maxNorm:()=>uH,minMaxNorm:()=>dH,nonNeg:()=>cH,unitNorm:()=>pH});function y0(e,t){return O(()=>rn(fe(z(e,e),t,!0)))}var Ad=class extends ne.Serializable{getConfig(){return{}}},x0=class extends Ad{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 O(()=>{let t=y0(e,this.axis),n=an(t,0,this.maxValue);return z(e,he(n,X(qt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};x0.className="MaxNorm";ne.registerClass(x0);var v0=class extends Ad{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return O(()=>he(e,X(qt(),y0(e,this.axis))))}getConfig(){return{axis:this.axis}}};v0.className="UnitNorm";ne.registerClass(v0);var w0=class extends Ad{apply(e){return Ke(e)}};w0.className="NonNeg";ne.registerClass(w0);var k0=class extends Ad{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 O(()=>{let t=y0(e,this.axis),n=X(z(this.rate,an(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,X(qt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};k0.className="MinMaxNorm";ne.registerClass(k0);var GI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return o0(e)}function HI(e,t={}){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in GI?GI[e]:e,config:{}};return HI(t)}else return e instanceof Ad?e:HI(e)}function uH(e){return new x0(e)}function pH(e){return new v0(e)}function cH(){return new w0}function dH(e){return new k0(e)}var X2={};_e(X2,{constant:()=>fH,glorotNormal:()=>kH,glorotUniform:()=>wH,heNormal:()=>IH,heUniform:()=>SH,identity:()=>xH,leCunNormal:()=>NH,leCunUniform:()=>TH,ones:()=>mH,orthogonal:()=>CH,randomNormal:()=>bH,randomUniform:()=>gH,truncatedNormal:()=>yH,varianceScaling:()=>vH,zeros:()=>hH});function hH(){return new p0}function mH(){return new $f}function fH(e){return new c0(e)}function gH(e){return new d0(e)}function bH(e){return new h0(e)}function yH(e){return new m0(e)}function xH(e){return new f0(e)}function vH(e){return new Bn(e)}function wH(e){return new Df(e)}function kH(e){return new Rf(e)}function IH(e){return new Mf(e)}function SH(e){return new Of(e)}function NH(e){return new Pf(e)}function TH(e){return new Lf(e)}function CH(e){return new g0(e)}var Y2={};_e(Y2,{Layer:()=>We,RNN:()=>Pr,RNNCell:()=>$d,activation:()=>r6,add:()=>h6,alphaDropout:()=>Y6,average:()=>m6,averagePooling1d:()=>R1,averagePooling2d:()=>M1,averagePooling3d:()=>O1,avgPool1d:()=>I6,avgPool2d:()=>N6,avgPool3d:()=>C6,avgPooling1d:()=>S6,avgPooling2d:()=>T6,avgPooling3d:()=>E6,batchNormalization:()=>v6,bidirectional:()=>V6,categoryEncoding:()=>tq,centerCrop:()=>Q6,concatenate:()=>f6,conv1d:()=>Xj,conv2d:()=>Yj,conv2dTranspose:()=>Zj,conv3d:()=>Jj,conv3dTranspose:()=>Qj,convLstm2d:()=>L6,convLstm2dCell:()=>z6,cropping2D:()=>t6,dense:()=>s6,depthwiseConv2d:()=>a6,dot:()=>x6,dropout:()=>i6,elu:()=>Uj,embedding:()=>d6,flatten:()=>l6,gaussianDropout:()=>X6,gaussianNoise:()=>K6,globalAveragePooling1d:()=>_6,globalAveragePooling2d:()=>A6,globalMaxPool1d:()=>G6,globalMaxPool2d:()=>H6,globalMaxPooling1d:()=>JC,globalMaxPooling2d:()=>QC,gru:()=>$6,gruCell:()=>D6,input:()=>mC,inputLayer:()=>Vj,layerNormalization:()=>w6,leakyReLU:()=>Hj,lstm:()=>R6,lstmCell:()=>M6,masking:()=>Z6,maxPool1d:()=>j6,maxPool2d:()=>q6,maxPooling1d:()=>eE,maxPooling2d:()=>tE,maxPooling3d:()=>F6,maximum:()=>g6,minimum:()=>b6,multiply:()=>y6,permute:()=>c6,prelu:()=>jj,randomWidth:()=>nq,reLU:()=>Gj,repeatVector:()=>u6,rescaling:()=>J6,reshape:()=>p6,resizing:()=>eq,rnn:()=>W6,separableConv2d:()=>e6,simpleRNN:()=>O6,simpleRNNCell:()=>P6,softmax:()=>qj,spatialDropout1d:()=>o6,stackedRNNCells:()=>B6,thresholdedReLU:()=>Kj,timeDistributed:()=>U6,upSampling2d:()=>n6,zeroPadding2d:()=>k6});async function Jr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sX(this.totals[a],z(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:O(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Ht(t[n])}))}},Q2=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 eC(n,t))}var I0=class er{constructor(){}static registerCallbackConstructor(t,n){w.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),er.checkForDuplicate(n),er.constructors[t]==null&&(er.constructors[t]=[]),er.constructors[t].push(n)}static checkForDuplicate(t){for(let n in er.constructors)er.constructors[+n].forEach(a=>{if(a===t)throw new V("Duplicate callback constructor.")})}static clear(){er.constructors={}}static createCallbacks(t){let n=[];for(let a in er.constructors){let r=+a;t>=r&&n.push(...er.constructors[r])}return n.map(a=>new a)}};I0.constructors={};function nC(e,t,n,a,r,s,i,o,l){let u=new Q2,p=[new _H,...I0.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new J2(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ba(e,t={},n=!1){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function fm(e,t){return O(()=>{e.dtype!=="float32"&&(e=re(e,"float32"));let n=fe(Ed(e),t,!0),a=yn(n.shape,qt()),r=rn(fr(n,a));return he(e,r)})}function Zo(e,t){return O(()=>Et(Ed(pe(t,e)),-1))}function Wf(e,t){return O(()=>Et(Lt(pe(t,e)),-1))}function yp(e,t){return O(()=>{let n=pe(e,t),a=an(Lt(e),qt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Et(r,-1))})}function AH(e,t){return O(()=>{let n=an(t,qt(),Number.MAX_VALUE),a=ta(X(1,n)),r=an(e,qt(),Number.MAX_VALUE),s=ta(X(1,r));return Et(Ed(pe(a,s)),-1)})}function FH(e,t){return O(()=>{let n=fr(0,pe(1,z(e,t)));return Et(Ed(n),-1)})}function $H(e,t){return O(()=>{let n=fr(0,pe(1,z(e,t)));return Et(n,-1)})}function DH(e,t){return O(()=>{let n=fe(z(e,t),-1),a=fa(z(pe(1,e),t),-1);return fr(0,X(1,pe(a,n)))})}function RH(e,t){return O(()=>{let n=Math.log(2),a=pe(t,e),r=pe(X(a,jo(z(-2,a))),n);return Et(r,-1)})}function Ec(e,t,n=!1){return O(()=>{if(n)t=qa(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=an(t,qt(),1-qt()),yt(fe(z(re(e,"float32"),ta(t)),t.shape.length-1))})}function gm(e,t,n=!1){return O(()=>{let a=re(mp(WG(e)),"int32");t=an(t,qt(),1-qt());let r=t.shape,s=W(Zl(a,r[r.length-1]),r);return Ec(s,t,n)})}function MH(e,t){if(!w.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 O(()=>{let n=Ke(t),a=yt(Lt(t));return X(pe(n,z(t,e)),gd(mn(a)))})}function Bf(e,t){return O(()=>{let n;return n=an(t,qt(),1-qt()),n=ta(he(n,pe(1,n))),Et(MH(e,n),-1)})}function OH(e,t){return O(()=>{let n=an(e,qt(),1),a=an(t,qt(),1);return fe(z(e,ta(he(n,a))),-1)})}function PH(e,t){return O(()=>{let n=ta(X(qt(),t));return Et(pe(t,z(e,n)),-1)})}function S0(e,t){return O(()=>{let n=fm(e,-1),a=fm(t,-1),r=z(n,a);return yt(fe(r,-1))})}var bm={meanSquaredError:Zo,meanAbsoluteError:Wf,meanAbsolutePercentageError:yp,meanSquaredLogarithmicError:AH,squaredHinge:FH,hinge:$H,categoricalHinge:DH,logcosh:RH,categoricalCrossentropy:Ec,sparseCategoricalCrossentropy:gm,binaryCrossentropy:Bf,kullbackLeiblerDivergence:OH,poisson:PH,cosineProximity:S0};function vx(e){if(typeof e=="string"){if(e in bm)return bm[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 N0(e,t){return O(()=>{let n=z(.5,na(t)),a=lr(Cn(t,n),e.dtype);return Et(ea(e,a),-1)})}function T0(e,t){return O(()=>lr(ea(mi(e,-1),mi(t,-1)),"float32"))}function aC(e,t){return O(()=>re(fe(Fa(ea(e,1),ea(t,1))),"float32"))}function LH(e,t){return O(()=>re(fe(Fa(ea(e,1),ea(t,0))),"float32"))}function zH(e,t){return O(()=>re(fe(Fa(ea(e,0),ea(t,1))),"float32"))}function rC(e,t){return O(()=>{let n=aC(e,t),a=zH(e,t),r=X(n,a);return re(nn(Cn(r,0),he(n,r),0),"float32")})}function WH(e,t){return O(()=>{let n=aC(e,t),a=LH(e,t),r=X(n,a);return re(nn(Cn(r,0),he(n,r),0),"float32")})}function sC(e,t){return Bf(e,t)}function iC(e,t){return e.rank===t.rank&&(e=Rs(e,[e.rank-1])),t=mi(t,-1),t.dtype!==e.dtype&&(t=re(t,e.dtype)),re(ea(e,t),"float32")}function BH(e,t){return O(()=>{let n=e.sub(t).square().sum(),a=e.sub(e.mean()).square().sum();return xe(1).sub(n.div(a))})}var VH=Zo,UH=Zo,GH=Wf,HH=Wf,jH=yp,qH=yp,C0=Ec,KH=S0,oC=gm,ym={binaryAccuracy:N0,categoricalAccuracy:T0,precision:rC,categoricalCrossentropy:C0,sparseCategoricalCrossentropy:oC,mse:VH,MSE:UH,mae:GH,MAE:HH,mape:jH,MAPE:qH,cosine:KH};function XH(e){if(typeof e=="string"&&e in ym)return ym[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Lh(e){if(ar(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(bm))if(bm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(ym))if(ym[n]===e){t=n;break}return t!==void 0?t:e.name}}function YH(e){let t={Adagrad:()=>Zs.adagrad(.01),Adadelta:()=>Zs.adadelta(1,.95,qt()),Adam:()=>Zs.adam(.001,.9,.999,qt()),Adamax:()=>Zs.adamax(.002,.9,.999,qt(),0),RMSProp:()=>Zs.rmsprop(.001,.9,0,qt()),SGD:()=>Zs.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}`)}function qI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Jx(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>1048576&&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 <= 1048576.`)}}function Jx(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"||!Jx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Jx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function ZH(e,t,n,a=console.log){let r=QH(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),xm(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||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 xm(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 ej(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];xm(o,t,n)}function tj(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;c{let t=Object.keys(e);if(t.length===0)return!1;let n=t[0].split("/");return!isNaN(parseInt(n[n.length-1],10))},aj=class tr extends We{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let y=this.getClassName().toLowerCase();this.name=Af(y)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],os(this.inputs).length!==this.inputs.length)throw new V(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(y=>y.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 x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;this.outputLayers.push(x),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(I)}for(let y of this.inputs){let x=y.sourceLayer,v=y.nodeIndex,I=y.tensorIndex;ar(v===0,"input layer has >1 nodes"),ar(I===0,"input layer has >1 tensors"),this.inputLayers.push(x),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(I)}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 n={},a={},r={},s={},i={},o=[],l=(y,x,v,I,N,C)=>{(I==null||N==null||C==null)&&(I=y.sourceLayer,N=y.nodeIndex,C=y.tensorIndex);let _=I.inboundNodes[N];if(v.indexOf(_)!==-1)throw new sr(`The tensor ${y.name} at layer "${I.name}" is part of a cycle.`);if(x.indexOf(_)!==-1)return;this.containerNodes.add(tr.nodeKey(I,N)),I.id in i||(i[I.id]=Object.keys(i).length),v.indexOf(_)===-1&&v.push(_);let F=_.inboundLayers.length;for(let D=0;D=0;)v.splice(v.indexOf(_),1);o.push(_)},u=[],p=[];for(let y of this.outputs)l(y,u,p);let d=o.slice().reverse();for(let y of d){a[y.id]=y,y.id in n||(n[y.id]=0);let x=n[y.id],v=r[y.outboundLayer.id]==null?0:r[y.outboundLayer.id];x=Math.max(x,v),r[y.outboundLayer.id]=x,s[y.outboundLayer.id]=y.outboundLayer,n[y.id]=x;for(let I=0;IparseInt(y,10)).sort(Mh);this.layers=[];for(let y of m){let x=h[y];x.sort((v,I)=>{let N=i[v.id],C=i[I.id];return NC?1:0});for(let v of x)v instanceof tr&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=h,m=Object.keys(c).map(y=>parseInt(y,10)).sort(Mh);let f=this.inputs.slice(),g=[];for(let y of m)for(let x of c[y]){let v=x.outboundLayer;if(v!=null){for(let I of x.inputTensors)if(f.indexOf(I)===-1)throw new sr(`Graph disconnected: cannot obtain value for tensor ${I} at layer "${v.name}". The following previous layers were accessed without issue: ${g}`);for(let I of x.outputTensors)f.push(I);g.push(v.name)}}this.nodesByDepth=c;let b=this.layers.map(y=>y.name);for(let y of b){let x=b.filter(v=>v===y).length;if(x!==1)throw new sr(`The name "${y}" is used ${x} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(b))}this.outboundNodes=[],this.inboundNodes=[],new zf({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let n of this.layers)t.numDisposedVariables+=n.dispose().numDisposedVariables;for(let n of this.internalContainerRefs)t.numDisposedVariables+=n.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(n=>{n._trainableWeights.forEach(a=>a.trainable=t)}),this.trainable_=t}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 t=[];for(let n of this.layers)t=t.concat(n.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let n of this.layers)t.push(...n.nonTrainableWeights);if(!this.trainable){let n=[];for(let a of this.layers)n.push(...a.trainableWeights);return n.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,n=!0){let a={},r=0,s=nj(t);s&&this.parseWeights(t);for(let o of this.layers)for(let[l,u]of o.weights.entries()){let p=s?`${u.name.split("/").slice(0,-1).join("/")+"/"}${l}`:u.originalName;if(a[p]!=null)throw new V(`Duplicate weight name: ${p}`);a[p]=u,r++}let i=[];for(let o in t){let l=o;if(a[o]==null){let u=o.split("/");l=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(a[l]!=null)i.push([a[l],t[o]]);else if(n)throw new V(`Provided weight data has no target variable: ${o}`);delete a[l]}if(n){let o=[];for(let l in a)o.push(l);if(o.length>0)throw new V(`${o.length} of ${r} weights are not set: ${o}`)}b0(i)}parseWeights(t){for(let n in Object.keys(t)){let a=n.split("/"),r=["vars","layer_checkpoint_dependencies"],s=a.map(i=>i.startsWith("_")?i.slice(1):i).filter(i=>!r.includes(i)).join("/");s!==n&&(t[s]=t[n],delete t[n])}}updatedConfig(){let t=this.getConfig(),n={};return n.className=this.getClassName(),n.config=t,n.kerasVersion=`tfjs-layers ${E0}`,n.backend="TensorFlow.js",n}toJSON(t,n=!0){let a=Qx(this.updatedConfig());return n?JSON.stringify(a):a}call(t,n){return O(()=>{t=it(t);let a=new Wl;for(let r=0;r{t=it(t);let a;return n==null?a=xi(null,t.length):a=it(n),this.runInternalGraph(t,a)[1]})}computeOutputShape(t){let n=cm(t);if(n.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let a={};for(let o=0;oparseInt(o,10)).sort(Mh);if(r.length>1)for(let o of r){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer;if(this.inputLayers.map(f=>f.id).indexOf(p.id)!==-1)continue;let d=[];for(let f=0;fparseInt(l,10)).sort(Mh);for(let l of r){let u=this.nodesByDepth[l];for(let p of u){let d=p.outboundLayer,c=p.inputTensors,h=p.outputTensors,m=new Array;for(let f of c)f.id in a&&m.push(a[f.id]);if(m.length===c.length){let f={},g,b,y,x;if(p.callArgs!=null&&(f=p.callArgs),m.length===1){let[v,I]=m[0];f.mask==null&&(f.mask=I),y=it(d.call(v,f)),x=it(d.computeMask(v,I)),g=[v],b=[I]}else g=m.map(v=>v[0]),b=m.map(v=>v[1]),f.mask==null&&(f.mask=b),y=it(d.call(g,f)),x=it(d.computeMask(g,b));if(d.activityRegularizer)throw new ze("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let t=[];for(let n of this.layers)for(let a=0;a0){let f=[];for(let g=0;g0&&g.apply(Mn(y),x)}function u(g){let b=g.name,y=Ba(g,n.customObjects!=null?n.customObjects:{});y.setFastWeightInitDuringBuild(r),s[b]=y,g.inboundNodes.forEach(x=>{if(!(x instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${x}`);o(y,x)})}let p=n.name,d=n.layers;for(let g of d)u(g);for(;!CG(i);)for(let g of d){let b=s[g.name];if(b.name in i){let y=i[b.name];delete i[b.name];for(let x of y)l(b,x)}}let c=[],h=[],m=n.inputLayers;for(let g of m){let b=g[0],y=g[1],x=g[2];ar(b in s);let v=s[b].inboundNodes[y].outputTensors;c.push(v[x])}let f=n.outputLayers;for(let g of f){let b=g[0],y=g[1],x=g[2];ar(b in s);let v=s[b].inboundNodes[y].outputTensors;h.push(v[x])}return new t({inputs:c,outputs:h,name:p})}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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){O(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function rj(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 uC(e,t){return rj(e,t,"classWeight")}async function pC(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=O(()=>{if(e.shape.length===1)return or(e);if(e.shape.length===2){if(e.shape[1]>1)return mi(e,1);if(e.shape[1]===1)return W(e,[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])}),je(i,"float32")}else return null}function sj(e,t){return z(e,t)}var ij=32;function cC(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=KI("input",e.inputNames,n),i=KI("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 KI(e,t,n){if(n instanceof Ce)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 V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function oj(e){if(e.length===3)throw new ze("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function lj(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(XI(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=oj(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 p=tC(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=nC(p,d,n.epochs,null,null,uj(t,n),null,r,u);c.setModel(e),e.history=h,await c.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;XI(n.validationData)?v=it(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):v=it(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?ij:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new ze("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=pj(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=cC(e,u.value),c=p.concat(d),h=O(()=>r(c));if(Ee(c),l===0)for(let f=0;fX(s[f],z(m,g))),l>0&&Ee(b)}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 tc(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>oi(a,t,n-t)):oi(e,t,n-t)}function ev(e,t){return O(()=>e==null?null:Array.isArray(e)?e.map(n=>ev(n,t)):V2(e,t.dtype==="int32"?t:re(t,"int32")))}function kx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function dC(e){let t=[];e instanceof Ce&&(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 Ce)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 dj(e){return e instanceof Ce}function tv(e){return Array.isArray(e)}function YI(e){return!dj(e)&&!tv(e)}function ZI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(tv(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(tv(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=dC(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function hj(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&&!w.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 mj(e,t,n){let a=[Zo,Bf,Ec];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 gj="layers-model",Ar=class extends aj{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).");ZH(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=YH(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Or))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(vx(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=>vx(s))}else{let s=vx(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=fj(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])};ii("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Bf?["accuracy","acc"].indexOf(c)!==-1?p=N0:["crossentropy","ce"].indexOf(c)!==-1&&(p=sC):this.lossFunctions[s]===gm?["accuracy","acc"].indexOf(c)!==-1?p=iC:["crossentropy","ce"].indexOf(c)!==-1&&(p=oC):["accuracy","acc"].indexOf(c)!==-1?p=T0:["crossentropy","ce"].indexOf(c)!==-1&&(p=C0);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=XH(c),u=l+Lh(c);let h;ii(u,()=>{h=d}),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;wx(a);let r=this.standardizeUserDataXY(e,t,!0,a);try{let s=r[0].concat(r[1]);this.makeTestFunction();let i=this.testFunction,o=this.testLoop(i,s,a,n.verbose,n.steps);return Mn(o)}finally{Pa(r[0],e),Pa(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),cj(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 Wl;if(e instanceof Ce&&(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 O(()=>{let a=this.checkNumSamples(e);if(n)throw new ze("Verbose predictLoop() is not implemented yet.");let r=kx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=tc(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return Mn(s.map(i=>et(i,0)))})}predict(e,t={}){let n=dC(e);JI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return wx(a),this.predictLoop(n,a)}finally{Pa(n,e)}}predictOnBatch(e){JI(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 sr("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=uC(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new ze("Verbose mode is not implemented yet.");if(r!=null)throw new ze("steps mode in testLoop() is not implemented yet");{let o=kx(s,n),l=je(Ua(0,s));for(let u=0;u1){let s=PI(e.slice(0,n),a);r+=`_${s}`}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 l=[];for(let c=0;c1&&c{d=X(d,c)}),d},o=this.collectedTrainableWeights.map(l=>l.read());return[this.optimizer_.minimize(i,!0,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>O(()=>{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;l0){if(m=!0,n.validationData.length===2)o=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new ze("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; ${n.validationData} is invalid.`);let N=await this.standardizeUserData(o,l,null,null,!0,c);u=N[0],p=N[1],f=u.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;let N=Math.floor(a[0].shape[0]*(1-n.validationSplit)),C=a[0].shape[0];u=tc(a,N,C),s=a,a=tc(a,0,N),p=tc(r,N,C),i=r,r=tc(r,0,N),f=u.concat(p)}else n.validationSteps!=null&&(m=!0);let g=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let b=this.makeTrainFunction(),y=this.getDedupedMetricsNames(),x,v;m?(this.makeTestFunction(),x=this.testFunction,v=y.slice().concat(y.map(N=>"val_"+N))):(x=null,f=[],v=y.slice());let I=tC(n.callbacks,n.yieldEvery);return await this.fitLoop(b,g,y,c,n.epochs,n.verbose,I,x,f,n.shuffle,v,n.initialEpoch,null,null)}finally{this.isTraining=!1,Pa(a,e),Pa(r,t),Pa(s,e),Pa(i,t),Pa(u,o),Pa(p,l),d!=null&&Ee(d)}}async fitLoop(e,t,n,a,r,s,i,o,l,u,p,d,c,h){a==null&&(a=32),r==null&&(r=1),u==null&&(u=!0),d==null&&(d=0);let m=!1;if(o!=null&&l!=null&&(m=!0),h!=null&&(m=!0,c==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let f=this.checkNumSamples(t,a,c,"steps_per_epoch"),g;f!=null&&(g=Ua(0,f)),s==null&&(s=1);let{callbackList:b,history:y}=nC(i,s,r,d,f,c,a,m,p);b.setModel(this),this.history=y,await b.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let F=N[C][0],D=N[C][1],$=oi(I,F,D-F);_.batch=C,_.size=D-F;let S=ev(t,$),M=e(S);for(let B=0;BNr(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]=Nr(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[Nr(Lh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Nr(Lh(e)));{let e={};for(let t in this.metrics)e[t]=Nr(Lh(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=_c(e.optimizer_config),n=Ba(t),a;if(typeof e.loss=="string")a=ei(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>ei(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=ei(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>ei(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=ei(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let r=jt.getSaveHandlers(e);if(r.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(r.length>1)throw new V(`Found more than one (${r.length}) save handlers for URL '${e}'`);e=r[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={modelTopology:this.toJSON(null,!1),format:gj,generatedBy:`TensorFlow.js tfjs-layers v${E0}`,convertedBy:null};if(t!=null&&t.includeOptimizer&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let r="optimizer",{data:s,specs:i}=await jt.encodeWeights(await this.optimizer.getWeights(),r);n.specs.push(...i),n.data=jt.concatenateArrayBuffers([n.data,s])}return this.userDefinedMetadata!=null&&(qI(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,e.save(a)}setUserDefinedMetadata(e){qI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Ar.className="Model";ne.registerClass(Ar);var hC=class extends Ar{};hC.className="Functional";ne.registerClass(hC);async function bj(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=_c(n),r=Ba(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 yj(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 xj(e,void 0,t)}async function xj(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=Ba(_c(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:p}=vj(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Ee(u),Ee(p.map(d=>d.tensor))}return o}function vj(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 Vf=class nv extends Ar{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:Af("sequential_"),t.layers!=null)for(let n of t.layers)this.add(n)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new V(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let n=t instanceof nv||t instanceof Ar,a;if(n){if(a=t,a.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(a.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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let r=j2({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(r)}if(n)this.outputs=a.outputs,this.inputs=a.inputs;else{if(t.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=H2(this.outputs[0])}this.inboundNodes=[],new zf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:xi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(r=>r.shape),outputShapes:this.outputs[0].shape})}else{let r=t.apply(this.outputs[0]);if(Array.isArray(r))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(t),this.outputs=[r],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,n){return this.model==null&&this.build(),this.model.call(t,n)}build(t){if(Je(t),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 Ar({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(t,n,a=console.log){this.built||this.build(),super.summary(t,n,a)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,n,a={}){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.evaluate(t,n,a)}async evaluateDataset(t,n){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,n)}predict(t,n={}){return this.model==null&&this.build(),this.model.predict(t,n)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,n,a={}){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.fit(t,n,a)}async fitDataset(t,n){if(!this.built)throw new sr("The model needs to be compiled before being used.");return this.model.fitDataset(t,n)}async trainOnBatch(t,n){return this.model.trainOnBatch(t,n)}static fromConfig(t,n,a={},r=!1){let s,i={};if(n instanceof Array){if(n[0].className==null||n[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");s=n}else w.assert(n.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=n.layers,delete n.layers,i=n;let o=new t(i);if(!(o instanceof nv))throw new ze(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(let l of s){let u=Ba(l,void 0,r);r&&u.setFastWeightInitDuringBuild(!0),o.add(u)}return o}set stopTraining(t){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}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 t=[];for(let n of this.layers){let a={};a.className=n.getClassName(),a.config=n.getConfig(),t.push(a)}return{name:this.name,layers:t}}};Vf.className="Sequential";ne.registerClass(Vf);function wj(e){return new Ar(e)}function kj(e){return new Vf(e)}function mC(e){return j2(e)}function Ij(e,t){I0.registerCallbackConstructor(e,t)}var xn=class extends ne.Serializable{getConfig(){return{}}},fC=class extends xn{apply(e,t=1){return VG(e,t)}};fC.className="elu";ne.registerClass(fC);var gC=class extends xn{apply(e){return mf(e)}};gC.className="selu";ne.registerClass(gC);var bC=class extends xn{apply(e){return Ke(e)}};bC.className="relu";ne.registerClass(bC);var yC=class extends xn{apply(e){return O(()=>gs(6,Ke(e)))}};yC.className="relu6";ne.registerClass(yC);var xC=class extends xn{apply(e){return e}};xC.className="linear";ne.registerClass(xC);var vC=class extends xn{apply(e){return ma(e)}};vC.className="sigmoid";ne.registerClass(vC);var wC=class extends xn{apply(e){return GG(e)}};wC.className="hardSigmoid";ne.registerClass(wC);var kC=class extends xn{apply(e){return jo(e)}};kC.className="softplus";ne.registerClass(kC);var IC=class extends xn{apply(e){return UG(e)}};IC.className="softsign";ne.registerClass(IC);var SC=class extends xn{apply(e){return fs(e)}};SC.className="tanh";ne.registerClass(SC);var _0=class extends xn{apply(e,t=-1){return qa(e,t)}};_0.className="softmax";ne.registerClass(_0);var NC=class extends xn{apply(e,t=-1){return of(e,t)}};NC.className="logSoftmax";ne.registerClass(NC);var TC=class extends xn{apply(e){return O(()=>O(()=>{let t=Math.sqrt(2),n=z(.5,X(1,af(he(e,t))));return z(e,n)}))}};TC.className="gelu";ne.registerClass(TC);var CC=class extends xn{apply(e){return O(()=>z(.5,z(e,X(1,fs(z(rn(he(2,Math.PI)),X(e,z(.044715,cr(e,3)))))))))}};CC.className="gelu_new";ne.registerClass(CC);var EC=class extends xn{apply(e){return O(()=>z(e,fs(jo(e))))}};EC.className="mish";ne.registerClass(EC);var _C=class extends xn{apply(e,t=1){return O(()=>z(ma(z(e,t)),e))}};_C.className="swish";ne.registerClass(_C);function ys(e){return e.getClassName()}function Ix(e,t={}){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function xs(e){if(e==null){let t={};return t.className="linear",t.config={},Ix(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},Ix(t)}else return e instanceof xn?e:Ix(e)}function A0(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 AC=class extends ne.Serializable{},Fd=class extends AC{constructor(e){super(),A0(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 O(()=>{let t=It([1]);return this.hasL1&&(t=X(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=X(t,fe(z(this.l2,Ed(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Fd.className="L1L2";ne.registerClass(Fd);function Sj(e){return A0(e),new Fd({l1:e!=null?e.l1:null,l2:0})}function Nj(e){return A0(e),new Fd({l2:e!=null?e.l2:null,l1:0})}var QI={l1l2:"L1L2"};function ft(e){return o0(e)}function eS(e,t={}){return Td(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Nt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in QI?QI[e]:e,config:{}};return eS(t)}else return e instanceof AC?e:eS(e)}var F0=class extends We{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Te(e);let n=Ke(e);return this.maxValue!=null&&(n=an(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};F0.className="ReLU";ne.registerClass(F0);var $0=class extends We{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=Te(e);return fd(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};$0.className="LeakyReLU";ne.registerClass($0);var D0=class extends We{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Nt(e.alphaRegularizer),this.alphaConstraint=Yt(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=Je(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{let n=Te(e),a=t.mask;if(a!=null){let r=z(pe(Pn(n.shape),re(a,n.dtype)),xe(-1e9));n=X(n,r)}return this.axis instanceof Array?this.axis.length>1?mn(pe(n,bd(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(e){return e}getConfig(){let e={axis:this.axis},t=super.getConfig();return Object.assign(e,t),e}};O0.className="Softmax";ne.registerClass(O0);function Gl(e,t,n){if(typeof e=="number")return xi(e,t);if(e.length!==t)throw new V(`The ${n} argument must be an integer or tuple of ${t} integers. Received: ${e.length} elements.`);for(let a=0;a(Rt(t),t==="channelsFirst"?De(e,[0,2,3,1]):e))}function FC(e,t){return O(()=>(Rt(t),t==="channelsFirst"?De(e,[0,2,3,4,1]):e))}function Tj(e,t,n,a=1,r="valid",s,i=1){return O(()=>{if(s==null&&(s=Ga()),Rt(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 ${n.shape.length} instead`);if(s==="channelsFirst"&&(e=De(e,[0,2,1])),r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Qm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ka(o,n)),o})}function tS(e,t,n,a=[1,1],r="valid",s,i,o=null){return O(()=>{if(s==null&&(s=Ga()),Rt(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=P0(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=tu.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=De(l,[0,3,1,2])),l})}function Cj(e,t,n,a=[1,1,1],r="valid",s,i){return O(()=>{if(s==null&&(s=Ga()),Rt(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=FC(e,s);if(r==="causal")throw new ze("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=cw(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ka(o,n)),s==="channelsFirst"&&(o=De(o,[0,4,1,2,3])),o})}var $C=class DC extends We{constructor(t,n){if(super(n),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",DC.verifyArgs(n),this.rank=t,tn(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ze(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Gl(n.kernelSize,t,"kernelSize"),this.strides=Gl(n.strides==null?1:n.strides,t,"strides"),this.padding=n.padding==null?"valid":n.padding,wa(this.padding),this.dataFormat=n.dataFormat==null?"channelsLast":n.dataFormat,Rt(this.dataFormat),this.activation=xs(n.activation),this.useBias=n.useBias==null?!0:n.useBias,this.biasInitializer=St(n.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(n.biasConstraint),this.biasRegularizer=Nt(n.biasRegularizer),this.activityRegularizer=Nt(n.activityRegularizer),this.dilationRate=Gl(n.dilationRate==null?1:n.dilationRate,t,"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(t){if(ar("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!l0(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:ys(this.activation),useBias:this.useBias,biasInitializer:_t(this.biasInitializer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},n=super.getConfig();return Object.assign(t,n),t}},Uf=class RC extends $C{constructor(t,n){super(t,n),this.kernel=null,RC.verifyArgs(n),this.filters=n.filters,tn(this.filters,"filters"),this.kernelInitializer=St(n.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(n.kernelConstraint),this.kernelRegularizer=Nt(n.kernelRegularizer)}build(t){t=Je(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${t[n]}`);let a=t[n],r=this.kernelSize.concat([a,this.filters]);this.kernel=this.addWeight("kernel",r,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:{[n]:a}}],this.built=!0}call(t,n){return O(()=>{t=Te(t);let a,r=this.bias==null?null:this.bias.read(),s=O2(this.activation.getClassName());if(s!=null&&this.rank===2)a=tS(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)a=Tj(t,this.kernel.read(),r,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)a=tS(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)a=Cj(t,this.kernel.read(),r,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ze("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(a=this.activation.apply(a))}return a})}computeOutputShape(t){t=Je(t);let n=[],a=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},Gf=class MC extends Uf{constructor(t){super(2,t),MC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!l0(t.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(t.kernelSize)}.`)}};Gf.className="Conv2D";ne.registerClass(Gf);var Hf=class OC extends Uf{constructor(t){super(3,t),OC.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Hf.className="Conv3D";ne.registerClass(Hf);var L0=class extends Gf{constructor(e){if(super(e),this.inputSpec=[new zt({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=Je(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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(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],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=rr(o,d,u,this.padding),m=rr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,1]));let g=ef(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=De(g,[0,3,1,2])),this.bias!=null&&(g=Ka(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Je(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]=rr(t[a],o,s,this.padding),t[r]=rr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};L0.className="Conv2DTranspose";ne.registerClass(L0);var z0=class extends Hf{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==5)throw new V("Input should have rank 5; 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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return O(()=>{let n=Te(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.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,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],b=rr(l,m,d,this.padding),y=rr(u,f,c,this.padding),x=rr(p,g,h,this.padding),v=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=De(n,[0,2,3,4,1]));let I=dw(n,this.kernel.read(),v,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=De(I,[0,4,1,2,3])),this.bias!==null&&(I=Ka(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=rr(t[a],u,i,this.padding),t[r]=rr(t[r],p,o,this.padding),t[s]=rr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};z0.className="Conv3DTranspose";ne.registerClass(z0);var PC=class extends Uf{constructor(e,t){if(super(e,t),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=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Nt(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Nt(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Te(e);let n;if(this.rank===1)throw new ze("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=De(e,[0,2,3,1])),n=Ds(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=De(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=_t(this.depthwiseInitializer),e.pointwiseInitializer=_t(this.pointwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.pointwiseRegularizer=ft(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};PC.className="SeparableConv";var W0=class extends PC{constructor(e){super(2,e)}};W0.className="SeparableConv2D";ne.registerClass(W0);var B0=class LC extends Uf{constructor(t){super(1,t),LC.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!l0(t.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};B0.className="Conv1D";ne.registerClass(B0);var V0=class extends We{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 O(()=>{if(e=Te(e),this.dataFormat==="channelsLast"){let n=Ph(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ph(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ph(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ph(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}};V0.className="Cropping2D";ne.registerClass(V0);var U0=class extends We{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,MG(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 O(()=>{let n=Te(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=De(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.resizeBilinear(n,[r,s]);return De(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Qn.resizeNearestNeighbor(n,[r,s]):Qn.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};U0.className="UpSampling2D";ne.registerClass(U0);function Ej(e,t,n=[1,1],a="valid",r,s){return O(()=>{r==null&&(r=Ga()),Rt(r);let i=P0(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=As(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}var G0=class extends $C{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Nt(e.depthwiseRegularizer)}build(e){if(e=Je(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 O(()=>{e=Te(e);let n=Ej(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Ka(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Je(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=Va(t,this.kernelSize[0],this.padding,this.strides[0]),s=Va(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=_t(this.depthwiseInitializer),e.depthwiseRegularizer=ft(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};G0.className="DepthwiseConv2D";ne.registerClass(G0);function zC(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 WC(e,t,n,a=!1,r,s,i=!1,o=!1){return O(()=>{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(Ua(2,l));if(t=De(t,u),s!=null)throw new ze("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=re(re(r,"bool"),"float32"),r.rank===l-1&&(r=Gt(r,-1)),r=De(r,u)),a&&(t=ya(t,0),r!=null&&(r=ya(r,0)));let p=[],d,c=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let v=O(()=>{let I=f[b],N=pe(na(I),I),C=X(z(x[0],I),z(c[0],N)),_=c.map((F,D)=>X(z(x[1][D],I),z(F,N)));return{output:C,newStates:_}});d=v.output,c=v.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var Pr=class BC extends We{constructor(t){super(t);let n;if(t.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?n=new Kf({cells:t.cell}):n=t.cell,n.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=n,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ua(0,t).map(n=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Yx(t)&&(t=t[0]),t=t;let n=this.cell.stateSize;Array.isArray(n)||(n=[n]);let a=n[0],r;if(this.returnSequences?r=[t[0],t[1],a]:r=[t[0],a],this.returnState){let s=[];for(let i of n)s.push([t[0],i]);return[r].concat(s)}else return r}computeMask(t,n){return O(()=>{Array.isArray(n)&&(n=n[0]);let a=this.returnSequences?n:null;if(this.returnState){let r=this.states.map(s=>null);return[a].concat(r)}else return a})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,n=[];for(let a=0;ai.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 zt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(t,n=!1){O(()=>{if(!this.stateful)throw new Qr("Cannot call resetStates() on an RNN Layer that is not stateful.");let a=this.inputSpec[0].shape[0];if(a==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(r=>It([a,r])):this.states_=[It([a,this.cell.stateSize])];else if(t==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(r=>It([a,r])):this.states_[0]=It([a,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);n===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let r=0;rHt(r.clone()))})}apply(t,n){let a=n==null?null:n.initialState,r=n==null?null:n.constants;n==null&&(n={});let s=zC(t,a,r,this.numConstants);t=s.inputs,a=s.initialState,r=s.constants;let i=[],o=[];if(a!=null){n.initialState=a,i=i.concat(a),this.stateSpec=[];for(let l of a)this.stateSpec.push(new zt({shape:l.shape}));o=o.concat(this.stateSpec)}if(r!=null&&(n.constants=r,i=i.concat(r),this.numConstants=r.length),i[0]instanceof Ha){let l=[t].concat(i),u=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,n);return this.inputSpec=p,d}else return super.apply(t,n)}call(t,n){return O(()=>{let a=n==null?null:n.mask,r=n==null?null:n.training,s=n==null?null:n.initialState;t=Te(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new V(`RNN Layer has ${i} 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 o={training:r},l=WC((h,m)=>{let f=this.cell.call([h].concat(m),o);return[f[0],f.slice(1)]},t,s,this.goBackwards,a,null,this.unroll,this.returnSequences),u=l[0],p=l[1],d=l[2];this.stateful&&this.resetStates(d,r);let c=this.returnSequences?p:u;return this.returnState?[c].concat(d):c})}getInitialState(t){return O(()=>{let n=It(t.shape);return n=fe(n,[1,2]),n=Cd(n),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(a=>a>1?Kx(n,[1,a]):n):this.cell.stateSize>1?[Kx(n,[1,this.cell.stateSize])]:[n]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),n={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(n.numConstants=this.numConstants);let a=this.cell.getConfig();return this.getClassName()===BC.className&&(n.cell={className:this.cell.getClassName(),config:a}),Object.assign(Object.assign(Object.assign({},a),t),n)}static fromConfig(t,n,a={}){let r=n.cell,s=Ba(r,a);return new t(Object.assign(n,{cell:s}))}};Pr.className="RNN";ne.registerClass(Pr);var $d=class extends We{},jf=class extends $d{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,tn(this.units,"units"),this.activation=xs(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=nu([1,bs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=nu([1,bs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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;0na(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0na(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=ur(z(e,s),this.kernel.read()):r=ur(e,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),i!=null&&(n=z(n,i));let o=X(r,ur(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:ys(this.activation),useBias:this.useBias,kernelInitializer:_t(this.kernelInitializer),recurrentInitializer:_t(this.recurrentInitializer),biasInitializer:_t(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),recurrentRegularizer:ft(this.recurrentRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),recurrentConstraint:Xt(this.recurrentConstraint),biasConstraint:Xt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};jf.className="SimpleRNNCell";ne.registerClass(jf);var H0=class extends Pr{constructor(e){e.cell=new jf(e),super(e)}call(e,t){return O(()=>{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)}};H0.className="SimpleRNN";ne.registerClass(H0);var qf=class extends $d{constructor(e){if(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",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,tn(this.units,"units"),this.activation=xs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=xs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=nu([1,bs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=nu([1,bs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(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 O(()=>{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],0na(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));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)}};j0.className="GRU";ne.registerClass(j0);var Dd=class extends $d{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,tn(this.units,"units"),this.activation=xs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=xs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Nt(e.kernelRegularizer),this.recurrentRegularizer=Nt(e.recurrentRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=nu([1,bs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=nu([1,bs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Je(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 Ra{apply(i,o){let l=r.apply([s]),u=new $f().apply([s]),p=r.apply([s*2]);return zI(zI(l,u),p)}},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 O(()=>{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],0na(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;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)}};q0.className="LSTM";ne.registerClass(q0);var Kf=class extends $d{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 O(()=>{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{ii(`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(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ba(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 Zx(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):U2(t(),n),o=()=>_d(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var _j=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 O(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){O(()=>{if(!this.stateful)throw new Qr("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(()=>It(r)):this.states_=[It(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(()=>It(r)):this.states_[0]=It(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;sHt(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],p=Va(l,a[0],r,s[0],i[0]),d=Va(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};VC.className="ConvRNN2D";var Xf=class extends Dd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,tn(this.filters,"filters"),this.kernelSize=Gl(n,2,"kernelSize"),this.kernelSize.forEach(o=>tn(o,"kernelSize")),this.strides=Gl(a||1,2,"strides"),this.strides.forEach(o=>tn(o,"strides")),this.padding=r||"valid",wa(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=Gl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>tn(o,"dilationRate"))}build(e){var t;e=Je(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 Ra{apply(p,d){let c=l.apply([u]),h=Pn([u]),m=l.apply([u*2]);return u0([c,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 O(()=>{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;0na(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0na(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),b=l(r,h,3),y=3,[x,v,I,N]=Ln(this.kernel.read(),i,y),[C,_,F,D]=this.useBias?Ln(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,v,_,this.padding),d=this.inputConv(d,I,F,this.padding),c=this.inputConv(c,N,D,this.padding);let[$,S,M,B]=Ln(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,$),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,B);let U=this.recurrentActivation.apply(X(u,m)),H=this.recurrentActivation.apply(X(p,f)),q=X(z(H,s),z(U,this.activation.apply(X(d,g)))),K=z(this.recurrentActivation.apply(X(c,b)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=_j(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=$t(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Ka(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Xf.className="ConvLSTM2DCell";ne.registerClass(Xf);var K0=class extends VC{constructor(e){let t=new Xf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};K0.className="ConvLSTM2D";ne.registerClass(K0);var Yf=class extends We{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=Te(e);if(0U2(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()}};Yf.className="Dropout";ne.registerClass(Yf);var X0=class extends Yf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};X0.className="SpatialDropout1D";ne.registerClass(X0);var Y0=class extends We{constructor(e){if(super(e),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,tn(this.units,"units"),this.activation=xs(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Nt(e.kernelRegularizer),this.biasRegularizer=Nt(e.biasRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Je(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=Je(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=O2(this.activation.getClassName()),r;return a!=null?r=ur(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=ur(n,this.kernel.read()),this.bias!=null&&(r=Ka(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ys(this.activation),useBias:this.useBias,kernelInitializer:_t(this.kernelInitializer),biasInitializer:_t(this.biasInitializer),kernelRegularizer:ft(this.kernelRegularizer),biasRegularizer:ft(this.biasRegularizer),activityRegularizer:ft(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Y0.className="Dense";ne.registerClass(Y0);var Z0=class extends We{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Je(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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Te(e);return this.activation.apply(n)})}getConfig(){let e={activation:ys(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};J0.className="Activation";ne.registerClass(J0);var Q0=class extends We{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 O(()=>(e=Te(e),zG(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Q0.className="RepeatVector";ne.registerClass(Q0);var e1=class extends We{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Te(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};e1.className="Reshape";ne.registerClass(e1);var t1=class extends We{constructor(e){if(super(e),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=Ua(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Je(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return De(Te(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};t1.className="Permute";ne.registerClass(t1);var n1=class extends We{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=Te(e);return Sc(bi(n,this.maskValue),-1)}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=Te(e),a=Sc(bi(n,this.maskValue),-1,!0);return z(n,re(a,n.dtype))})}};n1.className="Masking";ne.registerClass(n1);var a1=class extends We{constructor(e){if(super(e),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(it(e.inputLength))}this.inputDim=e.inputDim,tn(this.inputDim,"inputDim"),this.outputDim=e.outputDim,tn(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Nt(e.embeddingsRegularizer),this.activityRegularizer=Nt(e.activityRegularizer),this.embeddingsConstraint=Yt(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 O(()=>this.maskZero?(e=Te(e),bi(e,qe(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=it(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=Te(e);n.dtype!=="int32"&&(n=lr(n,"int32"));let a=V2(this.embeddings.read(),W(n,[n.size]));return W(a,Je(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:_t(this.embeddingsInitializer),embeddingsRegularizer:ft(this.embeddingsRegularizer),activityRegularizer:ft(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};a1.className="Embedding";ne.registerClass(a1);var Jo=class extends We{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new ze}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 O(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=bs(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ua(1,l).concat([0]);n.push(De(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],p=[u].concat(o.slice(0,o.length-1));s=W(De(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ua(0,i-1));s=De(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:Gt(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 O(()=>u0(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 O(()=>{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 ze("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 ze("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 O(()=>{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 p=l;p"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 ze("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)=>nc(r,e[s].shape.length)):a=[nc(this.axes,t.shape.length),nc(this.axes,n.shape.length)],this.normalize&&(t=fm(t,a[0]),n=fm(n,a[1])),Aj(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[nc(this.axes,e.length),nc(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 ze("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}};p1.className="Dot";ne.registerClass(p1);var c1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return _d(()=>X(Ff(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};c1.className="GaussianNoise";ne.registerClass(c1);var d1=class extends We{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 O(()=>{this.invokeCallHook(e,t);let n=Te(e);return this.rate>0&&this.rate<1?_d(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Ff(n.shape,1,a))},()=>n,t.training||!1):n})}};d1.className="GaussianDropout";ne.registerClass(d1);var h1=class extends We{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Te(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 O(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return _d(()=>{let a=Te(e),r=-1.6732632423543772*1.0507009873554805,s=Rr($s(n),this.rate);s=lr(s,"float32");let i=((1-this.rate)*(1+this.rate*r**2))**-.5,o=-i*r*this.rate,l=X(z(a,s),z(X(s,-1),r));return X(z(l,i),o)},()=>Te(e),t.training||!1)}return e})}};h1.className="AlphaDropout";ne.registerClass(h1);function Ac(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=tw(e,t,n,a,r,s);else if(e.rank===3)i=nw(e,t,n,a,r,s);else if(e.rank===4)i=aw(e,t,n,a,r,s);else throw new ze(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function Fj(e,t,n,a,r=.001){return O(()=>{let s=xd(e,a),i=s.mean,o=s.variance;return[Ac(e,i,o,n,t,r),i,o]})}function $j(e,t,n,a,r=.001){return O(()=>{let s=xd(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ua(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Ac(e,u,p,c,d,r),i,o]})}function Dj(e,t,n,a,r=.001){return w.arraysEqual(a.slice().sort(),Ua(0,e.rank-1))?Fj(e,t,n,a,r):$j(e,t,n,a,r)}var m1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer)}build(e){e=Je(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 zt({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 O(()=>{let n=t.training==null?!1:t.training,a=Te(e),r=a.shape,s=r.length,i=Ua(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=xi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!w.arraysEqual(u,Ua(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),b=W(this.movingVariance.read(),l),y=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Ac(a,g,b,y,x,this.epsilon)}else return Ac(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 d();let[c,h,m]=Dj(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{O(()=>{let x=1-y,v=g.read(),I=z(pe(v,b),x);g.write(pe(v,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:_t(this.betaInitializer),gammaInitializer:_t(this.gammaInitializer),movingMeanInitializer:_t(this.movingMeanInitializer),movingVarianceInitializer:_t(this.movingVarianceInitializer),betaRegularizer:ft(this.betaRegularizer),gammaRegularizer:ft(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};m1.className="BatchNormalization";ne.registerClass(m1);var f1=class extends We{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=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Nt(e.betaRegularizer),this.gammaRegularizer=Nt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Je(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=Te(e),a=n.shape,r=a.length;return O(()=>{let{mean:s,variance:i}=xd(n,this.axis,!0),o=xi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{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=Ga()),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]],va(e,a)})}var g1=class extends We{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ga():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 zt({ndim:4})]}computeOutputShape(e){e=Je(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 O(()=>Rj(Te(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};g1.className="ZeroPadding2D";ne.registerClass(g1);function Zf(e,t,n,a,r,s){return O(()=>{Rt(r),L2(s),wa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=P0(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=xa(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,3,1,2])),i})}function UC(e,t,n,a,r,s){return O(()=>{Rt(r),L2(s),wa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=FC(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Cw(e,t,n,o):i=ew(e,t,n,o),r==="channelsFirst"&&(i=De(i,[0,4,1,2,3])),i})}var GC=class extends We{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(tn(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)}`);tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,wa(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Je(e);let t=Va(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return O(()=>{this.invokeCallHook(e,t),e=Cd(Te(e),2);let n=this.poolingFunction(Te(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Rs(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},b1=class extends GC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Zf(e,t,n,a,r,"max")}};b1.className="MaxPooling1D";ne.registerClass(b1);var y1=class extends GC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Zf(e,t,n,a,r,"avg")}};y1.className="AveragePooling1D";ne.registerClass(y1);var HC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),wa(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},x1=class extends HC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Zf(e,t,n,a,r,"max")}};x1.className="MaxPooling2D";ne.registerClass(x1);var v1=class extends HC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),Zf(e,t,n,a,r,"avg")}};v1.className="AveragePooling2D";ne.registerClass(v1);var jC=class extends We{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];tn(this.poolSize,"poolSize"),tn(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),wa(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Je(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=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(n,this.poolSize[1],this.padding,this.strides[1]),a=Va(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(Te(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}},w1=class extends jC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),UC(e,t,n,a,r,"max")}};w1.className="MaxPooling3D";ne.registerClass(w1);var k1=class extends jC{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),wa(a),UC(e,t,n,a,r,"avg")}};k1.className="AveragePooling3D";ne.registerClass(k1);var qC=class extends We{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ze}},I1=class extends qC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return Et(n,1)})}};I1.className="GlobalAveragePooling1D";ne.registerClass(I1);var S1=class extends qC{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=Te(e);return fa(n,1)})}};S1.className="GlobalMaxPooling1D";ne.registerClass(S1);var KC=class extends We{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ze}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},N1=class extends KC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?Et(n,[1,2]):Et(n,[2,3])})}};N1.className="GlobalAveragePooling2D";ne.registerClass(N1);var T1=class extends KC{call(e,t){return O(()=>{let n=Te(e);return this.dataFormat==="channelsLast"?fa(n,[1,2]):fa(n,[2,3])})}};T1.className="GlobalMaxPooling2D";ne.registerClass(T1);var XC=class extends We{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=Ba(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},C1=class extends XC{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Je(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=Je(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 O(()=>(e=Te(e),WC((n,a)=>[Te(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};C1.className="TimeDistributed";ne.registerClass(C1);function Mj(e){Yo(RG,"BidirectionalMergeMode",e)}var Oj="concat",E1=class extends XC{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ba(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ba(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?Oj:e.mergeMode,Mj(this.mergeMode),e.weights)throw new ze("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()):Mn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=zC(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(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new ze("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ha;for(let l of s)if(l instanceof Ha!==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),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return O(()=>{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=ya(r,1));let i;return this.mergeMode==="concat"?i=u0([a,r]):this.mergeMode==="sum"?i=X(a,r):this.mergeMode==="ave"?i=z(.5,X(a,r)):this.mergeMode==="mul"?i=z(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){ii(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),ii(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=Ba(t.layer);if(delete t.layer,t.numConstants!=null)throw new ze("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};E1.className="Bidirectional";ne.registerClass(E1);var _1=class extends We{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>(e=Te(e),e.dtype!=="float32"&&(e=lr(e,"float32")),X(z(e,this.scale),this.offset)))}};_1.className="Rescaling";ne.registerClass(_1);var{resizeBilinear:Pj,cropAndResize:Lj}=Qn,A1=class extends We{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,a,r,s,i,o){return O(()=>{let l,u=!1,p=t/s,d=n/i,c=(a+t)/s,h=(r+n)/i,m=[p,d,c,h],f=[];e.rank===3?(u=!0,l=Ft([e])):l=e;for(let x=0;x{let r=Pj(e,[t,n]);return lr(r,a)})}call(e,t){return O(()=>{let n=Te(e),a=n.dtype,r=n.shape,s=r[r.length-3],i=r[r.length-2],o=0;s!==this.height&&(o=Math.floor((s-this.height)/2));let l=0;return i!==this.width&&(l=Math.floor((i-this.width)/2),l===0&&(l=1)),o>=0&&l>=0?this.centerCrop(n,o,l,this.height,this.width,s,i,a):this.upsize(e,this.height,this.width,a)})}getConfig(){let e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};A1.className="CenterCrop";ne.registerClass(A1);function zj(e,t,n,a){let r=Te(e);if(r.dtype!=="int32"&&(r=lr(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Gt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Gt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=um(o,a,n,i):l=um(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var F1=class extends We{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Je(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return O(()=>{e=Te(e),e.dtype!=="int32"&&(e=lr(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. + Received countWeights=${t.countWeights}`);n=Te(t.countWeights)}let a=fa(e),r=Xl(e),s=Cn(this.numTokens,a).bufferSync().get(0),i=Rr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return zj(e,this.outputMode,this.numTokens,n)})}};F1.className="CategoryEncoding";ne.registerClass(F1);var Wj=["bilinear","nearest"],nS=new Set(Wj),$1=class extends We{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(nS.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!e.cropToAspectRatio}computeOutputShape(e){e=Je(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Qn.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Qn.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...nS]} are supported`)})}};$1.className="Resizing";ne.registerClass($1);var YC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};YC.className="RandomSeed";var ZC=class extends We{constructor(e){super(e),this.randomGenerator=new YC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};ZC.className="BaseRandomLayer";var Bj=["bilinear","nearest"],aS=new Set(Bj),D1=class extends ZC{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=Te(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=Fs([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return Qn.resizeBilinear(e,s);case"nearest":return Qn.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} - but only ${[...aS]} are supported`)}})}};D1.className="RandomWidth";ne.registerClass(D1);function z6(e){return new bp(e)}function W6(e){return new R0(e)}function B6(e){return new F0(e)}function V6(e){return new $0(e)}function U6(e){return new D0(e)}function G6(e){return new O0(e)}function H6(e){return new M0(e)}function q6(e){return new B0(e)}function j6(e){return new Uf(e)}function K6(e){return new L0(e)}function X6(e){return new Gf(e)}function Y6(e){return new z0(e)}function Z6(e){return new W0(e)}function J6(e){return new V0(e)}function Q6(e){return new U0(e)}function eq(e){return new G0(e)}function tq(e){return new J0(e)}function nq(e){return new Y0(e)}function aq(e){return new Xf(e)}function rq(e){return new X0(e)}function sq(e){return new Z0(e)}function iq(e){return new Q0(e)}function oq(e){return new e1(e)}function lq(e){return new t1(e)}function uq(e){return new a1(e)}function pq(e){return new r1(e)}function cq(e){return new i1(e)}function dq(e){return new u1(e)}function hq(e){return new o1(e)}function mq(e){return new l1(e)}function fq(e){return new s1(e)}function gq(e){return new p1(e)}function bq(e){return new m1(e)}function yq(e){return new f1(e)}function xq(e){return new g1(e)}function R1(e){return new y1(e)}function vq(e){return R1(e)}function wq(e){return R1(e)}function M1(e){return new v1(e)}function kq(e){return M1(e)}function Iq(e){return M1(e)}function O1(e){return new k1(e)}function Sq(e){return O1(e)}function Nq(e){return O1(e)}function Tq(e){return new I1(e)}function Cq(e){return new N1(e)}function YC(e){return new S1(e)}function ZC(e){return new T1(e)}function JC(e){return new b1(e)}function QC(e){return new x1(e)}function Eq(e){return new w1(e)}function _q(e){return new q0(e)}function Aq(e){return new qf(e)}function Fq(e){return new j0(e)}function $q(e){return new Dd(e)}function Dq(e){return new H0(e)}function Rq(e){return new Hf(e)}function Mq(e){return new K0(e)}function Oq(e){return new Kf(e)}function Pq(e){return new Pr(e)}function Lq(e){return new jf(e)}function zq(e){return new E1(e)}function Wq(e){return new C1(e)}var Bq=YC,Vq=ZC,Uq=JC,Gq=QC;function Hq(e){return new c1(e)}function qq(e){return new d1(e)}function jq(e){return new h1(e)}function Kq(e){return new n1(e)}function Xq(e){return new _1(e)}function Yq(e){return new A1(e)}function Zq(e){return new $1(e)}function Jq(e){return new F1(e)}function Qq(e){return new D1(e)}var eE={};_e(eE,{MAPE:()=>pj,MSE:()=>hj,binaryAccuracy:()=>ej,binaryCrossentropy:()=>tj,categoricalAccuracy:()=>aj,categoricalCrossentropy:()=>rj,cosineProximity:()=>oj,mape:()=>cj,meanAbsoluteError:()=>lj,meanAbsolutePercentageError:()=>uj,meanSquaredError:()=>dj,mse:()=>mj,precision:()=>sj,recall:()=>ij,sparseCategoricalAccuracy:()=>nj});function ej(e,t){return N0(e,t)}function tj(e,t){return sC(e,t)}function nj(e,t){return iC(e,t)}function aj(e,t){return T0(e,t)}function rj(e,t){return C0(e,t)}function sj(e,t){return rC(e,t)}function ij(e,t){return LH(e,t)}function oj(e,t){return S0(e,t)}function lj(e,t){return zf(e,t)}function uj(e,t){return yp(e,t)}function pj(e,t){return yp(e,t)}function cj(e,t){return yp(e,t)}function dj(e,t){return Zo(e,t)}function hj(e,t){return Zo(e,t)}function mj(e,t){return Zo(e,t)}var tE={};_e(tE,{modelFromJSON:()=>m6});var nE={};_e(nE,{l1:()=>gj,l1l2:()=>fj,l2:()=>bj});function fj(e){return new Fd(e)}function gj(e){return w6(e)}function bj(e){return k6(e)}var aE=class extends au{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof _r))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function zh(e,t){return et}var rE=class extends aE{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new ze("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=zh:this.mode==="max"?this.monitorFunc=rS:this.monitor.indexOf("acc")!==-1?this.monitorFunc=rS:this.monitorFunc=zh,this.monitorFunc===zh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===zh?1/0:-1/0}async onEpochEnd(e,t){await Jr(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 yj(e){return new rE(e)}var xj={earlyStopping:yj},vj=G();vj.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Xn;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Xn||(Xn={}));var sS;(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={}))})(sS||(sS={}));var P1={};function wj(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};P1[e]=n}function sE(e){return P1[e]}function kj(e){delete P1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return cn(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>cn(h,n,a,r))}let p=cn(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:w.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function cn(e,t,n,a){let[r,s]=Zn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[vm(r,o)]);return i!==void 0?t[vm(r,i)][s]:void 0}function iS(e,t,n){return t[vm(e,n.currentContextId)]}function Nr(e,t){let[n,a,r]=Zn(e,t);return[vm(n,t&&t.currentContextId),a,r]}function vm(e,t){return t?`${e}-${t}`:e}function Zn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Xh(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 Tr(e){return e.kept?e:or(e)}var iE={};_e(iE,{json:()=>Ij});var Ij=[{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}]}],oE={};_e(oE,{json:()=>Sj});var Sj=[{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:"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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],lE={};_e(lE,{json:()=>Nj});var Nj=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],uE={};_e(uE,{json:()=>Tj});var Tj=[{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",defaultValue:.2}]},{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"}]}],pE={};_e(pE,{json:()=>Cj});var Cj=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],cE={};_e(cE,{json:()=>Ej});var Ej=[{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}]}],dE={};_e(dE,{json:()=>_j});var _j=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],hE={};_e(hE,{json:()=>Aj});var Aj=[{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"}]}],mE={};_e(mE,{json:()=>Fj});var Fj=[{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"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],fE={};_e(fE,{json:()=>$j});var $j=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],gE={};_e(gE,{json:()=>Dj});var Dj=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],bE={};_e(bE,{json:()=>Rj});var Rj=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],yE={};_e(yE,{json:()=>Mj});var Mj=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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"}]}],xE={};_e(xE,{json:()=>Oj});var Oj=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",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"}]},{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"}]}],vE={};_e(vE,{json:()=>Pj});var Pj=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],wE={};_e(wE,{json:()=>Lj});var Lj=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],kE={};_e(kE,{json:()=>zj});var zj=[{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}]}],IE={};_e(IE,{json:()=>Wj});var Wj=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],SE={};_e(SE,{json:()=>Bj});var Bj=[{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:"EnsureShape",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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],oS=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[iE,oE,lE,uE,pE,cE,dE,hE,mE,fE,gE,bE,yE,xE,vE,wE,kE,IE,SE],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={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,b)=>{let[y,,x]=Nr(g),v=i[y];if(v.outputs!=null){let I=v.outputs.indexOf(x);if(I!==-1){let N=`${y}:${I}`;f.inputNames[b]=N}}f.inputs.push(v),v.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=Nr(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=Nr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=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:c};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=sE(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.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};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=nv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=nv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=uv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=uv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=rv(e.attr,r.tfName,r.defaultValue||0),i===void 0&&r.tfDeprecatedName&&(i=rv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=lv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=lv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=av(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=av(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=cv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=cv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=ov(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=ov(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=pv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=pv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=sv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=sv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=iv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=iv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=lS(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=lS(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,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=Nr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:L1(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=Nr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Nr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});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 Vj(e){let t=G().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 NE(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):Vj(e);return t?n:n.toLowerCase()}function nv(e,t,n,a=!1){let r=e[t];return r!=null?NE(r.s,a):n}function av(e,t,n){let a=e[t];return a?a.b:n}function rv(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 L1(e){switch(typeof e=="string"&&(e=Xn[e]),e){case Xn.DT_FLOAT:case Xn.DT_HALF:return"float32";case Xn.DT_INT32:case Xn.DT_INT64:case Xn.DT_INT8:case Xn.DT_UINT8:return"int32";case Xn.DT_BOOL:return"bool";case Xn.DT_DOUBLE:return"float32";case Xn.DT_STRING:return"string";case Xn.DT_COMPLEX64:case Xn.DT_COMPLEX128:return"complex64";default:return null}}function lS(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function sv(e,t,n){let a=e[t];return a&&a.type?L1(a.type):n}function iv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>L1(r)):n}function TE(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function ov(e,t,n){let a=e[t];return a&&a.shape?TE(a.shape):n}function lv(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 uv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>NE(s,a)):n}function pv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>TE(r)):n}function cv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var Uj=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 cn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return cn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return rv(this.node.rawAttrs,e,t);if(n.s!=null)return nv(this.node.rawAttrs,e,t);if(n.b!=null)return av(this.node.rawAttrs,e,t);if(n.shape!=null)return ov(this.node.rawAttrs,e,t);if(n.type!=null)return sv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return lv(this.node.rawAttrs,e,t);if(n.list.s!=null)return uv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return pv(this.node.rawAttrs,e,t);if(n.list.b!=null)return cv(this.node.rawAttrs,e,t);if(n.list.type!=null)return iv(this.node.rawAttrs,e,t)}return t}},sn={};_e(sn,{OP_SCOPE_SUFFIX:()=>Lv,abs:()=>Lt,acos:()=>Gv,acosh:()=>Hv,add:()=>X,addN:()=>VN,all:()=>Jm,any:()=>Sc,argMax:()=>hi,argMin:()=>qv,asin:()=>jv,asinh:()=>Kv,atan:()=>Xv,atan2:()=>Yv,atanh:()=>Zv,avgPool:()=>xa,avgPool3d:()=>Qv,basicLSTMCell:()=>qN,batchNorm:()=>Es,batchNorm2d:()=>ew,batchNorm3d:()=>tw,batchNorm4d:()=>nw,batchToSpaceND:()=>dd,bincount:()=>aw,bitwiseAnd:()=>jN,booleanMaskAsync:()=>OT,broadcastArgs:()=>KN,broadcastTo:()=>ri,buffer:()=>Pe,cast:()=>re,ceil:()=>rw,clipByValue:()=>an,clone:()=>or,complex:()=>Ar,concat:()=>et,concat1d:()=>sw,concat2d:()=>iw,concat3d:()=>ow,concat4d:()=>lw,conv1d:()=>Qm,conv2d:()=>$t,conv2dTranspose:()=>ef,conv3d:()=>pw,conv3dTranspose:()=>cw,cos:()=>hd,cosh:()=>tf,cosineWindow:()=>If,cumprod:()=>Cc,cumsum:()=>nf,denseBincount:()=>um,depthToSpace:()=>dw,depthwiseConv2d:()=>_s,diag:()=>YN,dilation2d:()=>hw,div:()=>he,divNoNan:()=>mw,dot:()=>fw,dropout:()=>Hw,einsum:()=>Js,elu:()=>dp,enclosingPowerOfTwo:()=>qw,ensureShape:()=>JN,equal:()=>ea,erf:()=>gw,euclideanNorm:()=>xw,exp:()=>mn,expandDims:()=>Gt,expm1:()=>vw,eye:()=>af,fft:()=>Id,fill:()=>yn,floor:()=>mp,floorDiv:()=>Zm,fused:()=>tu,gather:()=>fp,gatherND:()=>WT,greater:()=>Tn,greaterEqual:()=>Rr,ifft:()=>eu,imag:()=>md,image:()=>Qn,inTopKAsync:()=>BT,irfft:()=>bf,isFinite:()=>ww,isInf:()=>kw,isNaN:()=>Iw,leakyRelu:()=>fd,less:()=>Yl,lessEqual:()=>As,linalg:()=>Xw,linspace:()=>aT,localResponseNormalization:()=>Sw,log:()=>ta,log1p:()=>gd,logSigmoid:()=>Nw,logSoftmax:()=>sf,logSumExp:()=>bd,logicalAnd:()=>Fa,logicalNot:()=>yd,logicalOr:()=>of,logicalXor:()=>Tw,losses:()=>QT,lowerBound:()=>sT,matMul:()=>$e,max:()=>fa,maxPool:()=>Dt,maxPool3d:()=>Cw,maxPoolWithArgmax:()=>iT,maximum:()=>mr,mean:()=>Et,meshgrid:()=>oT,min:()=>Xl,minimum:()=>fs,mirrorPad:()=>Ew,mod:()=>_w,moments:()=>xd,movingAverage:()=>PT,mul:()=>z,multiRNNCell:()=>lT,multinomial:()=>uT,neg:()=>yt,norm:()=>hp,notEqual:()=>bi,oneHot:()=>Zl,ones:()=>On,onesLike:()=>na,op:()=>L,outerProduct:()=>pT,pad:()=>va,pad1d:()=>cT,pad2d:()=>dT,pad3d:()=>hT,pad4d:()=>mT,pool:()=>Aw,pow:()=>Fr,prelu:()=>wd,print:()=>Uv,prod:()=>Fw,raggedGather:()=>fT,raggedRange:()=>gT,raggedTensorToTensor:()=>bT,rand:()=>yT,randomGamma:()=>kT,randomNormal:()=>uf,randomStandardNormal:()=>IT,randomUniform:()=>Fs,randomUniformInt:()=>ST,range:()=>yi,real:()=>Jl,reciprocal:()=>Ow,relu:()=>Ke,relu6:()=>pf,reshape:()=>W,reverse:()=>ya,reverse1d:()=>NT,reverse2d:()=>TT,reverse3d:()=>CT,reverse4d:()=>ET,rfft:()=>Sd,round:()=>cf,rsqrt:()=>df,scalar:()=>ve,scatterND:()=>LT,searchSorted:()=>lf,selu:()=>hf,separableConv2d:()=>$s,setdiff1dAsync:()=>_T,sigmoid:()=>ma,sign:()=>Pw,signal:()=>JT,sin:()=>mf,sinh:()=>ff,slice:()=>Ve,slice1d:()=>kd,slice2d:()=>gf,slice3d:()=>jo,slice4d:()=>Ql,softmax:()=>ja,softplus:()=>qo,spaceToBatchND:()=>vd,sparse:()=>e2,sparseToDense:()=>zT,spectral:()=>ZT,split:()=>Pn,sqrt:()=>hn,square:()=>pt,squaredDifference:()=>yf,squeeze:()=>Ds,stack:()=>Ft,step:()=>Ko,stridedSlice:()=>Lw,string:()=>t2,sub:()=>pe,sum:()=>fe,tan:()=>zw,tanh:()=>fi,tensor:()=>bn,tensor1d:()=>qe,tensor2d:()=>Aa,tensor3d:()=>Nd,tensor4d:()=>Da,tensor5d:()=>AT,tensor6d:()=>FT,tensorScatterUpdate:()=>DT,tile:()=>Mn,topk:()=>Bw,transpose:()=>De,truncatedNormal:()=>wf,unique:()=>Vw,unsortedSegmentSum:()=>kf,unstack:()=>dt,upperBound:()=>RT,variable:()=>Uw,where:()=>nn,whereAsync:()=>Gw,zeros:()=>It,zerosLike:()=>je});var Gj=(e,t,n,a=sn)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Hj=(e,t,n,a=sn)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(cn(e.inputNames[0],t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(cn(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(cn(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(cn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function _a(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 uS(e){return!(typeof e=="number"||e.some(t=>t<0))}function ac(e,t,n){let a=dv(e,n),r=!uS(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=dv(s.shape,a)}),!uS(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function dv(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 qj=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=ve(0),Ht(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}, + `);if(n)if(aS.has(n))this.interpolation=n;else throw new V(`Invalid interpolation parameter: ${n} is not implemented`)}getConfig(){let e={factor:this.factor,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e[2];return[this.imgHeight,-1,t]}call(e,t){return O(()=>{let n=Te(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=$s([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return Qn.resizeBilinear(e,s);case"nearest":return Qn.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolation is ${this.interpolation} + but only ${[...aS]} are supported`)}})}};D1.className="RandomWidth";ne.registerClass(D1);function Vj(e){return new bp(e)}function Uj(e){return new R0(e)}function Gj(e){return new F0(e)}function Hj(e){return new $0(e)}function jj(e){return new D0(e)}function qj(e){return new O0(e)}function Kj(e){return new M0(e)}function Xj(e){return new B0(e)}function Yj(e){return new Gf(e)}function Zj(e){return new L0(e)}function Jj(e){return new Hf(e)}function Qj(e){return new z0(e)}function e6(e){return new W0(e)}function t6(e){return new V0(e)}function n6(e){return new U0(e)}function a6(e){return new G0(e)}function r6(e){return new J0(e)}function s6(e){return new Y0(e)}function i6(e){return new Yf(e)}function o6(e){return new X0(e)}function l6(e){return new Z0(e)}function u6(e){return new Q0(e)}function p6(e){return new e1(e)}function c6(e){return new t1(e)}function d6(e){return new a1(e)}function h6(e){return new r1(e)}function m6(e){return new i1(e)}function f6(e){return new u1(e)}function g6(e){return new o1(e)}function b6(e){return new l1(e)}function y6(e){return new s1(e)}function x6(e){return new p1(e)}function v6(e){return new m1(e)}function w6(e){return new f1(e)}function k6(e){return new g1(e)}function R1(e){return new y1(e)}function I6(e){return R1(e)}function S6(e){return R1(e)}function M1(e){return new v1(e)}function N6(e){return M1(e)}function T6(e){return M1(e)}function O1(e){return new k1(e)}function C6(e){return O1(e)}function E6(e){return O1(e)}function _6(e){return new I1(e)}function A6(e){return new N1(e)}function JC(e){return new S1(e)}function QC(e){return new T1(e)}function eE(e){return new b1(e)}function tE(e){return new x1(e)}function F6(e){return new w1(e)}function $6(e){return new j0(e)}function D6(e){return new qf(e)}function R6(e){return new q0(e)}function M6(e){return new Dd(e)}function O6(e){return new H0(e)}function P6(e){return new jf(e)}function L6(e){return new K0(e)}function z6(e){return new Xf(e)}function W6(e){return new Pr(e)}function B6(e){return new Kf(e)}function V6(e){return new E1(e)}function U6(e){return new C1(e)}var G6=JC,H6=QC,j6=eE,q6=tE;function K6(e){return new c1(e)}function X6(e){return new d1(e)}function Y6(e){return new h1(e)}function Z6(e){return new n1(e)}function J6(e){return new _1(e)}function Q6(e){return new A1(e)}function eq(e){return new $1(e)}function tq(e){return new F1(e)}function nq(e){return new D1(e)}var nE={};_e(nE,{MAPE:()=>hq,MSE:()=>gq,binaryAccuracy:()=>aq,binaryCrossentropy:()=>rq,categoricalAccuracy:()=>iq,categoricalCrossentropy:()=>oq,cosineProximity:()=>pq,mape:()=>mq,meanAbsoluteError:()=>cq,meanAbsolutePercentageError:()=>dq,meanSquaredError:()=>fq,mse:()=>bq,precision:()=>lq,r2Score:()=>yq,recall:()=>uq,sparseCategoricalAccuracy:()=>sq});function aq(e,t){return N0(e,t)}function rq(e,t){return sC(e,t)}function sq(e,t){return iC(e,t)}function iq(e,t){return T0(e,t)}function oq(e,t){return C0(e,t)}function lq(e,t){return rC(e,t)}function uq(e,t){return WH(e,t)}function pq(e,t){return S0(e,t)}function cq(e,t){return Wf(e,t)}function dq(e,t){return yp(e,t)}function hq(e,t){return yp(e,t)}function mq(e,t){return yp(e,t)}function fq(e,t){return Zo(e,t)}function gq(e,t){return Zo(e,t)}function bq(e,t){return Zo(e,t)}function yq(e,t){return BH(e,t)}var aE={};_e(aE,{modelFromJSON:()=>bj});var rE={};_e(rE,{l1:()=>vq,l1l2:()=>xq,l2:()=>wq});function xq(e){return new Fd(e)}function vq(e){return Sj(e)}function wq(e){return Nj(e)}var sE=class extends au{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Ar))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function zh(e,t){return et}var iE=class extends sE{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new ze("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=zh:this.mode==="max"?this.monitorFunc=rS:this.monitor.indexOf("acc")!==-1?this.monitorFunc=rS:this.monitorFunc=zh,this.monitorFunc===zh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===zh?1/0:-1/0}async onEpochEnd(e,t){await Jr(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 kq(e){return new iE(e)}var Iq={earlyStopping:kq},Sq=G();Sq.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Xn;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Xn||(Xn={}));var sS;(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={}))})(sS||(sS={}));var P1={};function Nq(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};P1[e]=n}function oE(e){return P1[e]}function Tq(e){delete P1[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,u=o<0?t.inputNames.length+o:o;if(s.type==="tensor")return dn(t.inputNames[u],n,a,r);if(s.type==="tensors"){let c=t.inputs.slice(o,l);return t.inputNames.slice(o,l).filter((h,m)=>{var f;return((f=c[m])===null||f===void 0?void 0:f.op)!=="NoOp"}).map(h=>dn(h,n,a,r))}let p=dn(t.inputNames[u],n,a,r),d=p.dataSync();return s.type==="number"?d[0]:w.toNestedArray(p.shape,d)}let i=t.attrParams[e];return i&&i.value}function dn(e,t,n,a){let[r,s]=Zn(e,n);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[vm(r,o)]);return i!==void 0?t[vm(r,i)][s]:void 0}function iS(e,t,n){return t[vm(e,n.currentContextId)]}function Tr(e,t){let[n,a,r]=Zn(e,t);return[vm(n,t&&t.currentContextId),a,r]}function vm(e,t){return t?`${e}-${t}`:e}function Zn(e,t){if(e==="")return["",0,void 0];let n=t!=null&&t.parseNodeNameCache!=null;if(n){let s=t.parseNodeNameCache.get(e);if(s!=null)return s}let a=e.split(":"),r;if(a.length===1)r=[e,0,void 0];else{let s=a[0],i=a.length===3?a[1]:void 0,o=Number(a[a.length-1]);r=[s,o,i]}return n&&t.parseNodeNameCache.set(e,r),r}function Xh(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 Cr(e){return e.kept?e:or(e)}var lE={};_e(lE,{json:()=>Cq});var Cq=[{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}]}],uE={};_e(uE,{json:()=>Eq});var Eq=[{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:"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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],pE={};_e(pE,{json:()=>_q});var _q=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],cE={};_e(cE,{json:()=>Aq});var Aq=[{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",defaultValue:.2}]},{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"}]}],dE={};_e(dE,{json:()=>Fq});var Fq=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}],hE={};_e(hE,{json:()=>$q});var $q=[{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}]}],mE={};_e(mE,{json:()=>Dq});var Dq=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],fE={};_e(fE,{json:()=>Rq});var Rq=[{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"}]}],gE={};_e(gE,{json:()=>Mq});var Mq=[{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"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],bE={};_e(bE,{json:()=>Oq});var Oq=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],yE={};_e(yE,{json:()=>Pq});var Pq=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}],xE={};_e(xE,{json:()=>Lq});var Lq=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}],vE={};_e(vE,{json:()=>zq});var zq=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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"}]}],wE={};_e(wE,{json:()=>Wq});var Wq=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",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"}]},{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"}]}],kE={};_e(kE,{json:()=>Bq});var Bq=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],IE={};_e(IE,{json:()=>Vq});var Vq=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],SE={};_e(SE,{json:()=>Uq});var Uq=[{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}]}],NE={};_e(NE,{json:()=>Gq});var Gq=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],TE={};_e(TE,{json:()=>Hq});var Hq=[{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:"EnsureShape",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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],oS=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[lE,uE,pE,cE,dE,hE,mE,fE,gE,bE,yE,xE,vE,wE,kE,IE,SE,NE,TE],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={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,b)=>{let[y,,x]=Tr(g),v=i[y];if(v.outputs!=null){let I=v.outputs.indexOf(x);if(I!==-1){let N=`${y}:${I}`;f.inputNames[b]=N}}f.inputs.push(v),v.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=Tr(m),g=i[f];g!=null&&(g.signatureKey=p[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 c={};e.library!=null&&e.library.function!=null&&(c=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:c};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=oE(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.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};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=av(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=av(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=pv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=pv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=sv(e.attr,r.tfName,r.defaultValue||0),i===void 0&&r.tfDeprecatedName&&(i=sv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=uv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=uv(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"bool[]":i=dv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=dv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=lv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=lv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=cv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=cv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=iv(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=iv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=ov(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=ov(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=lS(e.attr,r.tfName,r.defaultValue),i===void 0&&r.tfDeprecatedName&&(i=lS(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,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=Tr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:L1(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=Tr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Tr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});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 jq(e){let t=G().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 CE(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):jq(e);return t?n:n.toLowerCase()}function av(e,t,n,a=!1){let r=e[t];return r!=null?CE(r.s,a):n}function rv(e,t,n){let a=e[t];return a?a.b:n}function sv(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 L1(e){switch(typeof e=="string"&&(e=Xn[e]),e){case Xn.DT_FLOAT:case Xn.DT_HALF:return"float32";case Xn.DT_INT32:case Xn.DT_INT64:case Xn.DT_INT8:case Xn.DT_UINT8:return"int32";case Xn.DT_BOOL:return"bool";case Xn.DT_DOUBLE:return"float32";case Xn.DT_STRING:return"string";case Xn.DT_COMPLEX64:case Xn.DT_COMPLEX128:return"complex64";default:return null}}function lS(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function iv(e,t,n){let a=e[t];return a&&a.type?L1(a.type):n}function ov(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>L1(r)):n}function EE(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function lv(e,t,n){let a=e[t];return a&&a.shape?EE(a.shape):n}function uv(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 pv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>CE(s,a)):n}function cv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>EE(r)):n}function dv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var qq=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 dn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return dn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return sv(this.node.rawAttrs,e,t);if(n.s!=null)return av(this.node.rawAttrs,e,t);if(n.b!=null)return rv(this.node.rawAttrs,e,t);if(n.shape!=null)return lv(this.node.rawAttrs,e,t);if(n.type!=null)return iv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return uv(this.node.rawAttrs,e,t);if(n.list.s!=null)return pv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return cv(this.node.rawAttrs,e,t);if(n.list.b!=null)return dv(this.node.rawAttrs,e,t);if(n.list.type!=null)return ov(this.node.rawAttrs,e,t)}return t}},on={};_e(on,{OP_SCOPE_SUFFIX:()=>zv,abs:()=>Lt,acos:()=>Hv,acosh:()=>jv,add:()=>X,addN:()=>VN,all:()=>Jm,any:()=>Sc,argMax:()=>mi,argMin:()=>qv,asin:()=>Kv,asinh:()=>Xv,atan:()=>Yv,atan2:()=>Zv,atanh:()=>Jv,avgPool:()=>xa,avgPool3d:()=>ew,basicLSTMCell:()=>jN,batchNorm:()=>_s,batchNorm2d:()=>tw,batchNorm3d:()=>nw,batchNorm4d:()=>aw,batchToSpaceND:()=>dd,bincount:()=>rw,bitwiseAnd:()=>qN,booleanMaskAsync:()=>OT,broadcastArgs:()=>KN,broadcastTo:()=>si,buffer:()=>Pe,cast:()=>re,ceil:()=>sw,clipByValue:()=>an,clone:()=>or,complex:()=>Fr,concat:()=>et,concat1d:()=>iw,concat2d:()=>ow,concat3d:()=>lw,concat4d:()=>uw,conv1d:()=>Qm,conv2d:()=>$t,conv2dTranspose:()=>ef,conv3d:()=>cw,conv3dTranspose:()=>dw,cos:()=>hd,cosh:()=>tf,cosineWindow:()=>Sf,cumprod:()=>Cc,cumsum:()=>nf,denseBincount:()=>um,depthToSpace:()=>hw,depthwiseConv2d:()=>As,diag:()=>YN,dilation2d:()=>mw,div:()=>he,divNoNan:()=>fw,dot:()=>gw,dropout:()=>Hw,einsum:()=>Qs,elu:()=>dp,enclosingPowerOfTwo:()=>jw,ensureShape:()=>JN,equal:()=>ea,erf:()=>af,euclideanNorm:()=>xw,exp:()=>mn,expandDims:()=>Gt,expm1:()=>vw,eye:()=>rf,fft:()=>Id,fill:()=>yn,floor:()=>mp,floorDiv:()=>Zm,fused:()=>tu,gather:()=>fp,gatherND:()=>WT,greater:()=>Cn,greaterEqual:()=>Rr,ifft:()=>eu,imag:()=>md,image:()=>Qn,inTopKAsync:()=>BT,irfft:()=>yf,isFinite:()=>ww,isInf:()=>kw,isNaN:()=>Iw,leakyRelu:()=>fd,less:()=>Yl,lessEqual:()=>Fs,linalg:()=>Xw,linspace:()=>aT,localResponseNormalization:()=>Sw,log:()=>ta,log1p:()=>gd,logSigmoid:()=>Nw,logSoftmax:()=>of,logSumExp:()=>bd,logicalAnd:()=>Fa,logicalNot:()=>yd,logicalOr:()=>lf,logicalXor:()=>Tw,losses:()=>QT,lowerBound:()=>sT,matMul:()=>$e,max:()=>fa,maxPool:()=>Dt,maxPool3d:()=>Cw,maxPoolWithArgmax:()=>iT,maximum:()=>fr,mean:()=>Et,meshgrid:()=>oT,min:()=>Xl,minimum:()=>gs,mirrorPad:()=>Ew,mod:()=>_w,moments:()=>xd,movingAverage:()=>PT,mul:()=>z,multiRNNCell:()=>lT,multinomial:()=>uT,neg:()=>yt,norm:()=>hp,notEqual:()=>bi,oneHot:()=>Zl,ones:()=>Pn,onesLike:()=>na,op:()=>L,outerProduct:()=>pT,pad:()=>va,pad1d:()=>cT,pad2d:()=>dT,pad3d:()=>hT,pad4d:()=>mT,pool:()=>Aw,pow:()=>cr,prelu:()=>wd,print:()=>Gv,prod:()=>Fw,raggedGather:()=>fT,raggedRange:()=>gT,raggedTensorToTensor:()=>bT,rand:()=>yT,randomGamma:()=>kT,randomNormal:()=>pf,randomStandardNormal:()=>IT,randomUniform:()=>$s,randomUniformInt:()=>ST,range:()=>yi,real:()=>Jl,reciprocal:()=>Ow,relu:()=>Ke,relu6:()=>cf,reshape:()=>W,reverse:()=>ya,reverse1d:()=>NT,reverse2d:()=>TT,reverse3d:()=>CT,reverse4d:()=>ET,rfft:()=>Sd,round:()=>df,rsqrt:()=>hf,scalar:()=>xe,scatterND:()=>LT,searchSorted:()=>uf,selu:()=>mf,separableConv2d:()=>Ds,setdiff1dAsync:()=>_T,sigmoid:()=>ma,sign:()=>Pw,signal:()=>JT,sin:()=>ff,sinh:()=>gf,slice:()=>Ve,slice1d:()=>kd,slice2d:()=>bf,slice3d:()=>qo,slice4d:()=>Ql,softmax:()=>qa,softplus:()=>jo,spaceToBatchND:()=>vd,sparse:()=>e2,sparseToDense:()=>zT,spectral:()=>ZT,split:()=>Ln,sqrt:()=>rn,square:()=>pt,squaredDifference:()=>xf,squeeze:()=>Rs,stack:()=>Ft,step:()=>Ko,stridedSlice:()=>Lw,string:()=>t2,sub:()=>pe,sum:()=>fe,tan:()=>zw,tanh:()=>fs,tensor:()=>bn,tensor1d:()=>je,tensor2d:()=>Aa,tensor3d:()=>Nd,tensor4d:()=>Da,tensor5d:()=>AT,tensor6d:()=>FT,tensorScatterUpdate:()=>DT,tile:()=>On,topk:()=>Bw,transpose:()=>De,truncatedNormal:()=>kf,unique:()=>Vw,unsortedSegmentSum:()=>If,unstack:()=>dt,upperBound:()=>RT,variable:()=>Uw,where:()=>nn,whereAsync:()=>Gw,zeros:()=>It,zerosLike:()=>qe});var Kq=(e,t,n,a=on)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Xq=(e,t,n,a=on)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(dn(e.inputNames[0],t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(dn(e.inputNames[0],t,n))];case"IsInf":return[a.isInf(dn(e.inputNames[0],t,n))];case"IsFinite":return[a.isFinite(dn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function _a(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 uS(e){return!(typeof e=="number"||e.some(t=>t<0))}function ac(e,t,n){let a=hv(e,n),r=!uS(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=hv(s.shape,a)}),!uS(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function hv(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 Yq=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=xe(0),Ht(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),_a(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,Ht(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,dt(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=[];O(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(a!==s.dtype)throw new Error(`Invalid data types; op elements ${a}, but list elements ${s.dtype}`);_a(n,s.shape,"TensorList shape mismatch: "),Ht(s)}),this.idTensor=ve(0),this.maxNumElements=r,Ht(this.idTensor)}copy(){return new hv([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(n=>{(t==null||!t.has(n.id))&&n.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,n,a=-1){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(a!==-1&&this.tensors.length!==a)throw new Error(`Operation expected a list with ${a} elements but got a list with ${this.tensors.length} elements.`);_a(t,this.elementShape,"TensorList shape mismatch: ");let r=ac(this.elementShape,this.tensors,t);return O(()=>{let s=this.tensors.map(i=>W(i,r));return Ft(s,0)})}popBack(t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let a=ac(this.elementShape,this.tensors,t),r=this.tensors.pop();return r.kept=!1,_a(r.shape,t,"TensorList shape mismatch: "),W(r,a)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(_a(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ht(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let n=new hv([],this.elementShape,this.elementDtype,this.maxNumElements);n.tensors.length=t;for(let a=0;athis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);_a(this.tensors[t].shape,n,"TensorList shape mismatch: ");let r=ac(this.elementShape,this.tensors,n);return W(this.tensors[t],r)}setItem(t,n){if(n.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);_a(this.elementShape,n.shape,"TensorList shape mismatch: "),Ht(n),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=n}gather(t,n,a){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);_a(this.elementShape,a,"TensorList shape mismatch: "),t=t.slice(0,this.size());let r=ac(this.elementShape,this.tensors,a);return t.length===0?bn([],[0].concat(r)):O(()=>{let s=t.map(i=>W(this.tensors[i],r));return Ft(s,0)})}concat(t,n){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);_a(this.elementShape,n,"TensorList shape mismatch: ");let a=ac(this.elementShape,this.tensors,n);return this.size()===0?bn([],[0].concat(a)):O(()=>{let r=this.tensors.map(s=>W(s,a));return et(r,0)})}};function jj(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);_a(r,t,"TensorList shape mismatch: ");let s=dt(e);return new Zf(s,t,a)}function Kj(e,t,n,a){return new Zf([],e,t,a)}function Xj(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 Zf([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function Yj(e,t,n){let a=0,r=t.map(p=>(a+=p,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=[];O(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(a!==s.dtype)throw new Error(`Invalid data types; op elements ${a}, but list elements ${s.dtype}`);_a(n,s.shape,"TensorList shape mismatch: "),Ht(s)}),this.idTensor=xe(0),this.maxNumElements=r,Ht(this.idTensor)}copy(){return new mv([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(n=>{(t==null||!t.has(n.id))&&n.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,n,a=-1){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(a!==-1&&this.tensors.length!==a)throw new Error(`Operation expected a list with ${a} elements but got a list with ${this.tensors.length} elements.`);_a(t,this.elementShape,"TensorList shape mismatch: ");let r=ac(this.elementShape,this.tensors,t);return O(()=>{let s=this.tensors.map(i=>W(i,r));return Ft(s,0)})}popBack(t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let a=ac(this.elementShape,this.tensors,t),r=this.tensors.pop();return r.kept=!1,_a(r.shape,t,"TensorList shape mismatch: "),W(r,a)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(_a(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ht(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let n=new mv([],this.elementShape,this.elementDtype,this.maxNumElements);n.tensors.length=t;for(let a=0;athis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);_a(this.tensors[t].shape,n,"TensorList shape mismatch: ");let r=ac(this.elementShape,this.tensors,n);return W(this.tensors[t],r)}setItem(t,n){if(n.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);_a(this.elementShape,n.shape,"TensorList shape mismatch: "),Ht(n),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=n}gather(t,n,a){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);_a(this.elementShape,a,"TensorList shape mismatch: "),t=t.slice(0,this.size());let r=ac(this.elementShape,this.tensors,a);return t.length===0?bn([],[0].concat(r)):O(()=>{let s=t.map(i=>W(this.tensors[i],r));return Ft(s,0)})}concat(t,n){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);_a(this.elementShape,n,"TensorList shape mismatch: ");let a=ac(this.elementShape,this.tensors,n);return this.size()===0?bn([],[0].concat(a)):O(()=>{let r=this.tensors.map(s=>W(s,a));return et(r,0)})}};function Zq(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);_a(r,t,"TensorList shape mismatch: ");let s=dt(e);return new Jf(s,t,a)}function Jq(e,t,n,a){return new Jf([],e,t,a)}function Qq(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 Jf([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function e5(e,t,n){let a=0,r=t.map(p=>(a+=p,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=dv(s,n),o=a===0?0:e.size/a,l=O(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{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(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Tr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Tr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>cn(r,t,n)!==void 0);if(a){let r=cn(a,t,n);return[Tr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Tr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Tr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Tr(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),u=k("name",e,t,n),p=new qj(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ve(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[ve(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=Xj(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=e.op==="TensorListReserve"?-1:i,l=Kj(a,r,i,o);return n.addTensorList(l),[l.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=jj(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{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=Yj(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ve(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function pS(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=Xh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var Jj=(e,t,n,a=sn)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=Xh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=pS(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=pS(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=Xh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=Xh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Qj=(e,t,n,a=sn)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ix(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 e5=async(e,t,n,a,r=sn)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=Ix(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=Ix(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=Ix(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},t5=(e,t,n,a=sn)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},n5=(e,t,n,a=sn)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[cn(e.name,t,n)||r];case"Placeholder":return[cn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Tr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Tr(p));case"Snapshot":let s=k("x",e,t,n);return[Tr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return ve(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(),O(()=>{let a=dt(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=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new a5(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"InitializeTable":case"InitializeTableV2":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)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},s5=(e,t,n,a=sn)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i5=(e,t,n,a=sn)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},o5=(e,t,n,a=sn)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.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:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},l5=(e,t,n,a=sn)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(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[a.batchNorm(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[a.localResponseNormalization(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[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},u5=(e,t,n,a=sn)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:r,outputDenseValues:s}=a.raggedGather(k("paramsNestedSplits",e,t,n),k("paramsDenseValues",e,t,n),k("indices",e,t,n),k("outputRaggedRank",e,t,n));return r.concat(s)}case"RaggedRange":{let{rtNestedSplits:r,rtDenseValues:s}=a.raggedRange(k("starts",e,t,n),k("limits",e,t,n),k("splits",e,t,n));return[r,s]}case"RaggedTensorToTensor":return[a.raggedTensorToTensor(k("shape",e,t,n),k("values",e,t,n),k("defaultValue",e,t,n),k("rowPartitionTensors",e,t,n),k("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},p5=(e,t,n,a=sn)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},c5=(e,t,n,a=sn)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=w.arraysEqual(u.shape,i);if(!p&&!w.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},d5=(e,t,n,a=sn)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},h5=(e,t,n,a=sn)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},m5=(e,t,n,a=sn)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},f5=(e,t,n,a=sn)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"EnsureShape":return[a.ensureShape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function cS(e,t,n,a,r=O){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>Gj(i,o,l));case"basic_math":return r(()=>Hj(i,o,l));case"control":return Zj(i,o,l);case"convolution":return r(()=>Jj(i,o,l));case"creation":return r(()=>Qj(i,o,l));case"dynamic":return e5(i,o,l);case"evaluation":return r(()=>t5(i,o,l));case"image":return r(()=>s5(i,o,l));case"graph":return r(()=>n5(i,o,l));case"logical":return r(()=>i5(i,o,l));case"matrices":return r(()=>o5(i,o,l));case"normalization":return r(()=>l5(i,o,l));case"ragged":return r(()=>u5(i,o,l));case"reduction":return r(()=>p5(i,o,l));case"slice_join":return r(()=>c5(i,o,l));case"sparse":return r(()=>d5(i,o,l));case"spectral":return r(()=>h5(i,o,l));case"string":return r(()=>m5(i,o,l));case"transformation":return r(()=>f5(i,o,l));case"hash_table":return r5(i,o,l,a);case"custom":let u=sE(i.op);if(u&&u.customExecutor)return u.customExecutor(new Uj(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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(s)?s.then(i=>[].concat(i)):[].concat(s)}var dS=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 hS(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Zn(c)[0]));a=a||[];let p=new Set(a.map(c=>Zn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((ei(c)||I5(c)||S5(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&!u.has(c.name)&&!p.has(c.name)){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function g5(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Zn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=b5(m,l);return y5(f,l),f}function b5(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var Wh=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function y5(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new Wh(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new Wh(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new Wh(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new Wh(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function x5(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>ei(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;ot[a].map(r=>r.id));this._weightIds=[].concat(...n),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let n=t.signatureKey||t.name;return t.defaultOutput?`${n}:${t.defaultOutput}`:n})}get functions(){return Object.keys(this._functions).reduce((t,n)=>(t[n]=this._functions[n].signature,t),{})}constructor(t,n){this.graph=t,this.parent=n,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(a=>{this._functionExecutorMap[a]=new CE(t.functions[a],this)})}getCompilationKey(t,n){let a=t.map(s=>s.name).sort(),r=n.map(s=>s.name).sort();return a.join(this.SEPARATOR)+"--"+r.join(this.SEPARATOR)}compile(t,n){let a=hS(t,n,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:s,syncInputs:i}=a;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 [${i}]`);if(r.length>0){let u=n.map(d=>d.name),p=Object.keys(t);throw new Error(`Cannot compute the outputs [${u}] from the provided inputs [${p}]. Missing the following inputs: [${r}]`)}let o=g5(this.graph,a),l=x5(o);return{orderedNodes:o,nodeLiveUntilMap:l}}cloneAndKeepTensor(t){if(t==null)return null;let n=t.clone();return Ht(n),n}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([n,a])=>[n,this.cloneTensorList(a)]))}execute(t,n){this.disposeIntermediateTensors(),t=this.mapInputs(t);let a=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n);let r=a.map(c=>this.graph.nodes[Zn(c)[0]]),s=n.map(c=>Zn(c)[0]),i=new Set(s),o=s.map(c=>this.graph.nodes[c]);o.length===0&&(o=this._outputs);let l=this.getCompilationKey(r,o),u=this.compiledMap.get(l);u==null&&(u=this.compile(t,o),this.compiledMap.set(l,u));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let p={},d={};return O(()=>{let c=new dS(this.weightMap,p,d,this.functionExecutorMap,this.parseNodeNameCache),h=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(b=>{let[y,x]=Zn(b,c),v=[];v[x]=t[b],h[y]=v,this.keepIntermediateTensors&&(this.clonedTensorsMap[y]=this.cloneTensorList(v))});let m=this.getFrozenTensorIds(h),{orderedNodes:f,nodeLiveUntilMap:g}=u;for(let b of f){if(h[b.name])continue;let y=cS(b,h,c,this._resourceManager);if(w.isPromise(y))throw new Error(`The execution of the op '${b.op}' returned a promise. Please use model.executeAsync() instead.`);h[b.name]=y,this.keepIntermediateTensors&&(this.clonedTensorsMap[b.name]=this.cloneTensorList(y)),this.checkTensorForDisposalWithNodeLiveUntilInfo(b,h,c,m,i,g.get(b.name))}return this.parent==null&&c.dispose(m),n.map(b=>cn(b,h,c))})}getFrozenTensorIds(t){let n=[].concat.apply([],Object.keys(t).map(a=>t[a]).map(a=>a.map(r=>r.id)));return new Set(n)}checkTensorForDisposal(t,n,a,r,s,i,o){if(!(ei(n)||i.has(t))){for(let l of a[t])l!=null&&(o[l.id]=(o[l.id]||0)+n.children.length);for(let l of n.inputs){if(ei(l))continue;let u=iS(l.name,a,r);if(u!=null)for(let p of u){if(!p||p.kept||s.has(p.id))continue;let d=o[p.id];d===1?(p.dispose(),delete o[p.id]):d!=null&&o[p.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,n,a,r,s,i){function o(l){return ei(l)||s.has(l.name)}if(!(ei(t)||i==null))for(let l of i){if(o(l))continue;let u=iS(l.name,n,a);for(let p of u)!p||p.kept||r.has(p.id)||p.dispose()}}async executeAsync(t,n){return this._executeAsync(t,n)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let n of t)n&&!n.isDisposed&&n.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,n,a=!1,r={},s={}){this.disposeIntermediateTensors(),a||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let i=new dS(this.weightMap,r,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let o=await this.executeWithControlFlow(t,i,n,a),l=n.map(c=>cn(c,o,i)),u=l.map(c=>c.id),p=Object.keys(t).map(c=>t[c].id),d=new Set([...u,...p,...this.weightIds]);return Object.values(o).forEach(c=>{c.forEach(h=>{h&&!h.isDisposed&&!d.has(h.id)&&h.dispose()})}),this.parent==null&&i.dispose(d),l}async executeFunctionAsync(t,n,a){let r=t.reduce((s,i,o)=>(s[this.inputs[o].name]=i,s),{});return this._executeAsync(r,this.outputNodes,!0,n,a)}async executeWithControlFlow(t,n,a,r){let s=Object.keys(t),i=s.map(v=>this.graph.nodes[Zn(v)[0]]),o=a.map(v=>Zn(v)[0]),l=new Set(o),u=o.map(v=>this.graph.nodes[v]);u.length===0&&(u=this._outputs);let{usedNodes:p,missingInputs:d,dynamicNode:c,syncInputs:h}=hS(t,u,this.weightMap,this._initNodes),m=[...i,...this.graph.weights,...this._initNodes||[]].map(v=>({node:v,contexts:n.currentContext})),f=Object.assign({},this.weightMap);Object.keys(t).forEach(v=>{let[I,N]=Zn(v),C=[];C[N]=t[v],f[I]=C});let g={},b=this.getFrozenTensorIds(f),y={};for(;m.length>0;){let v=this.processStack(i,m,n,f,y,b,l,g,p);await Promise.all(v)}c==null&&!r&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let x=u.filter(v=>!ei(v)&&!cn(v.name,f,n)).map(v=>v.name);if(x.length>0){let v="";throw c!=null&&(v=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${x}] from the provided inputs [${s}]. Consider providing the following inputs: [${d}]. ${v}`)}return f}processStack(t,n,a,r,s,i,o,l,u){let p=[];for(;n.length>0;){let d=n.pop();a.currentContext=d.contexts;let c="";if(d.node.op==="Enter"&&k("isConstant",d.node,r,a)&&([c]=Nr(d.node.name,a)),r[d.node.name]==null){let h=cS(d.node,r,a,this._resourceManager);c||([c]=Nr(d.node.name,a));let m=a.currentContext;w.isPromise(h)?p.push(h.then(f=>(r[c]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(f)),a.currentContext=m,this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u),f))):(r[c]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(h)),this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u))}else this.processChildNodes(d.node,n,a,r,s,u)}return p}processChildNodes(t,n,a,r,s,i){t.children.forEach(o=>{let[l]=Nr(o.name,a);s[l]||!i.has(o.name)||(o.op==="Merge"?o.inputNames.some(u=>!!cn(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})):o.inputNames.every(u=>!!cn(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(n=>n.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(n=>{let a=t[n],[r]=Zn(n),s=this.graph.nodes[r];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,o=i.length===a.shape.length&&a.shape.every((l,u)=>i[u]===-1||i[u]===l);w.assert(o,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${a.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&w.assert(a.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${a.dtype}`)})}mapInputs(t){var n,a;let r={};for(let s in t){let i=(a=(n=this._signature)===null||n===void 0?void 0:n.inputs)===null||a===void 0?void 0:a[s];i!=null?r[i.name]=t[s]:r[s]=t[s]}return r}checkInputs(t){let n=Object.keys(t).filter(a=>{let[r]=Zn(a);return this.graph.nodes[r]==null});if(n.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${n}] that are not part of graph`)}mapOutputs(t){return t.map(n=>{var a,r;let s=(r=(a=this._signature)===null||a===void 0?void 0:a.outputs)===null||r===void 0?void 0:r[n];return s!=null?s.name:n},{})}checkOutputs(t){t.forEach(n=>{let[a]=Zn(n);if(!this.graph.nodes[a])throw new Error(`The output '${n}' is not found in the graph`)})}},N5=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]}},T5="?tfjs-format=file",C5="model.json",z1=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(e,t={},n=qt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new N5}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.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]}}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=this.handler.load();return w.isPromise(e)?e.then(t=>t.getWeightStream==null?this.loadSync(t):this.loadStreaming(t)):this.loadSync(e)}loadSync(e){let t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(e.getWeightStream==null)throw new Error("Model artifacts missing streamWeights function");let t=await $N(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;let n=this.artifacts.modelTopology,a=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(a=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}if(this.signature=a,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new mS(oS.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=oS.Instance.transformGraph(e.modelInitializer);this.initializer=new mS(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.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)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof Ce?[e]:e,n={};return t.forEach((a,r)=>n[this.structuredOutputKeys[r]]=a),n}return e}predict(e,t){let n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){let n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Ce)&&!Array.isArray(e)){let r=(t=this.signature)===null||t===void 0?void 0:t.inputs;if(r!=null)for(let s in r){let i=r[s];i.resourceId!=null&&(e[s]=this.resourceIdToCapturedInput[i.resourceId])}return e}e=Array.isArray(e)?e:[e];let n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let a=0;return this.inputNodes.reduce((r,s)=>{var i,o,l;let u=(l=(o=(i=this.signature)===null||i===void 0?void 0:i.inputs)===null||o===void 0?void 0:o[s])===null||l===void 0?void 0:l.resourceId;return u!=null?r[s]=this.resourceIdToCapturedInput[u]:r[s]=e[a++],r},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,n=Object.keys(t);for(let a=0;a1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Ee(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function E5(e,t={},n=qt){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&&typeof e=="string"&&(e=A5(e));let a=new z1(e,t,n);return await a.load(),a}function _5(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=qt.getWeightSpecs(a.weightsManifest),i=qt.getModelArtifactsForJSONSync(a,s,r);t=qt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=qt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new z1(t);return n.load(),n}function A5(e){return e.endsWith("/")||(e=e+"/"),`${e}${C5}${T5}`}var F5="4.16.0",EE={};_e(EE,{CSVDataset:()=>zE,Dataset:()=>xp,FileDataSource:()=>qE,TextLineDataset:()=>LE,URLDataSource:()=>jE,array:()=>eK,csv:()=>hK,func:()=>mK,generator:()=>fK,microphone:()=>bK,version_data:()=>yK,webcam:()=>gK,zip:()=>tK});var $5=ks(Fm()),D5=ks(Fm());function R5(e,t){return wm(e,t)}function wm(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();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(ru(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=wm(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function M5(e,t=AE){return _E(e,t)}function _E(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(ru(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=_E(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 AE(e){return e===null?null:ru(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function FE(e,t){let n=new Map;wm(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 wm(e,t,n)}function ru(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=QS();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ce)&&!(e instanceof Promise)&&!t)}function O5(e){return e==null||P5(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ce||w.isTypedArray(e)}function P5(e){return e===null||typeof e!="object"&&typeof e!="function"}function L5(e){return R5(e,z5)}function z5(e){return e instanceof Ce?{value:e.clone(),recurse:!1}:ru(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var $E=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}},DE=class RE extends $E{constructor(){super(RE.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,n=new Array(t),a=this.length();for(let r=0;rt===!0)}rowMajorBatch(e,t=!0){return new j5(this,e,t)}columnMajorBatch(e,t=!0,n=AE){return this.rowMajorBatch(e,t).map(a=>M5(a,n))}concatenate(e,t){return new OE(ME([this,e]),t)}take(e){return e<0||e==null?this:new q5(this,e)}skip(e){return e<0||e==null?this:new H5(this,e)}prefetch(e){return new PE(this,e)}shuffle(e,t){return new Q5(this,e,t)}serial(){return new G5(this)}},V5=class extends rn{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:L5(e),done:!1}}},U5=class extends rn{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}}},G5=class extends rn{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()}},H5=class extends rn{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()}},j5=class extends rn{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}}},K5=class extends rn{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)}}},X5=class extends rn{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},Y5=class extends rn{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}}}},fS=class extends rn{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=Wa.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},B1=class extends rn{constructor(){super(),this.outputQueue=new DE,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}}},Z5=class extends B1{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return!0}},OE=class extends rn{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}},rs;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(rs||(rs={}));var J5=class extends rn{constructor(e,t=rs.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 rn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await FE(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case rs.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case rs.SHORTEST:return{value:null,done:!0};case rs.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},PE=class extends rn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new $E(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()}},Q5=class extends PE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=D5.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}}},xp=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===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Yn(async()=>(await n.iterator()).columnMajorBatch(e,t,nK),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Yn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Yn(async()=>(await t.iterator()).filter(a=>O(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Yn(async()=>(await t.iterator()).map(n=>O(()=>e(n))),this.size)}mapAsync(e){let t=this;return Yn(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 Yn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Yn(async()=>{let a=W1(async()=>({value:await t.iterator(),done:!1}));return W5(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=$5.alea(t||w.now().toString());return Yn(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,Yn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};xp.MAX_BUFFER_SIZE=1e4;function Yn(e,t=null){return new class extends xp{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function eK(e){return Yn(async()=>ME(e),e.length)}function tK(e){if(!ru(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 FE(e,a=>{if(a instanceof xp)return{value:a.iterator(),recurse:!1};if(ru(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return B5(n,rs.SHORTEST)},t)}function nK(e){if(e===null)return null;let t=e[0];return O5(t)?{value:aK(e),recurse:!1}:{value:null,recurse:!0}}function aK(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ce?Ft(e):bn(e)}var LE=class extends xp{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))}},Bh='"',rc=Symbol("out"),gS=Symbol("field"),Vh=Symbol("quote"),Sx=Symbol("quoteafterquote"),bS=Symbol("quoteinquote"),zE=class extends xp{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&w.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(w.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new LE(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(w.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(n))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let n=new WE(t);return await n.start(),n}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(a){throw new Error(`Error thrown while initializing video stream: ${a.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 n=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,n.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 t,n,a=await this.getAudioData();if(this.includeSpectrogram){let r=this.flattenQueue(a.freqDataQueue);t=this.getTensorFromAudioDataArray(r,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let r=this.flattenQueue(a.timeDataQueue);n=this.getTensorFromAudioDataArray(r,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:n},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],n=[],a=0;return new Promise(r=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:t,timeDataQueue:n}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),n.push(this.timeData.slice())),++a===this.numFrames&&(clearInterval(s),r({freqDataQueue:t,timeDataQueue:n}))},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(t){let n=t[0].length,a=new Float32Array(t.length*n);return t.forEach((r,s)=>a.set(r,s*n)),a}getTensorFromAudioDataArray(t,n){let a=new Float32Array(w.sizeFromShape(n));return a.set(t,a.length-t.length),bn(a,n)}},sK=class BE extends rn{constructor(t,n){if(super(),this.webcamVideoElement=t,this.webcamConfig=n,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 a=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,r=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-a)/2,i=(1-r)/2,o=s+a,l=r+i;this.cropBox=Aa([i,s,l,o],[1,4])}else this.cropBox=Aa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,n={}){if(!G().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!n.resizeWidth||!n.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=n.resizeWidth,t.height=n.resizeHeight}let a=new BE(t,n);return await a.start(),a}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=Xo.fromPixels(this.webcamVideoElement)}catch(n){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(n)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(n){throw new Error(`Error thrown cropping the video: ${n.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return O(()=>{let n=Gt(re(t,"float32"),0),a;a=Qn.cropAndResize(n,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let r=a.shape;return W(a,r.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.")}},VE=class{},UE=class extends rn{split(e){return new iK(this,e)}},iK=class extends UE{constructor(e,t){super(),this.upstream=e,this.impl=new oK(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},oK=class extends B1{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}},lK=class extends rn{decodeUTF8(){return new uK(this)}},uK=class extends UE{constructor(e){super(),this.upstream=e,this.impl=new pK(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},pK=class extends B1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=QS();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},GE=class extends lK{constructor(e,t={}){super(),this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(G().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 cK(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=dK(e));let s=await(n||w.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new GE(i,t)}else throw new Error(s.statusText)}var dK=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 HE(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var qE=class extends VE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(HE(this.input)&&G().get("IS_NODE")){let e=Av();this.input=e.readFileSync(this.input.slice(7))}return new GE(this.input,this.options)}},jE=class extends VE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return HE(this.url)?new qE(this.url,this.fileOptions).iterator():cK(this.url,this.fileOptions)}};function hK(e,t={}){return new zE(new jE(e),t)}function mK(e){let t=W1(e);return Yn(async()=>t)}function fK(e){return Yn(async()=>{let t=await e();return W1(()=>t.next())})}async function gK(e,t){return sK.create(e,t)}async function bK(e){return rK.create(e)}var yK="4.16.0";function ge(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 xK=fr.whereImpl,V1=class KE extends Pc{nextDataId(){return KE.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new $m(this,Ea())}write(t,n,a){this.firstUse&&(this.firstUse=!1,G().get("IS_NODE")&&T.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=hv(s,n),o=a===0?0:e.size/a,l=O(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{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(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Cr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Cr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>dn(r,t,n)!==void 0);if(a){let r=dn(a,t,n);return[Cr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Cr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Cr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Cr(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),u=k("name",e,t,n),p=new Yq(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(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[xe(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=Qq(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=e.op==="TensorListReserve"?-1:i,l=Jq(a,r,i,o);return n.addTensorList(l),[l.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=Zq(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{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=e5(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function pS(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=Xh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var n5=(e,t,n,a=on)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=Xh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=pS(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=pS(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=Xh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=Xh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},a5=(e,t,n,a=on)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"RandomUniformInt":return[a.randomUniformInt(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("seed",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Sx(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 r5=async(e,t,n,a,r=on)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=Sx(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=Sx(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=Sx(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},s5=(e,t,n,a=on)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i5=(e,t,n,a=on)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[dn(e.name,t,n)||r];case"Placeholder":return[dn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Cr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Cr(p));case"Snapshot":let s=k("x",e,t,n);return[Cr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(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(),O(()=>{let a=dt(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=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new o5(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"InitializeTable":case"InitializeTableV2":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)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},u5=(e,t,n,a=on)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p5=(e,t,n,a=on)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];case"BitwiseAnd":return[a.bitwiseAnd(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},c5=(e,t,n,a=on)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.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:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];case"MatrixBandPart":return[a.linalg.bandPart(k("a",e,t,n),k("numLower",e,t,n),k("numUpper",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},d5=(e,t,n,a=on)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(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[a.batchNorm(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[a.localResponseNormalization(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[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},h5=(e,t,n,a=on)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:r,outputDenseValues:s}=a.raggedGather(k("paramsNestedSplits",e,t,n),k("paramsDenseValues",e,t,n),k("indices",e,t,n),k("outputRaggedRank",e,t,n));return r.concat(s)}case"RaggedRange":{let{rtNestedSplits:r,rtDenseValues:s}=a.raggedRange(k("starts",e,t,n),k("limits",e,t,n),k("splits",e,t,n));return[r,s]}case"RaggedTensorToTensor":return[a.raggedTensorToTensor(k("shape",e,t,n),k("values",e,t,n),k("defaultValue",e,t,n),k("rowPartitionTensors",e,t,n),k("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},m5=(e,t,n,a=on)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},f5=(e,t,n,a=on)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=w.arraysEqual(u.shape,i);if(!p&&!w.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}case"TensorScatterUpdate":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("tensor",e,t,n);return[a.tensorScatterUpdate(i,r,s)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},g5=(e,t,n,a=on)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},b5=(e,t,n,a=on)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},y5=(e,t,n,a=on)=>{switch(e.op){case"StaticRegexReplace":return[a.string.staticRegexReplace(k("input",e,t,n),k("pattern",e,t,n),k("rewrite",e,t,n),k("replaceGlobal",e,t,n))];case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},x5=(e,t,n,a=on)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"EnsureShape":return[a.ensureShape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function cS(e,t,n,a,r=O){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>Kq(i,o,l));case"basic_math":return r(()=>Xq(i,o,l));case"control":return t5(i,o,l);case"convolution":return r(()=>n5(i,o,l));case"creation":return r(()=>a5(i,o,l));case"dynamic":return r5(i,o,l);case"evaluation":return r(()=>s5(i,o,l));case"image":return r(()=>u5(i,o,l));case"graph":return r(()=>i5(i,o,l));case"logical":return r(()=>p5(i,o,l));case"matrices":return r(()=>c5(i,o,l));case"normalization":return r(()=>d5(i,o,l));case"ragged":return r(()=>h5(i,o,l));case"reduction":return r(()=>m5(i,o,l));case"slice_join":return r(()=>f5(i,o,l));case"sparse":return r(()=>g5(i,o,l));case"spectral":return r(()=>b5(i,o,l));case"string":return r(()=>y5(i,o,l));case"transformation":return r(()=>x5(i,o,l));case"hash_table":return l5(i,o,l,a);case"custom":let u=oE(i.op);if(u&&u.customExecutor)return u.customExecutor(new qq(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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(s)?s.then(i=>[].concat(i)):[].concat(s)}var dS=class{constructor(e={},t={},n={},a={},r){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.parseNodeNameCache=r,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 hS(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=new Set(Object.keys(e).map(c=>Zn(c)[0]));a=a||[];let p=new Set(a.map(c=>Zn(c.name)[0])),d=[...t];for(;d.length>0;){let c=d.pop();if((ti(c)||C5(c)||E5(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&!u.has(c.name)&&!p.has(c.name)){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function v5(e,t){let{usedNodes:n,inputs:a}=t,r=Object.keys(a).map(g=>Zn(g)[0]).map(g=>e.nodes[g]),s=e.initNodes||[],i=g=>n.has(typeof g=="string"?g:g.name);function o(g){return[...new Map(g.map(b=>[b.name,b])).values()]}let l=o([...r,...e.weights,...s]).filter(i),u=o([...l,...Object.values(e.nodes)]).filter(i),p=new Map(u.map(g=>[g.name,g])),d={};for(let g of u){d[g.name]=d[g.name]||0;for(let b of g.children)i(b)||(d[b.name]=Number.POSITIVE_INFINITY),d[b.name]=(d[b.name]||0)+1}let c=Object.entries(d).filter(([,g])=>g===0).map(([g])=>g),h=[...c];for(;c.length>0;){let g=c.pop(),b=p.get(g);for(let y of b.children.filter(i))--d[y.name]===0&&(h.push(y.name),c.push(y.name))}let m=h.map(g=>p.get(g)),f=w5(m,l);return k5(f,l),f}function w5(e,t){let n=new Map(e.map(s=>[s.name,s])),a=t.map(s=>s.name),r=new Set(a);for(;a.length>0;){let s=a.pop(),i=n.get(s);for(let o of i.children)!n.has(o.name)||r.has(o.name)||(r.add(o.name),a.push(o.name))}return e.filter(s=>r.has(s.name))}var Wh=class extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}};function k5(e,t){let n=new Map(e.map((o,l)=>[o.name,l])),a=new Set(t.map(o=>o.name)),r=o=>a.has(typeof o=="string"?o:o.name),s=new Set(e.map(o=>o.name)),i=o=>s.has(typeof o=="string"?o:o.name);for(let o of e){for(let l of o.children.filter(i)){if(!n.has(l.name))throw new Wh(`Child ${l.name} of node ${o.name} is unreachable.`);if(n.get(o.name)>n.get(l.name))throw new Wh(`Node ${o.name} is scheduled to run after its child ${l.name}.`)}if(!r(o))for(let l of o.inputs){if(!n.has(l.name))throw new Wh(`Input ${l.name} of node ${o.name} is unreachable.`);if(n.get(l.name)>n.get(o.name))throw new Wh(`Node ${o.name} is scheduled to run before its input ${l.name}.`)}}}function I5(e){let t=new Map(e.map((o,l)=>[o.name,l])),n=Number.MAX_SAFE_INTEGER,a=e.map((o,l)=>ti(o)?n:l),r=o=>{let l=a[t.get(o.name)];return l==null?-1:l},s=e.map((o,l)=>o.children.map(r).reduce((u,p)=>Math.max(u,p),a[l])),i=new Map;for(let o=0;ot[a].map(r=>r.id));this._weightIds=[].concat(...n),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let n=t.signatureKey||t.name;return t.defaultOutput?`${n}:${t.defaultOutput}`:n})}get functions(){return Object.keys(this._functions).reduce((t,n)=>(t[n]=this._functions[n].signature,t),{})}constructor(t,n){this.graph=t,this.parent=n,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(a=>{this._functionExecutorMap[a]=new _E(t.functions[a],this)})}getCompilationKey(t,n){let a=t.map(s=>s.name).sort(),r=n.map(s=>s.name).sort();return a.join(this.SEPARATOR)+"--"+r.join(this.SEPARATOR)}compile(t,n){let a=hS(t,n,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:s,syncInputs:i}=a;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 [${i}]`);if(r.length>0){let u=n.map(d=>d.name),p=Object.keys(t);throw new Error(`Cannot compute the outputs [${u}] from the provided inputs [${p}]. Missing the following inputs: [${r}]`)}let o=v5(this.graph,a),l=I5(o);return{orderedNodes:o,nodeLiveUntilMap:l}}cloneAndKeepTensor(t){if(t==null)return null;let n=t.clone();return Ht(n),n}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([n,a])=>[n,this.cloneTensorList(a)]))}execute(t,n){this.disposeIntermediateTensors(),t=this.mapInputs(t);let a=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n);let r=a.map(c=>this.graph.nodes[Zn(c)[0]]),s=n.map(c=>Zn(c)[0]),i=new Set(s),o=s.map(c=>this.graph.nodes[c]);o.length===0&&(o=this._outputs);let l=this.getCompilationKey(r,o),u=this.compiledMap.get(l);u==null&&(u=this.compile(t,o),this.compiledMap.set(l,u));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let p={},d={};return O(()=>{let c=new dS(this.weightMap,p,d,this.functionExecutorMap,this.parseNodeNameCache),h=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(b=>{let[y,x]=Zn(b,c),v=[];v[x]=t[b],h[y]=v,this.keepIntermediateTensors&&(this.clonedTensorsMap[y]=this.cloneTensorList(v))});let m=this.getFrozenTensorIds(h),{orderedNodes:f,nodeLiveUntilMap:g}=u;for(let b of f){if(h[b.name])continue;let y=cS(b,h,c,this._resourceManager);if(w.isPromise(y))throw new Error(`The execution of the op '${b.op}' returned a promise. Please use model.executeAsync() instead.`);h[b.name]=y,this.keepIntermediateTensors&&(this.clonedTensorsMap[b.name]=this.cloneTensorList(y)),this.checkTensorForDisposalWithNodeLiveUntilInfo(b,h,c,m,i,g.get(b.name))}return this.parent==null&&c.dispose(m),n.map(b=>dn(b,h,c))})}getFrozenTensorIds(t){let n=[].concat.apply([],Object.keys(t).map(a=>t[a]).map(a=>a.map(r=>r.id)));return new Set(n)}checkTensorForDisposal(t,n,a,r,s,i,o){if(!(ti(n)||i.has(t))){for(let l of a[t])l!=null&&(o[l.id]=(o[l.id]||0)+n.children.length);for(let l of n.inputs){if(ti(l))continue;let u=iS(l.name,a,r);if(u!=null)for(let p of u){if(!p||p.kept||s.has(p.id))continue;let d=o[p.id];d===1?(p.dispose(),delete o[p.id]):d!=null&&o[p.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,n,a,r,s,i){function o(l){return ti(l)||s.has(l.name)}if(!(ti(t)||i==null))for(let l of i){if(o(l))continue;let u=iS(l.name,n,a);for(let p of u)!p||p.kept||r.has(p.id)||p.dispose()}}async executeAsync(t,n){return this._executeAsync(t,n)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let n of t)n&&!n.isDisposed&&n.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,n,a=!1,r={},s={}){this.disposeIntermediateTensors(),a||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n));try{this.keepIntermediateTensors=G().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){this.keepIntermediateTensors=!1,console.warn(c.message)}let i=new dS(this.weightMap,r,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let o=await this.executeWithControlFlow(t,i,n,a),l=n.map(c=>dn(c,o,i)),u=l.map(c=>c.id),p=Object.keys(t).map(c=>t[c].id),d=new Set([...u,...p,...this.weightIds]);return Object.values(o).forEach(c=>{c.forEach(h=>{h&&!h.isDisposed&&!d.has(h.id)&&h.dispose()})}),this.parent==null&&i.dispose(d),l}async executeFunctionAsync(t,n,a){let r=t.reduce((s,i,o)=>(s[this.inputs[o].name]=i,s),{});return this._executeAsync(r,this.outputNodes,!0,n,a)}async executeWithControlFlow(t,n,a,r){let s=Object.keys(t),i=s.map(v=>this.graph.nodes[Zn(v)[0]]),o=a.map(v=>Zn(v)[0]),l=new Set(o),u=o.map(v=>this.graph.nodes[v]);u.length===0&&(u=this._outputs);let{usedNodes:p,missingInputs:d,dynamicNode:c,syncInputs:h}=hS(t,u,this.weightMap,this._initNodes),m=[...i,...this.graph.weights,...this._initNodes||[]].map(v=>({node:v,contexts:n.currentContext})),f=Object.assign({},this.weightMap);Object.keys(t).forEach(v=>{let[I,N]=Zn(v),C=[];C[N]=t[v],f[I]=C});let g={},b=this.getFrozenTensorIds(f),y={};for(;m.length>0;){let v=this.processStack(i,m,n,f,y,b,l,g,p);await Promise.all(v)}c==null&&!r&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let x=u.filter(v=>!ti(v)&&!dn(v.name,f,n)).map(v=>v.name);if(x.length>0){let v="";throw c!=null&&(v=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${x}] from the provided inputs [${s}]. Consider providing the following inputs: [${d}]. ${v}`)}return f}processStack(t,n,a,r,s,i,o,l,u){let p=[];for(;n.length>0;){let d=n.pop();a.currentContext=d.contexts;let c="";if(d.node.op==="Enter"&&k("isConstant",d.node,r,a)&&([c]=Tr(d.node.name,a)),r[d.node.name]==null){let h=cS(d.node,r,a,this._resourceManager);c||([c]=Tr(d.node.name,a));let m=a.currentContext;w.isPromise(h)?p.push(h.then(f=>(r[c]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(f)),a.currentContext=m,this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u),f))):(r[c]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[c]=this.cloneTensorList(h)),this.checkTensorForDisposal(c,d.node,r,a,i,o,l),this.processChildNodes(d.node,n,a,r,s,u))}else this.processChildNodes(d.node,n,a,r,s,u)}return p}processChildNodes(t,n,a,r,s,i){t.children.forEach(o=>{let[l]=Tr(o.name,a);s[l]||!i.has(o.name)||(o.op==="Merge"?o.inputNames.some(u=>!!dn(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})):o.inputNames.every(u=>!!dn(u,r,a))&&(s[l]=!0,n.push({contexts:a.currentContext,node:o})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(n=>n.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(n=>{let a=t[n],[r]=Zn(n),s=this.graph.nodes[r];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,o=i.length===a.shape.length&&a.shape.every((l,u)=>i[u]===-1||i[u]===l);w.assert(o,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${a.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&w.assert(a.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${a.dtype}`)})}mapInputs(t){var n,a;let r={};for(let s in t){let i=(a=(n=this._signature)===null||n===void 0?void 0:n.inputs)===null||a===void 0?void 0:a[s];i!=null?r[i.name]=t[s]:r[s]=t[s]}return r}checkInputs(t){let n=Object.keys(t).filter(a=>{let[r]=Zn(a);return this.graph.nodes[r]==null});if(n.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${n}] that are not part of graph`)}mapOutputs(t){return t.map(n=>{var a,r;let s=(r=(a=this._signature)===null||a===void 0?void 0:a.outputs)===null||r===void 0?void 0:r[n];return s!=null?s.name:n},{})}checkOutputs(t){t.forEach(n=>{let[a]=Zn(n);if(!this.graph.nodes[a])throw new Error(`The output '${n}' is not found in the graph`)})}},_5=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]}},A5="?tfjs-format=file",F5="model.json",z1=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(e,t={},n=jt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new _5}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.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]}}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=this.handler.load();return w.isPromise(e)?e.then(t=>t.getWeightStream==null?this.loadSync(t):this.loadStreaming(t)):this.loadSync(e)}loadSync(e){let t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(e.getWeightStream==null)throw new Error("Model artifacts missing streamWeights function");let t=await $N(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;let n=this.artifacts.modelTopology,a=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(a=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}if(this.signature=a,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new mS(oS.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=oS.Instance.transformGraph(e.modelInitializer);this.initializer=new mS(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.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)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof Ce?[e]:e,n={};return t.forEach((a,r)=>n[this.structuredOutputKeys[r]]=a),n}return e}predict(e,t){let n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){let n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Ce)&&!Array.isArray(e)){let r=(t=this.signature)===null||t===void 0?void 0:t.inputs;if(r!=null)for(let s in r){let i=r[s];i.resourceId!=null&&(e[s]=this.resourceIdToCapturedInput[i.resourceId])}return e}e=Array.isArray(e)?e:[e];let n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let a=0;return this.inputNodes.reduce((r,s)=>{var i,o,l;let u=(l=(o=(i=this.signature)===null||i===void 0?void 0:i.inputs)===null||o===void 0?void 0:o[s])===null||l===void 0?void 0:l.resourceId;return u!=null?r[s]=this.resourceIdToCapturedInput[u]:r[s]=e[a++],r},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,n=Object.keys(t);for(let a=0;a1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Ee(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function $5(e,t={},n=jt){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&&typeof e=="string"&&(e=R5(e));let a=new z1(e,t,n);return await a.load(),a}function D5(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=jt.getWeightSpecs(a.weightsManifest),i=jt.getModelArtifactsForJSONSync(a,s,r);t=jt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=jt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new z1(t);return n.load(),n}function R5(e){return e.endsWith("/")||(e=e+"/"),`${e}${F5}${A5}`}var M5="4.21.0",AE={};_e(AE,{CSVDataset:()=>BE,Dataset:()=>xp,FileDataSource:()=>KE,TextLineDataset:()=>WE,URLDataSource:()=>XE,array:()=>r8,csv:()=>b8,func:()=>y8,generator:()=>x8,microphone:()=>w8,version_data:()=>k8,webcam:()=>v8,zip:()=>s8});var O5=Is(Fm()),P5=Is(Fm());function L5(e,t){return wm(e,t)}function wm(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();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(ru(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=wm(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function z5(e,t=$E){return FE(e,t)}function FE(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(ru(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=FE(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 $E(e){return e===null?null:ru(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function DE(e,t){let n=new Map;wm(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 wm(e,t,n)}function ru(e){let t=!1;if(G().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=QS();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ce)&&!(e instanceof Promise)&&!t)}function W5(e){return e==null||B5(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ce||w.isTypedArray(e)}function B5(e){return e===null||typeof e!="object"&&typeof e!="function"}function V5(e){return L5(e,U5)}function U5(e){return e instanceof Ce?{value:e.clone(),recurse:!1}:ru(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var RE=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}},ME=class OE extends RE{constructor(){super(OE.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,n=new Array(t),a=this.length();for(let r=0;rt===!0)}rowMajorBatch(e,t=!0){return new Z5(this,e,t)}columnMajorBatch(e,t=!0,n=$E){return this.rowMajorBatch(e,t).map(a=>z5(a,n))}concatenate(e,t){return new LE(PE([this,e]),t)}take(e){return e<0||e==null?this:new Y5(this,e)}skip(e){return e<0||e==null?this:new X5(this,e)}prefetch(e){return new zE(this,e)}shuffle(e,t){return new a8(this,e,t)}serial(){return new K5(this)}},j5=class extends sn{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:V5(e),done:!1}}},q5=class extends sn{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}}},K5=class extends sn{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()}},X5=class extends sn{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()}},Z5=class extends sn{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}}},J5=class extends sn{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)}}},Q5=class extends sn{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},e8=class extends sn{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}}}},fS=class extends sn{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=Wa.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Wa.getTensorsInContainer(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},B1=class extends sn{constructor(){super(),this.outputQueue=new ME,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}}},t8=class extends B1{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=Wa.getTensorsInContainer(e.value),n=this.transform(e.value),a=Wa.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Wa.isTensorInList(r,a)||r.dispose();return!0}},LE=class extends sn{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}},rs;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(rs||(rs={}));var n8=class extends sn{constructor(e,t=rs.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 sn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await DE(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case rs.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case rs.SHORTEST:return{value:null,done:!0};case rs.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},zE=class extends sn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new RE(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()}},a8=class extends zE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=P5.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}}},xp=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===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Yn(async()=>(await n.iterator()).columnMajorBatch(e,t,i8),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Yn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Yn(async()=>(await t.iterator()).filter(a=>O(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Yn(async()=>(await t.iterator()).map(n=>O(()=>e(n))),this.size)}mapAsync(e){let t=this;return Yn(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 Yn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Yn(async()=>{let a=W1(async()=>({value:await t.iterator(),done:!1}));return G5(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=O5.alea(t||w.now().toString());return Yn(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,Yn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};xp.MAX_BUFFER_SIZE=1e4;function Yn(e,t=null){return new class extends xp{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function r8(e){return Yn(async()=>PE(e),e.length)}function s8(e){if(!ru(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 DE(e,a=>{if(a instanceof xp)return{value:a.iterator(),recurse:!1};if(ru(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return H5(n,rs.SHORTEST)},t)}function i8(e){if(e===null)return null;let t=e[0];return W5(t)?{value:o8(e),recurse:!1}:{value:null,recurse:!0}}function o8(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ce?Ft(e):bn(e)}var WE=class extends xp{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))}},Bh='"',rc=Symbol("out"),gS=Symbol("field"),Vh=Symbol("quote"),Nx=Symbol("quoteafterquote"),bS=Symbol("quoteinquote"),BE=class extends xp{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&w.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(w.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new WE(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(w.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(n))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!G().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let n=new VE(t);return await n.start(),n}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(a){throw new Error(`Error thrown while initializing video stream: ${a.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 n=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,n.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 t,n,a=await this.getAudioData();if(this.includeSpectrogram){let r=this.flattenQueue(a.freqDataQueue);t=this.getTensorFromAudioDataArray(r,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let r=this.flattenQueue(a.timeDataQueue);n=this.getTensorFromAudioDataArray(r,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:n},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],n=[],a=0;return new Promise(r=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:t,timeDataQueue:n}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),n.push(this.timeData.slice())),++a===this.numFrames&&(clearInterval(s),r({freqDataQueue:t,timeDataQueue:n}))},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(t){let n=t[0].length,a=new Float32Array(t.length*n);return t.forEach((r,s)=>a.set(r,s*n)),a}getTensorFromAudioDataArray(t,n){let a=new Float32Array(w.sizeFromShape(n));return a.set(t,a.length-t.length),bn(a,n)}},u8=class UE extends sn{constructor(t,n){if(super(),this.webcamVideoElement=t,this.webcamConfig=n,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=je([0],"int32"),this.webcamConfig.centerCrop){let a=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,r=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-a)/2,i=(1-r)/2,o=s+a,l=r+i;this.cropBox=Aa([i,s,l,o],[1,4])}else this.cropBox=Aa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,n={}){if(!G().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!n.resizeWidth||!n.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=n.resizeWidth,t.height=n.resizeHeight}let a=new UE(t,n);return await a.start(),a}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=Xo.fromPixels(this.webcamVideoElement)}catch(n){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(n)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(n){throw new Error(`Error thrown cropping the video: ${n.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return O(()=>{let n=Gt(re(t,"float32"),0),a;a=Qn.cropAndResize(n,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let r=a.shape;return W(a,r.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.")}},GE=class{},HE=class extends sn{split(e){return new p8(this,e)}},p8=class extends HE{constructor(e,t){super(),this.upstream=e,this.impl=new c8(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},c8=class extends B1{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}},d8=class extends sn{decodeUTF8(){return new h8(this)}},h8=class extends HE{constructor(e){super(),this.upstream=e,this.impl=new m8(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},m8=class extends B1{constructor(e){if(super(),this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=QS();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 G().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},jE=class extends d8{constructor(e,t={}){super(),this.file=e,this.options=t,w.assert(e instanceof Uint8Array||(G().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 f8(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=g8(e));let s=await(n||w.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new jE(i,t)}else throw new Error(s.statusText)}var g8=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 qE(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var KE=class extends GE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(qE(this.input)&&G().get("IS_NODE")){let e=Fv();this.input=e.readFileSync(this.input.slice(7))}return new jE(this.input,this.options)}},XE=class extends GE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return qE(this.url)?new KE(this.url,this.fileOptions).iterator():f8(this.url,this.fileOptions)}};function b8(e,t={}){return new BE(new XE(e),t)}function y8(e){let t=W1(e);return Yn(async()=>t)}function x8(e){return Yn(async()=>{let t=await e();return W1(()=>t.next())})}async function v8(e,t){return u8.create(e,t)}async function w8(e){return l8.create(e)}var k8="4.21.0";function ge(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 I8=gr.whereImpl,V1=class YE extends Pc{nextDataId(){return YE.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new $m(this,Ea())}write(t,n,a){this.firstUse&&(this.firstUse=!1,G().get("IS_NODE")&&T.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let r={id:this.nextDataId()};return this.data.set(r,{values:t,dtype:a,refCount:1}),r}makeTensorInfo(t,n,a){let r;if(n==="string"&&a!=null&&a.length>0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return{dataId:r,shape:t,dtype:n}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let n=this.data.get(t);n.refCount++}decRef(t){if(this.data.has(t)){let n=this.data.get(t);n.refCount--}}move(t,n,a,r,s){this.data.set(t,{values:n,dtype:r,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:n,complexTensorInfos:a}=this.data.get(t);if(n==="complex64"){let r=this.readSync(a.real.dataId),s=this.readSync(a.imag.dataId);return T.mergeRealAndImagArrays(r,s)}return w.convertBackendValuesAndArrayBuffer(this.data.get(t).values,n)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Pe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(t.shape,t.dtype,n)}makeOutput(t,n,a){return Ea().makeTensorFromTensorInfo(this.makeTensorInfo(n,a,t),this)}disposeData(t,n=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!n&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:a}=this.data.get(t);a!=null&&(this.disposeData(a.real.dataId,!0),this.disposeData(a.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let n=w.now();return t(),{kernelMs:w.now()-n}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){ge([t],"where");let n=this.readSync(t.dataId);return xK(t.shape,n)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};V1.nextDataId=0;var U1={};_e(U1,{addImpl:()=>ZE,bincountImpl:()=>H1,bincountReduceImpl:()=>JE,bitwiseAndImpl:()=>QE,castImpl:()=>YE,ceilImpl:()=>e_,concatImpl:()=>q1,equalImpl:()=>t_,expImpl:()=>a_,expm1Impl:()=>s_,floorDivImpl:()=>o_,floorImpl:()=>i_,gatherNdImpl:()=>l_,gatherV2Impl:()=>u_,greaterEqualImpl:()=>c_,greaterImpl:()=>p_,lessEqualImpl:()=>h_,lessImpl:()=>d_,linSpaceImpl:()=>m_,logImpl:()=>f_,maxImpl:()=>g_,maximumImpl:()=>b_,minimumImpl:()=>y_,multiplyImpl:()=>j1,negImpl:()=>x_,notEqualImpl:()=>v_,prodImpl:()=>w_,raggedGatherImpl:()=>k_,raggedRangeImpl:()=>I_,raggedTensorToTensorImpl:()=>S_,rangeImpl:()=>X1,rsqrtImpl:()=>N_,scatterImpl:()=>ai,sigmoidImpl:()=>y8,simpleAbsImpl:()=>XE,sliceImpl:()=>Im,sparseFillEmptyRowsImpl:()=>C_,sparseReshapeImpl:()=>E_,sparseSegmentReductionImpl:()=>Y1,sqrtImpl:()=>w8,squaredDifferenceImpl:()=>__,staticRegexReplaceImpl:()=>A_,stridedSliceImpl:()=>F_,stringNGramsImpl:()=>Z1,stringSplitImpl:()=>J1,stringToHashBucketFastImpl:()=>Q1,subImpl:()=>$_,tileImpl:()=>D_,topKImpl:()=>M_,transposeImpl:()=>K1,uniqueImpl:()=>tk});function XE(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=XE(r),n.makeOutput(a,t.shape,t.dtype)},wK={kernelName:uu,backendName:"cpu",kernelFunc:vK};function Mt(e){return(t,n,a,r,s)=>{let i=T.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),u=w.sizeFromShape(i),p=w.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=T.getBroadcastDims(t,i),g=T.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[C]=0);let v=w.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let N=w.locToIndex(I,c,m);p[b]=e(a[v],r[N])}return[p,i]}}function Jn(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 kK={kernelName:Mm,backendName:"cpu",kernelFunc:Jn};function km(e,t,n="float32"){if(n==="complex64"){let r=km(e,t,"float32"),s=km(e,t,"float32");return Jn({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function dr(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 IK={kernelName:no,backendName:"cpu",kernelFunc:dr};function vi(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 SK={kernelName:jm,backendName:"cpu",kernelFunc:vi};function YE(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=w.toTypedArray([0],n),[s,i]=Mt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function vs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return dr({inputs:{x:r},backend:n});let p=km(n,r.shape,r.dtype),d=vs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Jn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=vi({inputs:{input:r},backend:n}),d=vs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!w.hasEncodingLoss(r.dtype,s)){let p=dr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=YE(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var NK={kernelName:Pi,backendName:"cpu",kernelFunc:vs};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?T.fromUint8ToStringArray(u):u,c=i.dtype==="string"?T.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=vs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=vs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,v=l.data.get(y.dataId).values,[I,N,C]=n(i.shape,o.shape,h,m,x,v),_=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",N),D=Jn({inputs:{real:_,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(_),l.disposeIntermediateTensorInfo(F),D}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function G1(e){return(t,n,a,r,s,i)=>{let o=T.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),u=o.length,p=w.computeStrides(o),d=w.getTypedArrayFromDType("float32",l),c=w.getTypedArrayFromDType("float32",l),h=T.getBroadcastDims(t,o),m=T.getBroadcastDims(n,o),f=T.mergeRealAndImagArrays(a,r),g=T.mergeRealAndImagArrays(s,i),b=t.length,y=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let _=w.locToIndex(C,b,y),F=N.slice(-x);m.forEach(S=>F[S]=0);let D=w.locToIndex(F,x,v),$=e(f[_*2],f[_*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var ZE=Mt((e,t)=>e+t),TK=G1((e,t,n,a)=>({real:e+n,imag:t+a})),su=Zt(Is,ZE,TK),CK={kernelName:Is,backendName:"cpu",kernelFunc:su};function H1(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 JE(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Pe([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}var QE=Mt((e,t)=>e&t),EK=Zt(bu,QE),_K={kernelName:bu,backendName:"cpu",kernelFunc:EK};function gr(e){return(t,n,a)=>{let r=w.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=T.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var e_=gr(e=>Math.ceil(e)),AK=Rs(Li,e_),FK={kernelName:Li,backendName:"cpu",kernelFunc:AK};function q1(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"?T.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),n_=Zt(Nu,t_,null,"bool"),$K={kernelName:Nu,backendName:"cpu",kernelFunc:n_},a_=gr(e=>Math.exp(e)),r_=Rs(Yi,a_,"float32"),DK={kernelName:Yi,backendName:"cpu",kernelFunc:r_},s_=gr(e=>Math.expm1(e)),RK=Rs(Zi,s_),MK={kernelName:Zi,backendName:"cpu",kernelFunc:RK},i_=gr(e=>Math.floor(e)),OK=Rs(Ji,i_),PK={kernelName:Ji,backendName:"cpu",kernelFunc:OK},o_=Mt((e,t)=>Math.floor(e/t)),LK=Zt(Qi,o_,null,"int32"),zK={kernelName:Qi,backendName:"cpu",kernelFunc:LK};function l_(e,t,n,a,r,s,i,o,l){let u=Pe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),WK=Zt(Au,p_,null,"bool"),BK={kernelName:Au,backendName:"cpu",kernelFunc:WK},c_=Mt((e,t)=>e>=t?1:0),VK=Zt(to,c_,null,"bool"),UK={kernelName:to,backendName:"cpu",kernelFunc:VK},d_=Mt((e,t)=>ee<=t?1:0),qK=Zt($u,h_,null,"bool"),jK={kernelName:$u,backendName:"cpu",kernelFunc:qK};function m_(e,t,n){let a=(t-e)/(n-1),r=w.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),KK=Rs(oo,f_),XK={kernelName:oo,backendName:"cpu",kernelFunc:KK};function g_(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var b_=Mt((e,t)=>Math.max(e,t)),YK=Zt(co,b_),ZK={kernelName:co,backendName:"cpu",kernelFunc:YK},y_=Mt((e,t)=>Math.min(e,t)),JK=Zt(go,y_),QK={kernelName:go,backendName:"cpu",kernelFunc:JK},j1=Mt((e,t)=>e*t),e8=G1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Jf=Zt(xo,j1,e8),t8={kernelName:xo,backendName:"cpu",kernelFunc:Jf};function x_(e,t,n){let a=w.createScalarValue(-1,n);return j1([],t,a,e,n)}function n8(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=x_(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var a8={kernelName:Wu,backendName:"cpu",kernelFunc:n8},v_=Mt((e,t)=>e!==t?1:0),r8=Zt(Bu,v_,null,"bool"),s8={kernelName:Bu,backendName:"cpu",kernelFunc:r8};function K1(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),u=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(y)),n.makeTensorInfo(b,g,m)}var l8={kernelName:So,backendName:"cpu",kernelFunc:o8};function u8(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=w.indexToLoc(r,t.length,w.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function p8(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function c8(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);p8(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function yS(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&yb)v=0;else if(v=Math.ceil(Math.abs((y-b)/x)),v>xS)throw new Error(`Requires ((limit - start) / delta) <= ${xS}`);c[g+1]=c[g]+v}let h=c[d],m=w.getArrayFromDType(n,h),f=0;for(let g=0;ga&&(a=s)}return a}static getMaxWidthValueRowID(t){let n=t.length;if(n===0)return 0;let a=0,r=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,n,a,r){let s=t.length,i=[];for(let o=0;o0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,n,a,r){let s=t.length,i=[];if(s===0)return[];let o=0,l=t[0];if(l>=n.length)throw new Error(`Got currentValueRowId=${l}, which is not less than ${n.length}`);let u=n[l];i.push(u);for(let p=1;p=0&&(++o,o=n.length)throw new Error(`Got nextValueRowId=${d} which is not less than ${n.length}`);u=n[d]}i.push(u)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,n,a,r){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ca.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,n,a,r);case Ca.ROW_SPLITS:if(s.length-1>n.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${n.length}`);return this.calculateOutputIndexRowSplit(s,n,a,r);default:throw new Error(`Unsupported partition type: ${Ca[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let n=this.rowPartitionTypes[0];switch(n){case Ca.FIRST_DIM_SIZE:return t[0];case Ca.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ca.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ca[n]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let t=this.getFirstDimensionSize(),n=this.calculateOutputSize(t),a=new Array(this.raggedRank+1);a[a.length-1]=1;for(let i=a.length-2;i>=0;--i)a[i]=a[i+1]*n[i+1];let r=wS(n,!1),s=w.getArrayFromDType(this.valuesDType,w.sizeFromShape(r));if(a[0]*n[0]>0){let i=this.calculateFirstParentOutputIndex(t,a[0],n[0]);for(let o=1;o<=this.raggedRank;++o)i=this.calculateOutputIndex(o-1,i,a[o],n[o]);this.setOutput(this.raggedRank,i,s,r)}return[r,s]}setOutput(t,n,a,r){if(a.length===0)return;let s=this.values,i=a,o=r.slice();o=o.slice(t+1);let l=w.sizeFromShape(o),u=n.length,p=this.defaultValue;if(p.length!==l&&p.length!==1){let m=this.defaultValueShape;O(()=>{let f=W(p,m);p=ri(f,o).dataSync()})}let d=0,c=0,h=0;for(let m=0;m<=u;++m){let f=m=u){let g=a.length;f=Math.floor(g/l)}if(f>h)if(this.defaultValue.length===1)i.subarray(h*l,f*l).fill(this.defaultValue[0]),h=f;else for(;f>h;){let g=i.slice(h*l);vS(g,p,l),++h}f<0?(d=m+1,c=h):(d=m,c=h,h=c+1)}}};function vS(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function S_(e,t,n,a,r,s,i,o,l,u){return new f8(e,t,n,a,r,s,i,o,l,u).compute()}function X1(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)),g8=Rs($o,N_),b8={kernelName:$o,backendName:"cpu",kernelFunc:g8};function ai(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Pe(n,t.dtype);let h=l instanceof Wt?l:Pe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let b=0;b1/(1+Math.exp(-e))),T_=lt(Po,e=>1/(1+Math.exp(-e))),x8={kernelName:Po,backendName:"cpu",kernelFunc:T_};function Im(e,t,n,a,r){let s=Kt.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let d=Kt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?T.fromUint8ToStringArray(e):e,u=Pe(a,r,l),p=Pe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?T.fromStringArrayToUint8(p.values):p.values}function wi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Kt.parseSliceParams(r,s,i);Kt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Im(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var v8={kernelName:ep,backendName:"cpu",kernelFunc:wi};function C_(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(T.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=w.getArrayFromDType(n,0),b=w.getArrayFromDType(r,0);return[g,[0,d],b,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(T.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=w.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((y,x)=>y*x,1),h=w.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,b=r[m];for(;;){let y=0;if(f=y)throw new Error(T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*u);for(let x=m;x=l[0])throw new Error(T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),k8=lt(zo,e=>Math.sqrt(e)),I8={kernelName:zo,backendName:"cpu",kernelFunc:k8},__=Mt((e,t)=>{let n=e-t;return n*n}),S8=Zt(Vo,__),N8={kernelName:Vo,backendName:"cpu",kernelFunc:S8},A_=gr((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),T8=Rs(ed,A_),C8={kernelName:ed,backendName:"cpu",kernelFunc:T8};function F_(e,t,n,a){let r=Pe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=w.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth;this.createNGrams(e,l,i,u,1,d)}}return[i,s]}};function Z1(e,t,n,a,r,s,i,o){return new E8(n,a,r,s,i,o).compute(e,t)}function _8(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),A8=G1((e,t,n,a)=>({real:e-n,imag:t-a})),ek=Zt(Uo,$_,A8),F8={kernelName:Uo,backendName:"cpu",kernelFunc:ek};function D_(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function R_(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));R_(e,t,c,h)}let r=e[t],s=n,i=a;for(w.swap(e,n,t),lc(e[a],r)>0&&w.swap(e,n,a);s0;)i=i-1}lc(e[n],r)===0?w.swap(e,n,i):(i=i+1,w.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function M_(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=w.getTypedArrayFromDType(n,i*a),u=w.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:y,index:x}),a{for(let g=0;gnew V1,1);var O_=lt(Ki,e=>e>=0?e:Math.exp(e)-1),D8={kernelName:Ki,backendName:"cpu",kernelFunc:O_};function P_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function L_(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=M8(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var O8={kernelName:Io,backendName:"cpu",kernelFunc:L_},z_=lt(To,e=>Math.max(0,e)),P8={kernelName:To,backendName:"cpu",kernelFunc:z_},W_=lt(_o,e=>Math.min(Math.max(0,e),6)),L8={kernelName:_o,backendName:"cpu",kernelFunc:W_};function Sm(e,t,n,a,r){if(n==="linear")return dr({inputs:{x:t},backend:e});if(n==="relu")return z_({inputs:{x:t},backend:e});if(n==="elu")return O_({inputs:{x:t},backend:e});if(n==="relu6")return W_({inputs:{x:t},backend:e});if(n==="prelu")return L_({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return P_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return T_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(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 u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var z8={kernelName:ju,backendName:"cpu",kernelFunc:xt};function B_(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=cp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),N=xt({inputs:{x:s},backend:n,attrs:{shape:v}}),C=i?I.shape[1]:I.shape[2],_=i?I.shape[2]:I.shape[1],F=o?N.shape[1]:N.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(N.dataId).values,M=w.computeStrides(I.shape),B=w.computeStrides(N.shape),[U,H,j]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=_*F,ae=Pe([D,_,F],I.dtype),te=ae.values,se=n.blockSize;for(let ie=0;ieMath.acos(e)),G8={kernelName:Ci,backendName:"cpu",kernelFunc:U8},H8=lt(Ei,e=>Math.acosh(e)),q8={kernelName:Ei,backendName:"cpu",kernelFunc:H8};function j8(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Pe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var eX={kernelName:du,backendName:"cpu",kernelFunc:Q8};function tX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Bn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],T.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=T.computeOutAndReduceShapes(l.shape,i),c=w.sizeFromShape(p),h=w.makeZerosTypedArray(c,"int32"),m=w.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var nX={kernelName:hu,backendName:"cpu",kernelFunc:tX},aX=lt(Ai,e=>Math.asin(e)),rX={kernelName:Ai,backendName:"cpu",kernelFunc:aX},sX=lt(Fi,e=>Math.asinh(e)),iX={kernelName:Fi,backendName:"cpu",kernelFunc:sX},oX=lt($i,e=>Math.atan(e)),lX={kernelName:$i,backendName:"cpu",kernelFunc:oX},uX=Mt((e,t)=>Math.atan2(e,t)),pX=Zt(Ri,uX),cX={kernelName:Ri,backendName:"cpu",kernelFunc:pX},dX=lt(Di,e=>Math.atanh(e)),hX={kernelName:Di,backendName:"cpu",kernelFunc:dX};function nk(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Pe(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vj?j=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(j))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:j}}}return f}function V_(e,t,n,a,r=!1,s=!1){let i=Pe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Pe(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,N,b)}}return i}function U_(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Pe(r.outShape,n),v=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],N=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],_=r.outShape[4];for(let F=0;Fye?ye=gt:s==="avg"&&(ke+=gt,Se++),isNaN(ye))break}if(isNaN(ye))break}if(isNaN(ye))break}let Le=ue+S;v[Le]=s==="avg"?ke/Math.max(Se,1):ye}}}}return x}function mX(e,t){let n=Pe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function fX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=dr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=nk(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var gX={kernelName:Mi,backendName:"cpu",kernelFunc:fX};function bX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=U_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var yX={kernelName:mu,backendName:"cpu",kernelFunc:bX};function xX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,v=p.effectiveFilterDepth,I=p.effectiveFilterHeight,N=p.effectiveFilterWidth,C=v-1-p.padInfo.front,_=N-1-p.padInfo.left,F=I-1-p.padInfo.top,D=Pe(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let se=0;se=p.outHeight||Math.floor(ie)!==ie))for(let xe=0;xe=p.outWidth||Math.floor(ue)!==ue)continue;let ye=S.get(M,te,ie,ue,B);ee+=ye}}}D.set(ee*$,M,U,H,j,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var vX={kernelName:Wc,backendName:"cpu",kernelFunc:xX};function wX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,v=b-1-p.padInfo.top,I=Pe(i.shape,"float32"),N=1/(h*m),C=n.data.get(r.dataId).values,_=Pe(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(j)!==j))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=_.get(F,j,Z,D);U+=J}}I.set(U*N,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var kX={kernelName:zc,backendName:"cpu",kernelFunc:wX};function IX(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."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=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(p.length),g=m.length,b=h.length,y=c.length,x=d.length,v=0,I=0,N=0,C=0;for(let _=0;_=g&&(v=0),I>=x&&(I=0),N>=b&&(N=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var SX={kernelName:eo,backendName:"cpu",kernelFunc:IX};function NX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Bn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=wi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var TX={kernelName:fu,backendName:"cpu",kernelFunc:NX};function CX(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=H1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var EX={kernelName:gu,backendName:"cpu",kernelFunc:CX};function _X(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var AX={kernelName:Bc,backendName:"cpu",kernelFunc:_X},FX=lt(Ss,(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 u=0;uf.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(f=>f.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>w.sizeFromShape(f.shape)>0);if(l.length===1)return dr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(v=>vi({inputs:{input:v},backend:n})),g=l.map(v=>iu({inputs:{input:v},backend:n})),b=ou({inputs:f,backend:n,attrs:{axis:s}}),y=ou({inputs:g,backend:n,attrs:{axis:s}}),x=Jn({inputs:{real:b,imag:y},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,w.sizeFromShape(f.shape.slice(s))];return xt({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=T.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=q1(p,o,t[0].dtype,d),h=T.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var OX={kernelName:yu,backendName:"cpu",kernelFunc:ou};function G_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",v=new Wt(c.outShape,r.dtype),I=w.computeStrides(r.shape),N=w.computeStrides(s.shape),C=I[0],_=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=v.strides[0],S=x?v.strides[1]:v.strides[2],M=x?v.strides[2]:1,B=x?1:v.strides[1],U=n.data.get(r.dataId).values,H=n.data.get(s.dataId).values,j=v.values;for(let K=0;K=c.inHeight)continue;let xe=se*N[0],ue=Z+ie*_;for(let ye=0;ye=c.inWidth)continue;let mt=xe+Le*N[1],st=ue+Ge*F,at=mt;for(let rt=0;rt=u.inDepth)continue;let K=H*F[0],Z=$+j*_[1];for(let J=0;J=u.inHeight)continue;let ie=K+te*F[1],xe=Z+se*_[2];for(let ue=0;ue=u.inWidth)continue;let Ge=ie+Se*F[2],mt=xe+Le*u.inChannels,st=Ge;for(let at=0;atMath.cos(e)),XX={kernelName:Vi,backendName:"cpu",kernelFunc:KX},YX=lt(Ui,e=>Math.cosh(e)),ZX={kernelName:Ui,backendName:"cpu",kernelFunc:YX};function JX(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,b=Pe([m,f,g,h],"float32"),y=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,I=w.computeStrides(r.shape),N=w.computeStrides(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(j<0||j>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let xe=0;xe1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let b=0;b`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=T.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:b,padInfo:y}=h,x=y.left,v=y.top,I=h.outChannels/h.inChannels,N=new Wt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,_=n.data.get(s.dataId).values,F=N.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+j*p[1];for(let J=0;J=h.inWidth)continue;let ie=K+te*d[1],xe=Z+se*h.inChannels,ue=ee,ye=ie;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:b,outWidth:y,padInfo:x,strideHeight:v,strideWidth:I,filterHeight:N,filterWidth:C,dilationHeight:_,dilationWidth:F,outShape:D}=T.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=w.sizeFromShape(D),S=D.length,M=w.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&ieJ&&(J=ye)}}}let ee=w.locToIndex([B,U,j,Z],S,w.computeStrides(D));M[ee]=J}}}return{dataId:l.write(w.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},gY={kernelName:jl,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${jl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ee,J=te)}}}$[Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},bY={kernelName:ql,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${ql}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ae,J=se)}}}$[S][Z][J][j]+=D[S][M][U][j]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function yY(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{canvas:s,options:i}=a,{contextOptions:o,imageOptions:l}=i||{},u=(l==null?void 0:l.alpha)||1,p=(o==null?void 0:o.contextType)||"2d";if(p!=="2d")throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);let d=s.getContext(p,(o==null?void 0:o.contextAttributes)||{});if(d==null)throw new Error(`Could not get the context with ${p} type.`);let[c,h]=r.shape.slice(0,2),m=r.shape.length===2?1:r.shape[2],f=n.data.get(r.dataId).values,g=r.dtype==="float32"?255:1,b=new Uint8ClampedArray(h*c*4);for(let x=0;x1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${C}.`)}else if(r.dtype==="int32"&&(C<0||C>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${C}.`);m===1?(v[0]=C*g,v[1]=C*g,v[2]=C*g):v[N]=C*g}let I=x*4;b[I+0]=Math.round(v[0]),b[I+1]=Math.round(v[1]),b[I+2]=Math.round(v[2]),b[I+3]=Math.round(v[3])}s.width=h,s.height=c;let y=new ImageData(b,h,c);return d.putImageData(y,0,0),r}var xY={kernelName:zm,backendName:"cpu",kernelFunc:yY};function Rd(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=vs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=dr({inputs:{x:r},backend:n});let l=o.shape.length,u=w.parseAxisParam(s,o.shape),p=T.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Bn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=T.getInnerMostAxes(d.length,l)),T.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=T.computeOutAndReduceShapes(c.shape,d),f=T.upcastType(c.dtype,"int32"),g=km(n,h,f),b=w.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let v=0;v=0&&(c=Rd({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var kY={kernelName:Wm,backendName:"cpu",kernelFunc:wY};function IY(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([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=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var SY={kernelName:Su,backendName:"cpu",kernelFunc:IY},NY=T.ERF_P,TY=T.ERF_A1,CY=T.ERF_A2,EY=T.ERF_A3,_Y=T.ERF_A4,AY=T.ERF_A5,FY=lt(Xi,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+NY*n);return t*(1-((((AY*a+_Y)*a+EY)*a+CY)*a+TY)*a*Math.exp(-n*n))}),$Y={kernelName:Xi,backendName:"cpu",kernelFunc:FY};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&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var DY={kernelName:Tu,backendName:"cpu",kernelFunc:Nm},RY=Mt((e,t)=>e/t),ak=Zt(ji,RY),fv={kernelName:ji,backendName:"cpu",kernelFunc:ak};function q_(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],p=w.sizeFromShape(u),d=w.getTypedArrayFromDType("float32",p),c=w.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&y=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=w.sizeFromShape(s.shape),h=T.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=u_(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var YY={kernelName:Eu,backendName:"cpu",kernelFunc:XY};function ZY(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=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=q_(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var JY={kernelName:Vm,backendName:"cpu",kernelFunc:ZY},QY=lt(ao,e=>Number.isFinite(e)?1:0,"bool"),e7={kernelName:ao,backendName:"cpu",kernelFunc:QY},t7=lt(ro,e=>Math.abs(e)===1/0?1:0,"bool"),n7={kernelName:ro,backendName:"cpu",kernelFunc:t7},a7=lt(so,e=>Number.isNaN(e)?1:0,"bool"),r7={kernelName:so,backendName:"cpu",kernelFunc:a7};function s7(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=m_(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var i7={kernelName:Du,backendName:"cpu",kernelFunc:s7},o7=lt(lo,e=>Math.log1p(e)),l7={kernelName:lo,backendName:"cpu",kernelFunc:o7},u7=Mt((e,t)=>e&&t),p7=Zt(Ru,u7,null,"bool"),c7={kernelName:Ru,backendName:"cpu",kernelFunc:p7},d7=lt(Mu,e=>e?0:1,"bool"),h7={kernelName:Mu,backendName:"cpu",kernelFunc:d7},m7=Mt((e,t)=>e||t),f7=Zt(Ou,m7,null,"bool"),g7={kernelName:Ou,backendName:"cpu",kernelFunc:f7};function b7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=w.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let v=d[b];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 p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=dr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=nk(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var I7={kernelName:ho,backendName:"cpu",kernelFunc:k7};function S7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=U_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var N7={kernelName:Lu,backendName:"cpu",kernelFunc:S7};function T7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=mX(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,v=p.effectiveFilterHeight,I=p.effectiveFilterWidth,N=x-1-p.padInfo.front,C=I-1-p.padInfo.left,_=v-1-p.padInfo.top,F=Pe(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let se=0;se=p.outWidth||Math.floor(ie)!==ie)continue;let xe=x*v*I-1-c.get($,ee,te,ie,S),ue=J*v*I+ae*I+se,ye=xe===ue?1:0;if(ye===0)continue;let ke=D.get($,ee,te,ie,S);Z+=ke*ye}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var C7={kernelName:jc,backendName:"cpu",kernelFunc:T7};function E7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=T.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Pe(c.outShape,o.dtype,V_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,v=c.effectiveFilterWidth,I=v-1-c.padInfo.left,N=x-1-c.padInfo.top,C=Pe(o.shape,"float32"),_=n.data.get(r.dataId).values,F=Pe(r.shape,"float32",_);for(let D=0;D=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*v-1-m.get(D,K,J,$),ae=j*v+Z,te=ee===ae?1:0;if(te===0)continue;let se=F.get(D,K,J,$);H+=se*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var _7={kernelName:qc,backendName:"cpu",kernelFunc:E7};function A7(e,t,n,a,r){let s=w.computeStrides(t),i=nk(e,t,n,s,r,"max"),o=V_(e,t,n,r,!0,a);return[i.values,o.values]}var F7={kernelName:Kc,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=T.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=A7(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function $7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=w.parseAxisParam(s,r.shape),l=T.computeOutAndReduceShapes(r.shape,o)[1],u=w.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=vs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=ak({inputs:{a:c,b:d},backend:n});p.push(h);let m=Rd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var D7={kernelName:mo,backendName:"cpu",kernelFunc:$7};function R7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,u=T.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Bn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=T.getInnerMostAxes(l.length,r.shape.length)),T.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=T.computeOutAndReduceShapes(p.shape,l),h=w.sizeFromShape(c),m=w.makeZerosTypedArray(w.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),b=w.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,N)=>I-l[N]);let v=w.locToIndex(x,c,h);b[y]=d[v]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var P7={kernelName:bo,backendName:"cpu",kernelFunc:O7},L7=Mt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),z7=Zt(yo,L7),W7={kernelName:yo,backendName:"cpu",kernelFunc:z7},B7=ks(Fm());function K_(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),u=j_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=T.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=ek({inputs:{a:r,b:d},backend:n}),h=r_({inputs:{x:c},backend:n}),m=Rd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=ak({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var V7={kernelName:Bo,backendName:"cpu",kernelFunc:K_};function U7(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:K_({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=w.makeZerosTypedArray(w.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Nm({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=ou({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var rZ={kernelName:qu,backendName:"cpu",kernelFunc:Y_};function sZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[0]),u=n.data.get(r.dataId).values,p=w.sizeFromShape(r.shape),d=r.shape.length,c=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 b=0;bv+l[I]),x=w.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var Z_={kernelName:wo,backendName:"cpu",kernelFunc:sZ},iZ=Mt((e,t)=>Math.pow(e,t)),oZ=Zt(ko,iZ),lZ={kernelName:ko,backendName:"cpu",kernelFunc:oZ};function uZ(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=k_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var pZ={kernelName:Gm,backendName:"cpu",kernelFunc:uZ};function cZ(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=I_(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var dZ={kernelName:Hm,backendName:"cpu",kernelFunc:cZ};function hZ(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=S_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var mZ={kernelName:qm,backendName:"cpu",kernelFunc:hZ};function fZ(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=X1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var gZ={kernelName:Xc,backendName:"cpu",kernelFunc:fZ},bZ=lt(No,e=>1/e),yZ={kernelName:No,backendName:"cpu",kernelFunc:bZ};function xZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=w.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([d,u,p,m])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,v=b[0]/y[0],I=b[1]/y[1];for(let N=0;N1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],b=f[0]/g[0],y=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],v=b[1]/y[1],I=0;for(let N=0;N1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],v=b[1]/y[1],I=1/x,N=1/v,C=Math.ceil(I)*2+2,_=Math.ceil(N)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],se=ae*x,ie=Math.min(p-1,i?Math.round(se):Math.floor(se));if($===ie)for(let xe=0;xe<_;xe++){let ue=xe+K;if(ue<0||ue>=m)continue;let ye=te+ue*l[2],ke=ue*v,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[ye+Z])}}f[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var TZ={kernelName:Ku,backendName:"cpu",kernelFunc:NZ};function CZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return dr({inputs:{x:r},backend:n});let l=new Wt(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var EZ={kernelName:Ao,backendName:"cpu",kernelFunc:CZ},_Z={kernelName:pp,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)),[u,p,d,c]=a.shape,[h,m]=T.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),FZ={kernelName:Fo,backendName:"cpu",kernelFunc:AZ};function $Z(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ai(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var DZ={kernelName:Yu,backendName:"cpu",kernelFunc:$Z};function RZ(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?VZ*e:BZ*(Math.exp(e)-1)),GZ={kernelName:Do,backendName:"cpu",kernelFunc:UZ},HZ=lt(Oo,e=>e<0?-1:e>0?1:0),qZ={kernelName:Oo,backendName:"cpu",kernelFunc:HZ},jZ=lt(Ro,e=>Math.sin(e)),KZ={kernelName:Ro,backendName:"cpu",kernelFunc:jZ},XZ=lt(Mo,e=>Math.sinh(e)),YZ={kernelName:Mo,backendName:"cpu",kernelFunc:XZ},ZZ=11920928955078125e-23,kS=Math.log(ZZ)+2,JZ=lt(Lo,e=>{let t=e>-kS,n=e0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return{dataId:r,shape:t,dtype:n}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let n=this.data.get(t);n.refCount++}decRef(t){if(this.data.has(t)){let n=this.data.get(t);n.refCount--}}move(t,n,a,r,s){this.data.set(t,{values:n,dtype:r,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:n,complexTensorInfos:a}=this.data.get(t);if(n==="complex64"){let r=this.readSync(a.real.dataId),s=this.readSync(a.imag.dataId);return T.mergeRealAndImagArrays(r,s)}return w.convertBackendValuesAndArrayBuffer(this.data.get(t).values,n)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Pe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(t.shape,t.dtype,n)}makeOutput(t,n,a){return Ea().makeTensorFromTensorInfo(this.makeTensorInfo(n,a,t),this)}disposeData(t,n=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!n&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:a}=this.data.get(t);a!=null&&(this.disposeData(a.real.dataId,!0),this.disposeData(a.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let n=w.now();return t(),{kernelMs:w.now()-n}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){ge([t],"where");let n=this.readSync(t.dataId);return I8(t.shape,n)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};V1.nextDataId=0;var U1={};_e(U1,{addImpl:()=>QE,bincountImpl:()=>H1,bincountReduceImpl:()=>e_,bitwiseAndImpl:()=>t_,castImpl:()=>JE,ceilImpl:()=>n_,concatImpl:()=>j1,equalImpl:()=>a_,expImpl:()=>s_,expm1Impl:()=>o_,floorDivImpl:()=>u_,floorImpl:()=>l_,gatherNdImpl:()=>p_,gatherV2Impl:()=>c_,greaterEqualImpl:()=>h_,greaterImpl:()=>d_,lessEqualImpl:()=>f_,lessImpl:()=>m_,linSpaceImpl:()=>g_,logImpl:()=>b_,maxImpl:()=>y_,maximumImpl:()=>x_,minimumImpl:()=>v_,multiplyImpl:()=>q1,negImpl:()=>w_,notEqualImpl:()=>k_,prodImpl:()=>I_,raggedGatherImpl:()=>S_,raggedRangeImpl:()=>N_,raggedTensorToTensorImpl:()=>T_,rangeImpl:()=>X1,rsqrtImpl:()=>C_,scatterImpl:()=>ri,sigmoidImpl:()=>kK,simpleAbsImpl:()=>ZE,sliceImpl:()=>Im,sparseFillEmptyRowsImpl:()=>__,sparseReshapeImpl:()=>A_,sparseSegmentReductionImpl:()=>Y1,sqrtImpl:()=>NK,squaredDifferenceImpl:()=>F_,staticRegexReplaceImpl:()=>$_,stridedSliceImpl:()=>D_,stringNGramsImpl:()=>Z1,stringSplitImpl:()=>J1,stringToHashBucketFastImpl:()=>Q1,subImpl:()=>R_,tileImpl:()=>M_,topKImpl:()=>P_,transposeImpl:()=>K1,uniqueImpl:()=>tk});function ZE(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=ZE(r),n.makeOutput(a,t.shape,t.dtype)},N8={kernelName:uu,backendName:"cpu",kernelFunc:S8};function Mt(e){return(t,n,a,r,s)=>{let i=T.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),u=w.sizeFromShape(i),p=w.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=T.getBroadcastDims(t,i),g=T.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[C]=0);let v=w.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let N=w.locToIndex(I,c,m);p[b]=e(a[v],r[N])}return[p,i]}}function Jn(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 T8={kernelName:Mm,backendName:"cpu",kernelFunc:Jn};function km(e,t,n="float32"){if(n==="complex64"){let r=km(e,t,"float32"),s=km(e,t,"float32");return Jn({inputs:{real:r,imag:s},backend:e})}let a=w.makeZerosTypedArray(w.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function hr(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 C8={kernelName:no,backendName:"cpu",kernelFunc:hr};function vi(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 E8={kernelName:qm,backendName:"cpu",kernelFunc:vi};function JE(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=w.toTypedArray([0],n),[s,i]=Mt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function ws(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return hr({inputs:{x:r},backend:n});let p=km(n,r.shape,r.dtype),d=ws({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Jn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=vi({inputs:{input:r},backend:n}),d=ws({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!w.hasEncodingLoss(r.dtype,s)){let p=hr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=JE(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var _8={kernelName:Pi,backendName:"cpu",kernelFunc:ws};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?T.fromUint8ToStringArray(u):u,c=i.dtype==="string"?T.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=ws({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=ws({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,v=l.data.get(y.dataId).values,[I,N,C]=n(i.shape,o.shape,h,m,x,v),_=l.makeTensorInfo(C,"float32",I),F=l.makeTensorInfo(C,"float32",N),D=Jn({inputs:{real:_,imag:F},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(_),l.disposeIntermediateTensorInfo(F),D}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function G1(e){return(t,n,a,r,s,i)=>{let o=T.assertAndGetBroadcastShape(t,n),l=w.sizeFromShape(o),u=o.length,p=w.computeStrides(o),d=w.getTypedArrayFromDType("float32",l),c=w.getTypedArrayFromDType("float32",l),h=T.getBroadcastDims(t,o),m=T.getBroadcastDims(n,o),f=T.mergeRealAndImagArrays(a,r),g=T.mergeRealAndImagArrays(s,i),b=t.length,y=w.computeStrides(t),x=n.length,v=w.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let _=w.locToIndex(C,b,y),F=N.slice(-x);m.forEach(S=>F[S]=0);let D=w.locToIndex(F,x,v),$=e(f[_*2],f[_*2+1],g[D*2],g[D*2+1]);d[I]=$.real,c[I]=$.imag}return[d,c,o]}}var QE=Mt((e,t)=>e+t),A8=G1((e,t,n,a)=>({real:e+n,imag:t+a})),su=Zt(Ss,QE,A8),F8={kernelName:Ss,backendName:"cpu",kernelFunc:su};function H1(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 e_(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Pe([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}var t_=Mt((e,t)=>e&t),$8=Zt(bu,t_),D8={kernelName:bu,backendName:"cpu",kernelFunc:$8};function br(e){return(t,n,a)=>{let r=w.getArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;ge(i,e);let o=s,l=o.data.get(i.dataId).values,u;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");u=T.fromUint8ToStringArray(l)}else u=l;let p=n||i.dtype,d=t(u,p,r);return o.makeTensorInfo(i.shape,p,d)}}var n_=br(e=>Math.ceil(e)),R8=Ms(Li,n_),M8={kernelName:Li,backendName:"cpu",kernelFunc:R8};function j1(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"?T.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),r_=Zt(Nu,a_,null,"bool"),O8={kernelName:Nu,backendName:"cpu",kernelFunc:r_},s_=br(e=>Math.exp(e)),i_=Ms(Yi,s_,"float32"),P8={kernelName:Yi,backendName:"cpu",kernelFunc:i_},o_=br(e=>Math.expm1(e)),L8=Ms(Zi,o_),z8={kernelName:Zi,backendName:"cpu",kernelFunc:L8},l_=br(e=>Math.floor(e)),W8=Ms(Ji,l_),B8={kernelName:Ji,backendName:"cpu",kernelFunc:W8},u_=Mt((e,t)=>Math.floor(e/t)),V8=Zt(Qi,u_,null,"int32"),U8={kernelName:Qi,backendName:"cpu",kernelFunc:V8};function p_(e,t,n,a,r,s,i,o,l){let u=Pe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),G8=Zt(Au,d_,null,"bool"),H8={kernelName:Au,backendName:"cpu",kernelFunc:G8},h_=Mt((e,t)=>e>=t?1:0),j8=Zt(to,h_,null,"bool"),q8={kernelName:to,backendName:"cpu",kernelFunc:j8},m_=Mt((e,t)=>ee<=t?1:0),Y8=Zt($u,f_,null,"bool"),Z8={kernelName:$u,backendName:"cpu",kernelFunc:Y8};function g_(e,t,n){let a=(t-e)/(n-1),r=w.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),J8=Ms(oo,b_),Q8={kernelName:oo,backendName:"cpu",kernelFunc:J8};function y_(e,t,n,a){let r=w.getTypedArrayFromDType(a,w.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var x_=Mt((e,t)=>Math.max(e,t)),eK=Zt(co,x_),tK={kernelName:co,backendName:"cpu",kernelFunc:eK},v_=Mt((e,t)=>Math.min(e,t)),nK=Zt(go,v_),aK={kernelName:go,backendName:"cpu",kernelFunc:nK},q1=Mt((e,t)=>e*t),rK=G1((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Qf=Zt(xo,q1,rK),sK={kernelName:xo,backendName:"cpu",kernelFunc:Qf};function w_(e,t,n){let a=w.createScalarValue(-1,n);return q1([],t,a,e,n)}function iK(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=w_(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var oK={kernelName:Wu,backendName:"cpu",kernelFunc:iK},k_=Mt((e,t)=>e!==t?1:0),lK=Zt(Bu,k_,null,"bool"),uK={kernelName:Bu,backendName:"cpu",kernelFunc:lK};function K1(e,t,n,a,r){let s=t.length,i=w.sizeFromShape(t),o=w.computeStrides(t),l=w.computeStrides(r),u=w.getTypedArrayFromDType(n,w.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(y)),n.makeTensorInfo(b,g,m)}var dK={kernelName:So,backendName:"cpu",kernelFunc:cK};function hK(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=w.indexToLoc(r,t.length,w.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function mK(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function fK(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);mK(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function yS(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&yb)v=0;else if(v=Math.ceil(Math.abs((y-b)/x)),v>xS)throw new Error(`Requires ((limit - start) / delta) <= ${xS}`);c[g+1]=c[g]+v}let h=c[d],m=w.getArrayFromDType(n,h),f=0;for(let g=0;ga&&(a=s)}return a}static getMaxWidthValueRowID(t){let n=t.length;if(n===0)return 0;let a=0,r=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,n,a,r){let s=t.length,i=[];for(let o=0;o0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,n,a,r){let s=t.length,i=[];if(s===0)return[];let o=0,l=t[0];if(l>=n.length)throw new Error(`Got currentValueRowId=${l}, which is not less than ${n.length}`);let u=n[l];i.push(u);for(let p=1;p=0&&(++o,o=n.length)throw new Error(`Got nextValueRowId=${d} which is not less than ${n.length}`);u=n[d]}i.push(u)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,n,a,r){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ca.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,n,a,r);case Ca.ROW_SPLITS:if(s.length-1>n.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${n.length}`);return this.calculateOutputIndexRowSplit(s,n,a,r);default:throw new Error(`Unsupported partition type: ${Ca[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let n=this.rowPartitionTypes[0];switch(n){case Ca.FIRST_DIM_SIZE:return t[0];case Ca.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ca.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ca[n]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let t=this.getFirstDimensionSize(),n=this.calculateOutputSize(t),a=new Array(this.raggedRank+1);a[a.length-1]=1;for(let i=a.length-2;i>=0;--i)a[i]=a[i+1]*n[i+1];let r=wS(n,!1),s=w.getArrayFromDType(this.valuesDType,w.sizeFromShape(r));if(a[0]*n[0]>0){let i=this.calculateFirstParentOutputIndex(t,a[0],n[0]);for(let o=1;o<=this.raggedRank;++o)i=this.calculateOutputIndex(o-1,i,a[o],n[o]);this.setOutput(this.raggedRank,i,s,r)}return[r,s]}setOutput(t,n,a,r){if(a.length===0)return;let s=this.values,i=a,o=r.slice();o=o.slice(t+1);let l=w.sizeFromShape(o),u=n.length,p=this.defaultValue;if(p.length!==l&&p.length!==1){let m=this.defaultValueShape;O(()=>{let f=W(p,m);p=si(f,o).dataSync()})}let d=0,c=0,h=0;for(let m=0;m<=u;++m){let f=m=u){let g=a.length;f=Math.floor(g/l)}if(f>h)if(this.defaultValue.length===1)i.subarray(h*l,f*l).fill(this.defaultValue[0]),h=f;else for(;f>h;){let g=i.slice(h*l);vS(g,p,l),++h}f<0?(d=m+1,c=h):(d=m,c=h,h=c+1)}}};function vS(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function T_(e,t,n,a,r,s,i,o,l,u){return new xK(e,t,n,a,r,s,i,o,l,u).compute()}function X1(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)),vK=Ms($o,C_),wK={kernelName:$o,backendName:"cpu",kernelFunc:vK};function ri(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Pe(n,t.dtype);let h=l instanceof Wt?l:Pe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let b=0;b1/(1+Math.exp(-e))),E_=lt(Po,e=>1/(1+Math.exp(-e))),IK={kernelName:Po,backendName:"cpu",kernelFunc:E_};function Im(e,t,n,a,r){let s=Kt.isSliceContinous(a,t,n),i=w.sizeFromShape(n),o=w.computeStrides(a);if(s){let d=Kt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?T.fromUint8ToStringArray(e):e,u=Pe(a,r,l),p=Pe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?T.fromStringArrayToUint8(p.values):p.values}function wi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Kt.parseSliceParams(r,s,i);Kt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Im(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var SK={kernelName:ep,backendName:"cpu",kernelFunc:wi};function __(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(T.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=w.getArrayFromDType(n,0),b=w.getArrayFromDType(r,0);return[g,[0,d],b,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(T.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=w.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((y,x)=>y*x,1),h=w.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,b=r[m];for(;;){let y=0;if(f=y)throw new Error(T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*u);for(let x=m;x=l[0])throw new Error(T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),TK=lt(zo,e=>Math.sqrt(e)),CK={kernelName:zo,backendName:"cpu",kernelFunc:TK},F_=Mt((e,t)=>{let n=e-t;return n*n}),EK=Zt(Vo,F_),_K={kernelName:Vo,backendName:"cpu",kernelFunc:EK},$_=br((e,t)=>{let{pattern:n,replaceGlobal:a,rewrite:r}=t;return e.replace(new RegExp(n,a?"g":""),r)}),AK=Ms(ed,$_),FK={kernelName:ed,backendName:"cpu",kernelFunc:AK};function D_(e,t,n,a){let r=Pe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let b=0;bb.forEach(y=>m[f++]=y);for(let b=0;b0){g(e[d+p-1]);for(let b=0;b0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=w.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth;this.createNGrams(e,l,i,u,1,d)}}return[i,s]}};function Z1(e,t,n,a,r,s,i,o){return new $K(n,a,r,s,i,o).compute(e,t)}function DK(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),RK=G1((e,t,n,a)=>({real:e-n,imag:t-a})),ek=Zt(Uo,R_,RK),MK={kernelName:Uo,backendName:"cpu",kernelFunc:ek};function M_(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function O_(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));O_(e,t,c,h)}let r=e[t],s=n,i=a;for(w.swap(e,n,t),lc(e[a],r)>0&&w.swap(e,n,a);s0;)i=i-1}lc(e[n],r)===0?w.swap(e,n,i):(i=i+1,w.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function P_(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=w.getTypedArrayFromDType(n,i*a),u=w.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:y,index:x}),a{for(let g=0;gnew V1,1);var L_=lt(Ki,e=>e>=0?e:Math.exp(e)-1),PK={kernelName:Ki,backendName:"cpu",kernelFunc:L_};function z_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=w.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=w.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function W_(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=zK(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var WK={kernelName:Io,backendName:"cpu",kernelFunc:W_},B_=lt(To,e=>Math.max(0,e)),BK={kernelName:To,backendName:"cpu",kernelFunc:B_},V_=lt(_o,e=>Math.min(Math.max(0,e),6)),VK={kernelName:_o,backendName:"cpu",kernelFunc:V_};function Sm(e,t,n,a,r){if(n==="linear")return hr({inputs:{x:t},backend:e});if(n==="relu")return B_({inputs:{x:t},backend:e});if(n==="elu")return L_({inputs:{x:t},backend:e});if(n==="relu6")return V_({inputs:{x:t},backend:e});if(n==="prelu")return W_({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return z_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return E_({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function xt(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 u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var UK={kernelName:qu,backendName:"cpu",kernelFunc:xt};function U_(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=cp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=xt({inputs:{x:r},backend:n,attrs:{shape:x}}),N=xt({inputs:{x:s},backend:n,attrs:{shape:v}}),C=i?I.shape[1]:I.shape[2],_=i?I.shape[2]:I.shape[1],F=o?N.shape[1]:N.shape[2],D=Math.max(g,b),$=n.data.get(I.dataId).values,S=n.data.get(N.dataId).values,M=w.computeStrides(I.shape),B=w.computeStrides(N.shape),[U,H,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=_*F,ae=Pe([D,_,F],I.dtype),te=ae.values,se=n.blockSize;for(let ie=0;ieMath.acos(e)),KK={kernelName:Ci,backendName:"cpu",kernelFunc:qK},XK=lt(Ei,e=>Math.acosh(e)),YK={kernelName:Ei,backendName:"cpu",kernelFunc:XK};function ZK(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Pe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=v)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var rX={kernelName:du,backendName:"cpu",kernelFunc:aX};function sX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],T.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=T.computeOutAndReduceShapes(l.shape,i),c=w.sizeFromShape(p),h=w.makeZerosTypedArray(c,"int32"),m=w.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var iX={kernelName:hu,backendName:"cpu",kernelFunc:sX},oX=lt(Ai,e=>Math.asin(e)),lX={kernelName:Ai,backendName:"cpu",kernelFunc:oX},uX=lt(Fi,e=>Math.asinh(e)),pX={kernelName:Fi,backendName:"cpu",kernelFunc:uX},cX=lt($i,e=>Math.atan(e)),dX={kernelName:$i,backendName:"cpu",kernelFunc:cX},hX=Mt((e,t)=>Math.atan2(e,t)),mX=Zt(Ri,hX),fX={kernelName:Ri,backendName:"cpu",kernelFunc:mX},gX=lt(Di,e=>Math.atanh(e)),bX={kernelName:Di,backendName:"cpu",kernelFunc:gX};function nk(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Pe(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let v=0;vq?q=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function G_(e,t,n,a,r=!1,s=!1){let i=Pe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Pe(t,n,e);for(let g=0;gD&&(D=H,r?$=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+b:(S*a.inWidth+B)*a.inChannels+b:$=M*c+U)}}i.set($,g,y,N,b)}}return i}function H_(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Pe(r.outShape,n),v=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],N=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],_=r.outShape[4];for(let F=0;Fye?ye=gt:s==="avg"&&(ke+=gt,Se++),isNaN(ye))break}if(isNaN(ye))break}if(isNaN(ye))break}let Le=ue+S;v[Le]=s==="avg"?ke/Math.max(Se,1):ye}}}}return x}function yX(e,t){let n=Pe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=H*p*d+K*p+J)}}}n.set(B,f,b,I,F,g)}}}return n}function xX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=hr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=nk(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var vX={kernelName:Mi,backendName:"cpu",kernelFunc:xX};function wX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=H_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var kX={kernelName:mu,backendName:"cpu",kernelFunc:wX};function IX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,v=p.effectiveFilterDepth,I=p.effectiveFilterHeight,N=p.effectiveFilterWidth,C=v-1-p.padInfo.front,_=N-1-p.padInfo.left,F=I-1-p.padInfo.top,D=Pe(s.shape,"float32"),$=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let se=0;se=p.outHeight||Math.floor(ie)!==ie))for(let ve=0;ve=p.outWidth||Math.floor(ue)!==ue)continue;let ye=S.get(M,te,ie,ue,B);ee+=ye}}}D.set(ee*$,M,U,H,q,B)}return n.makeTensorInfo(D.shape,D.dtype,D.values)}var SX={kernelName:Wc,backendName:"cpu",kernelFunc:IX};function NX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,v=b-1-p.padInfo.top,I=Pe(i.shape,"float32"),N=1/(h*m),C=n.data.get(r.dataId).values,_=Pe(r.shape,"float32",C);for(let F=0;F=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=_.get(F,q,Z,D);U+=J}}I.set(U*N,F,$,S,D)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var TX={kernelName:zc,backendName:"cpu",kernelFunc:NX};function CX(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."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=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(p.length),g=m.length,b=h.length,y=c.length,x=d.length,v=0,I=0,N=0,C=0;for(let _=0;_=g&&(v=0),I>=x&&(I=0),N>=b&&(N=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var EX={kernelName:eo,backendName:"cpu",kernelFunc:CX};function _X(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=xt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=wi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var AX={kernelName:fu,backendName:"cpu",kernelFunc:_X};function FX(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=H1(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var $X={kernelName:gu,backendName:"cpu",kernelFunc:FX};function DX(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var RX={kernelName:Bc,backendName:"cpu",kernelFunc:DX},MX=lt(Ns,(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 u=0;uf.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(f=>f.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>w.sizeFromShape(f.shape)>0);if(l.length===1)return hr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(v=>vi({inputs:{input:v},backend:n})),g=l.map(v=>iu({inputs:{input:v},backend:n})),b=ou({inputs:f,backend:n,attrs:{axis:s}}),y=ou({inputs:g,backend:n,attrs:{axis:s}}),x=Jn({inputs:{real:b,imag:y},backend:n});return f.forEach(v=>n.disposeIntermediateTensorInfo(v)),g.forEach(v=>n.disposeIntermediateTensorInfo(v)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=l.map(f=>{let g=[-1,w.sizeFromShape(f.shape.slice(s))];return xt({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=T.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=j1(p,o,t[0].dtype,d),h=T.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var WX={kernelName:yu,backendName:"cpu",kernelFunc:ou};function j_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",v=new Wt(c.outShape,r.dtype),I=w.computeStrides(r.shape),N=w.computeStrides(s.shape),C=I[0],_=x?I[1]:I[2],F=x?I[2]:1,D=x?1:I[1],$=v.strides[0],S=x?v.strides[1]:v.strides[2],M=x?v.strides[2]:1,B=x?1:v.strides[1],U=n.data.get(r.dataId).values,H=n.data.get(s.dataId).values,q=v.values;for(let K=0;K=c.inHeight)continue;let ve=se*N[0],ue=Z+ie*_;for(let ye=0;ye=c.inWidth)continue;let mt=ve+Le*N[1],st=ue+Ge*F,at=mt;for(let rt=0;rt=u.inDepth)continue;let K=H*F[0],Z=$+q*_[1];for(let J=0;J=u.inHeight)continue;let ie=K+te*F[1],ve=Z+se*_[2];for(let ue=0;ue=u.inWidth)continue;let Ge=ie+Se*F[2],mt=ve+Le*u.inChannels,st=Ge;for(let at=0;atMath.cos(e)),QX={kernelName:Vi,backendName:"cpu",kernelFunc:JX},eY=lt(Ui,e=>Math.cosh(e)),tY={kernelName:Ui,backendName:"cpu",kernelFunc:eY};function nY(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,b=Pe([m,f,g,h],"float32"),y=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,v=n.data.get(r.dataId).values,I=w.computeStrides(r.shape),N=w.computeStrides(b.shape);for(let C=0;C=p)continue;let B=f>1?($-F)*(d-1)/(f-1):0,U=g>1?(S-D)*(c-1)/(g-1):0;for(let H=0;H1?F*(d-1)+H*B:.5*(F+$)*(d-1);if(q<0||q>d-1){for(let K=0;K1?D*(c-1)+ee*U:.5*(D+S)*(c-1);if(ae<0||ae>c-1){for(let ve=0;ve1?D*(c-1)+K*U:.5*(D+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let b=0;b`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=T.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:b,padInfo:y}=h,x=y.left,v=y.top,I=h.outChannels/h.inChannels,N=new Wt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,_=n.data.get(s.dataId).values,F=N.values;for(let D=0;D=h.inHeight)continue;let K=H*d[0],Z=$+q*p[1];for(let J=0;J=h.inWidth)continue;let ie=K+te*d[1],ve=Z+se*h.inChannels,ue=ee,ye=ie;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:b,outWidth:y,padInfo:x,strideHeight:v,strideWidth:I,filterHeight:N,filterWidth:C,dilationHeight:_,dilationWidth:F,outShape:D}=T.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),$=w.sizeFromShape(D),S=D.length,M=w.getArrayFromDType(a.dtype,$);for(let B=0;B=0&&te=0&&ieJ&&(J=ye)}}}let ee=w.locToIndex([B,U,q,Z],S,w.computeStrides(D));M[ee]=J}}}return{dataId:l.write(w.toTypedArray(M,a.dtype),D,a.dtype),shape:D,dtype:a.dtype}}},vY={kernelName:ql,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${ql}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ee,J=te)}}}$[Z][J][q]+=D[S][M][U][q]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},wY={kernelName:jl,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,p=w.toNestedArray(a.shape,u.data.get(a.dataId).values),d=w.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:b,padInfo:y,strideHeight:x,strideWidth:v,filterHeight:I,filterWidth:N,dilationHeight:C,dilationWidth:_,outShape:F}=T.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);w.assert(s.rank===F.length,()=>`Error in ${jl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let D=w.toNestedArray(F,u.data.get(s.dataId).values),$=w.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&seK&&(K=ie,Z=ae,J=se)}}}$[S][Z][J][q]+=D[S][M][U][q]}}}return{dataId:u.write(w.toTypedArray($,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function kY(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{canvas:s,options:i}=a,{contextOptions:o,imageOptions:l}=i||{},u=(l==null?void 0:l.alpha)||1,p=(o==null?void 0:o.contextType)||"2d";if(p!=="2d")throw new Error(`Context type ${o.contextType} is not supported by the CPU backend.`);let d=s.getContext(p,(o==null?void 0:o.contextAttributes)||{});if(d==null)throw new Error(`Could not get the context with ${p} type.`);let[c,h]=r.shape.slice(0,2),m=r.shape.length===2?1:r.shape[2],f=n.data.get(r.dataId).values,g=r.dtype==="float32"?255:1,b=new Uint8ClampedArray(h*c*4);for(let x=0;x1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${C}.`)}else if(r.dtype==="int32"&&(C<0||C>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${C}.`);m===1?(v[0]=C*g,v[1]=C*g,v[2]=C*g):v[N]=C*g}let I=x*4;b[I+0]=Math.round(v[0]),b[I+1]=Math.round(v[1]),b[I+2]=Math.round(v[2]),b[I+3]=Math.round(v[3])}s.width=h,s.height=c;let y=new ImageData(b,h,c);return d.putImageData(y,0,0),r}var IY={kernelName:zm,backendName:"cpu",kernelFunc:kY};function Rd(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=ws({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=hr({inputs:{x:r},backend:n});let l=o.shape.length,u=w.parseAxisParam(s,o.shape),p=T.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=T.getInnerMostAxes(d.length,l)),T.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=T.computeOutAndReduceShapes(c.shape,d),f=T.upcastType(c.dtype,"int32"),g=km(n,h,f),b=w.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let v=0;v=0&&(c=Rd({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var TY={kernelName:Wm,backendName:"cpu",kernelFunc:NY};function CY(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([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=0?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var EY={kernelName:Su,backendName:"cpu",kernelFunc:CY},_Y=T.ERF_P,AY=T.ERF_A1,FY=T.ERF_A2,$Y=T.ERF_A3,DY=T.ERF_A4,RY=T.ERF_A5,MY=lt(Xi,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+_Y*n);return t*(1-((((RY*a+DY)*a+$Y)*a+FY)*a+AY)*a*Math.exp(-n*n))}),OY={kernelName:Xi,backendName:"cpu",kernelFunc:MY};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&&(w.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),xt({inputs:{x:r},backend:n,attrs:{shape:o}})}var PY={kernelName:Tu,backendName:"cpu",kernelFunc:Nm},LY=Mt((e,t)=>e/t),ak=Zt(qi,LY),gv={kernelName:qi,backendName:"cpu",kernelFunc:ak};function K_(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],p=w.sizeFromShape(u),d=w.getTypedArrayFromDType("float32",p),c=w.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=w.getTypedArrayFromDType(a.dtype,w.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&y=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=w.sizeFromShape(s.shape),h=T.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=xt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=xt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=c_(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var e7={kernelName:Eu,backendName:"cpu",kernelFunc:QY};function t7(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=xt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=K_(o,!0,n),u=xt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var n7={kernelName:Vm,backendName:"cpu",kernelFunc:t7},a7=lt(ao,e=>Number.isFinite(e)?1:0,"bool"),r7={kernelName:ao,backendName:"cpu",kernelFunc:a7},s7=lt(ro,e=>Math.abs(e)===1/0?1:0,"bool"),i7={kernelName:ro,backendName:"cpu",kernelFunc:s7},o7=lt(so,e=>Number.isNaN(e)?1:0,"bool"),l7={kernelName:so,backendName:"cpu",kernelFunc:o7};function u7(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=g_(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var p7={kernelName:Du,backendName:"cpu",kernelFunc:u7},c7=lt(lo,e=>Math.log1p(e)),d7={kernelName:lo,backendName:"cpu",kernelFunc:c7},h7=Mt((e,t)=>e&&t),m7=Zt(Ru,h7,null,"bool"),f7={kernelName:Ru,backendName:"cpu",kernelFunc:m7},g7=lt(Mu,e=>e?0:1,"bool"),b7={kernelName:Mu,backendName:"cpu",kernelFunc:g7},y7=Mt((e,t)=>e||t),x7=Zt(Ou,y7,null,"bool"),v7={kernelName:Ou,backendName:"cpu",kernelFunc:x7};function w7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=w.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let v=d[b];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 p=T.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))d=hr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=w.computeStrides(r.shape),m=nk(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var C7={kernelName:ho,backendName:"cpu",kernelFunc:T7};function E7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=H_(d,r.shape,r.dtype,w.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var _7={kernelName:Lu,backendName:"cpu",kernelFunc:E7};function A7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=yX(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,v=p.effectiveFilterHeight,I=p.effectiveFilterWidth,N=x-1-p.padInfo.front,C=I-1-p.padInfo.left,_=v-1-p.padInfo.top,F=Pe(s.shape,"float32"),D=n.bufferSync(r);for(let $=0;$=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let se=0;se=p.outWidth||Math.floor(ie)!==ie)continue;let ve=x*v*I-1-c.get($,ee,te,ie,S),ue=J*v*I+ae*I+se,ye=ve===ue?1:0;if(ye===0)continue;let ke=D.get($,ee,te,ie,S);Z+=ke*ye}}}F.set(Z,$,M,B,U,S)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var F7={kernelName:qc,backendName:"cpu",kernelFunc:A7};function $7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=T.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Pe(c.outShape,o.dtype,G_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,v=c.effectiveFilterWidth,I=v-1-c.padInfo.left,N=x-1-c.padInfo.top,C=Pe(o.shape,"float32"),_=n.data.get(r.dataId).values,F=Pe(r.shape,"float32",_);for(let D=0;D=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*v-1-m.get(D,K,J,$),ae=q*v+Z,te=ee===ae?1:0;if(te===0)continue;let se=F.get(D,K,J,$);H+=se*te}}C.set(H,D,S,M,$)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var D7={kernelName:jc,backendName:"cpu",kernelFunc:$7};function R7(e,t,n,a,r){let s=w.computeStrides(t),i=nk(e,t,n,s,r,"max"),o=G_(e,t,n,r,!0,a);return[i.values,o.values]}var M7={kernelName:Kc,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=T.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=R7(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function O7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=w.parseAxisParam(s,r.shape),l=T.computeOutAndReduceShapes(r.shape,o)[1],u=w.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=ws({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=ak({inputs:{a:c,b:d},backend:n});p.push(h);let m=Rd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var P7={kernelName:mo,backendName:"cpu",kernelFunc:O7};function L7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=w.parseAxisParam(s,r.shape),l=o,u=T.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=T.getInnerMostAxes(l.length,r.shape.length)),T.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=T.computeOutAndReduceShapes(p.shape,l),h=w.sizeFromShape(c),m=w.makeZerosTypedArray(w.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=w.computeStrides(r.shape),m=w.sizeFromShape(o),f=o.length,g=w.computeStrides(o),b=w.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,N)=>I-l[N]);let v=w.locToIndex(x,c,h);b[y]=d[v]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var B7={kernelName:bo,backendName:"cpu",kernelFunc:W7},V7=Mt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),U7=Zt(yo,V7),G7={kernelName:yo,backendName:"cpu",kernelFunc:U7},H7=Is(Fm());function Y_(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),u=X_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=T.expandShapeToKeepDim(u.shape,l),d=xt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=ek({inputs:{a:r,b:d},backend:n}),h=i_({inputs:{x:c},backend:n}),m=Rd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=xt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=ak({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var j7={kernelName:Bo,backendName:"cpu",kernelFunc:Y_};function q7(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:Y_({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=w.makeZerosTypedArray(w.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Nm({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=ou({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var lZ={kernelName:ju,backendName:"cpu",kernelFunc:J_};function uZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[0]),u=n.data.get(r.dataId).values,p=w.sizeFromShape(r.shape),d=r.shape.length,c=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 b=0;bv+l[I]),x=w.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var Q_={kernelName:wo,backendName:"cpu",kernelFunc:uZ},pZ=Mt((e,t)=>Math.pow(e,t)),cZ=Zt(ko,pZ),dZ={kernelName:ko,backendName:"cpu",kernelFunc:cZ};function hZ(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=S_(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var mZ={kernelName:Gm,backendName:"cpu",kernelFunc:hZ};function fZ(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=N_(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var gZ={kernelName:Hm,backendName:"cpu",kernelFunc:fZ};function bZ(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=T_(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var yZ={kernelName:jm,backendName:"cpu",kernelFunc:bZ};function xZ(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=X1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var vZ={kernelName:Xc,backendName:"cpu",kernelFunc:xZ},wZ=lt(No,e=>1/e),kZ={kernelName:No,backendName:"cpu",kernelFunc:wZ};function IZ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=w.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(w.sizeFromShape([d,u,p,m])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,v=b[0]/y[0],I=b[1]/y[1];for(let N=0;N1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],b=f[0]/g[0],y=f[1]/g[1],x=n.data.get(s.dataId).values,v=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],v=b[1]/y[1],I=0;for(let N=0;N1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],v=b[1]/y[1],I=1/x,N=1/v,C=Math.ceil(I)*2+2,_=Math.ceil(N)*2+2;for(let F=0;F=h)continue;let te=D+ae*l[1],se=ae*x,ie=Math.min(p-1,i?Math.round(se):Math.floor(se));if($===ie)for(let ve=0;ve<_;ve++){let ue=ve+K;if(ue<0||ue>=m)continue;let ye=te+ue*l[2],ke=ue*v,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[ye+Z])}}f[H+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var AZ={kernelName:Ku,backendName:"cpu",kernelFunc:_Z};function FZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=w.parseAxisParam(s,r.shape);if(i===0)return hr({inputs:{x:r},backend:n});let l=new Wt(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var $Z={kernelName:Ao,backendName:"cpu",kernelFunc:FZ},DZ={kernelName:pp,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)),[u,p,d,c]=a.shape,[h,m]=T.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),MZ={kernelName:Fo,backendName:"cpu",kernelFunc:RZ};function OZ(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ri(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var PZ={kernelName:Yu,backendName:"cpu",kernelFunc:OZ};function LZ(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:w.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?jZ*e:HZ*(Math.exp(e)-1)),KZ={kernelName:Do,backendName:"cpu",kernelFunc:qZ},XZ=lt(Oo,e=>e<0?-1:e>0?1:0),YZ={kernelName:Oo,backendName:"cpu",kernelFunc:XZ},ZZ=lt(Ro,e=>Math.sin(e)),JZ={kernelName:Ro,backendName:"cpu",kernelFunc:ZZ},QZ=lt(Mo,e=>Math.sinh(e)),eJ={kernelName:Mo,backendName:"cpu",kernelFunc:QZ},tJ=11920928955078125e-23,kS=Math.log(tJ)+2,nJ=lt(Lo,e=>{let t=e>-kS,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var aJ={kernelName:Yc,backendName:"cpu",kernelFunc:nJ};function rJ(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape + ${i.shape}`);let o=n.data.get(a.dataId).values,l=n.data.get(r.dataId).values,u=n.data.get(s.dataId).values,p=n.data.get(i.dataId).values[0],[d,c,h,m,f]=__(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var oJ={kernelName:Yc,backendName:"cpu",kernelFunc:iJ};function lJ(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape - ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=E_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var sJ={kernelName:ap,backendName:"cpu",kernelFunc:rJ};function iJ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=A_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var uJ={kernelName:ap,backendName:"cpu",kernelFunc:lJ};function pJ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=Y1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var oJ={kernelName:Zc,backendName:"cpu",kernelFunc:iJ};function lJ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=Y1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var cJ={kernelName:Zc,backendName:"cpu",kernelFunc:pJ};function dJ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=Y1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var uJ={kernelName:Jc,backendName:"cpu",kernelFunc:lJ};function pJ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),b=!!n.data.get(i.dataId).values[0];f=ai(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ai(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ai(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=w.decodeString(n.data.get(i.dataId).values[0]);f=ai(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var cJ={kernelName:rp,backendName:"cpu",kernelFunc:pJ};function dJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=wi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var hJ={kernelName:np,backendName:"cpu",kernelFunc:dJ},mJ={kernelName:Qc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),gJ={kernelName:Ts,backendName:"cpu",kernelFunc:fJ};function bJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=wi({inputs:{x:r},backend:n,attrs:{begin:y,size:N}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let N=n.bufferSync(r),C=F_(h,N,v,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var yJ={kernelName:sp,backendName:"cpu",kernelFunc:bJ};function xJ(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=Z1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var vJ={kernelName:td,backendName:"cpu",kernelFunc:xJ};function wJ(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=J1(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var kJ={kernelName:nd,backendName:"cpu",kernelFunc:wJ};function IJ(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=Q1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var SJ={kernelName:ad,backendName:"cpu",kernelFunc:IJ},NJ=lt(Go,e=>Math.tan(e)),TJ={kernelName:Go,backendName:"cpu",kernelFunc:NJ},CJ=lt(Ho,e=>Math.tanh(e)),EJ={kernelName:Ho,backendName:"cpu",kernelFunc:CJ};function _J(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=T.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ai(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var AJ={kernelName:Zu,backendName:"cpu",kernelFunc:_J};function FJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=D_(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var $J={kernelName:Ns,backendName:"cpu",kernelFunc:FJ};function DJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=M_(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 RJ={kernelName:ip,backendName:"cpu",kernelFunc:DJ};function MJ(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=w.computeStrides(r.shape),y=b[0],x=b[1],v=b[2],I=w.computeStrides(g),N=I[0],C=I[1],_=I[2],F=w.getTypedArrayFromDType(r.dtype,w.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return w.clamp(0,n,t-1)}function LJ(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 w.clamp(0,n,t-1)}function zJ(e,t){return e}function WJ(e,t){return w.clamp(0,e,t-1)}function uc(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var KJ={kernelName:sd,backendName:"cpu",kernelFunc:jJ},XJ=[V8,wK,G8,q8,CK,K8,Y8,J8,eX,nX,rX,iX,lX,cX,hX,gX,yX,vX,kX,W8,SX,TX,EX,_K,AX,NK,FK,$X,kK,RX,OX,PX,zX,BX,UX,HX,jX,XX,ZX,QX,tY,aY,sY,oY,lY,pY,dY,mY,fY,gY,bY,xY,kY,D8,SY,$K,$Y,DK,DY,MK,zY,WY,VY,PK,zK,GY,qY,KY,YY,BK,UK,IK,JY,MX,e7,n7,r7,R8,HK,jK,i7,XK,l7,c7,h7,g7,y7,v7,w7,ZK,I7,N7,C7,_7,F7,D7,M7,QK,P7,W7,G7,t8,a8,j7,Y7,Q7,s8,tZ,aZ,rZ,Z_,lZ,O8,l8,pZ,dZ,mZ,gZ,SK,fv,yZ,P8,L8,z8,vZ,kZ,SZ,TZ,EZ,_Z,FZ,b8,DZ,LZ,WZ,GZ,x8,qZ,KZ,YZ,v8,V7,QZ,tJ,aJ,sJ,oJ,uJ,cJ,hJ,I8,mJ,N8,C8,gJ,yJ,vJ,kJ,SJ,F8,vY,TJ,EJ,AJ,$J,RJ,OJ,i8,GJ,qJ,KJ,nZ];for(let e of XJ)id(e);var J_={};_e(J_,{assertNotComplex:()=>wp,bindCanvasToFramebuffer:()=>i9,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>mA,bindTextureUnit:()=>cA,bindVertexBufferToProgramAttribute:()=>bv,callAndCheck:()=>de,canBeRepresented:()=>eA,createFragmentShader:()=>aA,createFramebuffer:()=>pA,createProgram:()=>rA,createStaticIndexBuffer:()=>oA,createStaticVertexBuffer:()=>iA,createTexture:()=>lA,createVertexShader:()=>nA,getBatchDim:()=>ki,getExtensionOrThrow:()=>pc,getFramebufferErrorMessage:()=>fA,getMaxTexturesInShader:()=>xA,getNumChannels:()=>r9,getProgramUniformLocation:()=>hA,getProgramUniformLocationOrThrow:()=>dA,getRowsCols:()=>Ii,getShapeAs3D:()=>dc,getTextureShapeFromLogicalShape:()=>bA,getWebGLDisjointQueryTimerVersion:()=>vA,getWebGLErrorMessage:()=>tA,getWebGLMaxTextureSize:()=>yA,hasExtension:()=>ha,isCapableOfRenderingToFloatTexture:()=>wA,isDownloadFloatTextureEnabled:()=>kA,isReshapeFree:()=>$c,isWebGLFenceEnabled:()=>IA,isWebGLVersionEnabled:()=>xv,linkProgram:()=>sA,logShaderSourceAndInfoLog:()=>ik,resetMaxTextureSize:()=>o9,resetMaxTexturesInShader:()=>l9,unbindColorTextureFromFramebuffer:()=>yv,unbindTextureUnit:()=>s9,validateFramebuffer:()=>cc,validateProgram:()=>Yh,validateTextureSize:()=>uA});var ti={},Uh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function Q_(e,t){ti[e]=t}function qa(e,t){if(!(e in ti)||t!=null){let a=ZJ(e,t);if(a!==null)ti[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=ti[e];return n==null||n.isContextLost()?(delete ti[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),ti[e])}function YJ(e){if(!G().getBool("IS_SAFARI")&&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 ZJ(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?YJ(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete ti[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(Uh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Uh)||n.getContext("experimental-webgl",Uh):n.getContext("webgl2",Uh)}var Fc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Fc||(Fc={}));var da;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(da||(da={}));var dn;(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"})(dn||(dn={}));function Md(e,t){return[t,e]}function JJ(e,t){return e*t}function Gh(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function vp(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function QJ(e,t){let[n,a]=vp(e,t);return n*a*4}function sk(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function de(e,t){let n=t();return G().getBool("DEBUG")&&e9(e),n}function e9(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+tA(e,t))}var t9=596e-10,n9=65504;function eA(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||t9e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function nA(e,t){let n=Lr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 aA(e,t){let n=Lr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw ik(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var a9=/ERROR: [0-9]+:([0-9]+):/g;function ik(e,t){let n=a9.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.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=Y1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var hJ={kernelName:Jc,backendName:"cpu",kernelFunc:dJ};function mJ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),b=!!n.data.get(i.dataId).values[0];f=ri(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ri(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ri(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=w.decodeString(n.data.get(i.dataId).values[0]);f=ri(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var fJ={kernelName:rp,backendName:"cpu",kernelFunc:mJ};function gJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=wi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var bJ={kernelName:np,backendName:"cpu",kernelFunc:gJ},yJ={kernelName:Qc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),vJ={kernelName:Cs,backendName:"cpu",kernelFunc:xJ};function wJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=wi({inputs:{x:r},backend:n,attrs:{begin:y,size:N}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let N=n.bufferSync(r),C=D_(h,N,v,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var kJ={kernelName:sp,backendName:"cpu",kernelFunc:wJ};function IJ(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=Z1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var SJ={kernelName:td,backendName:"cpu",kernelFunc:IJ};function NJ(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=J1(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var TJ={kernelName:nd,backendName:"cpu",kernelFunc:NJ};function CJ(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=Q1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var EJ={kernelName:ad,backendName:"cpu",kernelFunc:CJ},_J=lt(Go,e=>Math.tan(e)),AJ={kernelName:Go,backendName:"cpu",kernelFunc:_J},FJ=lt(Ho,e=>Math.tanh(e)),$J={kernelName:Ho,backendName:"cpu",kernelFunc:FJ};function DJ(e){let{inputs:t,backend:n}=e,{tensor:a,indices:r,updates:s}=t,{sliceRank:i,numUpdates:o,sliceSize:l,strides:u,outputSize:p}=T.calculateShapes(s,r,a.shape),d=!1,c=n.bufferSync(r),h=n.bufferSync(s),m=n.bufferSync(a),f=ri(c,h,a.shape,p,l,o,i,u,m,d);return n.makeTensorInfo(a.shape,f.dtype,f.values)}var RJ={kernelName:Zu,backendName:"cpu",kernelFunc:DJ};function MJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=M_(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var OJ={kernelName:Ts,backendName:"cpu",kernelFunc:MJ};function PJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=P_(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 LJ={kernelName:ip,backendName:"cpu",kernelFunc:PJ};function zJ(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=w.computeStrides(r.shape),y=b[0],x=b[1],v=b[2],I=w.computeStrides(g),N=I[0],C=I[1],_=I[2],F=w.getTypedArrayFromDType(r.dtype,w.sizeFromShape(g));F.fill(l);let D=a.data.get(r.dataId).values,$=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return w.clamp(0,n,t-1)}function VJ(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 w.clamp(0,n,t-1)}function UJ(e,t){return e}function GJ(e,t){return w.clamp(0,e,t-1)}function uc(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var JJ={kernelName:sd,backendName:"cpu",kernelFunc:ZJ},QJ=[jK,N8,KK,YK,F8,JK,eX,nX,rX,iX,lX,pX,dX,fX,bX,vX,kX,SX,TX,GK,EX,AX,$X,D8,RX,_8,M8,OX,T8,LX,WX,BX,UX,HX,qX,XX,ZX,QX,tY,aY,sY,oY,uY,cY,dY,mY,gY,yY,xY,vY,wY,IY,TY,PK,EY,O8,OY,P8,PY,z8,UY,GY,jY,B8,U8,KY,YY,JY,e7,H8,q8,C8,n7,zX,r7,i7,l7,LK,X8,Z8,p7,Q8,d7,f7,b7,v7,k7,S7,N7,tK,C7,_7,F7,D7,M7,P7,z7,aK,B7,G7,K7,sK,oK,Z7,eZ,aZ,uK,sZ,oZ,lZ,Q_,dZ,WK,dK,mZ,gZ,yZ,vZ,E8,gv,kZ,BK,VK,UK,SZ,TZ,EZ,AZ,$Z,DZ,MZ,wK,PZ,VZ,GZ,KZ,IK,YZ,JZ,eJ,SK,j7,aJ,sJ,oJ,uJ,cJ,hJ,fJ,bJ,CK,yJ,_K,FK,vJ,kJ,SJ,TJ,EJ,MK,SY,AJ,$J,RJ,OJ,LJ,WJ,pK,KJ,YJ,JJ,iZ];for(let e of QJ)id(e);var eA={};_e(eA,{assertNotComplex:()=>wp,bindCanvasToFramebuffer:()=>p9,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>gA,bindTextureUnit:()=>hA,bindVertexBufferToProgramAttribute:()=>yv,callAndCheck:()=>de,canBeRepresented:()=>nA,createFragmentShader:()=>sA,createFramebuffer:()=>dA,createProgram:()=>iA,createStaticIndexBuffer:()=>uA,createStaticVertexBuffer:()=>lA,createTexture:()=>pA,createVertexShader:()=>rA,getBatchDim:()=>ki,getExtensionOrThrow:()=>pc,getFramebufferErrorMessage:()=>bA,getMaxTexturesInShader:()=>wA,getNumChannels:()=>l9,getProgramUniformLocation:()=>fA,getProgramUniformLocationOrThrow:()=>mA,getRowsCols:()=>Ii,getShapeAs3D:()=>dc,getTextureShapeFromLogicalShape:()=>xA,getWebGLDisjointQueryTimerVersion:()=>kA,getWebGLErrorMessage:()=>aA,getWebGLMaxTextureSize:()=>vA,hasExtension:()=>ha,isCapableOfRenderingToFloatTexture:()=>IA,isDownloadFloatTextureEnabled:()=>SA,isReshapeFree:()=>$c,isWebGLFenceEnabled:()=>NA,isWebGLVersionEnabled:()=>vv,linkProgram:()=>oA,logShaderSourceAndInfoLog:()=>ik,resetMaxTextureSize:()=>c9,resetMaxTexturesInShader:()=>d9,unbindColorTextureFromFramebuffer:()=>xv,unbindTextureUnit:()=>u9,validateFramebuffer:()=>cc,validateProgram:()=>Yh,validateTextureSize:()=>cA});var ni={},Uh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function tA(e,t){ni[e]=t}function ja(e,t){if(!(e in ni)||t!=null){let a=t9(e,t);if(a!==null)ni[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=ni[e];return n==null||n.isContextLost()?(delete ni[e],ja(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),ni[e])}function e9(e){if(!G().getBool("IS_SAFARI")&&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 t9(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?e9(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete ni[e]},!1),G().getBool("SOFTWARE_WEBGL_ENABLED")&&(Uh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Uh)||n.getContext("experimental-webgl",Uh):n.getContext("webgl2",Uh)}var Fc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Fc||(Fc={}));var da;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(da||(da={}));var hn;(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"})(hn||(hn={}));function Md(e,t){return[t,e]}function n9(e,t){return e*t}function Gh(e){let t=w.sizeFromShape(e),n=Math.ceil(t/4);return w.sizeToSquarishShape(n)}function vp(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function a9(e,t){let[n,a]=vp(e,t);return n*a*4}function sk(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return G().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function de(e,t){let n=t();return G().getBool("DEBUG")&&r9(e),n}function r9(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+aA(e,t))}var s9=596e-10,i9=65504;function nA(e){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||s9e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function rA(e,t){let n=Lr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(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 sA(e,t){let n=Lr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(de(e,()=>e.shaderSource(n,t)),de(e,()=>e.compileShader(n)),G().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw ik(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var o9=/ERROR: [0-9]+:([0-9]+):/g;function ik(e,t){let n=o9.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((d,c)=>w.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;de.createProgram(),"Unable to create WebGLProgram.")}function sA(e,t){if(de(e,()=>e.linkProgram(t)),!G().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Yh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function iA(e,t){let n=Lr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function oA(e,t){let n=Lr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function r9(){return G().getNumber("WEBGL_VERSION")===2?1:4}function lA(e){return Lr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function uA(e,t){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function pA(e){return Lr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function bv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function cA(e,t,n){gA(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function s9(e,t){gA(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function dA(e,t,n){return Lr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function hA(e,t,n){return e.getUniformLocation(t,n)}function mA(e,t,n,a){de(e,()=>cA(e,t,a)),de(e,()=>e.uniform1i(n,a))}function i9(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Zh(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function yv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function cc(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+fA(e,t))}function fA(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 Lr(e,t,n){let a=de(e,()=>t());if(a==null)throw new Error(n);return a}function gA(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 ki(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function Ii(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 dc(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ki(e),...Ii(e)]),t}function bA(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?w.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let r=w.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=ki(e),l=2,u=2;e.length&&([l,u]=Ii(e)),r=o*(l/2)*(u/2),s=w.sizeToSquarishShape(r).map(p=>p*2)}else s=w.sizeToSquarishShape(r);return s}function Hh(e){return e%2===0}function $c(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[e.length-1],a=t[t.length-1];if(n===a||Hh(n)&&Hh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Hh(e[0])&&Hh(t[0])}var Jh,Qh;function yA(e){if(Jh==null){let t=qa(e);Jh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Jh}function o9(){Jh=null}function l9(){Qh=null}function xA(e){if(Qh==null){let t=qa(e);Qh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Qh)}function vA(e){if(e===0)return 0;let t,n=qa(e);return ha(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ha(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ha(e,t){return e.getExtension(t)!=null}function xv(e){try{if(qa(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function wA(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!ha(t,"OES_texture_float"))return!1}else if(!ha(t,"EXT_color_buffer_float"))return!1;return vv(t)}function kA(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!ha(t,"OES_texture_float")||!ha(t,"WEBGL_color_buffer_float"))return!1}else{if(ha(t,"EXT_color_buffer_float"))return vv(t);let n="EXT_color_buffer_half_float";if(ha(t,n)){let a=t.getExtension(n);return u9(t,a)}return!1}return vv(t)}function vv(e){let t=sk(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let r=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(a),r}function u9(e,t){let n=sk(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(r),s}function IA(e){return e!==2?!1:qa(e).fenceSync!=null}function wp(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 be=G();be.registerFlag("HAS_WEBGL",()=>be.getNumber("WEBGL_VERSION")>0);be.registerFlag("WEBGL_VERSION",()=>xv(2)?2:xv(1)?1:0);be.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);be.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>be.get("WEBGL_VERSION")===2);be.registerFlag("WEBGL_CPU_FORWARD",()=>!0);be.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);be.registerFlag("WEBGL_PACK",()=>be.getBool("HAS_WEBGL"));be.registerFlag("WEBGL_PACK_NORMALIZATION",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CLIP",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_REDUCE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_LAZILY_UNPACK",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_CONV_IM2COL",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>yA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>xA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=be.getNumber("WEBGL_VERSION");return e===0?0:vA(e)});be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>be.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ud.isMobile());be.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>wA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>be.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:be.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));be.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>kA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_FENCE_API_ENABLED",()=>IA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>be.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);be.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>ud.isMobile()?1:-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);be.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);be.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);be.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);be.registerFlag("WEBGL_EXP_CONV",()=>!1);be.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>be.getBool("IS_TEST"));be.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);be.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);be.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);be.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function Cn(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function iA(e){return Lr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function oA(e,t){if(de(e,()=>e.linkProgram(t)),!G().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Yh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function lA(e,t){let n=Lr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function uA(e,t){let n=Lr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function l9(){return G().getNumber("WEBGL_VERSION")===2?1:4}function pA(e){return Lr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function cA(e,t){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function dA(e){return Lr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function yv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function hA(e,t,n){yA(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function u9(e,t){yA(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function mA(e,t,n){return Lr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function fA(e,t,n){return e.getUniformLocation(t,n)}function gA(e,t,n,a){de(e,()=>hA(e,t,a)),de(e,()=>e.uniform1i(n,a))}function p9(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Zh(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function xv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function cc(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+bA(e,t))}function bA(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 Lr(e,t,n){let a=de(e,()=>t());if(a==null)throw new Error(n);return a}function yA(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 ki(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function Ii(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 dc(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ki(e),...Ii(e)]),t}function xA(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?w.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let r=w.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=ki(e),l=2,u=2;e.length&&([l,u]=Ii(e)),r=o*(l/2)*(u/2),s=w.sizeToSquarishShape(r).map(p=>p*2)}else s=w.sizeToSquarishShape(r);return s}function Hh(e){return e%2===0}function $c(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[e.length-1],a=t[t.length-1];if(n===a||Hh(n)&&Hh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Hh(e[0])&&Hh(t[0])}var Jh,Qh;function vA(e){if(Jh==null){let t=ja(e);Jh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Jh}function c9(){Jh=null}function d9(){Qh=null}function wA(e){if(Qh==null){let t=ja(e);Qh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Qh)}function kA(e){if(e===0)return 0;let t,n=ja(e);return ha(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ha(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ha(e,t){return e.getExtension(t)!=null}function vv(e){try{if(ja(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function IA(e){if(e===0)return!1;let t=ja(e);if(e===1){if(!ha(t,"OES_texture_float"))return!1}else if(!ha(t,"EXT_color_buffer_float"))return!1;return wv(t)}function SA(e){if(e===0)return!1;let t=ja(e);if(e===1){if(!ha(t,"OES_texture_float")||!ha(t,"WEBGL_color_buffer_float"))return!1}else{if(ha(t,"EXT_color_buffer_float"))return wv(t);let n="EXT_color_buffer_half_float";if(ha(t,n)){let a=t.getExtension(n);return h9(t,a)}return!1}return wv(t)}function wv(e){let t=sk(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let r=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(a),r}function h9(e,t){let n=sk(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(r),s}function NA(e){return e!==2?!1:ja(e).fenceSync!=null}function wp(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 be=G();be.registerFlag("HAS_WEBGL",()=>be.getNumber("WEBGL_VERSION")>0);be.registerFlag("WEBGL_VERSION",()=>vv(2)?2:vv(1)?1:0);be.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);be.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>be.get("WEBGL_VERSION")===2);be.registerFlag("WEBGL_CPU_FORWARD",()=>!0);be.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);be.registerFlag("WEBGL_PACK",()=>be.getBool("HAS_WEBGL"));be.registerFlag("WEBGL_PACK_NORMALIZATION",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CLIP",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_REDUCE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_LAZILY_UNPACK",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_CONV_IM2COL",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>be.getBool("WEBGL_PACK"));be.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>vA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>wA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=be.getNumber("WEBGL_VERSION");return e===0?0:kA(e)});be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>be.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ud.isMobile());be.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>IA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>be.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:be.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));be.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>SA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_FENCE_API_ENABLED",()=>NA(be.getNumber("WEBGL_VERSION")));be.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>be.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);be.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>ud.isMobile()?1:-1,e=>{if(typeof e!="number")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});be.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);be.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);be.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);be.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);be.registerFlag("WEBGL_EXP_CONV",()=>!1);be.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>be.getBool("IS_TEST"));be.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);be.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);be.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);be.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function En(){let e,t,n,a,r,s,i,o,l,u;return G().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=G().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -112,7 +112,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram 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:u}}function Qo(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 Qf(e,t,n="index"){let a=w.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function p9(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function c9(e,t,n="index"){let a=e.map((s,i)=>i),r=p9(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function ok(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 Qo(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 eg(e,t,n="index"){let a=w.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function m9(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function f9(e,t,n="index"){let a=e.map((s,i)=>i),r=m9(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function ok(e){let t=w.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } @@ -120,7 +120,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var SA=` +`}var TA=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -159,22 +159,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:NA}=T;function d9(e,t,n){let a=[];if(e.forEach(c=>{let h=w.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=uk(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` -`),s=e.map(c=>h9(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=Cn(),l=g9(o),u,p,d=x9(o);return t.isPacked?(u=m9(t.logicalShape,i,n.enableShapeUniforms),p=y9(o)):(u=f9(t.logicalShape,i,n.enableShapeUniforms),p=b9(o)),n.packedInputs&&(d+=I9),[d,l,p,r,u,s,n.userCode].join(` -`)}function kp(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return M9(e,t);case 1:return P9(e,t);case 2:return z9(e,t);case 3:return B9(e,t);case 4:return U9(e,t);case 5:return G9(e);case 6:return H9(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function TA(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return R9(e);case 1:return O9(e,t);case 2:return L9(e,t);case 3:return W9(e,t);default:return V9(e,t)}}function h9(e,t,n=!1,a){let r="";n?r+=TA(e,a):r+=kp(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=q9(e,t):r+=j9(e,t)),r}function m9(e,t,n){switch(e.length){case 0:return CA();case 1:return S9(e,t,n);case 2:return $9(e,t,n);case 3:return T9(e,t,n);default:return E9(e,t,n)}}function f9(e,t,n){switch(e.length){case 0:return CA();case 1:return N9(e,t,n);case 2:return D9(e,t,n);case 3:return C9(e,t,n);case 4:return _9(e,t,n);case 5:return A9(e,t);case 6:return F9(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function g9(e){return` +`,{getBroadcastDims:CA}=T;function g9(e,t,n){let a=[];if(e.forEach(c=>{let h=w.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=uk(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` +`),s=e.map(c=>b9(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=En(),l=v9(o),u,p,d=I9(o);return t.isPacked?(u=y9(t.logicalShape,i,n.enableShapeUniforms),p=k9(o)):(u=x9(t.logicalShape,i,n.enableShapeUniforms),p=w9(o)),n.packedInputs&&(d+=C9),[d,l,p,r,u,s,n.userCode].join(` +`)}function kp(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return z9(e,t);case 1:return B9(e,t);case 2:return U9(e,t);case 3:return H9(e,t);case 4:return q9(e,t);case 5:return K9(e);case 6:return X9(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function EA(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return L9(e);case 1:return W9(e,t);case 2:return V9(e,t);case 3:return G9(e,t);default:return j9(e,t)}}function b9(e,t,n=!1,a){let r="";n?r+=EA(e,a):r+=kp(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=Y9(e,t):r+=Z9(e,t)),r}function y9(e,t,n){switch(e.length){case 0:return _A();case 1:return E9(e,t,n);case 2:return O9(e,t,n);case 3:return A9(e,t,n);default:return $9(e,t,n)}}function x9(e,t,n){switch(e.length){case 0:return _A();case 1:return _9(e,t,n);case 2:return P9(e,t,n);case 3:return F9(e,t,n);case 4:return D9(e,t,n);case 5:return R9(e,t);case 6:return M9(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function v9(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function b9(e){return` + `}function w9(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function y9(e){return` + `}function k9(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function x9(e){return`${e.version} + `}function I9(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -229,10 +229,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${v9} - ${w9} - ${k9} - `}var v9=` + ${S9} + ${N9} + ${T9} + `}var S9=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -244,7 +244,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,w9=` +`,N9=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -252,7 +252,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,k9=` +`,T9=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -261,7 +261,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,I9=` +`,C9=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -272,11 +272,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function CA(){return` +`;function _A(){return` int getOutputCoords() { return 0; } - `}function S9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function E9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -305,7 +305,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function N9(e,t,n){return t[0]===1?n?` + `}function _9(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -333,7 +333,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function T9(e,t,n){if(n)return` + `}function A9(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -364,12 +364,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function C9(e,t,n){if(n)return` + `}function F9(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Qf(["r","c","d"],e)} + ${eg(["r","c","d"],e)} return ivec3(r, c, d); } `;let a=Qo(["r","c","d"],e);return` @@ -380,7 +380,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function E9(e,t,n){if(n)return` + `}function $9(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -421,12 +421,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function _9(e,t,n){if(n)return` + `}function D9(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Qf(["r","c","d","d2"],e)} + ${eg(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } `;let a=Qo(["r","c","d","d2"],e);return` @@ -437,7 +437,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function A9(e,t){let n=Qo(["r","c","d","d2","d3"],e);return` + `}function R9(e,t){let n=Qo(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -449,7 +449,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function F9(e,t){let n=Qo(["r","c","d","d2","d3","d4"],e);return` + `}function M9(e,t){let n=Qo(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -460,7 +460,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function $9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(w.arraysEqual(e,t))return n?` + `}function O9(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(w.arraysEqual(e,t))return n?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -493,7 +493,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function D9(e,t,n){return w.arraysEqual(e,t)?n?` + `}function P9(e,t,n){return w.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -547,11 +547,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function el(e){return`offset${e}`}function R9(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=Cn();return` + `}function el(e){return`offset${e}`}function L9(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=En();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function M9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` + `}function z9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` float ${a}() { return sampleTexture(${n}, halfCR); } @@ -565,7 +565,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function O9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=Cn();if(t)return` + `}function W9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=En();if(t)return` vec4 ${a}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -578,7 +578,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function P9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function B9(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { ${Ip(e)} } @@ -616,7 +616,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function L9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=Cn();if(s!=null&&w.arraysEqual(n,s))return t?` + `}function V9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=En();if(s!=null&&w.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -640,7 +640,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function z9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&w.arraysEqual(n,s)){if(t)return` + `}function U9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&w.arraysEqual(n,s)){if(t)return` float ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); return sampleTexture(${a}, uv); @@ -698,12 +698,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${u}, ${p}, index); return sampleTexture(${a}, uv); } -`}function W9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];if(n[0]===1){let c=n.slice(1),h=[1,2],m=Sp(e,c),f=["b","row","col"];return` - ${TA(m,t)} +`}function G9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];if(n[0]===1){let c=n.slice(1),h=[1,2],m=Sp(e,c),f=["b","row","col"];return` + ${EA(m,t)} vec4 ${r}(int b, int row, int col) { return ${r}(${Np(f,h)}); } - `}let o=Cn();if(t)return` + `}let o=En();if(t)return` vec4 ${r}(int b, int row, int col) { ivec2 packedTexShape = ivec2(ceil(float(${a}TexShape[0]) / 2.0), ceil(float(${a}TexShape[1]) / 2.0)); int valuesPerRow = int(ceil(float(${a}Shape[2]) / 2.0)); @@ -718,7 +718,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${l}, ${u}, ${d}, ${p}, b, row, col); return ${o.texture2D}(${a}, uv); } - `}function B9(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=n[1]*n[2],i=n[2],{newShape:o,keptDims:l}=w.squeezeShape(n),u=o;if(u.length=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` + `}function Y9(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=CA(e.shapeInfo.logicalShape,t.logicalShape),l=ht(i),u=i-s,p,d=["x","y","z","w","u","v"];s===0?p="":i<2&&o.length>=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` `);let c="";i<2&&s>0?c="coords":c=e.shapeInfo.logicalShape.map((g,b)=>`coords.${d[b+u]}`).join(", ");let h="return outputValue;",m=w.sizeFromShape(e.shapeInfo.logicalShape)===1,f=w.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` @@ -977,20 +977,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function j9(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 Z9(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` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=ht(l),p=NA(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` + `;let u=ht(l),p=CA(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+d]}`).join(", "),` float ${r}() { ${u} coords = getOutputCoords(); ${c} return get${a}(${m}); } - `}function ht(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 uk(e,t,n){let{newShape:a,keptDims:r}=w.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!w.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function K9(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=d9(r,i,t),l=aA(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},EA(e,t,u)))}function EA(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function SS(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{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 X9(e,t,n,a,r){t.program.enableShapeUniforms||(SS(t.inShapeInfos,n),SS([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=uk(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=w.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&w.arraysEqual(i.shape,l),b=w.sizeFromShape(i.shape)===1,y=T.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&w.arraysEqual(l,n.texData.texShape),v=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${v}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${G().getNumber("WEBGL_VERSION")}`,s}function xn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var Z9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Fc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` + `}function ht(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 uk(e,t,n){let{newShape:a,keptDims:r}=w.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!w.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function J9(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=g9(r,i,t),l=sA(e.gl,o),u=e.createProgram(l);return G().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(u),Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},AA(e,t,u)))}function AA(e,t,n){let a=[],r=[],s,i,o,l=null,u=null;u=e.getUniformLocation(n,"NAN",!1),G().getNumber("WEBGL_VERSION")===1&&(l=e.getUniformLocation(n,"INFINITY",!1));let p=!1;for(let d of t.variableNames){let c={name:d,uniform:e.getUniformLocation(n,d,p),offset:e.getUniformLocation(n,`offset${d}`,p)};t.enableShapeUniforms&&(c.shape=e.getUniformLocation(n,`${d}Shape`,p),c.texShape=e.getUniformLocation(n,`${d}TexShape`,p)),a.push(c)}if(t.enableShapeUniforms&&(s=e.getUniformLocation(n,"outShape",p),o=e.getUniformLocation(n,"outShapeStrides",p),i=e.getUniformLocation(n,"outTexShape",p)),t.customUniforms)for(let d of t.customUniforms)r.push(e.getUniformLocation(n,d.name,p));return{variablesLocations:a,customUniformLocations:r,infLoc:l,nanLoc:u,outShapeLocation:s,outShapeStridesLocation:o,outTexShapeLocation:i}}function SS(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{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 Q9(e,t,n,a,r){t.program.enableShapeUniforms||(SS(t.inShapeInfos,n),SS([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),G().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN);for(let l=0;l{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=uk(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=w.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&w.arraysEqual(i.shape,l),b=w.sizeFromShape(i.shape)===1,y=T.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&w.arraysEqual(l,n.texData.texShape),v=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${v}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${G().getNumber("WEBGL_VERSION")}`,s}function vn(e){return G().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var tQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Fc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Qf(["r","c","d"],e):Qo(["r","c","d"],e)} + ${this.enableShapeUniforms?eg(["r","c","d"],e):Qo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1008,9 +1008,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},J9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Fc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` + `}},nQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Fc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Qf(["r","c","d"],e):Qo(["r","c","d"],e)} + ${this.enableShapeUniforms?eg(["r","c","d"],e):Qo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1028,24 +1028,24 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},Q9=class{constructor(e){this.variableNames=["A"],this.outTexUsage=da.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` - ${SA} + `}},aQ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=da.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${TA} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},eQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=da.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` - ${SA} + `}},rQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=da.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${TA} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},tQ={R:0,G:1,B:2,A:3},NS=class{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let a=Cn();this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let s="";for(let i=0;iLA,createBufferFromOutputTexture:()=>BA,createFloat16MatrixTexture:()=>RA,createFloat16PackedMatrixTexture:()=>PA,createFloat32MatrixTexture:()=>DA,createIndexBuffer:()=>$A,createPackedMatrixTexture:()=>OA,createUnsignedBytesMatrixTexture:()=>MA,createVertexBuffer:()=>FA,createVertexShader:()=>AA,downloadByteEncodedFloatMatrixFromOutputTexture:()=>UA,downloadFloat32MatrixFromBuffer:()=>VA,downloadMatrixFromPackedOutputTexture:()=>HA,downloadPackedMatrixFromBuffer:()=>GA,getInternalFormatForFloat16MatrixTexture:()=>ck,getInternalFormatForFloat16PackedMatrixTexture:()=>mk,getInternalFormatForFloat32MatrixTexture:()=>pk,getInternalFormatForPackedMatrixTexture:()=>hk,getInternalFormatForUnsignedBytesMatrixTexture:()=>dk,uploadDenseMatrixToTexture:()=>zA,uploadPixelDataToTexture:()=>WA});function AA(e){let t=Cn(),n=`${t.version} + `}},FA={};_e(FA,{bindVertexProgramAttributeStreams:()=>WA,createBufferFromOutputTexture:()=>UA,createFloat16MatrixTexture:()=>OA,createFloat16PackedMatrixTexture:()=>zA,createFloat32MatrixTexture:()=>MA,createIndexBuffer:()=>RA,createPackedMatrixTexture:()=>LA,createUnsignedBytesMatrixTexture:()=>PA,createVertexBuffer:()=>DA,createVertexShader:()=>$A,downloadByteEncodedFloatMatrixFromOutputTexture:()=>HA,downloadFloat32MatrixFromBuffer:()=>GA,downloadMatrixFromPackedOutputTexture:()=>qA,downloadPackedMatrixFromBuffer:()=>jA,getInternalFormatForFloat16MatrixTexture:()=>ck,getInternalFormatForFloat16PackedMatrixTexture:()=>mk,getInternalFormatForFloat32MatrixTexture:()=>pk,getInternalFormatForPackedMatrixTexture:()=>hk,getInternalFormatForUnsignedBytesMatrixTexture:()=>dk,uploadDenseMatrixToTexture:()=>BA,uploadPixelDataToTexture:()=>VA});function $A(e){let t=En(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1119,11 +1119,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return nA(e,n)}function FA(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 iA(e,t)}function $A(e){let t=new Uint16Array([0,1,2,2,1,3]);return oA(e,t)}function Od(e,t,n,a,r,s){uA(t,n);let i=lA(e),o=e.TEXTURE_2D;return de(e,()=>e.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function pk(e){return e.internalFormatFloat}function DA(e,t,n,a){let[r,s]=Md(t,n);return Od(e,r,s,pk(a),a.textureFormatFloat,e.FLOAT)}function ck(e){return e.internalFormatHalfFloat}function RA(e,t,n,a){let[r,s]=Md(t,n);return Od(e,r,s,ck(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function dk(e){return e.downloadTextureFormat}function MA(e,t,n,a){let[r,s]=Md(t,n);return Od(e,r,s,dk(a),e.RGBA,e.UNSIGNED_BYTE)}function hk(e){return e.internalFormatPackedFloat}function OA(e,t,n,a){let[r,s]=vp(t,n);return Od(e,r,s,hk(a),e.RGBA,e.FLOAT)}function mk(e){return e.internalFormatPackedHalfFloat}function PA(e,t,n,a){let[r,s]=vp(t,n);return Od(e,r,s,mk(a),e.RGBA,a.textureTypeHalfFloat)}function LA(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),bv(e,t,"clipSpacePos",n,3,20,0)&&bv(e,t,"uv",n,2,20,12)}function zA(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function WA(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function BA(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function VA(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 UA(e,t,n,a){let[r,s]=Md(t,n),i=4,o=new Uint8Array(JJ(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function GA(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(QJ(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 HA(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var em=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,Q_(t,e)):this.gl=qa(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(r,()=>r.getParameter(r.VERTEX_ARRAY_BINDING))}else if(e!=null){let r=e.getExtension("OES_vertex_array_object");if(r==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(e,()=>e.getParameter(r.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=pc(this.gl,r),ha(this.gl,s))this.textureHalfFloatExtension=pc(this.gl,s);else if(G().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),ha(this.gl,a))this.colorBufferHalfFloatExtension=pc(this.gl,a);else if(G().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",ha(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ha(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=FA(this.gl),this.indexBuffer=$A(this.gl),this.framebuffer=pA(this.gl),this.textureConfig=sk(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),DA(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),RA(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),MA(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),WA(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),zA(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),PA(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),OA(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(yv(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>UA(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return GA(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return VA(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=BA(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>HA(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=AA(t));let n=rA(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),sA(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&Yh(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),LA(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Yh(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?dA(this.gl,e,t):hA(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),mA(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=vp(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&&Yh(this.gl,this.program),cc(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;if(this.debug){let t=this.getVertexArray();console.assert(t===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=pc(this.gl,G().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(G().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(G().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,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=aQ(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){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Zh(this.gl,e,this.framebuffer),this.debug&&cc(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Zh(this.gl,this.outputTexture,this.framebuffer),this.debug&&cc(this.gl)):yv(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;Zh(a,e,this.framebuffer),this.debug&&cc(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 aQ(e){let t=0;for(;t`${e}.${n}`)}function kn(e,t){return t===1?[e]:XA(e,t)}function XQ(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),de(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),de(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),G().getNumber("WEBGL_VERSION")===1?de(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):de(e,()=>e.texStorage2D(o,1,a,t,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function pk(e){return e.internalFormatFloat}function MA(e,t,n,a){let[r,s]=Md(t,n);return Od(e,r,s,pk(a),a.textureFormatFloat,e.FLOAT)}function ck(e){return e.internalFormatHalfFloat}function OA(e,t,n,a){let[r,s]=Md(t,n);return Od(e,r,s,ck(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function dk(e){return e.downloadTextureFormat}function PA(e,t,n,a){let[r,s]=Md(t,n);return Od(e,r,s,dk(a),e.RGBA,e.UNSIGNED_BYTE)}function hk(e){return e.internalFormatPackedFloat}function LA(e,t,n,a){let[r,s]=vp(t,n);return Od(e,r,s,hk(a),e.RGBA,e.FLOAT)}function mk(e){return e.internalFormatPackedHalfFloat}function zA(e,t,n,a){let[r,s]=vp(t,n);return Od(e,r,s,mk(a),e.RGBA,a.textureTypeHalfFloat)}function WA(e,t,n){return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),yv(e,t,"clipSpacePos",n,3,20,0)&&yv(e,t,"uv",n,2,20,12)}function BA(e,t,n,a,r,s){de(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),G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function VA(e,t,n){de(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):G().getNumber("WEBGL_VERSION")===2?de(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):de(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function UA(e,t,n,a){let r=e.createBuffer();de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return de(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),de(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function GA(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 HA(e,t,n,a){let[r,s]=Md(t,n),i=4,o=new Uint8Array(n9(t*n,i));return de(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function jA(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(a9(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 qA(e,t,n){let a=new Float32Array(t*n*4);return de(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var em=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,tA(t,e)):this.gl=ja(t),e=this.gl,G().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>de(r,()=>r.createVertexArray()),this.bindVertexArray=s=>de(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>de(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>de(r,()=>r.getParameter(r.VERTEX_ARRAY_BINDING))}else if(e!=null){let r=e.getExtension("OES_vertex_array_object");if(r==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>de(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>de(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>de(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>de(e,()=>e.getParameter(r.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),G().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=pc(this.gl,r),ha(this.gl,s))this.textureHalfFloatExtension=pc(this.gl,s);else if(G().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),ha(this.gl,a))this.colorBufferHalfFloatExtension=pc(this.gl,a);else if(G().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",ha(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ha(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=DA(this.gl),this.indexBuffer=RA(this.gl),this.framebuffer=dA(this.gl),this.textureConfig=sk(this.gl,this.textureHalfFloatExtension)}get debug(){return G().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;de(e,()=>e.finish()),de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.deleteFramebuffer(this.framebuffer)),de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),de(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),MA(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),OA(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),PA(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),VA(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),BA(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),zA(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),LA(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(xv(this.gl,this.framebuffer),this.outputTexture=null),de(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>HA(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return jA(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return GA(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=UA(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(G().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 G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>qA(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=$A(t));let n=iA(t);de(t,()=>t.attachShader(n,this.vertexShader)),de(t,()=>t.attachShader(n,e)),oA(t,n);let a=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&Yh(t,a),a}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;de(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),WA(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(de(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Yh(this.gl,this.program),de(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?mA(this.gl,e,t):fA(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),de(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(),gA(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=vp(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&&Yh(this.gl,this.program),cc(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;if(this.debug){let t=this.getVertexArray();console.assert(t===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}de(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),de(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=pc(this.gl,G().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(G().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(G().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,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().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=oQ(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){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in G().platform&&(n=G().platform.setTimeoutCustom.bind(G().platform)),w.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Zh(this.gl,e,this.framebuffer),this.debug&&cc(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Zh(this.gl,this.outputTexture,this.framebuffer),this.debug&&cc(this.gl)):xv(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;Zh(a,e,this.framebuffer),this.debug&&cc(a),this.outputTexture=e,de(a,()=>a.viewport(0,0,t,n)),de(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),de(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 oQ(e){let t=0;for(;t`${e}.${n}`)}function In(e,t){return t===1?[e]:ZA(e,t)}function QQ(e,t){if(e===1)return"rc";let n="";for(let a=0;a= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), - rEdge || cEdge ? 0. : getA(${t[3]})`}},YA=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length);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(${t[3]})`}},JA=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);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); @@ -1158,7 +1158,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${ZQ(t,this.enableShapeUniforms)} + ${tee(t,this.enableShapeUniforms)} ${this.enableShapeUniforms?lk():ok(e)} void main() { @@ -1174,12 +1174,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function ZQ(e,t){return` + `}};function tee(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?c9(["r","c","d"],"inputShape"):Qo(["r","c","d"],e)} + ${t?f9(["r","c","d"],"inputShape"):Qo(["r","c","d"],e)} return ivec3(r, c, d); } - `}var JQ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=CS(t,n),r=ES(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=TS(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].pop();return this.usedTextures[r].push(o),o}let i;return a===dn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===dn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===dn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===dn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===dn.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=CS(n,a),s=ES(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=TS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`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.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function QQ(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function TS(e,t,n,a,r){let s=eee(t,a),i;if(r){let[l,u]=vp(e[0],e[1]);i=l*u}else{let[l,u]=Md(e[0],e[1]);i=l*u}let o=QQ(n,s);return i*o}function eee(e,t){switch(e){case dn.PACKED_2X2_FLOAT32:return hk(t);case dn.PACKED_2X2_FLOAT16:return mk(t);case dn.UNPACKED_FLOAT32:return pk(t);case dn.UNPACKED_FLOAT16:return ck(t);case dn.PACKED_4X1_UNSIGNED_BYTE:return dk(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function tee(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?dn.PACKED_2X2_FLOAT32:dn.UNPACKED_FLOAT32:e?dn.PACKED_2X2_FLOAT16:dn.UNPACKED_FLOAT16}function CS(e,t){if(e===da.UPLOAD)return dn.PACKED_2X2_FLOAT32;if(e===da.RENDER||e==null)return tee(t);if(e===da.DOWNLOAD||e===da.PIXELS)return dn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function ES(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ir=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` + `}var nee=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=CS(t,n),r=ES(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=TS(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].pop();return this.usedTextures[r].push(o),o}let i;return a===hn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===hn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===hn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===hn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===hn.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=CS(n,a),s=ES(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=TS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`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.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function aee(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function TS(e,t,n,a,r){let s=ree(t,a),i;if(r){let[l,u]=vp(e[0],e[1]);i=l*u}else{let[l,u]=Md(e[0],e[1]);i=l*u}let o=aee(n,s);return i*o}function ree(e,t){switch(e){case hn.PACKED_2X2_FLOAT32:return hk(t);case hn.PACKED_2X2_FLOAT16:return mk(t);case hn.UNPACKED_FLOAT32:return pk(t);case hn.UNPACKED_FLOAT16:return ck(t);case hn.PACKED_4X1_UNSIGNED_BYTE:return dk(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function see(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?hn.PACKED_2X2_FLOAT32:hn.UNPACKED_FLOAT32:e?hn.PACKED_2X2_FLOAT16:hn.UNPACKED_FLOAT16}function CS(e,t){if(e===da.UPLOAD)return hn.PACKED_2X2_FLOAT32;if(e===da.RENDER||e==null)return see(t);if(e===da.DOWNLOAD||e===da.PIXELS)return hn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function ES(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ir=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1190,11 +1190,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ma="if (isnan(x)) return x;",nee="return x;",_S="return abs(x);",aee="return (x >= 0.0) ? x : (exp(x) - 1.0);",ree=Ma+` + `}},Ma="if (isnan(x)) return x;",iee="return x;",_S="return abs(x);",oee="return (x >= 0.0) ? x : (exp(x) - 1.0);",lee=Ma+` return (x < 0.0) ? 0.0 : x; -`,see=Ma+` +`,uee=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,es="return x;",iee="return 1.0 / (1.0 + exp(-1.0 * x));",oee="return x;",lee=` +`,es="return x;",pee="return 1.0 / (1.0 + exp(-1.0 * x));",cee="return x;",dee=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1203,7 +1203,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,uee=` +`,hee=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1213,7 +1213,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,pee=` +`,mee=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1223,7 +1223,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,cee="return 1.0 / (1.0 + exp(-1.0 * x));",ss=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` +`,fee="return 1.0 / (1.0 + exp(-1.0 * x));",ss=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1234,17 +1234,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},dee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length);let t=e.length,n=kn("rc",t),a=ht(t),r=XQ(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},gee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.length,n=In("rc",t),a=ht(t),r=QQ(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})); } - `}},hee=fr.whereImpl,mee=1e-7,fee=1e-4,Nx={};function gee(e){return e in Nx||(Nx[e]={}),Nx[e]}var bee=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),yee=600;function xee(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*yee/1024/1024}var gk=class ZA extends Pc{nextDataId(){return ZA.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let n;if(t!=null){if(t instanceof em)n=t;else{let a=qa(G().getNumber("WEBGL_VERSION"),t);n=new em(a)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let a=qa(G().getNumber("WEBGL_VERSION"));n=new em(a),this.binaryCache=gee(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=n,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new JQ(this.gpgpu),this.numMBBeforeWarning=xee(),this.texData=new $m(this,Ea())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,n,a,r,s,i){let o=this.makeTensorInfo(n,a),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:t,texShape:[r,s]},l.texShape=[r,s];let u=dc(n),p=new NS(u,!1,i),d=this.runWebGLProgram(p,[o],a,[[r,s]]);return d.shape=n,l.texture=null,this.disposeIntermediateTensorInfo(o),d.dataId}write(t,n,a){if((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().getBool("DEBUG"))&&this.checkNumericalProblems(t),a==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let r={id:this.nextDataId()};return this.texData.set(r,{shape:n,dtype:a,values:t,usage:da.UPLOAD,refCount:1}),r}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let n=this.texData.get(t);n.refCount++}decRef(t){if(this.texData.has(t)){let n=this.texData.get(t);n.refCount--}}move(t,n,a,r,s){if(G().getBool("DEBUG")&&this.checkNumericalProblems(n),r==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:a,dtype:r,values:n,usage:da.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let n=this.texData.get(t),{values:a,dtype:r,complexTensorInfos:s,slice:i,shape:o,isPacked:l}=n;if(i!=null){let c;l?c=new ss(o,es):c=new ir(o,es);let h=this.runWebGLProgram(c,[{dataId:t,shape:o,dtype:r}],r),m=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),m}if(a!=null)return this.convertAndCacheOnCPU(t);if(r==="string")return a;let u=this.activeTimers!=null,p;u&&(p=w.now());let d;if(r==="complex64"){let c=this.readSync(s.real.dataId),h=this.readSync(s.imag.dataId);d=T.mergeRealAndImagArrays(c,h)}else d=this.getValuesFromTexture(t);return u&&(this.downloadWaitMs+=w.now()-p),this.convertAndCacheOnCPU(t,d)}async read(t){if(this.pendingRead.has(t)){let m=this.pendingRead.get(t);return new Promise(f=>m.push(f))}let n=this.texData.get(t),{values:a,shape:r,slice:s,dtype:i,complexTensorInfos:o,isPacked:l}=n;if(s!=null){let m;l?m=new ss(r,es):m=new ir(r,es);let f=this.runWebGLProgram(m,[{dataId:t,shape:r,dtype:i}],i),g=this.read(f.dataId);return this.disposeIntermediateTensorInfo(f),g}if(a!=null)return this.convertAndCacheOnCPU(t);if(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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,p;if(i!=="complex64"&&G().get("WEBGL_BUFFER_SUPPORTED")){p=this.decode(t);let m=this.texData.get(p.dataId);u=this.gpgpu.createBufferFromTexture(m.texture.texture,...Gh(r))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let d;if(i==="complex64"){let m=await Promise.all([this.read(o.real.dataId),this.read(o.imag.dataId)]),f=m[0],g=m[1];d=T.mergeRealAndImagArrays(f,g)}else if(u==null)d=this.getValuesFromTexture(t);else{let m=w.sizeFromShape(r);d=this.gpgpu.downloadFloat32MatrixFromBuffer(u,m)}if(p!=null&&this.disposeIntermediateTensorInfo(p),u!=null){let m=this.gpgpu.gl;de(m,()=>m.deleteBuffer(u))}let c=this.convertAndCacheOnCPU(t,d),h=this.pendingRead.get(t);return this.pendingRead.delete(t),h.forEach(m=>m(c)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Ea().removeDataId(t,this),this.pendingDeletes--),c}readToGPU(t,n={}){let a=this.texData.get(t),{values:r,shape:s,slice:i,dtype:o,isPacked:l,texture:u}=a;if(o==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let h;l?h=new ss(s,es):h=new ir(s,es);let m=this.runWebGLProgram(h,[{dataId:t,shape:s,dtype:o}],o),f=this.readToGPU(m,n);return this.disposeIntermediateTensorInfo(m),f}if(u==null)throw r!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let p=this.decode(t,n.customTexShape),d=Ea().makeTensorFromTensorInfo(p),c=this.texData.get(p.dataId);return Object.assign({tensorRef:d},c.texture)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Pe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(t.shape,t.dtype,n)}checkNumericalProblems(t){if(t!=null)for(let n=0;n0}time(t){let n=this.activeTimers,a=[],r=!1;this.programTimersStack==null?(this.programTimersStack=a,r=!0):this.activeTimers.push(a),this.activeTimers=a,t();let s=w.flatten(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),i=w.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=n,r&&(this.programTimersStack=null);let o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);o.kernelMs=w.sum(l),o.getExtraProfileInfo=()=>l.map((u,p)=>({name:i[p],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(t){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=w.now(),t)}async getQueryTime(t){if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let n=t;return n.endMs-n.startMs}disposeData(t,n=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(n?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!n&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:a}=this.texData.get(t);return a!=null&&(this.disposeData(a.real.dataId,n),this.disposeData(a.imag.dataId,n)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:n,dtype:a,texShape:r,usage:s,isPacked:i,slice:o}=this.texData.get(t),l=o&&o.origDataId||t,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),n!=null&&(this.numBytesInGPU-=this.computeBytes(r,a),this.textureManager.releaseTexture(n,r,s,i)));let p=this.texData.get(t);p.texture=null,p.texShape=null,p.isPacked=!1,p.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,n=bee){return G().getBool("WEBGL_CPU_FORWARD")&&t.every(a=>this.texData.get(a.dataId).texture==null&&w.sizeFromShape(a.shape)0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return this.texData.get(r).usage=null,{dataId:r,shape:t,dtype:n}}makeOutput(t,n,a){return Ea().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,a),this)}unpackTensor(t){let n=new dee(t.shape);return this.runWebGLProgram(n,[t],t.dtype)}packTensor(t){let n=new YQ(t.shape);return this.runWebGLProgram(n,[t],t.dtype,null,!0)}packedReshape(t,n){let a=[ki(t.shape),...Ii(t.shape)],r={dtype:t.dtype,shape:a,dataId:t.dataId},s=[ki(n),...Ii(n)],i=new YA(s,a),o=!0,l=[a],u=this.runWebGLProgram(i,[r],t.dtype,l,o);return{dataId:u.dataId,shape:n,dtype:u.dtype}}decode(t,n){let a=this.texData.get(t),{isPacked:r,shape:s,dtype:i}=a;if(n!=null){let c=w.sizeFromShape(s),h=n[0]*n[1]*4;w.assert(c<=h,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let o=dc(s),l;r?l=new J9(o):l=new Z9(o);let u=!0,p=[n!=null?n:Gh(o)],d=this.runWebGLProgram(l,[{shape:o,dtype:i,dataId:t}],i,p,u,n);return{dtype:i,shape:s,dataId:d.dataId}}runWebGLProgram(t,n,a,r,s=!1,i){let o=this.makeTensorInfo(t.outputShape,a),l=this.texData.get(o.dataId);if(t.packedOutput&&(l.isPacked=!0),t.outPackingScheme===Fc.DENSE){let b=i!=null?i:Gh(t.outputShape);l.texShape=b.map(y=>y*2)}if(t.outTexUsage!=null&&(l.usage=t.outTexUsage),w.sizeFromShape(o.shape)===0)return l.values=w.getTypedArrayFromDType(o.dtype,0),o;let u=[],p=n.map(b=>{if(b.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(b.dataId);if(y.texture==null){if(!t.packedInputs&&w.sizeFromShape(b.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:b.shape,texData:null,isUniform:!0,uniformValues:y.values};t.packedInputs&&(y.isPacked=!0,y.shape=b.shape)}if(this.uploadToGPU(b.dataId),!!y.isPacked!=!!t.packedInputs)b=y.isPacked?this.unpackTensor(b):this.packTensor(b),u.push(b),y=this.texData.get(b.dataId);else if(y.isPacked&&!$c(y.shape,b.shape)){let x=b,v=b.shape;b.shape=y.shape,b=this.packedReshape(b,v),u.push(b),y=this.texData.get(b.dataId),x.shape=v}return{shape:b.shape,texData:y,isUniform:!1}});this.uploadToGPU(o.dataId);let d={shape:o.shape,texData:l,isUniform:!1},c=Y9(t,p,d),h=this.getAndSaveBinary(c,()=>K9(this.gpgpu,t,p,d)),m=this.activeTimers!=null,f;m&&(f=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||X9(this.gpgpu,h,p,d,r),u.forEach(b=>this.disposeIntermediateTensorInfo(b)),m&&(f=this.endTimer(f),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(f)}));let g=G().getNumber("WEBGL_FLUSH_THRESHOLD");if(g>0){let b=w.now();b-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=b)}if(!G().getBool("WEBGL_LAZILY_UNPACK")&&l.isPacked&&s===!1){let b=this.unpackTensor(o);return this.disposeIntermediateTensorInfo(o),b}return o}compileAndRun(t,n,a,r,s=!1){return a=a||n[0].dtype,this.runWebGLProgram(t,n,a,r,s)}getAndSaveBinary(t,n){return t in this.binaryCache||(this.binaryCache[t]=n()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(G().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=O(()=>{if(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=G().getBool("DEBUG");G().set("DEBUG",!1);let n=this.abs(ve(1e-8)).dataSync()[0];if(G().set("DEBUG",t),n>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?mee:fee}uploadToGPU(t){let n=this.texData.get(t),{shape:a,dtype:r,values:s,texture:i,usage:o,isPacked:l}=n;if(i!=null)return;let u=this.activeTimers!=null,p;u&&(p=w.now());let d=n.texShape;if(d==null&&(d=bA(a,l),n.texShape=d),s!=null){let c=dc(a),h,m=d[1],f=d[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(l||!g)&&([m,f]=vp(d[0],d[1])),l?h=new nQ(c,g):h=new NS(c,g);let b=g?[f,m]:d,y=this.makeTensorInfo(b,r),x=this.texData.get(y.dataId);g?x.usage=da.PIXELS:x.usage=da.UPLOAD,x.texShape=b,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),m,f,s);let v=[[f,m]],I=this.runWebGLProgram(h,[y],r,v,!0),N=this.texData.get(I.dataId);n.texShape=N.texShape,n.isPacked=N.isPacked,n.usage=N.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(n.texture=N.texture,n.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),u&&(this.uploadWaitMs+=w.now()-p)}else{let c=this.acquireTexture(d,o,r,l);n.texture=c}}convertAndCacheOnCPU(t,n){let a=this.texData.get(t),{dtype:r}=a;return n!=null&&(a.values=vee(n,r)),a.values}acquireTexture(t,n,a,r){if(this.numBytesInGPU+=this.computeBytes(t,a),!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(t,n,r)}computeBytes(t,n){return t[0]*t[1]*w.bytesPerElement(n)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,n]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(n));return Promise.all(t)}else{for(let[,n]of Object.entries(this.binaryCache)){let a=new Promise(r=>{try{this.checkCompletion_(n),r(!0)}catch(s){throw s}});t.push(a)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await s0(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(ik(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:n,customUniformLocations:a,infLoc:r,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:o,outTexShapeLocation:l}=EA(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=n,t.customUniformLocations=a,t.infLoc=r,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=o,t.outTexShapeLocation=l}}createTensorFromGPUData(t,n,a){t.channels=t.channels||"RGBA";let{texture:r,height:s,width:i,channels:o}=t,l=Ea().backend;if(!l.gpgpu.gl.isTexture(r))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let u=l.writeTexture(r,n,a,s,i,o);return Ea().makeTensorFromDataId(u,n,a,l)}};gk.nextDataId=0;function vee(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 gk,2);var kee={forceHalfFloat:JA},bk=` + `}},bee=gr.whereImpl,yee=1e-7,xee=1e-4,Tx={};function vee(e){return e in Tx||(Tx[e]={}),Tx[e]}var wee=G().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),kee=600;function Iee(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*kee/1024/1024}var gk=class QA extends Pc{nextDataId(){return QA.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let n;if(t!=null){if(t instanceof em)n=t;else{let a=ja(G().getNumber("WEBGL_VERSION"),t);n=new em(a)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let a=ja(G().getNumber("WEBGL_VERSION"));n=new em(a),this.binaryCache=vee(G().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=n,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new nee(this.gpgpu),this.numMBBeforeWarning=Iee(),this.texData=new $m(this,Ea())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,n,a,r,s,i){let o=this.makeTensorInfo(n,a),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:t,texShape:[r,s]},l.texShape=[r,s];let u=dc(n),p=new NS(u,!1,i),d=this.runWebGLProgram(p,[o],a,[[r,s]]);return d.shape=n,l.texture=null,this.disposeIntermediateTensorInfo(o),d.dataId}write(t,n,a){if((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().getBool("DEBUG"))&&this.checkNumericalProblems(t),a==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let r={id:this.nextDataId()};return this.texData.set(r,{shape:n,dtype:a,values:t,usage:da.UPLOAD,refCount:1}),r}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let n=this.texData.get(t);n.refCount++}decRef(t){if(this.texData.has(t)){let n=this.texData.get(t);n.refCount--}}move(t,n,a,r,s){if(G().getBool("DEBUG")&&this.checkNumericalProblems(n),r==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:a,dtype:r,values:n,usage:da.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let n=this.texData.get(t),{values:a,dtype:r,complexTensorInfos:s,slice:i,shape:o,isPacked:l}=n;if(i!=null){let c;l?c=new ss(o,es):c=new ir(o,es);let h=this.runWebGLProgram(c,[{dataId:t,shape:o,dtype:r}],r),m=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),m}if(a!=null)return this.convertAndCacheOnCPU(t);if(r==="string")return a;let u=this.activeTimers!=null,p;u&&(p=w.now());let d;if(r==="complex64"){let c=this.readSync(s.real.dataId),h=this.readSync(s.imag.dataId);d=T.mergeRealAndImagArrays(c,h)}else d=this.getValuesFromTexture(t);return u&&(this.downloadWaitMs+=w.now()-p),this.convertAndCacheOnCPU(t,d)}async read(t){if(this.pendingRead.has(t)){let m=this.pendingRead.get(t);return new Promise(f=>m.push(f))}let n=this.texData.get(t),{values:a,shape:r,slice:s,dtype:i,complexTensorInfos:o,isPacked:l}=n;if(s!=null){let m;l?m=new ss(r,es):m=new ir(r,es);let f=this.runWebGLProgram(m,[{dataId:t,shape:r,dtype:i}],i),g=this.read(f.dataId);return this.disposeIntermediateTensorInfo(f),g}if(a!=null)return this.convertAndCacheOnCPU(t);if(G().getBool("DEBUG")&&!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().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,p;if(i!=="complex64"&&G().get("WEBGL_BUFFER_SUPPORTED")){p=this.decode(t);let m=this.texData.get(p.dataId);u=this.gpgpu.createBufferFromTexture(m.texture.texture,...Gh(r))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let d;if(i==="complex64"){let m=await Promise.all([this.read(o.real.dataId),this.read(o.imag.dataId)]),f=m[0],g=m[1];d=T.mergeRealAndImagArrays(f,g)}else if(u==null)d=this.getValuesFromTexture(t);else{let m=w.sizeFromShape(r);d=this.gpgpu.downloadFloat32MatrixFromBuffer(u,m)}if(p!=null&&this.disposeIntermediateTensorInfo(p),u!=null){let m=this.gpgpu.gl;de(m,()=>m.deleteBuffer(u))}let c=this.convertAndCacheOnCPU(t,d),h=this.pendingRead.get(t);return this.pendingRead.delete(t),h.forEach(m=>m(c)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Ea().removeDataId(t,this),this.pendingDeletes--),c}readToGPU(t,n={}){let a=this.texData.get(t),{values:r,shape:s,slice:i,dtype:o,isPacked:l,texture:u}=a;if(o==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let h;l?h=new ss(s,es):h=new ir(s,es);let m=this.runWebGLProgram(h,[{dataId:t,shape:s,dtype:o}],o),f=this.readToGPU(m,n);return this.disposeIntermediateTensorInfo(m),f}if(u==null)throw r!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let p=this.decode(t,n.customTexShape),d=Ea().makeTensorFromTensorInfo(p),c=this.texData.get(p.dataId);return Object.assign({tensorRef:d},c.texture)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Pe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(t.shape,t.dtype,n)}checkNumericalProblems(t){if(t!=null)for(let n=0;n0}time(t){let n=this.activeTimers,a=[],r=!1;this.programTimersStack==null?(this.programTimersStack=a,r=!0):this.activeTimers.push(a),this.activeTimers=a,t();let s=w.flatten(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),i=w.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=n,r&&(this.programTimersStack=null);let o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);o.kernelMs=w.sum(l),o.getExtraProfileInfo=()=>l.map((u,p)=>({name:i[p],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:w.now(),endMs:null}}endTimer(t){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=w.now(),t)}async getQueryTime(t){if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let n=t;return n.endMs-n.startMs}disposeData(t,n=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(n?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!n&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:a}=this.texData.get(t);return a!=null&&(this.disposeData(a.real.dataId,n),this.disposeData(a.imag.dataId,n)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:n,dtype:a,texShape:r,usage:s,isPacked:i,slice:o}=this.texData.get(t),l=o&&o.origDataId||t,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),n!=null&&(this.numBytesInGPU-=this.computeBytes(r,a),this.textureManager.releaseTexture(n,r,s,i)));let p=this.texData.get(t);p.texture=null,p.texShape=null,p.isPacked=!1,p.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,n=wee){return G().getBool("WEBGL_CPU_FORWARD")&&t.every(a=>this.texData.get(a.dataId).texture==null&&w.sizeFromShape(a.shape)0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return this.texData.get(r).usage=null,{dataId:r,shape:t,dtype:n}}makeOutput(t,n,a){return Ea().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,a),this)}unpackTensor(t){let n=new gee(t.shape);return this.runWebGLProgram(n,[t],t.dtype)}packTensor(t){let n=new eee(t.shape);return this.runWebGLProgram(n,[t],t.dtype,null,!0)}packedReshape(t,n){let a=[ki(t.shape),...Ii(t.shape)],r={dtype:t.dtype,shape:a,dataId:t.dataId},s=[ki(n),...Ii(n)],i=new JA(s,a),o=!0,l=[a],u=this.runWebGLProgram(i,[r],t.dtype,l,o);return{dataId:u.dataId,shape:n,dtype:u.dtype}}decode(t,n){let a=this.texData.get(t),{isPacked:r,shape:s,dtype:i}=a;if(n!=null){let c=w.sizeFromShape(s),h=n[0]*n[1]*4;w.assert(c<=h,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let o=dc(s),l;r?l=new nQ(o):l=new tQ(o);let u=!0,p=[n!=null?n:Gh(o)],d=this.runWebGLProgram(l,[{shape:o,dtype:i,dataId:t}],i,p,u,n);return{dtype:i,shape:s,dataId:d.dataId}}runWebGLProgram(t,n,a,r,s=!1,i){let o=this.makeTensorInfo(t.outputShape,a),l=this.texData.get(o.dataId);if(t.packedOutput&&(l.isPacked=!0),t.outPackingScheme===Fc.DENSE){let b=i!=null?i:Gh(t.outputShape);l.texShape=b.map(y=>y*2)}if(t.outTexUsage!=null&&(l.usage=t.outTexUsage),w.sizeFromShape(o.shape)===0)return l.values=w.getTypedArrayFromDType(o.dtype,0),o;let u=[],p=n.map(b=>{if(b.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(b.dataId);if(y.texture==null){if(!t.packedInputs&&w.sizeFromShape(b.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:b.shape,texData:null,isUniform:!0,uniformValues:y.values};t.packedInputs&&(y.isPacked=!0,y.shape=b.shape)}if(this.uploadToGPU(b.dataId),!!y.isPacked!=!!t.packedInputs)b=y.isPacked?this.unpackTensor(b):this.packTensor(b),u.push(b),y=this.texData.get(b.dataId);else if(y.isPacked&&!$c(y.shape,b.shape)){let x=b,v=b.shape;b.shape=y.shape,b=this.packedReshape(b,v),u.push(b),y=this.texData.get(b.dataId),x.shape=v}return{shape:b.shape,texData:y,isUniform:!1}});this.uploadToGPU(o.dataId);let d={shape:o.shape,texData:l,isUniform:!1},c=eQ(t,p,d),h=this.getAndSaveBinary(c,()=>J9(this.gpgpu,t,p,d)),m=this.activeTimers!=null,f;m&&(f=this.startTimer()),G().get("ENGINE_COMPILE_ONLY")||Q9(this.gpgpu,h,p,d,r),u.forEach(b=>this.disposeIntermediateTensorInfo(b)),m&&(f=this.endTimer(f),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(f)}));let g=G().getNumber("WEBGL_FLUSH_THRESHOLD");if(g>0){let b=w.now();b-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=b)}if(!G().getBool("WEBGL_LAZILY_UNPACK")&&l.isPacked&&s===!1){let b=this.unpackTensor(o);return this.disposeIntermediateTensorInfo(o),b}return o}compileAndRun(t,n,a,r,s=!1){return a=a||n[0].dtype,this.runWebGLProgram(t,n,a,r,s)}getAndSaveBinary(t,n){return t in this.binaryCache||(this.binaryCache[t]=n()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(G().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=O(()=>{if(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=G().getBool("DEBUG");G().set("DEBUG",!1);let n=this.abs(xe(1e-8)).dataSync()[0];if(G().set("DEBUG",t),n>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?yee:xee}uploadToGPU(t){let n=this.texData.get(t),{shape:a,dtype:r,values:s,texture:i,usage:o,isPacked:l}=n;if(i!=null)return;let u=this.activeTimers!=null,p;u&&(p=w.now());let d=n.texShape;if(d==null&&(d=xA(a,l),n.texShape=d),s!=null){let c=dc(a),h,m=d[1],f=d[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(l||!g)&&([m,f]=vp(d[0],d[1])),l?h=new iQ(c,g):h=new NS(c,g);let b=g?[f,m]:d,y=this.makeTensorInfo(b,r),x=this.texData.get(y.dataId);g?x.usage=da.PIXELS:x.usage=da.UPLOAD,x.texShape=b,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),m,f,s);let v=[[f,m]],I=this.runWebGLProgram(h,[y],r,v,!0),N=this.texData.get(I.dataId);n.texShape=N.texShape,n.isPacked=N.isPacked,n.usage=N.usage,G().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(n.texture=N.texture,n.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),u&&(this.uploadWaitMs+=w.now()-p)}else{let c=this.acquireTexture(d,o,r,l);n.texture=c}}convertAndCacheOnCPU(t,n){let a=this.texData.get(t),{dtype:r}=a;return n!=null&&(a.values=See(n,r)),a.values}acquireTexture(t,n,a,r){if(this.numBytesInGPU+=this.computeBytes(t,a),!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(t,n,r)}computeBytes(t,n){return t[0]*t[1]*w.bytesPerElement(n)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,n]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(n));return Promise.all(t)}else{for(let[,n]of Object.entries(this.binaryCache)){let a=new Promise(r=>{try{this.checkCompletion_(n),r(!0)}catch(s){throw s}});t.push(a)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await s0(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(ik(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:n,customUniformLocations:a,infLoc:r,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:o,outTexShapeLocation:l}=AA(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=n,t.customUniformLocations=a,t.infLoc=r,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=o,t.outTexShapeLocation=l}}createTensorFromGPUData(t,n,a){t.channels=t.channels||"RGBA";let{texture:r,height:s,width:i,channels:o}=t,l=Ea().backend;if(!l.gpgpu.gl.isTexture(r))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let u=l.writeTexture(r,n,a,s,i,o);return Ea().makeTensorFromDataId(u,n,a,l)}};gk.nextDataId=0;function See(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 gk,2);var Tee={forceHalfFloat:eF},bk=` if (isnan(a)) return a; if (isnan(b)) return b; -`,Si=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=T.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=` +`,Si=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=T.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=vn(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1259,7 +1259,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.g = isNaN.g ? NAN : result.g; result.b = isNaN.b ? NAN : result.b; result.a = isNaN.a ? NAN : result.a; -`,Tp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=T.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=xn(r);let s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` +`,Tp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=T.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=vn(r);let s="";if(a)if(r===0||w.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1273,7 +1273,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 i=kn("coords",r);this.enableShapeUniforms?s+=` + `;else{let i=In("coords",r);this.enableShapeUniforms?s+=` bool nextRowOutOfBounds = (${i[r-2]} + 1) >= outShape[${r} - 2]; bool nextColOutOfBounds = @@ -1303,13 +1303,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function aa(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 Iee={kernelName:no,backendName:"webgl",kernelFunc:aa};function Ms(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=aa({inputs:{x:a},backend:n}),l=aa({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var See={kernelName:Mm,backendName:"webgl",kernelFunc:Ms},QA="return (a < 0.) ? b * a : a;",eF=` + `}};function aa(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 Cee={kernelName:no,backendName:"webgl",kernelFunc:aa};function Os(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=aa({inputs:{x:a},backend:n}),l=aa({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var Eee={kernelName:Mm,backendName:"webgl",kernelFunc:Os},tF="return (a < 0.) ? b * a : a;",nF=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function Nee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Tp(eF,r.shape,i.shape):new Si(QA,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var Tee={kernelName:io,backendName:"webgl",kernelFunc:Nee},tF="return (a < 0.) ? b * a : a;",nF=` +`;function _ee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Tp(nF,r.shape,i.shape):new Si(tF,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var Aee={kernelName:io,backendName:"webgl",kernelFunc:_ee},aF="return (a < 0.) ? b * a : a;",rF=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function Cee(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Tp(nF,a.shape,r.shape):new Si(tF,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var Eee={kernelName:Io,backendName:"webgl",kernelFunc:Cee},Cp="if (isnan(x)) return x;";function Ze({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 d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ss(i.shape,t):p=new ir(i.shape,e),o.runWebGLProgram(p,[i],l)}}function fn({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,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,I]=x,N={dataId:v.dataId,dtype:v.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},_=new Si(e,l.shape,u.shape);return p.runWebGLProgram(_,[N,C],ga(v.dtype,I.dtype))}),y=Ms({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ga(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?T.fromUint8ToStringArray(m):m,b=l.dtype==="string"?T.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),v=p.makeTensorInfo(x,d),I=p.texData.get(v.dataId);return I.values=y,v}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new Tp(t,l.shape,u.shape,n):h=new Si(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function Dc(e,t=!1){if(e==="linear")return t?oee:nee;if(e==="relu")return t?uee:ree;if(e==="elu")return t?lee:aee;if(e==="relu6")return t?pee:see;if(e==="prelu")return t?nF:tF;if(e==="leakyrelu")return t?eF:QA;if(e==="sigmoid")return t?cee:iee;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var aF=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,this.enableShapeUniforms=xn(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=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 Fee(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Tp(rF,a.shape,r.shape):new Si(aF,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var $ee={kernelName:Io,backendName:"webgl",kernelFunc:Fee},Cp="if (isnan(x)) return x;";function Ze({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 d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ss(i.shape,t):p=new ir(i.shape,e),o.runWebGLProgram(p,[i],l)}}function fn({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,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[v,I]=x,N={dataId:v.dataId,dtype:v.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},_=new Si(e,l.shape,u.shape);return p.runWebGLProgram(_,[N,C],ga(v.dtype,I.dtype))}),y=Os({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ga(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?T.fromUint8ToStringArray(m):m,b=l.dtype==="string"?T.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),v=p.makeTensorInfo(x,d),I=p.texData.get(v.dataId);return I.values=y,v}let c=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new Tp(t,l.shape,u.shape,n):h=new Si(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function Dc(e,t=!1){if(e==="linear")return t?cee:iee;if(e==="relu")return t?hee:lee;if(e==="elu")return t?dee:oee;if(e==="relu6")return t?mee:uee;if(e==="prelu")return t?rF:aF;if(e==="leakyrelu")return t?nF:tF;if(e==="sigmoid")return t?fee:pee;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var sF=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,this.enableShapeUniforms=vn(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=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) { @@ -1361,7 +1361,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},$S="return a * b;";function yk(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=T.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new FS(AS.REAL,a.shape,r.shape),p=new FS(AS.IMAG,a.shape,r.shape),d=[{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}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Ms({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=NQ(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Tp($S,a.shape,r.shape):i=new Si($S,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var _ee={kernelName:xo,backendName:"webgl",kernelFunc:yk};function Aee(e,t,n){let a=[ki(e.shape),...Ii(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[ki(t),...Ii(t)],i=new YA(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function ce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=w.sizeFromShape(r.shape),l=w.inferFromImplicitShape(s,o),u=w.sizeFromShape(l);w.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 p=i.texData.get(r.dataId);return p.isPacked&&!$c(r.shape,l)&&!(p.texture!==null&&$c(p.shape,l))?Aee(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var Fee={kernelName:ju,backendName:"webgl",kernelFunc:ce},DS=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 p=1/t;l=`sumValue += dot(values * ${w.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` + `}},$S="return a * b;";function yk(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=T.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new FS(AS.REAL,a.shape,r.shape),p=new FS(AS.IMAG,a.shape,r.shape),d=[{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}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Os({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=_Q(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Tp($S,a.shape,r.shape):i=new Si($S,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var Dee={kernelName:xo,backendName:"webgl",kernelFunc:yk};function Ree(e,t,n){let a=[ki(e.shape),...Ii(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[ki(t),...Ii(t)],i=new JA(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function ce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=w.sizeFromShape(r.shape),l=w.inferFromImplicitShape(s,o),u=w.sizeFromShape(l);w.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 p=i.texData.get(r.dataId);return p.isPacked&&!$c(r.shape,l)&&!(p.texture!==null&&$c(p.shape,l))?Ree(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var Mee={kernelName:qu,backendName:"webgl",kernelFunc:ce},DS=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 p=1/t;l=`sumValue += dot(values * ${w.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1414,7 +1414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},$ee=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,p=n%4,d=` + `}},Oee=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,p=n%4,d=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1506,12 +1506,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function Dee(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=T.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function nl(e,t,n,a){let r=Dee(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=ht(this.rank),r=XA("rc",this.rank),s=new Array(this.rank);for(let u=0;u6)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=ZA("rc",this.rank),s=new Array(this.rank);for(let u=0;u`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let v=n?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],N=ce({inputs:{x:e},backend:r,attrs:{shape:v}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),_=[N,C],F=Math.max(b,y),D=n?N.shape[1]:N.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?Dc(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>rF&&U===!1){let K=N,Z=C;n&&(K=In({inputs:{x:N},backend:r,attrs:{perm:[0,2,1]}}),_.push(K)),a&&(Z=In({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),_.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),_.push(ae));let te=m===1?2:1,se=Z;ee&&(se=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),_.push(se));let ie=yk({inputs:{a:ae,b:se},backend:r});H=tg({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),_.push(ie)}else{let K=ga(e.dtype,t.dtype),Z=new aF(v,I,[F,h,m],n,a,$,B,S,M),J=[N,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));J.push(ee),_.push(ee)}H=r.runWebGLProgram(Z,J,K)}let j=ce({inputs:{x:H},backend:r,attrs:{shape:x}});_.push(H);for(let K of _)r.disposeIntermediateTensorInfo(K);return j}function Wee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return Cm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var Bee={kernelName:oi,backendName:"webgl",kernelFunc:Wee},RS="return abs(x);";function Vee(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=jA(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ss(a.shape,RS):r=new ir(a.shape,RS),n.runWebGLProgram(r,[a],a.dtype)}var Uee={kernelName:uu,backendName:"webgl",kernelFunc:Vee},Gee=Ma+` + `}};function tg(e,t,n){let a=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Wee(e.shape,t):new Lee(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function Bee(e,t,n,a){let r=t,s=e.shape.length,i=w.parseAxisParam(r,e.shape),o=i,l=T.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=tg(e,l,a),o=T.getInnerMostAxes(o.length,s)),T.assertAxesAreInnerMostDims("sum",o,s);let[d,c]=T.computeOutAndReduceShapes(p.shape,o),h=d;n&&(h=T.expandShapeToKeepDim(d,i));let m=w.sizeFromShape(c),f=w.sizeFromShape(e.shape)/m,g=ce({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),b=Xm(e.dtype),y=nl(g,b,"sum",a),x=ce({inputs:{x:y},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),u&&a.disposeIntermediateTensorInfo(p),x}function ng(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return Bee(r,s,i,n)}var Vee={kernelName:Wo,backendName:"webgl",kernelFunc:ng};function Sn(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 p=0;p`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let v=n?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],N=ce({inputs:{x:e},backend:r,attrs:{shape:v}}),C=ce({inputs:{x:t},backend:r,attrs:{shape:I}}),_=[N,C],F=Math.max(b,y),D=n?N.shape[1]:N.shape[2],$=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?Dc(l,!0):null,U=$||S||M||B!=null,H;if((h===1||m===1)&&D>iF&&U===!1){let K=N,Z=C;n&&(K=Sn({inputs:{x:N},backend:r,attrs:{perm:[0,2,1]}}),_.push(K)),a&&(Z=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),_.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=ce({inputs:{x:K},backend:r,attrs:{shape:[F,D,1]}}),_.push(ae));let te=m===1?2:1,se=Z;ee&&(se=ce({inputs:{x:Z},backend:r,attrs:{shape:[F,1,D]}}),_.push(se));let ie=yk({inputs:{a:ae,b:se},backend:r});H=ng({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),_.push(ie)}else{let K=ga(e.dtype,t.dtype),Z=new sF(v,I,[F,h,m],n,a,$,B,S,M),J=[N,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",w.createScalarValue(o,"float32"));J.push(ee),_.push(ee)}H=r.runWebGLProgram(Z,J,K)}let q=ce({inputs:{x:H},backend:r,attrs:{shape:x}});_.push(H);for(let K of _)r.disposeIntermediateTensorInfo(K);return q}function Gee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return Cm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var Hee={kernelName:li,backendName:"webgl",kernelFunc:Gee},RS="return abs(x);";function jee(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=XA(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ss(a.shape,RS):r=new ir(a.shape,RS),n.runWebGLProgram(r,[a],a.dtype)}var qee={kernelName:uu,backendName:"webgl",kernelFunc:jee},Kee=Ma+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,Hee=Ze({opSnippet:Gee}),qee={kernelName:Ci,backendName:"webgl",kernelFunc:Hee},jee=Ma+` +`,Xee=Ze({opSnippet:Kee}),Yee={kernelName:Ci,backendName:"webgl",kernelFunc:Xee},Zee=Ma+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,Kee=Ze({opSnippet:jee}),Xee={kernelName:Ei,backendName:"webgl",kernelFunc:Kee},MS="return a + b;",Yee=fn({opSnippet:MS,packedOpSnippet:MS,supportsComplex:!0,cpuKernelImpl:rQ}),Zee={kernelName:Is,backendName:"webgl",kernelFunc:Yee},Jee=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));`,Jee=Ze({opSnippet:Zee}),Qee={kernelName:Ei,backendName:"webgl",kernelFunc:Jee},MS="return a + b;",ete=fn({opSnippet:MS,packedOpSnippet:MS,supportsComplex:!0,cpuKernelImpl:lQ}),tte={kernelName:Ss,backendName:"webgl",kernelFunc:ete},nte=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(` `)} @@ -1543,7 +1543,7 @@ return log(x + sqrt(x * x - 1.0));`,Kee=Ze({opSnippet:jee}),Xee={kernelName:Ei,b float result = ${a}; setOutput(result); } - `}},Qee=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=` + `}},ate=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(` `)} @@ -1551,7 +1551,7 @@ return log(x + sqrt(x * x - 1.0));`,Kee=Ze({opSnippet:jee}),Xee={kernelName:Ei,b vec4 result = ${a}; setOutput(result); } - `}};function tm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return aa({inputs:{x:a[0]},backend:n});if(a.length>G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=tm({inputs:a.slice(0,o),backend:n}),u=tm({inputs:a.slice(o),backend:n});return tm({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ga(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new Qee(a[0].shape,s):new Jee(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var ete={kernelName:_i,backendName:"webgl",kernelFunc:tm};function tte(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("all",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=nl(f,f.dtype,"all",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var nte={kernelName:pu,backendName:"webgl",kernelFunc:tte};function ate(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("any",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=nl(f,f.dtype,"any",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var rte={kernelName:cu,backendName:"webgl",kernelFunc:ate},ste=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 tm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return aa({inputs:{x:a[0]},backend:n});if(a.length>G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=tm({inputs:a.slice(0,o),backend:n}),u=tm({inputs:a.slice(o),backend:n});return tm({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ga(o,l)),s=a.map(o=>o.shape),i=G().getBool("WEBGL_PACK")?new ate(a[0].shape,s):new nte(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var rte={kernelName:_i,backendName:"webgl",kernelFunc:tm};function ste(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("all",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=nl(f,f.dtype,"all",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var ite={kernelName:pu,backendName:"webgl",kernelFunc:ste};function ote(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),u=l,p=T.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=T.getInnerMostAxes(u.length,o)),T.assertAxesAreInnerMostDims("any",u,o);let[c,h]=T.computeOutAndReduceShapes(d.shape,u),m=w.sizeFromShape(h),f=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=nl(f,f.dtype,"any",n),b;if(i){let y=T.expandShapeToKeepDim(c,l);b=ce({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=ce({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var lte={kernelName:cu,backendName:"webgl",kernelFunc:ote},ute=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]; @@ -1571,7 +1571,7 @@ return log(x + sqrt(x * x - 1.0));`,Kee=Ze({opSnippet:jee}),Xee={kernelName:Ei,b } setOutput(float(bestIndex)); } - `}},ite=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=ht(o),u=kn("coords",o),p,d;if(s===1){d=o+1;let C=ht(d);p=` + `}},pte=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=ht(o),u=In("coords",o),p,d;if(s===1){d=o+1;let C=ht(d);p=` ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; ${C} sourceLocG = ${C}(${u.join()}, 0); @@ -1587,7 +1587,7 @@ return log(x + sqrt(x * x - 1.0));`,Kee=Ze({opSnippet:jee}),Xee={kernelName:Ei,b ${l} sourceLocA = coords; --${u[o-1]}; ${l} sourceLocB = coords; - --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=kn("sourceLocR",d-1).concat("inIdx.r"),g=kn("sourceLocG",d-1).concat("inIdx.g"),b=kn("sourceLocB",d-1).concat("inIdx.b"),y=kn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` + --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=In("sourceLocR",d-1).concat("inIdx.r"),g=In("sourceLocG",d-1).concat("inIdx.g"),b=In("sourceLocB",d-1).concat("inIdx.b"),y=In("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",v=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${b.join()}), @@ -1633,25 +1633,25 @@ return log(x + sqrt(x * x - 1.0));`,Kee=Ze({opSnippet:jee}),Xee={kernelName:Ei,b } setOutput(bestIndex); } - `}};function sF(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=T.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new ste(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=sF(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function iF(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=T.computeOptimalWindowSize(s),o=new ite(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 p=iF(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function oF(e,t,n,a){let r=[n];if(T.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=T.computeOutAndReduceShapes(l.shape,r),d=w.sizeFromShape(p),c=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=sF(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return iF(e,t,a)}function ote(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=oF(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var lte={kernelName:du,backendName:"webgl",kernelFunc:ote};function ute(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=oF(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var pte={kernelName:hu,backendName:"webgl",kernelFunc:ute},cte=Ma+` + `}};function oF(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=T.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new ute(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=oF(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function lF(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=T.computeOptimalWindowSize(s),o=new pte(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 p=lF(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function uF(e,t,n,a){let r=[n];if(T.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!G().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=T.computeOutAndReduceShapes(l.shape,r),d=w.sizeFromShape(p),c=ce({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=oF(e,c,a);s.push(h);let m=ce({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return lF(e,t,a)}function cte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=uF(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var dte={kernelName:du,backendName:"webgl",kernelFunc:cte};function hte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=w.parseAxisParam(s,r.shape),o=T.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=T.getInnerMostAxes(i.length,l.shape.length)),T.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=uF(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var mte={kernelName:hu,backendName:"webgl",kernelFunc:hte},fte=Ma+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,dte=Ze({opSnippet:cte}),hte={kernelName:Ai,backendName:"webgl",kernelFunc:dte},mte=Ma+"return log(x + sqrt(x * x + 1.0));",fte=Ze({opSnippet:mte}),gte={kernelName:Fi,backendName:"webgl",kernelFunc:fte},bte=Ma+` +`,gte=Ze({opSnippet:fte}),bte={kernelName:Ai,backendName:"webgl",kernelFunc:gte},yte=Ma+"return log(x + sqrt(x * x + 1.0));",xte=Ze({opSnippet:yte}),vte={kernelName:Fi,backendName:"webgl",kernelFunc:xte},wte=Ma+` return atan(x); -`,yte=Ze({opSnippet:bte}),xte={kernelName:$i,backendName:"webgl",kernelFunc:yte},vte=bk+` +`,kte=Ze({opSnippet:wte}),Ite={kernelName:$i,backendName:"webgl",kernelFunc:kte},Ste=bk+` return atan(a, b); -`,wte=` +`,Nte=` vec4 result = atan(a, b); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); `+tl+` return result; -`,kte=fn({opSnippet:vte,packedOpSnippet:wte}),Ite={kernelName:Ri,backendName:"webgl",kernelFunc:kte},Ste=Ma+` +`,Tte=fn({opSnippet:Ste,packedOpSnippet:Nte}),Cte={kernelName:Ri,backendName:"webgl",kernelFunc:Tte},Ete=Ma+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernelName:Di,backendName:"webgl",kernelFunc:Nte},Rc=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,_te=Ze({opSnippet:Ete}),Ate={kernelName:Di,backendName:"webgl",kernelFunc:_te},Rc=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1955,7 +1955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(${I}); } - `}};function Cte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;wp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new Rc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var Ete={kernelName:Mi,backendName:"webgl",kernelFunc:Cte};function _te(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new xk(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var Ate={kernelName:mu,backendName:"webgl",kernelFunc:_te},Fte=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,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` + `}};function Fte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;wp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new Rc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var $te={kernelName:Mi,backendName:"webgl",kernelFunc:Fte};function Dte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new xk(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var Rte={kernelName:mu,backendName:"webgl",kernelFunc:Dte},Mte=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,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${u}, ${p}); const float avgMultiplier = float(${d}); @@ -1997,7 +1997,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}},$te=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,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},Ote=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,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -2053,7 +2053,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}};function Dte(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=T.computePool3DInfo(i.shape,o,l,d,u,p),h=new $te(c);return n.runWebGLProgram(h,[r],i.dtype)}var Rte={kernelName:Wc,backendName:"webgl",kernelFunc:Dte};function Mte(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;wp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=new Fte(p);return n.runWebGLProgram(d,[r],i.dtype)}var Ote={kernelName:zc,backendName:"webgl",kernelFunc:Mte};function Pte(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Cm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var Lte={kernelName:Oi,backendName:"webgl",kernelFunc:Pte},zte=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function Pte(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=T.computePool3DInfo(i.shape,o,l,d,u,p),h=new Ote(c);return n.runWebGLProgram(h,[r],i.dtype)}var Lte={kernelName:Wc,backendName:"webgl",kernelFunc:Pte};function zte(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;wp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=T.computePool2DInfo(i.shape,o,l,1,u),d=new Mte(p);return n.runWebGLProgram(d,[r],i.dtype)}var Wte={kernelName:zc,backendName:"webgl",kernelFunc:zte};function Bte(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Cm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var Vte={kernelName:Oi,backendName:"webgl",kernelFunc:Bte},Ute=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2063,7 +2063,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},Wte=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},Gte=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],T.assertAndGetBroadcastShape(e,t),T.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(T.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(T.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -2076,7 +2076,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel setOutput((x - mean) * inv + offset); } - `}},Bte=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;w.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=G().getBool("WEBGL_PACK_NORMALIZATION")?new Wte(a.shape,r.shape,s.shape,p,d,l):new zte(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},Vte={kernelName:eo,backendName:"webgl",kernelFunc:Bte},Ute=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ht(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Gte(this.rank),a,r=e.map((s,i)=>`sourceLoc.${wv[i]} = start[${i}] + coords.${wv[i]};`);a=` + `}},Hte=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;w.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=G().getBool("WEBGL_PACK_NORMALIZATION")?new Gte(a.shape,r.shape,s.shape,p,d,l):new Ute(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},jte={kernelName:eo,backendName:"webgl",kernelFunc:Hte},qte=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ht(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Kte(this.rank),a,r=e.map((s,i)=>`sourceLoc.${kv[i]} = start[${i}] + coords.${kv[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2086,7 +2086,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ${a} setOutput(getSource(${n})); } - `}},wv=["x","y","z","w","u","v"];function Gte(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 Hte=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=ht(this.rank),n=kn("coords",this.rank),a=kn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}},kv=["x","y","z","w","u","v"];function Kte(e){if(e===1)return"sourceLoc";if(e<=6)return kv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var Xte=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=ht(this.rank),n=In("coords",this.rank),a=In("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]}; @@ -2115,15 +2115,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ${o} setOutput(result); } - `}};function qte(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=Kt.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 Ep(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Kt.parseSliceParams(r,s,i);if(Kt.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=OQ(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Kt.isSliceContinous(r.shape,o,l);if(u||!p){let d=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Hte(l):new Ute(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),qte(r,o,l,n)}var jte={kernelName:ep,backendName:"webgl",kernelFunc:Ep},Kte=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((y,x)=>y*x),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=[],m=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=In({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=Ep({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Xte={kernelName:fu,backendName:"webgl",kernelFunc:Kte};function Yte(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=qA(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var Zte={kernelName:gu,backendName:"webgl",kernelFunc:Yte},Jte=` + `}};function Yte(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=Kt.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 Ep(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Kt.parseSliceParams(r,s,i);if(Kt.assertParamsValid(r,o,l),w.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=WQ(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Kt.isSliceContinous(r.shape,o,l);if(u||!p){let d=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Xte(l):new qte(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),Yte(r,o,l,n)}var Zte={kernelName:ep,backendName:"webgl",kernelFunc:Ep},Jte=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((y,x)=>y*x),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=[],m=ce({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:p}}),b=Ep({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Qte={kernelName:fu,backendName:"webgl",kernelFunc:Jte};function ene(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=KA(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var tne={kernelName:gu,backendName:"webgl",kernelFunc:ene},nne=` int r = int(a.r) & int(b.r); int g = int(a.g) & int(b.g); int rb = int(a.b) & int(b.b); int ra = int(a.a) & int(b.a); return vec4(r, g, rb, ra); -`,Qte=` +`,ane=` return float(int(a.r) & int(b.r)); -`;function ene(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=G().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([a,r])||i===1){let l=n.texData.get(a.dataId).values,u=n.texData.get(r.dataId).values,[p,d]=iQ(a.shape,r.shape,l,u,a.dtype),c=n.makeTensorInfo(d,a.dtype),h=n.texData.get(c.dataId);return h.values=p,c}let o;return s?o=new Tp(Jte,a.shape,r.shape,!1):o=new Si(Qte,a.shape,r.shape),n.runWebGLProgram(o,[a,r],a.dtype)}var tne={kernelName:bu,backendName:"webgl",kernelFunc:ene};function nne(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var ane={kernelName:Bc,backendName:"webgl",kernelFunc:nne},rne="return float(a != b);",lF=fn({opSnippet:rne,cpuKernelImpl:CQ,dtype:"bool"}),sne={kernelName:Bu,backendName:"webgl",kernelFunc:lF};function Pd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.real},backend:n})}var ine={kernelName:jm,backendName:"webgl",kernelFunc:Pd},one="return float(int(x));";function lne(e,t){let n=new ir(e.shape,one),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function kv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return aa({inputs:{x:r},backend:n});let i=It(r.shape),o=kv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Ms({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Pd({inputs:{input:r},backend:n}),o=kv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=aa({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=oQ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return lne(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=lF({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 une={kernelName:Pi,backendName:"webgl",kernelFunc:kv},OS="return ceil(x);",pne=Ze({opSnippet:OS,packedOpSnippet:OS,cpuKernelImpl:lQ}),cne={kernelName:Li,backendName:"webgl",kernelFunc:pne},dne=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` +`;function rne(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=G().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([a,r])||i===1){let l=n.texData.get(a.dataId).values,u=n.texData.get(r.dataId).values,[p,d]=pQ(a.shape,r.shape,l,u,a.dtype),c=n.makeTensorInfo(d,a.dtype),h=n.texData.get(c.dataId);return h.values=p,c}let o;return s?o=new Tp(nne,a.shape,r.shape,!1):o=new Si(ane,a.shape,r.shape),n.runWebGLProgram(o,[a,r],a.dtype)}var sne={kernelName:bu,backendName:"webgl",kernelFunc:rne};function ine(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var one={kernelName:Bc,backendName:"webgl",kernelFunc:ine},lne="return float(a != b);",pF=fn({opSnippet:lne,cpuKernelImpl:FQ,dtype:"bool"}),une={kernelName:Bu,backendName:"webgl",kernelFunc:pF};function Pd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.real},backend:n})}var pne={kernelName:qm,backendName:"webgl",kernelFunc:Pd},cne="return float(int(x));";function dne(e,t){let n=new ir(e.shape,cne),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Iv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return aa({inputs:{x:r},backend:n});let i=It(r.shape),o=Iv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Os({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Pd({inputs:{input:r},backend:n}),o=Iv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!w.hasEncodingLoss(r.dtype,s)){let i=aa({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=cQ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return dne(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",w.getTypedArrayFromDType("bool",1)),o=pF({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 hne={kernelName:Pi,backendName:"webgl",kernelFunc:Iv},OS="return ceil(x);",mne=Ze({opSnippet:OS,packedOpSnippet:OS,cpuKernelImpl:dQ}),fne={kernelName:Li,backendName:"webgl",kernelFunc:mne},gne=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2134,7 +2134,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel setOutput(clamp(value, minVal, maxVal)); } - `}},hne=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}},bne=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2145,7 +2145,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function mne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new hne(r.shape):o=new dne(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var fne={kernelName:Ss,backendName:"webgl",kernelFunc:mne},gne=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function yne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;G().getBool("WEBGL_PACK_CLIP")?o=new bne(r.shape):o=new gne(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var xne={kernelName:Ns,backendName:"webgl",kernelFunc:yne},vne=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2158,7 +2158,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function PS(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function bne(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new gne(a.shape),i=[PS(a,r.complexTensorInfos.real),PS(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var yne={kernelName:Vc,backendName:"webgl",kernelFunc:bne},xne=class{constructor(e){this.outputShape=[],this.outputShape=T.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}(${qh(i,l,f)}), - vec2(${qh(u,l,f)})); + getT${m}(${jh(i,l,f)}), + vec2(${jh(u,l,f)})); }`}let c=o.length,h=o[o.length-1];d+=` return getChannel( - getT${c}(${qh(i,l,h)}), - vec2(${qh(u,l,h)}));`,this.userCode=` + getT${c}(${jh(i,l,h)}), + vec2(${jh(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${d} } @@ -2204,7 +2204,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(result); } - `}};function qh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function ng(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.imag},backend:n})}var wne={kernelName:Um,backendName:"webgl",kernelFunc:ng};function hc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>Pd({inputs:{input:y},backend:n})),m=e.map(y=>ng({inputs:{input:y},backend:n})),f=hc(h,t,n),g=hc(m,t,n),b=Ms({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(v=>{let I=[-1,w.sizeFromShape(v.shape.slice(t))];return ce({inputs:{x:v},backend:n,attrs:{shape:I}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape})),f=T.computeOutShape(h.map(v=>v.shape),1),g=h[0].shape[0]===1,b=uQ(m,f,a,g),y=T.computeOutShape(e.map(v=>v.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}let s=e.filter(h=>w.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new ir(e[0].shape,es):new ss(e[0].shape,es);return n.runWebGLProgram(h,e,a)}let o=G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>o){let h=[];for(let f=0;fm.shape),t);return n.runWebGLProgram(h,s,a)}let{tensors2D:l,outShape:u}=kne(s,t,n),p=new xne(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function kne(e,t,n){let a=T.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function uF(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(u=>u.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>w.sizeFromShape(u.shape)>0);return l.length===1?aa({inputs:{x:l[0]},backend:n}):hc(l,s,n)}var Ine={kernelName:yu,backendName:"webgl",kernelFunc:uF},pF=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,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,b=f?2:3,y=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { + `}};function jh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function ag(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.imag},backend:n})}var Nne={kernelName:Um,backendName:"webgl",kernelFunc:ag};function hc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(y=>Pd({inputs:{input:y},backend:n})),m=e.map(y=>ag({inputs:{input:y},backend:n})),f=hc(h,t,n),g=hc(m,t,n),b=Os({inputs:{real:f,imag:g},backend:n});return h.forEach(y=>n.disposeIntermediateTensorInfo(y)),m.forEach(y=>n.disposeIntermediateTensorInfo(y)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),b}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(v=>{let I=[-1,w.sizeFromShape(v.shape.slice(t))];return ce({inputs:{x:v},backend:n,attrs:{shape:I}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape})),f=T.computeOutShape(h.map(v=>v.shape),1),g=h[0].shape[0]===1,b=hQ(m,f,a,g),y=T.computeOutShape(e.map(v=>v.shape),t),x=n.makeTensorInfo(y,a,b);return h.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}let s=e.filter(h=>w.sizeFromShape(h.shape)>0),i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new ir(e[0].shape,es):new ss(e[0].shape,es);return n.runWebGLProgram(h,e,a)}let o=G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>o){let h=[];for(let f=0;fm.shape),t);return n.runWebGLProgram(h,s,a)}let{tensors2D:l,outShape:u}=Tne(s,t,n),p=new Ine(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=ce({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function Tne(e,t,n){let a=T.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>ce({inputs:{x:r},attrs:{shape:[-1,w.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function cF(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=w.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);T.assertParamsConsistent(i,s);let o=T.computeOutShape(t.map(u=>u.shape),s);if(w.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>w.sizeFromShape(u.shape)>0);return l.length===1?aa({inputs:{x:l[0]},backend:n}):hc(l,s,n)}var Cne={kernelName:yu,backendName:"webgl",kernelFunc:cF},dF=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,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,b=f?2:3,y=f?3:1,x="",v="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2338,7 +2338,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ${v} setOutput(result); } - `}},Sne=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,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},Ene=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,p=e.filterDepth,d=e.filterHeight,c=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}); @@ -2426,7 +2426,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}},cF=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=xn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},hF=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=vn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let f=0;f=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function dF({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),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,b=[];if(s!=null){let y=Em(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=Em(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>rF)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&w.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},v=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,w.assert($c(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let N=Cm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(N.dataId);w.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=v,C.shape=n.outShape,g=aa({inputs:{x:N},backend:a}),g.shape=n.outShape,b.push(N)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),v=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Cm({a:h?x:v,b:h?v:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(v),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function hF({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:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,b=[n.batchSize,f,g],y=!0,x=!1,v=[];if(s!=null){let K=Em(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),v.push(s))}if(r!=null){let K=Em(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),v.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(I);let N=new Nne(b,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],_=a.runWebGLProgram(N,[e],"float32",C),F=ce({inputs:{x:_},backend:a,attrs:{shape:b}});v.push(_),v.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?Dc(o,!0):null,B=new aF(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));U.push(K),v.push(K)}let H=a.runWebGLProgram(B,U,"float32"),j=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});v.push(H);for(let K of v)a.disposeIntermediateTensorInfo(K);return j}function Tne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=dF({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new cF(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(G().getBool("WEBGL_CONV_IM2COL"))h=hF({x:r,filter:s,convInfo:c,backend:n});else{let f=new pF(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var Cne={kernelName:zi,backendName:"webgl",kernelFunc:Tne},Ene=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 Em(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function mF({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),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,b=[];if(s!=null){let y=Em(s.shape,h);y!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=Em(r.shape,h);y!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>iF)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&w.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},v=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,w.assert($c(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let N=Cm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(N.dataId);w.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=v,C.shape=n.outShape,g=aa({inputs:{x:N},backend:a}),g.shape=n.outShape,b.push(N)}else{let y=n.outHeight*n.outWidth,x=ce({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),v=ce({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Cm({a:h?x:v,b:h?v:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=ce({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(v),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function fF({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:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,b=[n.batchSize,f,g],y=!0,x=!1,v=[];if(s!=null){let K=Em(s.shape,m);K!=null&&(s=ce({inputs:{x:s},backend:a,attrs:{shape:K}}),v.push(s))}if(r!=null){let K=Em(r.shape,m);K!=null&&(r=ce({inputs:{x:r},backend:a,attrs:{shape:K}}),v.push(r))}let I=ce({inputs:{x:t},backend:a,attrs:{shape:[1,f,w.sizeFromShape(t.shape)/f]}});v.push(I);let N=new _ne(b,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],_=a.runWebGLProgram(N,[e],"float32",C),F=ce({inputs:{x:_},backend:a,attrs:{shape:b}});v.push(_),v.push(F);let D=r!=null,$=s!=null,S=o==="leakyrelu",M=o?Dc(o,!0):null,B=new sF(m?F.shape:I.shape,m?I.shape:F.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,D,M,$,S),U=m?[F,I]:[I,F];if(r&&U.push(r),$&&U.push(s),S){let K=a.makeTensorInfo([],"float32",w.createScalarValue(i,"float32"));U.push(K),v.push(K)}let H=a.runWebGLProgram(B,U,"float32"),q=ce({inputs:{x:H},backend:a,attrs:{shape:n.outShape}});v.push(H);for(let K of v)a.disposeIntermediateTensorInfo(K);return q}function Ane(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=mF({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let f=new hF(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(G().getBool("WEBGL_CONV_IM2COL"))h=fF({x:r,filter:s,convInfo:c,backend:n});else{let f=new dF(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=ce({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var Fne={kernelName:zi,backendName:"webgl",kernelFunc:Ane},$ne=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; @@ -2706,7 +2706,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}},_ne=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,p=s?3:1;this.userCode=` + `}},Dne=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,p=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2759,7 +2759,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}},Ane=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=` + `}},Rne=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; @@ -2801,7 +2801,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}},Fne=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=` + `}},Mne=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() { @@ -2858,7 +2858,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}};function $ne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new Ene(c);return n.runWebGLProgram(h,[r,s],"float32")}var Dne={kernelName:Om,backendName:"webgl",kernelFunc:$ne},Rne=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=xn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` + `}};function One(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=T.convertConv2DDataFormat(l),c=T.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new $ne(c);return n.runWebGLProgram(h,[r,s],"float32")}var Pne={kernelName:Om,backendName:"webgl",kernelFunc:One},Lne=class{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=vn(this.outputShape.length);let t=e.filterHeight,n=e.filterWidth,a=t-1-e.padInfo.top,r=n-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${a}, ${r}); void main() { @@ -2932,17 +2932,17 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(result); } - `}};function Mne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(u),c=T.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d);if(G().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new Rne(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new _ne(c);return n.runWebGLProgram(h,[r,s],"float32")}}var One={kernelName:Wi,backendName:"webgl",kernelFunc:Mne};function Pne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new Sne(u);return n.runWebGLProgram(p,[r,s],"float32")}var Lne={kernelName:Bi,backendName:"webgl",kernelFunc:Pne};function zne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=T.computeConv3DInfo(r.shape,l,i,1,o),p=new Ane(u);return n.runWebGLProgram(p,[r,s],"float32")}var Wne={kernelName:xu,backendName:"webgl",kernelFunc:zne};function Bne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=T.computeConv3DInfo(l,s.shape,o,1,i),p=new Fne(u);return n.runWebGLProgram(p,[r,s],"float32")}var Vne={kernelName:vu,backendName:"webgl",kernelFunc:Bne},Une=Cp+` + `}};function zne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=T.convertConv2DDataFormat(u),c=T.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d);if(G().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&d==="channelsLast"){let h=[[c.strideHeight,c.strideWidth]],m=new Lne(c);return n.runWebGLProgram(m,[r,s],"float32",h)}else{let h=new Dne(c);return n.runWebGLProgram(h,[r,s],"float32")}}var Wne={kernelName:Wi,backendName:"webgl",kernelFunc:zne};function Bne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new Ene(u);return n.runWebGLProgram(p,[r,s],"float32")}var Vne={kernelName:Bi,backendName:"webgl",kernelFunc:Bne};function Une(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=T.computeConv3DInfo(r.shape,l,i,1,o),p=new Rne(u);return n.runWebGLProgram(p,[r,s],"float32")}var Gne={kernelName:xu,backendName:"webgl",kernelFunc:Une};function Hne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=T.computeConv3DInfo(l,s.shape,o,1,i),p=new Mne(u);return n.runWebGLProgram(p,[r,s],"float32")}var jne={kernelName:vu,backendName:"webgl",kernelFunc:Hne},qne=Cp+` return cos(x); -`,Gne=` +`,Kne=` vec4 result = cos(x); bvec4 isNaN = isnan(x); ${tl} return result; -`,Hne=Ze({opSnippet:Une,packedOpSnippet:Gne}),qne={kernelName:Vi,backendName:"webgl",kernelFunc:Hne},jne=` +`,Xne=Ze({opSnippet:qne,packedOpSnippet:Kne}),Yne={kernelName:Vi,backendName:"webgl",kernelFunc:Xne},Zne=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,Kne=Ze({opSnippet:jne}),Xne={kernelName:Ui,backendName:"webgl",kernelFunc:Kne},Yne=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,v]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,Jne=Ze({opSnippet:Zne}),Qne={kernelName:Ui,backendName:"webgl",kernelFunc:Jne},eae=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,v]=d>1?[`${(o-1)/(d-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(${y}); void main() { @@ -3003,7 +3003,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel setOutput(newValue); } } - `}},Zne=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new Yne(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},Jne={kernelName:ku,backendName:"webgl",kernelFunc:Zne},Mc;(function(e){e.Prod="*",e.Sum="+"})(Mc||(Mc={}));var LS=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===Mc.Prod?"1.0":"0.0",i=n?s:`getX(${zS(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` + `}},tae=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new eae(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},nae={kernelName:ku,backendName:"webgl",kernelFunc:tae},Mc;(function(e){e.Prod="*",e.Sum="+"})(Mc||(Mc={}));var LS=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===Mc.Prod?"1.0":"0.0",i=n?s:`getX(${zS(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` void main() { ${ht(r)} coords = getOutputCoords(); int end = ${WS(r,"coords",this.op)}; @@ -3016,7 +3016,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(val); } - `}};function zS(e,t,n){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 new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function WS(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function mF(e,t,n,a,r,s){let i=t.shape.length,o=T.getAxesPermutation([a],i),l=t;o!=null&&(l=In({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=T.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=aa({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new LS(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new LS(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=T.getUndoAxesPermutation(o),h=In({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function Qne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return mF(Mc.Prod,r,n,s,i,o)}var eae={kernelName:wu,backendName:"webgl",kernelFunc:Qne};function tae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return mF(Mc.Sum,r,n,s,i,o)}var nae={kernelName:Gi,backendName:"webgl",kernelFunc:tae};function aae(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),p=qA(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=sQ(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var rae={kernelName:Uc,backendName:"webgl",kernelFunc:aae},sae=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function zS(e,t,n){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 new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function WS(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function gF(e,t,n,a,r,s){let i=t.shape.length,o=T.getAxesPermutation([a],i),l=t;o!=null&&(l=Sn({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=T.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=aa({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new LS(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new LS(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=T.getUndoAxesPermutation(o),h=Sn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function aae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return gF(Mc.Prod,r,n,s,i,o)}var rae={kernelName:wu,backendName:"webgl",kernelFunc:aae};function sae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return gF(Mc.Sum,r,n,s,i,o)}var iae={kernelName:Gi,backendName:"webgl",kernelFunc:sae};function oae(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),p=KA(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=uQ(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var lae={kernelName:Uc,backendName:"webgl",kernelFunc:oae},uae=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]; @@ -3035,7 +3035,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel 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 iae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new sae(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var oae={kernelName:Iu,backendName:"webgl",kernelFunc:iae},fF=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=xn(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`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 pae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new uae(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var cae={kernelName:Iu,backendName:"webgl",kernelFunc:pae},bF=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=vn(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?l=`float activation(float a) { @@ -3088,7 +3088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ${u} setOutput(result); } - `}},gF=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=xn(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` + `}},yF=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=vn(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=T.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new gF(d):c=new fF(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var uae={kernelName:Hi,backendName:"webgl",kernelFunc:lae},pae=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 dae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,p=l;p==null&&(p=[1,1]),w.assert(T.eitherStridesOrDilationsAreOne(i,p),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=T.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;G().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new yF(d):c=new bF(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var hae={kernelName:Hi,backendName:"webgl",kernelFunc:dae},mae=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; @@ -3312,7 +3312,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}},cae=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=` + `}},fae=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() { @@ -3357,13 +3357,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}};function dae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=T.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new pae(d);return n.runWebGLProgram(c,[r,s],"float32")}var hae={kernelName:Pm,backendName:"webgl",kernelFunc:dae};function mae(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=T.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new cae(d);return n.runWebGLProgram(c,[r,s],"float32")}var fae={kernelName:Lm,backendName:"webgl",kernelFunc:mae},gae=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function gae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=T.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new mae(d);return n.runWebGLProgram(c,[r,s],"float32")}var bae={kernelName:Pm,backendName:"webgl",kernelFunc:gae};function yae(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=T.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new fae(d);return n.runWebGLProgram(c,[r,s],"float32")}var xae={kernelName:Lm,backendName:"webgl",kernelFunc:yae},vae=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 bae(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new gae(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var yae={kernelName:Gc,backendName:"webgl",kernelFunc:bae},xae=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:p,left:d}=a;this.userCode=` + `}};function wae(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=w.sizeFromShape(a.shape),i=ce({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new vae(s),l=n.runWebGLProgram(o,[i],i.dtype),u=ce({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var kae={kernelName:Gc,backendName:"webgl",kernelFunc:wae},Iae=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:p,left:d}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${p}, ${d}); const float neg_infinity = -3.4e38; @@ -3401,7 +3401,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel float result = curVal; setOutput(result); } - `}};function vae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new xae(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var wae={kernelName:qi,backendName:"webgl",kernelFunc:vae};function kae(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=T.decodeEinsumEquation(r,s.length);T.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=T.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=tg({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var Iae={kernelName:Wm,backendName:"webgl",kernelFunc:kae},Sae="return (x >= 0.0) ? x : (exp(x) - 1.0);",Nae=` + `}};function Sae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new Iae(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=ce({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var Nae={kernelName:ji,backendName:"webgl",kernelFunc:Sae};function Tae(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=T.decodeEinsumEquation(r,s.length);T.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=T.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=ng({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var Cae={kernelName:Wm,backendName:"webgl",kernelFunc:Tae},Eae="return (x >= 0.0) ? x : (exp(x) - 1.0);",_ae=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3410,12 +3410,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,Tae=Ze({opSnippet:Sae,packedOpSnippet:Nae}),Cae={kernelName:Ki,backendName:"webgl",kernelFunc:Tae},Eae="return (b >= 0.0) ? a : a * (b + 1.0);",_ae=` +`,Aae=Ze({opSnippet:Eae,packedOpSnippet:_ae}),Fae={kernelName:Ki,backendName:"webgl",kernelFunc:Aae},$ae="return (b >= 0.0) ? a : a * (b + 1.0);",Dae=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,Aae=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Tp(_ae,a.shape,r.shape):new Si(Eae,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},Fae={kernelName:Su,backendName:"webgl",kernelFunc:Aae},$ae=` +`,Rae=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Tp(Dae,a.shape,r.shape):new Si($ae,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},Mae={kernelName:Su,backendName:"webgl",kernelFunc:Rae},Oae=` return vec4(equal(a, b)); -`,Dae="return float(a == b);",Rae=fn({opSnippet:Dae,packedOpSnippet:$ae,dtype:"bool",cpuKernelImpl:pQ}),Mae={kernelName:Nu,backendName:"webgl",kernelFunc:Rae},Oae=` +`,Pae="return float(a == b);",Lae=fn({opSnippet:Pae,packedOpSnippet:Oae,dtype:"bool",cpuKernelImpl:mQ}),zae={kernelName:Nu,backendName:"webgl",kernelFunc:Lae},Wae=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3430,9 +3430,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel 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)); -`,Pae=Ze({opSnippet:Oae}),Lae={kernelName:Xi,backendName:"webgl",kernelFunc:Pae},zae=Cp+` +`,Bae=Ze({opSnippet:Wae}),Vae={kernelName:Xi,backendName:"webgl",kernelFunc:Bae},Uae=Cp+` return exp(x); -`,Wae=` +`,Gae=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3441,7 +3441,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel result.a = isNaN.a ? x.a : result.a; return result; -`,bF=Ze({opSnippet:zae,packedOpSnippet:Wae,cpuKernelImpl:cQ,dtype:"float32"}),Bae={kernelName:Yi,backendName:"webgl",kernelFunc:bF};function Iv(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),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var Vae={kernelName:Tu,backendName:"webgl",kernelFunc:Iv},BS="return exp(x) - 1.0;",Uae=Ze({opSnippet:BS,packedOpSnippet:BS,cpuKernelImpl:dQ}),Gae={kernelName:Zi,backendName:"webgl",kernelFunc:Uae},VS=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=` +`,xF=Ze({opSnippet:Uae,packedOpSnippet:Gae,cpuKernelImpl:fQ,dtype:"float32"}),Hae={kernelName:Yi,backendName:"webgl",kernelFunc:xF};function Sv(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),ce({inputs:{x:s},backend:a,attrs:{shape:o}})}var jae={kernelName:Tu,backendName:"webgl",kernelFunc:Sv},BS="return exp(x) - 1.0;",qae=Ze({opSnippet:BS,packedOpSnippet:BS,cpuKernelImpl:gQ}),Kae={kernelName:Zi,backendName:"webgl",kernelFunc:qae},VS=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) { @@ -3474,12 +3474,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function yF(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=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new VS("real",l,t),p=new VS("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Ms({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Hae(e){let{inputs:t,backend:n}=e,{input:a}=t;return yF(a,!1,n)}var qae={kernelName:Bm,backendName:"webgl",kernelFunc:Hae},jae=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function vF(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=ce({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new VS("real",l,t),p=new VS("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Os({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=ce({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Xae(e){let{inputs:t,backend:n}=e,{input:a}=t;return vF(a,!1,n)}var Yae={kernelName:Bm,backendName:"webgl",kernelFunc:Xae},Zae=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); } - `}};function Ld(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 jae(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Kae={kernelName:Hc,backendName:"webgl",kernelFunc:Ld},Xae=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function Ld(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 Zae(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Jae={kernelName:Hc,backendName:"webgl",kernelFunc:Ld},Qae=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]; @@ -3493,7 +3493,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(outputValue); } - `}},Yae={kernelName:Cu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Xae(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},US="return floor(x);",Zae=Ze({opSnippet:US,packedOpSnippet:US,cpuKernelImpl:hQ}),Jae={kernelName:Ji,backendName:"webgl",kernelFunc:Zae},Qae=` + `}},ere={kernelName:Cu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Qae(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},US="return floor(x);",tre=Ze({opSnippet:US,packedOpSnippet:US,cpuKernelImpl:bQ}),nre={kernelName:Ji,backendName:"webgl",kernelFunc:tre},are=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3503,7 +3503,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } else { return NAN; } -`,ere=` +`,rre=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3524,7 +3524,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,tre=fn({opSnippet:Qae,packedOpSnippet:ere,dtype:"int32"}),nre={kernelName:Qi,backendName:"webgl",kernelFunc:tre},are=class{constructor(e){this.variableNames=["A"];let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,sre=fn({opSnippet:are,packedOpSnippet:rre,dtype:"int32"}),ire={kernelName:Qi,backendName:"webgl",kernelFunc:sre},ore=class{constructor(e){this.variableNames=["A"];let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3546,7 +3546,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel setOutput(floor(value * 255.0 + 0.5)); } - `}},rre=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},lre=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3580,7 +3580,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ${t.output} = result; } - `}},sre={kernelName:sm,backendName:"webgl",kernelFunc:ire},Ol,Tx=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function ire(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],p=[u,l],d=[u,l,s];if(o||i){let f=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Ol==null||f!==Tx)&&(Tx=f,Ol=document.createElement("canvas").getContext("2d",{willReadFrequently:Tx})),Ol.canvas.width=l,Ol.canvas.height=u,Ol.drawImage(r,0,0,l,u),r=Ol.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=da.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new rre(d):new are(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function ore(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=T.convertConv2DDataFormat(p),g=T.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),b,y=[],x=i!=null,v=o!=null,I=h==="leakyrelu",N=()=>{let _=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&_.push(F(i,p)),v&&_.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));_.push(D),y.push(D)}return _};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"))b=dF({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let _=h?Dc(h,!0):null,F=new cF(g,x,_,v,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=N();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=hF({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let _=h?Dc(h,!1):null,F=new pF(g,x,_,v,I),D=N();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(_=>n.disposeIntermediateTensorInfo(_)),C}var lre={kernelName:li,backendName:"webgl",kernelFunc:ore};function ure(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),w.assert(T.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=T.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?Dc(c,b):null,x=[r,s],v=i!=null,I=o!=null,N=c==="leakyrelu";if(v&&x.push(i),I&&x.push(o),N){let D=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new gF(g,v,y,I,N):C=new fF(g,v,y,I,N);let _=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",_);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var pre={kernelName:ui,backendName:"webgl",kernelFunc:ure},cre=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=ht(n.length),s=` + `}},ure={kernelName:sm,backendName:"webgl",kernelFunc:pre},Ol,Cx=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function pre(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],p=[u,l],d=[u,l,s];if(o||i){let f=G().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Ol==null||f!==Cx)&&(Cx=f,Ol=document.createElement("canvas").getContext("2d",{willReadFrequently:Cx})),Ol.canvas.width=l,Ol.canvas.height=u,Ol.drawImage(r,0,0,l,u),r=Ol.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=da.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=G().getBool("WEBGL_PACK")?new lre(d):new ore(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function cre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=T.convertConv2DDataFormat(p),g=T.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),b,y=[],x=i!=null,v=o!=null,I=h==="leakyrelu",N=()=>{let _=[r,s],F=(D,$)=>{if($==="NCHW"&&D.shape.length===1&&D.shape[0]!==1){let S=ce({inputs:{x:D},backend:n,attrs:{shape:[D.shape[0],1,1]}});return y.push(S),S}return D};if(x&&_.push(F(i,p)),v&&_.push(F(o,p)),I){let D=n.makeTensorInfo([],"float32",w.createScalarValue(m,"float32"));_.push(D),y.push(D)}return _};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"))b=mF({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&G().getBool("WEBGL_EXP_CONV")){let _=h?Dc(h,!0):null,F=new hF(g,x,_,v,I),D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=N();b=n.runWebGLProgram(F,$,"float32",D)}else if(G().getBool("WEBGL_CONV_IM2COL"))b=fF({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let _=h?Dc(h,!1):null,F=new dF(g,x,_,v,I),D=N();b=n.runWebGLProgram(F,D,"float32")}let C=ce({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(_=>n.disposeIntermediateTensorInfo(_)),C}var dre={kernelName:ui,backendName:"webgl",kernelFunc:cre};function hre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),w.assert(T.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=T.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),b=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?Dc(c,b):null,x=[r,s],v=i!=null,I=o!=null,N=c==="leakyrelu";if(v&&x.push(i),I&&x.push(o),N){let D=n.makeTensorInfo([],"float32",w.createScalarValue(h,"float32"));x.push(D),m.push(D)}let C;b?C=new yF(g,v,y,I,N):C=new bF(g,v,y,I,N);let _=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=n.runWebGLProgram(C,x,"float32",_);return m.forEach(D=>n.disposeIntermediateTensorInfo(D)),F}var mre={kernelName:pi,backendName:"webgl",kernelFunc:hre},fre=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=ht(n.length),s=` int index;`;for(let i=0;i= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function fre(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=w.sizeFromShape(s.shape),d=[],c=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let y=n.bufferSync(h),x=n.bufferSync(c),v=fQ(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new mre(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var gre={kernelName:Eu,backendName:"webgl",kernelFunc:xF},bre="return float(a > b);",yre=` + `}};function xre(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=w.sizeFromShape(s.shape),d=[],c=ce({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=ce({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let y=n.bufferSync(h),x=n.bufferSync(c),v=xQ(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,v.dtype,v.values)}let f=new yre(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=ce({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var vre={kernelName:Eu,backendName:"webgl",kernelFunc:wF},wre="return float(a > b);",kre=` return vec4(greaterThan(a, b)); -`,xre=fn({opSnippet:bre,packedOpSnippet:yre,cpuKernelImpl:gQ,dtype:"bool"}),vre={kernelName:Au,backendName:"webgl",kernelFunc:xre},wre="return float(a >= b);",kre=` +`,Ire=fn({opSnippet:wre,packedOpSnippet:kre,cpuKernelImpl:vQ,dtype:"bool"}),Sre={kernelName:Au,backendName:"webgl",kernelFunc:Ire},Nre="return float(a >= b);",Tre=` return vec4(greaterThanEqual(a, b)); -`,Ire=fn({opSnippet:wre,packedOpSnippet:kre,dtype:"bool",cpuKernelImpl:bQ}),Sre={kernelName:to,backendName:"webgl",kernelFunc:Ire};function Nre(e){let{inputs:t,backend:n}=e,{input:a}=t;return yF(a,!0,n)}var Tre={kernelName:Vm,backendName:"webgl",kernelFunc:Nre},Cre="return float(!isnan(x) && !isinf(x));",Ere=Ze({opSnippet:Cre,dtype:"bool"}),_re={kernelName:ao,backendName:"webgl",kernelFunc:Ere},Are="return float(isinf(x));",Fre=Ze({opSnippet:Are,dtype:"bool"}),$re={kernelName:ro,backendName:"webgl",kernelFunc:Fre},Dre="return float(isnan(x));",Rre=Ze({opSnippet:Dre,dtype:"bool"}),Mre={kernelName:so,backendName:"webgl",kernelFunc:Rre},Ore="return float(a < b);",Pre=` +`,Cre=fn({opSnippet:Nre,packedOpSnippet:Tre,dtype:"bool",cpuKernelImpl:wQ}),Ere={kernelName:to,backendName:"webgl",kernelFunc:Cre};function _re(e){let{inputs:t,backend:n}=e,{input:a}=t;return vF(a,!0,n)}var Are={kernelName:Vm,backendName:"webgl",kernelFunc:_re},Fre="return float(!isnan(x) && !isinf(x));",$re=Ze({opSnippet:Fre,dtype:"bool"}),Dre={kernelName:ao,backendName:"webgl",kernelFunc:$re},Rre="return float(isinf(x));",Mre=Ze({opSnippet:Rre,dtype:"bool"}),Ore={kernelName:ro,backendName:"webgl",kernelFunc:Mre},Pre="return float(isnan(x));",Lre=Ze({opSnippet:Pre,dtype:"bool"}),zre={kernelName:so,backendName:"webgl",kernelFunc:Lre},Wre="return float(a < b);",Bre=` return vec4(lessThan(a, b)); -`,Lre=fn({opSnippet:Ore,packedOpSnippet:Pre,cpuKernelImpl:yQ,dtype:"bool"}),zre={kernelName:Fu,backendName:"webgl",kernelFunc:Lre},Wre="return float(a <= b);",Bre=` +`,Vre=fn({opSnippet:Wre,packedOpSnippet:Bre,cpuKernelImpl:kQ,dtype:"bool"}),Ure={kernelName:Fu,backendName:"webgl",kernelFunc:Vre},Gre="return float(a <= b);",Hre=` return vec4(lessThanEqual(a, b)); -`,Vre=fn({opSnippet:Wre,packedOpSnippet:Bre,cpuKernelImpl:xQ,dtype:"bool"}),Ure={kernelName:$u,backendName:"webgl",kernelFunc:Vre};function Gre(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=vQ(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Hre={kernelName:Du,backendName:"webgl",kernelFunc:Gre},qre=Cp+` +`,jre=fn({opSnippet:Gre,packedOpSnippet:Hre,cpuKernelImpl:IQ,dtype:"bool"}),qre={kernelName:$u,backendName:"webgl",kernelFunc:jre};function Kre(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=SQ(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Xre={kernelName:Du,backendName:"webgl",kernelFunc:Kre},Yre=Cp+` return x < 0.0 ? 0./0. : log(x); -`,jre=` +`,Zre=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3620,18 +3620,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,Kre=Ze({opSnippet:qre,packedOpSnippet:jre,cpuKernelImpl:wQ}),Xre={kernelName:oo,backendName:"webgl",kernelFunc:Kre},Yre=Cp+` +`,Jre=Ze({opSnippet:Yre,packedOpSnippet:Zre,cpuKernelImpl:NQ}),Qre={kernelName:oo,backendName:"webgl",kernelFunc:Jre},ese=Cp+` return log(1.0 + x); -`,Zre=Ze({opSnippet:Yre}),Jre={kernelName:lo,backendName:"webgl",kernelFunc:Zre},Qre="return float(a >= 1.0 && b >= 1.0);",ese=` +`,tse=Ze({opSnippet:ese}),nse={kernelName:lo,backendName:"webgl",kernelFunc:tse},ase="return float(a >= 1.0 && b >= 1.0);",rse=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,tse=fn({opSnippet:Qre,packedOpSnippet:ese,dtype:"bool"}),nse={kernelName:Ru,backendName:"webgl",kernelFunc:tse},ase="return float(!(x >= 1.0));",rse=Ze({opSnippet:ase}),sse={kernelName:Mu,backendName:"webgl",kernelFunc:rse},ise="return float(a >= 1.0 || b >= 1.0);",ose=` +`,sse=fn({opSnippet:ase,packedOpSnippet:rse,dtype:"bool"}),ise={kernelName:Ru,backendName:"webgl",kernelFunc:sse},ose="return float(!(x >= 1.0));",lse=Ze({opSnippet:ose}),use={kernelName:Mu,backendName:"webgl",kernelFunc:lse},pse="return float(a >= 1.0 || b >= 1.0);",cse=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,lse=fn({opSnippet:ise,packedOpSnippet:ose,dtype:"bool"}),use={kernelName:Ou,backendName:"webgl",kernelFunc:lse},pse=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=` +`,dse=fn({opSnippet:pse,packedOpSnippet:cse,dtype:"bool"}),hse={kernelName:Ou,backendName:"webgl",kernelFunc:dse},mse=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]; @@ -3650,7 +3650,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel float val = x * ${o}; setOutput(val); } - `}},cse=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=` + `}},fse=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; @@ -3712,7 +3712,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},dse=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new cse(r.shape,s,i,o,l):new pse(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},hse={kernelName:uo,backendName:"webgl",kernelFunc:dse},mse=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=` + `}},gse=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new fse(r.shape,s,i,o,l):new mse(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},bse={kernelName:uo,backendName:"webgl",kernelFunc:gse},yse=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]; @@ -3767,16 +3767,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(result); } - `}},fse=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new mse(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},gse={kernelName:Pu,backendName:"webgl",kernelFunc:fse};function bse(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=nl(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function vF(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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let y=n.texData.get(h.dataId).values,x=new Array(o);for(let N=0;N{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new yse(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},vse={kernelName:Pu,backendName:"webgl",kernelFunc:xse};function wse(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=nl(i,e.dtype,"max",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function kF(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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let y=n.texData.get(h.dataId).values,x=new Array(o);for(let N=0;N`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new Rc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var Sse={kernelName:ho,backendName:"webgl",kernelFunc:Ise};function Nse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new xk(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var Tse={kernelName:Lu,backendName:"webgl",kernelFunc:Nse},Cse=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=` +`,Nse=fn({opSnippet:Ise,packedOpSnippet:Sse,cpuKernelImpl:CQ}),Tse={kernelName:co,backendName:"webgl",kernelFunc:Nse};function Cse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;wp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&w.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new Rc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var Ese={kernelName:ho,backendName:"webgl",kernelFunc:Cse};function _se(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=T.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new xk(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var Ase={kernelName:Lu,backendName:"webgl",kernelFunc:_se},Fse=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() { @@ -3822,7 +3822,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}},Ese=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,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + `}},$se=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,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${d}, ${c}); void main() { @@ -3886,16 +3886,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel } setOutput(dotProd); } - `}};function _se(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=T.computePool3DInfo(i.shape,o,l,d,u,p),h=new xk(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new Ese(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var Ase={kernelName:jc,backendName:"webgl",kernelFunc:_se};function Fse(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;wp([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=T.computePool2DInfo(o.shape,l,u,1,p,d),h=!0,m=new Rc(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new Cse(c),b=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),b}var $se={kernelName:qc,backendName:"webgl",kernelFunc:Fse};function Dse(e,t,n,a){let r=new Rc(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new Rc(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var Rse={kernelName:Kc,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 u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=T.computePool2DInfo(a.shape,r,s,u,i),[d,c]=Dse(a,o,p,l);return[d,c]}};function Mse(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=nl(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Ose={kernelName:mo,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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let C=0;C{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 u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=T.computePool2DInfo(a.shape,r,s,u,i),[d,c]=Pse(a,o,p,l);return[d,c]}};function zse(e,t,n,a){let r=w.sizeFromShape(t),s=w.sizeFromShape(e.shape)/r,i=ce({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=nl(i,"float32","mean",a),l=ce({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Wse={kernelName:mo,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),u=l,p=T.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,v=new Array(o);for(let C=0;Cu[0]+e[p]+u[1]);let a=e.length,r=ht(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,Hse=fn({opSnippet:Use,packedOpSnippet:Gse,cpuKernelImpl:EQ}),jse={kernelName:go,backendName:"webgl",kernelFunc:Hse},qse=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((u,p)=>u[0]+e[p]+u[1]);let a=e.length,r=ht(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).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}; @@ -3924,7 +3924,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ${r} coords = outC - start; setOutput(getX(${o})); } - `}},Gse=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=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` + `}},Kse=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=In("rc",a),l=In("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${d}; @@ -3980,13 +3980,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel ${c} setOutput(result); } - `}},Hse=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Gse(a.shape,r,s):new Use(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},qse={kernelName:bo,backendName:"webgl",kernelFunc:Hse},jse=`if (b == 0.0) return NAN; - return mod(a, b);`,Kse=` + `}},Xse=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Kse(a.shape,r,s):new qse(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Yse={kernelName:bo,backendName:"webgl",kernelFunc:Xse},Zse=`if (b == 0.0) return NAN; + return mod(a, b);`,Jse=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); `+tl+` return result; -`,Xse=fn({opSnippet:jse,packedOpSnippet:Kse}),Yse={kernelName:yo,backendName:"webgl",kernelFunc:Xse},Zse=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,Qse=fn({opSnippet:Zse,packedOpSnippet:Jse}),eie={kernelName:yo,backendName:"webgl",kernelFunc:Qse},tie=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4006,11 +4006,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Nte=Ze({opSnippet:Ste}),Tte={kernel // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},Jse=` + `}},nie=` if (a == b) { return 1.0; }; -return a / b;`,Qse=` +return a / b;`,aie=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -4028,9 +4028,9 @@ return a / b;`,Qse=` } return result; -`,wF=fn({opSnippet:Jse,packedOpSnippet:Qse,checkOutOfBounds:!0}),eie={kernelName:ji,backendName:"webgl",kernelFunc:wF},GS="return a - b;",kF=fn({opSnippet:GS,packedOpSnippet:GS,supportsComplex:!0,cpuKernelImpl:HQ}),tie={kernelName:Uo,backendName:"webgl",kernelFunc:kF};function IF(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=vF({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=T.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=kF({inputs:{a:r,b:u},backend:n}),d=bF({inputs:{x:p},backend:n}),c=tg({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=wF({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var nie={kernelName:Bo,backendName:"webgl",kernelFunc:IF};function aie(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:IF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Zse(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var rie={kernelName:zu,backendName:"webgl",kernelFunc:aie},sie=Ma+` +`,IF=fn({opSnippet:nie,packedOpSnippet:aie,checkOutOfBounds:!0}),rie={kernelName:qi,backendName:"webgl",kernelFunc:IF},GS="return a - b;",SF=fn({opSnippet:GS,packedOpSnippet:GS,supportsComplex:!0,cpuKernelImpl:XQ}),sie={kernelName:Uo,backendName:"webgl",kernelFunc:SF};function NF(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=w.parseAxisParam([s],r.shape),o=kF({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=T.expandShapeToKeepDim(o.shape,i),u=ce({inputs:{x:o},backend:n,attrs:{shape:l}}),p=SF({inputs:{a:r,b:u},backend:n}),d=xF({inputs:{x:p},backend:n}),c=ng({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=ce({inputs:{x:c},backend:n,attrs:{shape:l}}),m=IF({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var iie={kernelName:Bo,backendName:"webgl",kernelFunc:NF};function oie(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:NF({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new tie(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var lie={kernelName:zu,backendName:"webgl",kernelFunc:oie},uie=Ma+` return -x; -`,iie=` +`,pie=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -4040,14 +4040,14 @@ return a / b;`,Qse=` result.a = isNaN.a ? x.a : result.a; return result; -`;function oie(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=TQ(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ss(a.shape,iie):r=new ir(a.shape,sie),n.runWebGLProgram(r,[a],a.dtype)}var lie={kernelName:Wu,backendName:"webgl",kernelFunc:oie},uie=fr.nonMaxSuppressionV3Impl;function pie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=uie(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var cie={kernelName:Vu,backendName:"webgl",kernelFunc:pie},die=fr.nonMaxSuppressionV4Impl;function hie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=die(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var mie={kernelName:Uu,backendName:"webgl",kernelFunc:hie},fie=fr.nonMaxSuppressionV5Impl;function gie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=fie(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var bie={kernelName:Gu,backendName:"webgl",kernelFunc:gie},yie=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function cie(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=AQ(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ss(a.shape,pie):r=new ir(a.shape,uie),n.runWebGLProgram(r,[a],a.dtype)}var die={kernelName:Wu,backendName:"webgl",kernelFunc:cie},hie=gr.nonMaxSuppressionV3Impl;function mie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=hie(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var fie={kernelName:Vu,backendName:"webgl",kernelFunc:mie},gie=gr.nonMaxSuppressionV4Impl;function bie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=gie(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var yie={kernelName:Uu,backendName:"webgl",kernelFunc:bie},xie=gr.nonMaxSuppressionV5Impl;function vie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=xie(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var wie={kernelName:Gu,backendName:"webgl",kernelFunc:vie},kie=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))); } - `}},xie=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=w.sizeFromShape(r.shape),p=new yie(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},vie={kernelName:vo,backendName:"webgl",kernelFunc:xie};function _m(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Pd({inputs:{input:a},backend:n}),s=_m({inputs:{x:r},backend:n}),i=ng({inputs:{input:a},backend:n}),o=_m({inputs:{x:i},backend:n}),l=Ms({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Ld({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var wie={kernelName:up,backendName:"webgl",kernelFunc:_m};function SF(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=Pd({inputs:{input:a},backend:n}),s=SF({inputs:{x:r},backend:n}),i=ng({inputs:{input:a},backend:n}),o=_m({inputs:{x:i},backend:n}),l=Ms({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Ld({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var kie={kernelName:Hu,backendName:"webgl",kernelFunc:SF};function Iie(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Iv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Iv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=uF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var Sie={kernelName:qu,backendName:"webgl",kernelFunc:Iie},Nie=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=ht(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},Iie=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=w.sizeFromShape(r.shape),p=new kie(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},Sie={kernelName:vo,backendName:"webgl",kernelFunc:Iie};function _m(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Pd({inputs:{input:a},backend:n}),s=_m({inputs:{x:r},backend:n}),i=ag({inputs:{input:a},backend:n}),o=_m({inputs:{x:i},backend:n}),l=Os({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Ld({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var Nie={kernelName:up,backendName:"webgl",kernelFunc:_m};function TF(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=Pd({inputs:{input:a},backend:n}),s=TF({inputs:{x:r},backend:n}),i=ag({inputs:{input:a},backend:n}),o=_m({inputs:{x:i},backend:n}),l=Os({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Ld({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var Tie={kernelName:Hu,backendName:"webgl",kernelFunc:TF};function Cie(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Sv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Sv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=cF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var Eie={kernelName:ju,backendName:"webgl",kernelFunc:Cie},_ie=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=ht(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -4072,7 +4072,7 @@ return a / b;`,Qse=` setOutput(getX(${o})); } } - `}},Tie=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],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=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},Aie=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],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=In("rc",a),l=In("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${u}) { `,a===1?"":`} rc = outputLoc; @@ -4096,7 +4096,7 @@ return a / b;`,Qse=` ${h} setOutput(result); } - `}},NF=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(w.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return Ld({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Tie(r.shape,s,i):new Nie(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},Cie={kernelName:wo,backendName:"webgl",kernelFunc:NF},Eie=` + `}},CF=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(w.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return Ld({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Aie(r.shape,s,i):new _ie(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},Fie={kernelName:wo,backendName:"webgl",kernelFunc:CF},$ie=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4105,7 +4105,7 @@ return a / b;`,Qse=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,_ie=` +`,Die=` // 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); @@ -4123,9 +4123,9 @@ return a / b;`,Qse=` bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); `+tl+` return result; -`,Aie=fn({opSnippet:Eie,packedOpSnippet:_ie}),Fie={kernelName:ko,backendName:"webgl",kernelFunc:Aie};function $ie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=w.parseAxisParam(s,r.shape),p=u,d=T.getAxesPermutation(p,o),c=r;d!=null&&(c=In({inputs:{x:r},backend:n,attrs:{perm:d}}),p=T.getInnerMostAxes(p.length,o),l.push(c)),T.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:b}=EQ(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=T.computeOutAndReduceShapes(c.shape,p),g=w.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Xm(r.dtype),x=nl(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=T.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var Die={kernelName:So,backendName:"webgl",kernelFunc:$ie};function Rie(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=_Q(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Mie={kernelName:Gm,backendName:"webgl",kernelFunc:Rie};function Oie(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=AQ(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Pie={kernelName:Hm,backendName:"webgl",kernelFunc:Oie};function Lie(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=FQ(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var zie={kernelName:qm,backendName:"webgl",kernelFunc:Lie},TF=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=$Q(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Wie={kernelName:Xc,backendName:"webgl",kernelFunc:TF},Bie="return 1.0 / x;",Vie=Ze({opSnippet:Bie}),Uie={kernelName:No,backendName:"webgl",kernelFunc:Vie},Gie=Ma+` +`,Rie=fn({opSnippet:$ie,packedOpSnippet:Die}),Mie={kernelName:ko,backendName:"webgl",kernelFunc:Rie};function Oie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=w.parseAxisParam(s,r.shape),p=u,d=T.getAxesPermutation(p,o),c=r;d!=null&&(c=Sn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=T.getInnerMostAxes(p.length,o),l.push(c)),T.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:b}=$Q(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=T.computeOutAndReduceShapes(c.shape,p),g=w.sizeFromShape(f),b=ce({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Xm(r.dtype),x=nl(b,y,"prod",n);h=ce({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=T.expandShapeToKeepDim(h.shape,u);h=ce({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var Pie={kernelName:So,backendName:"webgl",kernelFunc:Oie};function Lie(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=DQ(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var zie={kernelName:Gm,backendName:"webgl",kernelFunc:Lie};function Wie(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=RQ(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Bie={kernelName:Hm,backendName:"webgl",kernelFunc:Wie};function Vie(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=MQ(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Uie={kernelName:jm,backendName:"webgl",kernelFunc:Vie},EF=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=OQ(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Gie={kernelName:Xc,backendName:"webgl",kernelFunc:EF},Hie="return 1.0 / x;",jie=Ze({opSnippet:Hie}),qie={kernelName:No,backendName:"webgl",kernelFunc:jie},Kie=Ma+` return (x < 0.0) ? 0.0 : x; -`,Hie=` +`,Xie=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4135,9 +4135,9 @@ return a / b;`,Qse=` result.a = isNaN.a ? x.a : result.a; return result; -`,qie=Ze({opSnippet:Gie,packedOpSnippet:Hie}),jie={kernelName:To,backendName:"webgl",kernelFunc:qie},Kie=Ma+` +`,Yie=Ze({opSnippet:Kie,packedOpSnippet:Xie}),Zie={kernelName:To,backendName:"webgl",kernelFunc:Yie},Jie=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Xie=` +`,Qie=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4147,7 +4147,7 @@ return a / b;`,Qse=` result.a = isNaN.a ? x.a : result.a; return result; -`,Yie=Ze({opSnippet:Kie,packedOpSnippet:Xie}),Zie={kernelName:_o,backendName:"webgl",kernelFunc:Yie},Jie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,eoe=Ze({opSnippet:Jie,packedOpSnippet:Qie}),toe={kernelName:_o,backendName:"webgl",kernelFunc:eoe},noe=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4180,7 +4180,7 @@ return a / b;`,Qse=` setOutput(newValue); } - `}},Qie=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},aoe=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4257,7 +4257,7 @@ return a / b;`,Qse=` setOutput(newValue); } - `}};function eoe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Qie(r.shape,l,u,s,i):new Jie(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var toe={kernelName:Eo,backendName:"webgl",kernelFunc:eoe},noe=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function roe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new aoe(r.shape,l,u,s,i):new noe(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var soe={kernelName:Eo,backendName:"webgl",kernelFunc:roe},ioe=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4338,7 +4338,7 @@ return a / b;`,Qse=` setOutput(accumulator); } - `}};function aoe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new noe(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var roe={kernelName:Xu,backendName:"webgl",kernelFunc:aoe},soe=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function ooe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new ioe(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var loe={kernelName:Xu,backendName:"webgl",kernelFunc:ooe},uoe=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4360,7 +4360,7 @@ return a / b;`,Qse=` setOutput(newValue); } - `}},ioe=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},poe=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],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4401,7 +4401,7 @@ return a / b;`,Qse=` setOutput(newValue); } - `}};function ooe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new ioe(r.shape,l,u,s,i):new soe(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var loe={kernelName:Co,backendName:"webgl",kernelFunc:ooe},uoe=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function coe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new poe(r.shape,l,u,s,i):new uoe(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var doe={kernelName:Co,backendName:"webgl",kernelFunc:coe},hoe=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],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4471,7 +4471,7 @@ return a / b;`,Qse=` setOutput(accumulator); } - `}};function poe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new uoe(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var coe={kernelName:Ku,backendName:"webgl",kernelFunc:poe},doe=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 moe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new hoe(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var foe={kernelName:Ku,backendName:"webgl",kernelFunc:moe},goe=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)); @@ -4481,7 +4481,7 @@ return a / b;`,Qse=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},hoe=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=kn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=ht(n);n===1?this.userCode=` + `}},boe=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=In("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.); @@ -4509,7 +4509,7 @@ return a / b;`,Qse=` } setOutput(result); } - `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function moe(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 aa({inputs:{x:r},backend:n});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new hoe(r.shape,o):new doe(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var foe={kernelName:Ao,backendName:"webgl",kernelFunc:moe},goe=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function yoe(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 aa({inputs:{x:r},backend:n});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new boe(r.shape,o):new goe(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var xoe={kernelName:Ao,backendName:"webgl",kernelFunc:yoe},voe=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];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=` void main() { @@ -4528,7 +4528,7 @@ return a / b;`,Qse=` } setOutput(outputValue); } - `}},boe={kernelName:pp,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new goe(a.shape,s),[u,p]=T.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},yoe=` + `}},woe={kernelName:pp,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new voe(a.shape,s),[u,p]=T.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},koe=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4543,7 +4543,7 @@ return a / b;`,Qse=` return base + 1.0; } } -`,xoe=Ze({opSnippet:yoe}),voe={kernelName:Fo,backendName:"webgl",kernelFunc:xoe},woe="return inversesqrt(x);",koe=Ze({opSnippet:woe,cpuKernelImpl:DQ}),Ioe={kernelName:$o,backendName:"webgl",kernelFunc:koe},vk=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` +`,Ioe=Ze({opSnippet:koe}),Soe={kernelName:Fo,backendName:"webgl",kernelFunc:Ioe},Noe="return inversesqrt(x);",Toe=Ze({opSnippet:Noe,cpuKernelImpl:PQ}),Coe={kernelName:$o,backendName:"webgl",kernelFunc:Toe},vk=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4563,7 +4563,7 @@ return a / b;`,Qse=` } setOutput(mix(${f}, sum, float(found))); } - `}},Soe=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` + `}},Eoe=class{constructor(e,t,n,a,r,s,i=!0,o=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=s;let l=ht(r.length),u=ht(s.length),p="";n===1?p="i":n===2&&(p="i, j");let d=`getIndices(${p})`,c="";a===1?c="i":a===2&&(c="i, coords[1]");let h=`getUpdates(${c})`,m="";o&&(m="coords[0], coords[1]");let f=`getDefaultValue(${m})`,g=t>1?"strides[j]":"strides",b=t>1?"strides[j + 1]":"strides";this.userCode=` ${l} strides = ${l}(${r}); void main() { @@ -4600,7 +4600,7 @@ return a / b;`,Qse=` } setOutput(mix(${f}, sum, found)); } - `}};function Noe(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new Soe(l,o,h.shape.length,m.shape.length,p,c):g=new vk(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var Toe={kernelName:Yu,backendName:"webgl",kernelFunc:Noe},Coe=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function _oe(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=ce({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g;G().getBool("WEBGL_PACK")?g=new Eoe(l,o,h.shape.length,m.shape.length,p,c):g=new vk(l,o,h.shape.length,m.shape.length,p,c);let b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var Aoe={kernelName:Yu,backendName:"webgl",kernelFunc:_oe},Foe=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=G().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4625,7 +4625,7 @@ return a / b;`,Qse=` setOutput(float(findBound(batch, value))); } - `}};function Eoe(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new Coe(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var _oe={kernelName:Ju,backendName:"webgl",kernelFunc:Eoe},Aoe=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 u=0;u4)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); -`,Roe=Ze({opSnippet:Doe}),Moe={kernelName:Do,backendName:"webgl",kernelFunc:Roe},Ooe=Cp+` +`,Loe=Ze({opSnippet:Poe}),zoe={kernelName:Do,backendName:"webgl",kernelFunc:Loe},Woe=Cp+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Poe=` +`,Boe=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4653,20 +4653,20 @@ return a / b;`,Qse=` result.a = isNaN.a ? x.a : result.a; return result; -`,Loe=Ze({opSnippet:Ooe,packedOpSnippet:Poe,cpuKernelImpl:MQ}),zoe={kernelName:Po,backendName:"webgl",kernelFunc:Loe},Woe=` +`,Voe=Ze({opSnippet:Woe,packedOpSnippet:Boe,cpuKernelImpl:zQ}),Uoe={kernelName:Po,backendName:"webgl",kernelFunc:Voe},Goe=` if (isnan(x)) { return 0.0; } return sign(x); -`,Boe=Ze({opSnippet:Woe}),Voe={kernelName:Oo,backendName:"webgl",kernelFunc:Boe},Uoe=Cp+` +`,Hoe=Ze({opSnippet:Goe}),joe={kernelName:Oo,backendName:"webgl",kernelFunc:Hoe},qoe=Cp+` return sin(x); -`,Goe=` +`,Koe=` vec4 result = sin(x); bvec4 isNaN = isnan(x); ${tl} return result; -`,Hoe=Ze({opSnippet:Uoe,packedOpSnippet:Goe}),qoe={kernelName:Ro,backendName:"webgl",kernelFunc:Hoe},joe=` +`,Xoe=Ze({opSnippet:qoe,packedOpSnippet:Koe}),Yoe={kernelName:Ro,backendName:"webgl",kernelFunc:Xoe},Zoe=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Koe=Ze({opSnippet:joe}),Xoe={kernelName:Mo,backendName:"webgl",kernelFunc:Koe},Yoe=` +`,Joe=Ze({opSnippet:Zoe}),Qoe={kernelName:Mo,backendName:"webgl",kernelFunc:Joe},ele=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4686,17 +4686,17 @@ return a / b;`,Qse=` result = log(exp_x + 1.0); } return result; -`,Zoe=Ze({opSnippet:Yoe}),Joe={kernelName:Lo,backendName:"webgl",kernelFunc:Zoe},Qoe=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;w.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},ele={kernelName:tp,backendName:"webgl",kernelFunc:Qoe};function tle(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,tle=Ze({opSnippet:ele}),nle={kernelName:Lo,backendName:"webgl",kernelFunc:tle},ale=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;w.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},rle={kernelName:tp,backendName:"webgl",kernelFunc:ale};function sle(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(a.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${a.shape}`);if(r.shape.length!==1)throw new Error(`Values must be a vector, saw: ${r.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=PQ(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var nle={kernelName:Yc,backendName:"webgl",kernelFunc:tle};function ale(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=LQ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var rle={kernelName:ap,backendName:"webgl",kernelFunc:ale};function sle(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=BQ(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var ile={kernelName:Yc,backendName:"webgl",kernelFunc:sle};function ole(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=VQ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var lle={kernelName:ap,backendName:"webgl",kernelFunc:ole};function ule(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=KA(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var ile={kernelName:Zc,backendName:"webgl",kernelFunc:sle};function ole(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=YA(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var ple={kernelName:Zc,backendName:"webgl",kernelFunc:ule};function cle(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=KA(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var lle={kernelName:Jc,backendName:"webgl",kernelFunc:ole};function ule(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=w.decodeString(n.readSync(i.dataId)[0]),v=RQ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,v.dtype,v.values)}let m=new vk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var ple={kernelName:rp,backendName:"webgl",kernelFunc:ule};function cle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=Ep({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var dle={kernelName:np,backendName:"webgl",kernelFunc:cle},HS="return sqrt(x);",hle=Ze({opSnippet:HS,packedOpSnippet:HS,cpuKernelImpl:zQ}),mle={kernelName:zo,backendName:"webgl",kernelFunc:hle},fle="return x * x;",gle=Ze({opSnippet:fle}),ble={kernelName:Qc,backendName:"webgl",kernelFunc:gle},qS="return (a - b) * (a - b);",yle=fn({opSnippet:qS,packedOpSnippet:qS}),xle={kernelName:Vo,backendName:"webgl",kernelFunc:yle};function vle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=T.fromUint8ToStringArray(s),o=WQ(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var wle={kernelName:ed,backendName:"webgl",kernelFunc:vle};function kle({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=YA(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var dle={kernelName:Jc,backendName:"webgl",kernelFunc:cle};function hle(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=w.decodeString(n.readSync(i.dataId)[0]),v=LQ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,v.dtype,v.values)}let m=new vk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var mle={kernelName:rp,backendName:"webgl",kernelFunc:hle};function fle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=Ep({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var gle={kernelName:np,backendName:"webgl",kernelFunc:fle},HS="return sqrt(x);",ble=Ze({opSnippet:HS,packedOpSnippet:HS,cpuKernelImpl:UQ}),yle={kernelName:zo,backendName:"webgl",kernelFunc:ble},xle="return x * x;",vle=Ze({opSnippet:xle}),wle={kernelName:Qc,backendName:"webgl",kernelFunc:vle},jS="return (a - b) * (a - b);",kle=fn({opSnippet:jS,packedOpSnippet:jS}),Ile={kernelName:Vo,backendName:"webgl",kernelFunc:kle};function Sle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=T.fromUint8ToStringArray(s),o=GQ(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var Nle={kernelName:ed,backendName:"webgl",kernelFunc:Sle};function Tle({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new ir(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var Ile={kernelName:Ts,backendName:"webgl",kernelFunc:kle},Sle=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=` + `,s=new ir(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var Cle={kernelName:Cs,backendName:"webgl",kernelFunc:Tle},Ele=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}); @@ -4704,15 +4704,15 @@ return a / b;`,Qse=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function Nle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(y,x,v),_=Ep({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),_=Pe(r.shape,r.dtype,C),F=BQ(h,_,v,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new Sle(y,v,h);I=n.runWebGLProgram(C,[r],r.dtype)}let N=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),N}var Tle={kernelName:sp,backendName:"webgl",kernelFunc:Nle};function Cle(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=VQ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var Ele={kernelName:td,backendName:"webgl",kernelFunc:Cle};function _le(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=UQ(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var Ale={kernelName:nd,backendName:"webgl",kernelFunc:_le};function Fle(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=GQ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var $le={kernelName:ad,backendName:"webgl",kernelFunc:Fle},Dle="return tan(x);",Rle=Ze({opSnippet:Dle}),Mle={kernelName:Go,backendName:"webgl",kernelFunc:Rle},Ole=` + `}};function _le(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(y,x,v),_=Ep({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),_=Pe(r.shape,r.dtype,C),F=HQ(h,_,v,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new Ele(y,v,h);I=n.runWebGLProgram(C,[r],r.dtype)}let N=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),N}var Ale={kernelName:sp,backendName:"webgl",kernelFunc:_le};function Fle(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=jQ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var $le={kernelName:td,backendName:"webgl",kernelFunc:Fle};function Dle(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=qQ(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var Rle={kernelName:nd,backendName:"webgl",kernelFunc:Dle};function Mle(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=KQ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var Ole={kernelName:ad,backendName:"webgl",kernelFunc:Mle},Ple="return tan(x);",Lle=Ze({opSnippet:Ple}),zle={kernelName:Go,backendName:"webgl",kernelFunc:Lle},Wle=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,Ple=Ze({opSnippet:Ole}),Lle={kernelName:Ho,backendName:"webgl",kernelFunc:Ple};function zle(e){let{inputs:t,backend:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=t,{}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=T.calculateShapes(i,s,r.shape),c=[d/u,u];if(d===0)return n.makeTensorInfo(r.shape,s.dtype);let h=ce({inputs:{x:s},backend:n,attrs:{shape:[l,o]}}),m=ce({inputs:{x:i},backend:n,attrs:{shape:[l,u]}}),f=ce({inputs:{x:r},backend:n,attrs:{shape:c}}),g=new vk(l,o,h.shape.length,m.shape.length,p,c,!1,!0),b=n.runWebGLProgram(g,[m,h,f],f.dtype),y=ce({inputs:{x:b},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(b),y}var Wle={kernelName:Zu,backendName:"webgl",kernelFunc:zle},Ble=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;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>w.decodeString(d)):o,u=Pe(r.shape,r.dtype,l),p=qQ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Ble(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Ule={kernelName:Ns,backendName:"webgl",kernelFunc:CF},Gle=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` + `}};function jle(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;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>w.decodeString(d)):o,u=Pe(r.shape,r.dtype,l),p=YQ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Hle(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var qle={kernelName:Ts,backendName:"webgl",kernelFunc:_F},Kle=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4752,7 +4752,7 @@ return a / b;`,Qse=` setOutput(float(i1)); } } - `}},Hle=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + `}},Xle=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4786,7 +4786,7 @@ return a / b;`,Qse=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function Ks(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function jS(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=jQ(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,Ld({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=w.sizeFromShape(u)/p,f=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Ks(n,h);let g=jS(s),b=jS(p),y=null,x=()=>y===null?[f,f]:[f,y],v=(F,D,$)=>{let S=x(),M=new Gle($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),Ks(n,U)};for(let F=1;F=1;$/=2)v(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new Hle([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),Ks(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)v(U,H,y.shape)}let I=y;y=Ep({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),Ks(n,I);let N=xF({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});Ks(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),Ks(n,I);let _=N;return N=ce({inputs:{x:N},attrs:{shape:C},backend:n}),Ks(n,_),[N,y]}var jle={kernelName:ip,backendName:"webgl",kernelFunc:qle},Kle=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=` + `}};function Xs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function qS(e){let t=1;for(;tl){let F=n.readSync(r.dataId),[D,$]=ZQ(F,u,r.dtype,s,i);return[n.makeTensorInfo(D.shape,D.dtype,D.values),n.makeTensorInfo($.shape,$.dtype,$.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,Ld({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=w.sizeFromShape(u)/p,f=ce({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Xs(n,h);let g=qS(s),b=qS(p),y=null,x=()=>y===null?[f,f]:[f,y],v=(F,D,$)=>{let S=x(),M=new Kle($),B=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[F],[D]],U=y;y=n.runWebGLProgram(M,S,"int32",B),Xs(n,U)};for(let F=1;F=1;$/=2)v(D,$,[m,b])}for(let F=b;F>g;F/=2){let D=x(),$=new Xle([m,F/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram($,D,"int32",S),Xs(n,M);let B=g/2,U=B*2;for(let H=B;H>=1;H/=2)v(U,H,y.shape)}let I=y;y=Ep({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),Xs(n,I);let N=wF({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});Xs(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=ce({inputs:{x:y},attrs:{shape:C},backend:n}),Xs(n,I);let _=N;return N=ce({inputs:{x:N},attrs:{shape:C},backend:n}),Xs(n,_),[N,y]}var Zle={kernelName:ip,backendName:"webgl",kernelFunc:Yle},Jle=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) { @@ -4898,7 +4898,7 @@ return a / b;`,Qse=` } setOutput(outputValue); } - `}};function Xle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Kle(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var Yle={kernelName:op,backendName:"webgl",kernelFunc:Xle};function Zle(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;wp(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}=KQ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Jle={kernelName:rd,backendName:"webgl",kernelFunc:Zle};function Qle(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),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var eue={kernelName:lp,backendName:"webgl",kernelFunc:Qle},tue=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,p=n%4,d=` + `}};function Qle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Jle(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var eue={kernelName:op,backendName:"webgl",kernelFunc:Qle};function tue(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;wp(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}=JQ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var nue={kernelName:rd,backendName:"webgl",kernelFunc:tue};function aue(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),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var rue={kernelName:lp,backendName:"webgl",kernelFunc:aue},sue=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,p=n%4,d=` sumValue += dot(values, segFilter); `,c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { @@ -5004,6 +5004,6 @@ return a / b;`,Qse=` } setOutput(${l}); } - `}};function nue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,p=T.getAxesPermutation([u],o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=T.getInnerMostAxes(1,o)[0]);let c=T.segment_util.computeOutShape(d.shape,u,i),h=w.sizeFromShape([d.shape[u]]),m=ce({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Xm(r.dtype),g=(v,I,N,C,_)=>{let F=v.shape[0],D=v.shape[1],$=T.segment_util.segOpComputeOptimalWindowSize(D,_),S={windowSize:$,inSize:D,batchSize:F,numSegments:_},M=new tue(S,I),B=n.compileAndRun(M,[v,N],C);if(l.push(B),B.shape[1]===_)return B;let U=TF({backend:n,attrs:{start:0,stop:_,step:1,dtype:"float32"}}),H=CF({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,_)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let v=T.getUndoAxesPermutation(p);x=In({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var aue={kernelName:sd,backendName:"webgl",kernelFunc:nue},rue=[Bee,Uee,qee,Xee,Zee,ete,nte,rte,lte,pte,hte,gte,xte,Ite,Tte,Ete,Ate,Rte,Ote,Lte,Vte,Xte,Zte,tne,ane,une,cne,fne,See,yne,Ine,Cne,Dne,One,Lne,Wne,Vne,qne,Xne,Jne,eae,nae,rae,oae,uae,hae,fae,yae,wae,Iae,Cae,Fae,Mae,Lae,Bae,Vae,Gae,qae,Kae,Yae,Jae,nre,sre,lre,pre,hre,gre,vre,Sre,Iee,Tre,wne,_re,$re,Mre,Tee,zre,Ure,Hre,Xre,Jre,nse,sse,use,hse,gse,yse,kse,Sse,Tse,Ase,$se,Rse,Ose,Lse,Vse,qse,Yse,rie,_ee,lie,cie,mie,bie,sne,vie,kie,Sie,Cie,Fie,Eee,Die,Mie,Pie,zie,Wie,ine,eie,Uie,jie,Zie,Fee,toe,roe,loe,coe,foe,boe,voe,Ioe,Toe,_oe,$oe,Moe,zoe,Voe,qoe,Xoe,jte,nie,Joe,ele,nle,rle,ile,lle,ple,dle,mle,ble,xle,wle,Ile,Tle,Ele,Ale,$le,tie,Lee,Mle,Lle,Wle,Ule,jle,Yle,zee,Jle,eue,aue,wie];for(let e of rue)id(e);var Qe;(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"})(Qe||(Qe={}));var Oc;(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",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(Oc||(Oc={}));var EF;function sue(e){EF=e.wasm.cwrap(oi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function iue(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:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let _=n.dataIdMap.get(i.dataId);if(_.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${_.shape.length}.`);m=_.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Oc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=cp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),v=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(v.dataId).id,N=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return EF(c,N,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),v}var oue={kernelName:oi,backendName:"wasm",setupFunc:sue,kernelFunc:iue};function Xe(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return w.sizeFromShape(u.shape)===0||n(l,Qe[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var lue=Xe(uu),uue=Xe(Ci),pue=Xe(Ei);function Ut(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:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=T.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Qe[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var cue=!0,due=Ut(Is,cue),_F;function hue(e){_F=e.wasm.cwrap(_i,null,["array","number","number","number"])}function mue(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 _F(s,r.length,Qe[a.dtype],i),a}var fue={kernelName:_i,backendName:"wasm",setupFunc:hue,kernelFunc:mue};function ag(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var gue={kernelName:no,backendName:"wasm",kernelFunc:ag},AF;function bue(e){AF=e.wasm.cwrap(Er,null,["number","array","number","number","number","array","number"])}function ws(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=xue(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 vue={kernelName:Er,backendName:"wasm",kernelFunc:ws,setupFunc:bue};function Os(e,t,n){let a=e.shape,r=e.shape.length,s=w.parseAxisParam(t,a),i=s,o=T.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`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 que={kernelName:ju,backendName:"wasm",kernelFunc:Ln},LF;function jue(e){LF=e.wasm.cwrap(Oi,null,["number","array","number","number","array","number","number","number","number"])}function Kue(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,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=cp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=Ln({inputs:{x:r},backend:n,attrs:{shape:x}}),N=Ln({inputs:{x:s},backend:n,attrs:{shape:v}}),C=n.dataIdMap.get(I.dataId).id,_=n.dataIdMap.get(N.dataId).id,F=i?I.shape[2]:I.shape[1],D=o?N.shape[1]:N.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(N.shape).buffer);return LF(C,B,I.shape.length,_,U,N.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(N.dataId),S.shape=y,S}var Xue={kernelName:Oi,backendName:"wasm",setupFunc:jue,kernelFunc:Kue};function Ni(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Kt.parseSliceParams(t,n,a),o=Kt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Kt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Im(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Yue(l,p[0],c,s,i);else if(h===3)Zue(l,p[0],p[1],c,s,i);else if(h===4)Jue(l,p[0],p[1],p[2],c,s,i);else{let m=Im(l,s,i,t.shape,t.dtype);c.set(m)}return u}function Yue(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=Ln({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ws({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Ln({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Ni({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(f.dataId),g}var tpe={kernelName:fu,backendName:"wasm",kernelFunc:epe},zF;function npe(e){zF=e.wasm.cwrap(gu,null,["number","number","boolean","number","number","number"])}function ape(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return zF(p(r),i,o,p(s),Qe[s.dtype],p(u)),u}var rpe={kernelName:gu,backendName:"wasm",setupFunc:npe,kernelFunc:ape},spe=!0,ipe=Ut(bu,spe);function ope(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var lpe={kernelName:Bc,backendName:"wasm",kernelFunc:ope};function Ps(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 upe={kernelName:Pi,backendName:"wasm",kernelFunc:Ps},ppe=Xe(Li),WF;function cpe(e){WF=e.wasm.cwrap(Ss,null,["number","number","number","number"])}function dpe(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 WF(o,s,i,u),l}var hpe={kernelName:Ss,backendName:"wasm",setupFunc:cpe,kernelFunc:dpe};function BF(e){let{inputs:t,backend:n}=e,a=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);T.assertParamsConsistent(r,a);let s=T.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>w.sizeFromShape(h.shape)>0);if(i.length===1)return ag({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(w.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let v=[-1,w.sizeFromShape(x.shape.slice(a))];return Ln({inputs:{x},backend:n,attrs:{shape:v}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=T.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=q1(m,s,t[0].dtype,f),b=T.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=T.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=w.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=ws({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;KF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=ws({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Ppe={kernelName:wu,backendName:"wasm",setupFunc:Mpe,kernelFunc:Ope},XF;function Lpe(e){XF=e.wasm.cwrap(Gi,null,["number","number","number","number","number","number"])}function zpe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;w.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=ws({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;XF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=ws({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Wpe={kernelName:Gi,backendName:"wasm",setupFunc:Lpe,kernelFunc:zpe},YF;function Bpe(e){YF=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function Vpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return YF(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),Qe[s.dtype],o,d(p)),p}var Upe={kernelName:Uc,backendName:"wasm",setupFunc:Bpe,kernelFunc:Vpe},ZF;function Gpe(e){ZF=e.wasm.cwrap(Iu,null,["number","number","number","array","number","array","array","number","number"])}function Hpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return ZF(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,v),f}var qpe={kernelName:Iu,backendName:"wasm",setupFunc:Gpe,kernelFunc:Hpe},JF;function jpe(e){JF=e.wasm.cwrap(Hi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Kpe(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:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=T.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,I=h.dilationWidth,N=h.strideHeight,C=h.strideWidth,_=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return JF(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,v,I,N,C,_,F,S),$}var Xpe={kernelName:Hi,backendName:"wasm",setupFunc:jpe,kernelFunc:Kpe},QF;function Ype(e){QF=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function Zpe(e){let{inputs:t,backend:n}=e,{x:a}=t,r=w.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return QF(n.dataIdMap.get(a.dataId).id,Qe[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var Jpe={kernelName:Gc,backendName:"wasm",setupFunc:Ype,kernelFunc:Zpe},e$;function Qpe(e){e$=e.wasm.cwrap(qi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ece(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return e$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,Qe[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var tce={kernelName:qi,backendName:"wasm",setupFunc:Qpe,kernelFunc:ece},t$;function nce(e){t$=e.wasm.cwrap(jl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ace(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return t$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var rce={kernelName:jl,backendName:"wasm",setupFunc:nce,kernelFunc:ace},n$;function sce(e){n$=e.wasm.cwrap(ql,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ice(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return n$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var oce={kernelName:ql,backendName:"wasm",setupFunc:sce,kernelFunc:ice},lce=Xe(Ki),a$;function uce(e){a$=e.wasm.cwrap(Su,null,["number","number","number"])}function pce(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return a$(i(r),i(a),i(s)),s}var cce={kernelName:Su,backendName:"wasm",setupFunc:uce,kernelFunc:pce},dce=!1,hce=Ut(Nu,dce,"bool"),mce=Xe(Xi),fce=Xe(Yi,"float32");function Nv(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),Ln({inputs:{x:r},backend:a,attrs:{shape:o}})}var gce={kernelName:Tu,backendName:"wasm",kernelFunc:Nv},bce=Xe(Zi,"float32");function r$(e){let{attrs:{shape:t,value:n},backend:a}=e,{attrs:{dtype:r}}=e;r=r||w.inferDtype(n);let s=a.makeOutput(t,r);return a.typedArrayFromHeap(s).fill(n),s}var yce={kernelName:Hc,backendName:"wasm",kernelFunc:r$},s$;function xce(e){s$=e.wasm.cwrap(Cu,null,["number","number","number","number","number","number"])}function vce(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,p]=a.shape;return s$(s,o,l,u,p,i),r}var wce={kernelName:Cu,backendName:"wasm",kernelFunc:vce,setupFunc:xce},kce=Xe(Ji),Ice=!1,Sce=Ut(Qi,Ice),i$;function Nce(e){i$=e.wasm.cwrap(eo,null,["number","number","number","number","number","number","number"])}function Tce(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=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(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return i$(p,d,c,h,m,r,g),f}var Cce={kernelName:eo,backendName:"wasm",setupFunc:Nce,kernelFunc:Tce},o$;function Ece(e){o$=e.wasm.cwrap(li,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 _ce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=Oc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return o$(b,j,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Ace={kernelName:li,backendName:"wasm",setupFunc:Ece,kernelFunc:_ce},l$;function Fce(e){l$=e.wasm.cwrap(ui,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 $ce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=Oc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,j=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return l$(b,j,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Dce={kernelName:ui,backendName:"wasm",setupFunc:Fce,kernelFunc:$ce},u$;function Rce(e){u$=e.wasm.cwrap(_u,null,["number","number","number","number","number","number","array","number"])}function Mce(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=r0.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=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 u$(c,Qe[a.dtype],h,i,d,o,m,f),u}var Oce={kernelName:_u,backendName:"wasm",setupFunc:Rce,kernelFunc:Mce},p$;function Pce(e){p$=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Lce(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],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${_} is not in [0, ${p-1}]`)}let d=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Ln({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=w.sizeFromShape(s.shape),m=Ln({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(w.sizeFromShape(r.shape)===0)return g;let b=c.shape.length-1,y=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,v=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),N=new Uint8Array(new Int32Array(w.computeStrides(f)).buffer);return p$(y,Qe[r.dtype],I,b,x,d.batchSize,N,v),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var zce={kernelName:Eu,backendName:"wasm",setupFunc:Pce,kernelFunc:Lce},Wce=!1,Bce=Ut(Au,Wce,"bool"),Vce=!1,Uce=Ut(to,Vce,"bool"),Gce=Xe(ao,"bool"),Hce=Xe(ro,"bool"),qce=Xe(so,"bool"),c$;function jce(e){c$=e.wasm.cwrap(io,null,["number","number","number","number"])}function Kce(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;c$(r,Qe[t.dtype],n,i)}return s}var Xce={kernelName:io,backendName:"wasm",setupFunc:jce,kernelFunc:Kce},Yce=!1,Zce=Ut(Fu,Yce,"bool"),Jce=!1,Qce=Ut($u,Jce,"bool"),d$;function ede(e){d$=e.wasm.cwrap(Du,null,["number","number","number","number"])}function tde(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return d$(n.dataIdMap.get(o.dataId).id,a,r,i),o}var nde={kernelName:Du,backendName:"wasm",setupFunc:ede,kernelFunc:tde},ade=Xe(oo),rde=Xe(lo),sde=!1,ide=Ut(Ru,sde,"bool"),ode=Xe(Mu),lde=!1,ude=Ut(Ou,lde,"bool"),pde=!1,cde=Ut(mN,pde,"bool"),h$;function dde(e){h$=e.wasm.cwrap(uo,null,["number","number","number","number","number","number","number"])}function hde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return h$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var mde={kernelName:uo,backendName:"wasm",setupFunc:dde,kernelFunc:hde},m$;function fde(e){m$=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","number","number","number"])}function gde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return m$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var bde={kernelName:Pu,backendName:"wasm",setupFunc:fde,kernelFunc:gde},f$;function yde(e){f$=e.wasm.cwrap(po,null,["number","number","number","number"])}function xde(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:p,originalAxes:d,inputWasTransposed:c}=Os(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;T.assertAxesAreInnerMostDims("max",p,h);let[m,f]=T.computeOutAndReduceShapes(l.shape,p),g=w.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;f$(o,Qe[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=T.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var vde={kernelName:po,backendName:"wasm",setupFunc:yde,kernelFunc:xde},wde=!1,kde=Ut(co,wde),g$;function Ide(e){g$=e.wasm.cwrap(ho,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Sde(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;w.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=T.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,v=p.strideWidth,I=p.inChannels,N=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),_=a.dataIdMap.get(C.dataId).id;return g$(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,v,I,N,_),C}var Nde={kernelName:ho,backendName:"wasm",setupFunc:Ide,kernelFunc:Sde},b$;function Tde(e){b$=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return b$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var Ede={kernelName:Lu,backendName:"wasm",setupFunc:Tde,kernelFunc:Cde},y$;function _de(e){y$=e.wasm.cwrap("MaxPool3DGrad",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 Ade(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return y$(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var Fde={kernelName:jc,backendName:"wasm",setupFunc:_de,kernelFunc:Ade},x$;function $de(e){x$=e.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Dde(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool2DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return x$(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),d}var Rde={kernelName:qc,backendName:"wasm",setupFunc:$de,kernelFunc:Dde},v$;function Mde(e){v$=e.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ode(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,includeBatchInIndex:l}=a;w.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);let u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,[1,1],o),d=n.makeOutput(p.outShape,r.dtype),c=n.makeOutput(p.outShape,"int32");return v$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,n.dataIdMap.get(c.dataId).id,Qe[r.dtype],l,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),[d,c]}var Pde={kernelName:Kc,backendName:"wasm",setupFunc:Mde,kernelFunc:Ode},w$;function Lde(e){w$=e.wasm.cwrap(mo,null,["number, number, number"])}function zde(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Os(i,r,t),m=d;if(h){let v=t.dataIdMap.get(p.dataId).id;v!==o&&(u=p,l=v,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Ps({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;w$(l,b,v)}if(h&&t.disposeData(p.dataId),s){let v=T.expandShapeToKeepDim(x.shape,c);x.shape=v}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Wde={kernelName:mo,backendName:"wasm",setupFunc:Lde,kernelFunc:zde},k$;function Bde(e){k$=e.wasm.cwrap(fo,null,["number","number","number","number"])}function Vde(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Os(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;T.assertAxesAreInnerMostDims("min",d,m);let[f,g]=T.computeOutAndReduceShapes(u.shape,d),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;k$(l,Qe[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Ude={kernelName:fo,backendName:"wasm",setupFunc:Bde,kernelFunc:Vde},Gde=!1,Hde=Ut(go,Gde),Tv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Tv||(Tv={}));var I$;function qde(e){I$=e.wasm.cwrap(bo,null,["number","array","number","number","array","array","number","number"])}function jde(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode: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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return I$(i,u,t.shape.length,Qe[t.dtype],c,h,Tv[r],l),o}var Kde={kernelName:bo,backendName:"wasm",kernelFunc:jde,setupFunc:qde},S$;function Xde(e){S$=e.wasm.cwrap(Bo,null,["number","number","number","number"])}function N$(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=w.sizeFromShape(n.shape)/o;return w.sizeFromShape(s.shape)===0||S$(r,i,o,l),s}var Yde={kernelName:Bo,backendName:"wasm",setupFunc:Xde,kernelFunc:N$},T$;function Zde(e){T$=e.wasm.cwrap(zu,null,["number","number","number","number","number","number"])}function Jde(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:N$({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return T$(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var Qde={kernelName:zu,backendName:"wasm",setupFunc:Zde,kernelFunc:Jde},ehe=Ut(yo,!0),the=!0,nhe=Ut(xo,the),ahe=Xe(Wu);function wk(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 C$;function rhe(e){C$=e.wasm.cwrap(Vu,"number",["number","number","number","number","number"])}function she(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,p=t.dataIdMap.get(l.dataId).id,d=C$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=wk(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ihe={kernelName:Vu,backendName:"wasm",setupFunc:rhe,kernelFunc:she},E$;function ohe(e){E$=e.wasm.cwrap(Uu,"number",["number","number","number","number","number","bool"])}function lhe(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=E$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=wk(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var uhe={kernelName:Uu,backendName:"wasm",setupFunc:ohe,kernelFunc:lhe},_$;function phe(e){_$=e.wasm.cwrap(Gu,"number",["number","number","number","number","number","number"])}function che(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=_$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=wk(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var dhe={kernelName:Gu,backendName:"wasm",setupFunc:phe,kernelFunc:che},hhe=!1,mhe=Ut(Bu,hhe,"bool"),A$;function fhe(e){A$=e.wasm.cwrap(vo,null,["number","number","number","number","number"])}function ghe(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return A$(d,i,o,l,p),u}var bhe={kernelName:vo,backendName:"wasm",setupFunc:fhe,kernelFunc:ghe};function yhe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var xhe={kernelName:Hu,backendName:"wasm",kernelFunc:yhe};function vhe(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Nv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Nv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=BF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var whe={kernelName:qu,backendName:"wasm",kernelFunc:vhe},F$;function khe(e){F$=e.wasm.cwrap(wo,null,["number","array","number","number","array","array","number","number"])}function Ihe(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]);if(w.sizeFromShape(t.shape)===0)return r$({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let 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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return F$(i,u,t.shape.length,Qe[t.dtype],c,h,r,l),o}var $$={kernelName:wo,backendName:"wasm",kernelFunc:Ihe,setupFunc:khe},She=!1,Nhe=Ut(ko,She),D$;function The(e){D$=e.wasm.cwrap(Io,null,["number","number","number"])}function Che(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=s,l=a,u=l;l.dtype!=="float32"&&(u=Ps({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return D$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Ehe={kernelName:Io,backendName:"wasm",setupFunc:The,kernelFunc:Che},R$;function _he(e){R$=e.wasm.cwrap(So,null,["number","number","number","number"])}function Ahe(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Os(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;R$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Fhe={kernelName:So,backendName:"wasm",setupFunc:_he,kernelFunc:Ahe},$he=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=X1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Dhe={kernelName:Xc,backendName:"wasm",kernelFunc:$he},Rhe=!0,Mhe=Ut(ji,Rhe),Ohe=Xe(No),Phe=Xe(To),Lhe=Xe(_o),M$;function zhe(e){M$=e.wasm.cwrap(Eo,null,["number","number","number","number","number","number","number","number","number","number"])}function Whe(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Ps({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return M$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Bhe={kernelName:Eo,backendName:"wasm",setupFunc:zhe,kernelFunc:Whe},O$;function Vhe(e){O$=e.wasm.cwrap(Xu,null,["number","number","number","array","array","boolean"])}function Uhe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ps({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),O$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Ghe={kernelName:Xu,backendName:"wasm",setupFunc:Vhe,kernelFunc:Uhe},P$;function Hhe(e){P$=e.wasm.cwrap(Co,null,["number","number","number","number","number","number","number","number","number","number"])}function qhe(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),b;g.dtype!=="float32"&&(b=Ps({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return P$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var jhe={kernelName:Co,backendName:"wasm",setupFunc:Hhe,kernelFunc:qhe},L$;function Khe(e){L$=e.wasm.cwrap(Ku,null,["number","number","number","array","array","boolean"])}function Xhe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ps({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),L$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Yhe={kernelName:Ku,backendName:"wasm",setupFunc:Khe,kernelFunc:Xhe},z$;function Zhe(e){z$=e.wasm.cwrap(Ao,null,["number","array","number","array","number","number"])}function Jhe(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 ag({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,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);z$(l,p,i.length,d,r.shape.length,u);let c=Ln({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Qhe={kernelName:Ao,backendName:"wasm",kernelFunc:Jhe,setupFunc:Zhe},W$;function eme(e){W$=e.wasm.cwrap(pp,null,["number","number","number","number","number","number","number","number","array","number","number"])}function tme(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,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=T.getImageCenter(o,c,h),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],v=new Uint8Array(new Int32Array(x).buffer);return W$(u,d,c,h,m,s,f,g,v,x.length,p),l}var nme={kernelName:pp,backendName:"wasm",kernelFunc:tme,setupFunc:eme},ame=Xe(Fo),rme=Xe($o),B$;function sme(e){B$=e.wasm.cwrap(Yu,null,["number","number","number","number","number","number","array","number","number"])}function ime(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:u,sliceSize:p,strides:d,outputSize:c}=xf.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return B$(h,m,Qe[s.dtype],l,u,p,f,c,g),o}var ome={kernelName:Yu,backendName:"wasm",setupFunc:sme,kernelFunc:ime},V$;function lme(e){V$=e.wasm.cwrap(Ju,null,["number","number","number","number","number","number","bool","number"])}function ume(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return V$(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],Qe[r.dtype],i==="left",l(o)),o}var pme={kernelName:Ju,backendName:"wasm",setupFunc:lme,kernelFunc:ume},U$;function cme(e){U$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function dme(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),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:w.sizeFromShape(r.shape.slice(1));return U$(i,o,l,h,p),u}var hme={kernelName:Qu,backendName:"wasm",kernelFunc:dme,setupFunc:cme},mme=Xe(Do),G$;function fme(e){G$=e.wasm.cwrap(Po,null,["number","number"])}function gme(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||G$(a,s),r}var bme={kernelName:"Sigmoid",backendName:"wasm",setupFunc:fme,kernelFunc:gme},yme=Xe(Oo),xme=Xe(Ro),vme=Xe(Mo),wme=Xe(Lo);function kme(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=w.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g{let F=v.shape[0],D=v.shape[1],$=T.segment_util.segOpComputeOptimalWindowSize(D,_),S={windowSize:$,inSize:D,batchSize:F,numSegments:_},M=new sue(S,I),B=n.compileAndRun(M,[v,N],C);if(l.push(B),B.shape[1]===_)return B;let U=EF({backend:n,attrs:{start:0,stop:_,step:1,dtype:"float32"}}),H=_F({inputs:{x:U},backend:n,attrs:{reps:[D/$]}});return l.push(U),l.push(H),g(B,I,H,C,_)},b=g(m,"unsortedSegmentSum",s,f,i),y=ce({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let v=T.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:v}})}return l.forEach(v=>n.disposeIntermediateTensorInfo(v)),x}var oue={kernelName:sd,backendName:"webgl",kernelFunc:iue},lue=[Hee,qee,Yee,Qee,tte,rte,ite,lte,dte,mte,bte,vte,Ite,Cte,Ate,$te,Rte,Lte,Wte,Vte,jte,Qte,tne,sne,one,hne,fne,xne,Eee,kne,Cne,Fne,Pne,Wne,Vne,Gne,jne,Yne,Qne,nae,rae,iae,lae,cae,hae,bae,xae,kae,Nae,Cae,Fae,Mae,zae,Vae,Hae,jae,Kae,Yae,Jae,ere,nre,ire,ure,dre,mre,bre,vre,Sre,Ere,Cee,Are,Nne,Dre,Ore,zre,Aee,Ure,qre,Xre,Qre,nse,ise,use,hse,bse,vse,kse,Tse,Ese,Ase,Rse,Ose,Lse,Wse,Vse,jse,Yse,eie,lie,Dee,die,fie,yie,wie,une,Sie,Tie,Eie,Fie,Mie,$ee,Pie,zie,Bie,Uie,Gie,pne,rie,qie,Zie,toe,Mee,soe,loe,doe,foe,xoe,woe,Soe,Coe,Aoe,Doe,Ooe,zoe,Uoe,joe,Yoe,Qoe,Zte,iie,nle,rle,ile,lle,ple,dle,mle,gle,yle,wle,Ile,Nle,Cle,Ale,$le,Rle,Ole,sie,Vee,zle,Vle,Gle,qle,Zle,eue,Uee,nue,rue,oue,Nie];for(let e of lue)id(e);var Qe;(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"})(Qe||(Qe={}));var Oc;(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",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(Oc||(Oc={}));var AF;function uue(e){AF=e.wasm.cwrap(li,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function pue(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:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let _=n.dataIdMap.get(i.dataId);if(_.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${_.shape.length}.`);m=_.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Oc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=cp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),v=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(v.dataId).id,N=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return AF(c,N,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),v}var cue={kernelName:li,backendName:"wasm",setupFunc:uue,kernelFunc:pue};function Xe(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return w.sizeFromShape(u.shape)===0||n(l,Qe[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var due=Xe(uu),hue=Xe(Ci),mue=Xe(Ei);function Ut(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:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=T.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Qe[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var fue=!0,gue=Ut(Ss,fue),FF;function bue(e){FF=e.wasm.cwrap(_i,null,["array","number","number","number"])}function yue(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 FF(s,r.length,Qe[a.dtype],i),a}var xue={kernelName:_i,backendName:"wasm",setupFunc:bue,kernelFunc:yue};function rg(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return bn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var vue={kernelName:no,backendName:"wasm",kernelFunc:rg},$F;function wue(e){$F=e.wasm.cwrap(_r,null,["number","array","number","number","number","array","number"])}function ks(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Iue(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 Sue={kernelName:_r,backendName:"wasm",kernelFunc:ks,setupFunc:wue};function Ps(e,t,n){let a=e.shape,r=e.shape.length,s=w.parseAxisParam(t,a),i=s,o=T.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`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 Yue={kernelName:qu,backendName:"wasm",kernelFunc:zn},WF;function Zue(e){WF=e.wasm.cwrap(Oi,null,["number","array","number","number","array","number","number","number","number"])}function Jue(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,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=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=w.sizeFromShape(m),b=w.sizeFromShape(f),y=cp.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);w.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],v=o?[b,h,d]:[b,d,h],I=zn({inputs:{x:r},backend:n,attrs:{shape:x}}),N=zn({inputs:{x:s},backend:n,attrs:{shape:v}}),C=n.dataIdMap.get(I.dataId).id,_=n.dataIdMap.get(N.dataId).id,F=i?I.shape[2]:I.shape[1],D=o?N.shape[1]:N.shape[2],$=Math.max(g,b),S=n.makeOutput([$,F,D],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(N.shape).buffer);return WF(C,B,I.shape.length,_,U,N.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(N.dataId),S.shape=y,S}var Que={kernelName:Oi,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue};function Ni(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Kt.parseSliceParams(t,n,a),o=Kt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Kt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Im(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)epe(l,p[0],c,s,i);else if(h===3)tpe(l,p[0],p[1],c,s,i);else if(h===4)npe(l,p[0],p[1],p[2],c,s,i);else{let m=Im(l,s,i,t.shape,t.dtype);c.set(m)}return u}function epe(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),l=T.getReshaped(r.shape,s,o),u=T.getPermuted(l.length,s.length),p=T.getReshapedPermuted(r.shape,s,o),d=T.getSliceBeginCoords(i,s.length),c=T.getSliceSize(p,i,s.length),h=zn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ks({inputs:{x:h},backend:n,attrs:{perm:u}}),f=zn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Ni({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(f.dataId),g}var spe={kernelName:fu,backendName:"wasm",kernelFunc:rpe},BF;function ipe(e){BF=e.wasm.cwrap(gu,null,["number","number","boolean","number","number","number"])}function ope(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i}=a,o=s.shape.reduce((d,c)=>d*c,1)!==0,l=r.shape.length===1?[i]:[r.shape[0],i],u=t.makeOutput(l,s.dtype);function p(d){return t.dataIdMap.get(d.dataId).id}return BF(p(r),i,o,p(s),Qe[s.dtype],p(u)),u}var lpe={kernelName:gu,backendName:"wasm",setupFunc:ipe,kernelFunc:ope},upe=!0,ppe=Ut(bu,upe);function cpe(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.typedArrayFromHeap(a),i=n.typedArrayFromHeap(r),o=T.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeOutput([o.length],"int32",void 0,new Int32Array(o))}var dpe={kernelName:Bc,backendName:"wasm",kernelFunc:cpe};function Ls(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 hpe={kernelName:Pi,backendName:"wasm",kernelFunc:Ls},mpe=Xe(Li),VF;function fpe(e){VF=e.wasm.cwrap(Ns,null,["number","number","number","number"])}function gpe(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 VF(o,s,i,u),l}var bpe={kernelName:Ns,backendName:"wasm",setupFunc:fpe,kernelFunc:gpe};function UF(e){let{inputs:t,backend:n}=e,a=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);T.assertParamsConsistent(r,a);let s=T.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>w.sizeFromShape(h.shape)>0);if(i.length===1)return rg({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(w.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let v=[-1,w.sizeFromShape(x.shape.slice(a))];return zn({inputs:{x},backend:n,attrs:{shape:v}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=T.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=j1(m,s,t[0].dtype,f),b=T.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=T.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=w.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=ks({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;YF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=ks({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Bpe={kernelName:wu,backendName:"wasm",setupFunc:zpe,kernelFunc:Wpe},ZF;function Vpe(e){ZF=e.wasm.cwrap(Gi,null,["number","number","number","number","number","number"])}function Upe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;w.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=T.getAxesPermutation([s],l),p=r;u!==null&&(p=ks({inputs:{x:r},attrs:{perm:u},backend:n}));let d=T.getInnerMostAxes(1,l)[0];T.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;ZF(m,i?1:0,o?1:0,h,f,Qe[r.dtype]);let g=c;if(u!==null){let b=T.getUndoAxesPermutation(u);g=ks({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Gpe={kernelName:Gi,backendName:"wasm",setupFunc:Vpe,kernelFunc:Upe},JF;function Hpe(e){JF=e.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function jpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,weights:s}=n,{size:i,binaryOutput:o}=a,l=s.shape.reduce((c,h)=>c*h,1)!==0,u=r.shape.length===1?[i]:[r.shape[0],i],p=t.makeOutput(u,s.dtype);function d(c){return t.dataIdMap.get(c.dataId).id}return JF(d(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,i,l,d(s),Qe[s.dtype],o,d(p)),p}var qpe={kernelName:Uc,backendName:"wasm",setupFunc:Hpe,kernelFunc:jpe},QF;function Kpe(e){QF=e.wasm.cwrap(Iu,null,["number","number","number","array","number","array","array","number","number"])}function Xpe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return QF(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,v),f}var Ype={kernelName:Iu,backendName:"wasm",setupFunc:Kpe,kernelFunc:Xpe},e$;function Zpe(e){e$=e.wasm.cwrap(Hi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Jpe(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:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=T.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,v=h.dilationHeight,I=h.dilationWidth,N=h.strideHeight,C=h.strideWidth,_=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 $=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get($.dataId).id;return e$(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,D,v,I,N,C,_,F,S),$}var Qpe={kernelName:Hi,backendName:"wasm",setupFunc:Zpe,kernelFunc:Jpe},t$;function ece(e){t$=e.wasm.cwrap("Diag",null,["number","number","number","number"])}function tce(e){let{inputs:t,backend:n}=e,{x:a}=t,r=w.sizeFromShape(a.shape),s=n.makeOutput([...a.shape,...a.shape],a.dtype);return t$(n.dataIdMap.get(a.dataId).id,Qe[a.dtype],r,n.dataIdMap.get(s.dataId).id),s}var nce={kernelName:Gc,backendName:"wasm",setupFunc:ece,kernelFunc:tce},n$;function ace(e){n$=e.wasm.cwrap(ji,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function rce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a;if(r.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${s.dtype}`);let u=T.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p=n.makeOutput(u.outShape,r.dtype);return n$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(p.dataId).id,Qe[r.dtype],u.batchSize,u.inChannels,u.inHeight,u.inWidth,u.outHeight,u.outWidth,u.strideHeight,u.strideWidth,u.dilationHeight,u.dilationWidth,u.filterHeight,u.filterWidth,u.padInfo.top,u.padInfo.left),p}var sce={kernelName:ji,backendName:"wasm",setupFunc:ace,kernelFunc:rce},a$;function ice(e){a$=e.wasm.cwrap(ql,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function oce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(s.shape,s.dtype);return a$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var lce={kernelName:ql,backendName:"wasm",setupFunc:ice,kernelFunc:oce},r$;function uce(e){r$=e.wasm.cwrap(jl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function pce(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,dy:i}=t,{strides:o,pad:l,dilations:u}=a;if(r.dtype!==s.dtype||r.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${s.dtype}, and ${i.dtype}`);let p=T.computeDilation2DInfo(r.shape,s.shape,o,l,"NHWC",u),d=n.makeOutput(r.shape,r.dtype);return r$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,Qe[r.dtype],p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.filterHeight,p.filterWidth,p.padInfo.top,p.padInfo.left),d}var cce={kernelName:jl,backendName:"wasm",setupFunc:uce,kernelFunc:pce},dce=Xe(Ki),s$;function hce(e){s$=e.wasm.cwrap(Su,null,["number","number","number"])}function mce(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=n.makeOutput(r.shape,"float32"),i=o=>n.dataIdMap.get(o.dataId).id;return s$(i(r),i(a),i(s)),s}var fce={kernelName:Su,backendName:"wasm",setupFunc:hce,kernelFunc:mce},gce=!1,bce=Ut(Nu,gce,"bool"),yce=Xe(Xi),xce=Xe(Yi,"float32");function Tv(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),zn({inputs:{x:r},backend:a,attrs:{shape:o}})}var vce={kernelName:Tu,backendName:"wasm",kernelFunc:Tv},wce=Xe(Zi,"float32");function i$(e){let{attrs:{shape:t,value:n},backend:a}=e,{attrs:{dtype:r}}=e;r=r||w.inferDtype(n);let s=a.makeOutput(t,r);return a.typedArrayFromHeap(s).fill(n),s}var kce={kernelName:Hc,backendName:"wasm",kernelFunc:i$},o$;function Ice(e){o$=e.wasm.cwrap(Cu,null,["number","number","number","number","number","number"])}function Sce(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,p]=a.shape;return o$(s,o,l,u,p,i),r}var Nce={kernelName:Cu,backendName:"wasm",kernelFunc:Sce,setupFunc:Ice},Tce=Xe(Ji),Cce=!1,Ece=Ut(Qi,Cce),l$;function _ce(e){l$=e.wasm.cwrap(eo,null,["number","number","number","number","number","number","number"])}function Ace(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=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(w.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return l$(p,d,c,h,m,r,g),f}var Fce={kernelName:eo,backendName:"wasm",setupFunc:_ce,kernelFunc:Ace},u$;function $ce(e){u$=e.wasm.cwrap(ui,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 Dce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=Oc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return u$(b,q,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Rce={kernelName:ui,backendName:"wasm",setupFunc:$ce,kernelFunc:Dce},p$;function Mce(e){p$=e.wasm.cwrap(pi,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 Oce(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=T.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=Oc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,v=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);v=te.id}let I=f.filterHeight,N=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,F=f.padInfo.bottom,D=f.padInfo.left,$=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,H=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return p$(b,q,K,Z,y,I,N,v,C,_,F,D,H,$,S,M,B,U,x,g,ae,m||0,ee),J}var Pce={kernelName:pi,backendName:"wasm",setupFunc:Mce,kernelFunc:Oce},c$;function Lce(e){c$=e.wasm.cwrap(_u,null,["number","number","number","number","number","number","array","number"])}function zce(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=r0.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=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 c$(c,Qe[a.dtype],h,i,d,o,m,f),u}var Wce={kernelName:_u,backendName:"wasm",setupFunc:Lce,kernelFunc:zce},d$;function Bce(e){d$=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Vce(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],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${_} is not in [0, ${p-1}]`)}let d=T.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=zn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=w.sizeFromShape(s.shape),m=zn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(w.sizeFromShape(r.shape)===0)return g;let b=c.shape.length-1,y=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,v=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),N=new Uint8Array(new Int32Array(w.computeStrides(f)).buffer);return d$(y,Qe[r.dtype],I,b,x,d.batchSize,N,v),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Uce={kernelName:Eu,backendName:"wasm",setupFunc:Bce,kernelFunc:Vce},Gce=!1,Hce=Ut(Au,Gce,"bool"),jce=!1,qce=Ut(to,jce,"bool"),Kce=Xe(ao,"bool"),Xce=Xe(ro,"bool"),Yce=Xe(so,"bool"),h$;function Zce(e){h$=e.wasm.cwrap(io,null,["number","number","number","number"])}function Jce(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(w.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;h$(r,Qe[t.dtype],n,i)}return s}var Qce={kernelName:io,backendName:"wasm",setupFunc:Zce,kernelFunc:Jce},ede=!1,tde=Ut(Fu,ede,"bool"),nde=!1,ade=Ut($u,nde,"bool"),m$;function rde(e){m$=e.wasm.cwrap(Du,null,["number","number","number","number"])}function sde(e){let{attrs:t,backend:n}=e,{start:a,stop:r,num:s}=t,i=Math.floor(s),o=n.makeOutput([i],"float32");return m$(n.dataIdMap.get(o.dataId).id,a,r,i),o}var ide={kernelName:Du,backendName:"wasm",setupFunc:rde,kernelFunc:sde},ode=Xe(oo),lde=Xe(lo),ude=!1,pde=Ut(Ru,ude,"bool"),cde=Xe(Mu),dde=!1,hde=Ut(Ou,dde,"bool"),mde=!1,fde=Ut(mN,mde,"bool"),f$;function gde(e){f$=e.wasm.cwrap(uo,null,["number","number","number","number","number","number","number"])}function bde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let u=n.makeOutput(r.shape,r.dtype);return f$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(u.dataId).id,r.shape[3],s,i,o,l),u}var yde={kernelName:uo,backendName:"wasm",setupFunc:gde,kernelFunc:bde},g$;function xde(e){g$=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","number","number","number"])}function vde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a;if(r.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let d=n.makeOutput(r.shape,r.dtype);return g$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(i.dataId).id,n.dataIdMap.get(d.dataId).id,i.shape[3],o,l,u,p),d}var wde={kernelName:Pu,backendName:"wasm",setupFunc:xde,kernelFunc:vde},b$;function kde(e){b$=e.wasm.cwrap(po,null,["number","number","number","number"])}function Ide(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:p,originalAxes:d,inputWasTransposed:c}=Ps(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;T.assertAxesAreInnerMostDims("max",p,h);let[m,f]=T.computeOutAndReduceShapes(l.shape,p),g=w.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(w.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;b$(o,Qe[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=T.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var Sde={kernelName:po,backendName:"wasm",setupFunc:kde,kernelFunc:Ide},Nde=!1,Tde=Ut(co,Nde),y$;function Cde(e){y$=e.wasm.cwrap(ho,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ede(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;w.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=T.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,v=p.strideWidth,I=p.inChannels,N=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),_=a.dataIdMap.get(C.dataId).id;return y$(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,v,I,N,_),C}var _de={kernelName:ho,backendName:"wasm",setupFunc:Cde,kernelFunc:Ede},x$;function Ade(e){x$=e.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Fde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=T.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.makeOutput(p.outShape,r.dtype);return x$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var $de={kernelName:Lu,backendName:"wasm",setupFunc:Ade,kernelFunc:Fde},v$;function Dde(e){v$=e.wasm.cwrap("MaxPool3DGrad",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 Rde(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool3DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return v$(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inDepth,p.inHeight,p.inWidth,p.outDepth,p.outHeight,p.outWidth,p.strideDepth,p.strideHeight,p.strideWidth,p.dilationDepth,p.dilationHeight,p.dilationWidth,p.effectiveFilterDepth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.front,p.padInfo.top,p.padInfo.left),d}var Mde={kernelName:qc,backendName:"wasm",setupFunc:Dde,kernelFunc:Rde},w$;function Ode(e){w$=e.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Pde(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a,p=T.computePool2DInfo(s.shape,i,o,1,l,u),d=n.makeOutput(s.shape,s.dtype);return w$(n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),d}var Lde={kernelName:jc,backendName:"wasm",setupFunc:Ode,kernelFunc:Pde},k$;function zde(e){k$=e.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Wde(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,includeBatchInIndex:l}=a;w.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);let u=[1,1];w.assert(T.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=T.computePool2DInfo(r.shape,s,i,[1,1],o),d=n.makeOutput(p.outShape,r.dtype),c=n.makeOutput(p.outShape,"int32");return k$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(d.dataId).id,n.dataIdMap.get(c.dataId).id,Qe[r.dtype],l,p.batchSize,p.inChannels,p.inHeight,p.inWidth,p.outHeight,p.outWidth,p.strideHeight,p.strideWidth,p.dilationHeight,p.dilationWidth,p.effectiveFilterHeight,p.effectiveFilterWidth,p.padInfo.top,p.padInfo.left),[d,c]}var Bde={kernelName:Kc,backendName:"wasm",setupFunc:zde,kernelFunc:Wde},I$;function Vde(e){I$=e.wasm.cwrap(mo,null,["number, number, number"])}function Ude(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ps(i,r,t),m=d;if(h){let v=t.dataIdMap.get(p.dataId).id;v!==o&&(u=p,l=v,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Ls({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let v=t.dataIdMap.get(x.dataId).id;I$(l,b,v)}if(h&&t.disposeData(p.dataId),s){let v=T.expandShapeToKeepDim(x.shape,c);x.shape=v}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Gde={kernelName:mo,backendName:"wasm",setupFunc:Vde,kernelFunc:Ude},S$;function Hde(e){S$=e.wasm.cwrap(fo,null,["number","number","number","number"])}function jde(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ps(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;T.assertAxesAreInnerMostDims("min",d,m);let[f,g]=T.computeOutAndReduceShapes(u.shape,d),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;S$(l,Qe[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var qde={kernelName:fo,backendName:"wasm",setupFunc:Hde,kernelFunc:jde},Kde=!1,Xde=Ut(go,Kde),Cv;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Cv||(Cv={}));var N$;function Yde(e){N$=e.wasm.cwrap(bo,null,["number","array","number","number","array","array","number","number"])}function Zde(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode: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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return N$(i,u,t.shape.length,Qe[t.dtype],c,h,Cv[r],l),o}var Jde={kernelName:bo,backendName:"wasm",kernelFunc:Zde,setupFunc:Yde},T$;function Qde(e){T$=e.wasm.cwrap(Bo,null,["number","number","number","number"])}function C$(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=w.sizeFromShape(n.shape)/o;return w.sizeFromShape(s.shape)===0||T$(r,i,o,l),s}var ehe={kernelName:Bo,backendName:"wasm",setupFunc:Qde,kernelFunc:C$},E$;function the(e){E$=e.wasm.cwrap(zu,null,["number","number","number","number","number","number"])}function nhe(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);let l=o?r:C$({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),[u,p]=l.shape,d=n.makeOutput([u,s],"int32");return E$(n.dataIdMap.get(l.dataId).id,u,p,s,i,n.dataIdMap.get(d.dataId).id),o||n.disposeData(l.dataId),d}var ahe={kernelName:zu,backendName:"wasm",setupFunc:the,kernelFunc:nhe},rhe=Ut(yo,!0),she=!0,ihe=Ut(xo,she),ohe=Xe(Wu);function wk(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 _$;function lhe(e){_$=e.wasm.cwrap(Vu,"number",["number","number","number","number","number"])}function uhe(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,p=t.dataIdMap.get(l.dataId).id,d=_$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=wk(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var phe={kernelName:Vu,backendName:"wasm",setupFunc:lhe,kernelFunc:uhe},A$;function che(e){A$=e.wasm.cwrap(Uu,"number",["number","number","number","number","number","bool"])}function dhe(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=A$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=wk(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var hhe={kernelName:Uu,backendName:"wasm",setupFunc:che,kernelFunc:dhe},F$;function mhe(e){F$=e.wasm.cwrap(Gu,"number",["number","number","number","number","number","number"])}function fhe(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=F$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=wk(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var ghe={kernelName:Gu,backendName:"wasm",setupFunc:mhe,kernelFunc:fhe},bhe=!1,yhe=Ut(Bu,bhe,"bool"),$$;function xhe(e){$$=e.wasm.cwrap(vo,null,["number","number","number","number","number"])}function vhe(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return $$(d,i,o,l,p),u}var whe={kernelName:vo,backendName:"wasm",setupFunc:xhe,kernelFunc:vhe};function khe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Ihe={kernelName:Hu,backendName:"wasm",kernelFunc:khe};function She(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Tv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Tv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=UF({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Nhe={kernelName:ju,backendName:"wasm",kernelFunc:She},D$;function The(e){D$=e.wasm.cwrap(wo,null,["number","array","number","number","array","array","number","number"])}function Che(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]);if(w.sizeFromShape(t.shape)===0)return i$({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let 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),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return D$(i,u,t.shape.length,Qe[t.dtype],c,h,r,l),o}var R$={kernelName:wo,backendName:"wasm",kernelFunc:Che,setupFunc:The},Ehe=!1,_he=Ut(ko,Ehe),M$;function Ahe(e){M$=e.wasm.cwrap(Io,null,["number","number","number"])}function Fhe(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=s,l=a,u=l;l.dtype!=="float32"&&(u=Ls({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return M$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var $he={kernelName:Io,backendName:"wasm",setupFunc:Ahe,kernelFunc:Fhe},O$;function Dhe(e){O$=e.wasm.cwrap(So,null,["number","number","number","number"])}function Rhe(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ps(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;O$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Mhe={kernelName:So,backendName:"wasm",setupFunc:Dhe,kernelFunc:Rhe},Ohe=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=X1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Phe={kernelName:Xc,backendName:"wasm",kernelFunc:Ohe},Lhe=!0,zhe=Ut(qi,Lhe),Whe=Xe(No),Bhe=Xe(To),Vhe=Xe(_o),P$;function Uhe(e){P$=e.wasm.cwrap(Eo,null,["number","number","number","number","number","number","number","number","number","number"])}function Ghe(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Ls({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return P$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Hhe={kernelName:Eo,backendName:"wasm",setupFunc:Uhe,kernelFunc:Ghe},L$;function jhe(e){L$=e.wasm.cwrap(Xu,null,["number","number","number","array","array","boolean"])}function qhe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ls({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),L$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var Khe={kernelName:Xu,backendName:"wasm",setupFunc:jhe,kernelFunc:qhe},z$;function Xhe(e){z$=e.wasm.cwrap(Co,null,["number","number","number","number","number","number","number","number","number","number"])}function Yhe(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),b;g.dtype!=="float32"&&(b=Ls({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return z$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var Zhe={kernelName:Co,backendName:"wasm",setupFunc:Xhe,kernelFunc:Yhe},W$;function Jhe(e){W$=e.wasm.cwrap(Ku,null,["number","number","number","array","array","boolean"])}function Qhe(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=n.makeOutput(r.shape,"float32"),l=n.dataIdMap.get(r.dataId),u;return l.dtype!=="float32"&&(u=Ls({backend:n,inputs:{x:r},attrs:{dtype:"float32"}}),l=n.dataIdMap.get(u.dataId)),W$(n.dataIdMap.get(r.dataId).id,n.dataIdMap.get(s.dataId).id,n.dataIdMap.get(o.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),u!=null&&n.disposeData(u.dataId),o}var eme={kernelName:Ku,backendName:"wasm",setupFunc:Jhe,kernelFunc:Qhe},B$;function tme(e){B$=e.wasm.cwrap(Ao,null,["number","array","number","array","number","number"])}function nme(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 rg({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,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);B$(l,p,i.length,d,r.shape.length,u);let c=zn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var ame={kernelName:Ao,backendName:"wasm",kernelFunc:nme,setupFunc:tme},V$;function rme(e){V$=e.wasm.cwrap(pp,null,["number","number","number","number","number","number","number","number","array","number","number"])}function sme(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,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=T.getImageCenter(o,c,h),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],v=new Uint8Array(new Int32Array(x).buffer);return V$(u,d,c,h,m,s,f,g,v,x.length,p),l}var ime={kernelName:pp,backendName:"wasm",kernelFunc:sme,setupFunc:rme},ome=Xe(Fo),lme=Xe($o),U$;function ume(e){U$=e.wasm.cwrap(Yu,null,["number","number","number","number","number","number","array","number","number"])}function pme(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:u,sliceSize:p,strides:d,outputSize:c}=vf.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return U$(h,m,Qe[s.dtype],l,u,p,f,c,g),o}var cme={kernelName:Yu,backendName:"wasm",setupFunc:ume,kernelFunc:pme},G$;function dme(e){G$=e.wasm.cwrap(Ju,null,["number","number","number","number","number","number","bool","number"])}function hme(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a;if(r.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${s.dtype}`);let o=n.makeOutput(s.shape,"int32");function l(u){return n.dataIdMap.get(u.dataId).id}return G$(l(r),l(s),r.shape[0],r.shape[1],s.shape[1],Qe[r.dtype],i==="left",l(o)),o}var mme={kernelName:Ju,backendName:"wasm",setupFunc:dme,kernelFunc:hme},H$;function fme(e){H$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function gme(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),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:w.sizeFromShape(r.shape.slice(1));return H$(i,o,l,h,p),u}var bme={kernelName:Qu,backendName:"wasm",kernelFunc:gme,setupFunc:fme},yme=Xe(Do),j$;function xme(e){j$=e.wasm.cwrap(Po,null,["number","number"])}function vme(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||j$(a,s),r}var wme={kernelName:"Sigmoid",backendName:"wasm",setupFunc:xme,kernelFunc:vme},kme=Xe(Oo),Ime=Xe(Ro),Sme=Xe(Mo),Nme=Xe(Lo);function Tme(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=w.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g0?l+1:0;if(u<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),b=n.dataIdMap.get(g.dataId).id;j$(d,Qe[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Ame(e){return X$(e,!0)}var Fme={kernelName:Zc,backendName:"wasm",setupFunc:K$,kernelFunc:Ame};function $me(e){return X$(e,!1)}var Dme={kernelName:Jc,backendName:"wasm",setupFunc:K$,kernelFunc:$me},Y$;function Rme(e){Y$=e.wasm.cwrap(rp,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Mme(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(w.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=T.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return Y$(m,f,s.shape.length,g,Qe[i.dtype],u,p,d,b,h,y),l}var Ome={kernelName:rp,backendName:"wasm",setupFunc:Rme,kernelFunc:Mme};function Pme(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=Ni({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Lme={kernelName:np,backendName:"wasm",kernelFunc:Pme},zme=Xe(zo),Wme=Xe(Qc),Bme=!0,Vme=Ut(Vo,Bme),Z$;function Ume(e){Z$=e.wasm.cwrap(Ts,null,["number","number","number","number"])}function Gme(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 Z$(i,r,Qe[s.dtype],l),o}var Hme={kernelName:Ts,backendName:"wasm",setupFunc:Ume,kernelFunc:Gme},J$;function qme(e){J$=e.wasm.cwrap(sp,null,["number","array","number","array","array","array","array","array","number","number"])}function jme(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Ln({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=Ni({inputs:{x:r},backend:t,attrs:{begin:y,size:N}});I=Ln({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let N=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,_=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=new Uint8Array(new Int32Array(v).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer),B=t.dataIdMap.get(N.dataId).id;J$(C,_,r.shape.length,F,D,$,S,M,h.length,B),I=Ln({inputs:{x:N},backend:t,attrs:{shape:m}}),t.disposeData(N.dataId)}return I}var Kme={kernelName:sp,backendName:"wasm",setupFunc:qme,kernelFunc:jme};function Xme(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=Z1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var Yme={kernelName:td,backendName:"wasm",kernelFunc:Xme};function Zme(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=J1(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Jme={kernelName:nd,backendName:"wasm",kernelFunc:Zme};function Qme(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=Q1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var efe={kernelName:ad,backendName:"wasm",kernelFunc:Qme},tfe=!0,nfe=Ut(Uo,tfe),Q$;function afe(e){Q$=e.wasm.cwrap(Wo,null,["number","number","number","number"])}function rfe(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Os(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;Q$(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var sfe={kernelName:Wo,backendName:"wasm",setupFunc:afe,kernelFunc:rfe},ife=Xe(Go),ofe=Xe(Ho),eD;function lfe(e){eD=e.wasm.cwrap(Zu,null,["number","number","number","number","number","number","array","number","number","number"])}function ufe(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(w.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=xf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return eD(h,m,Qe[i.dtype],l,u,p,g,c,b,f),o}var pfe={kernelName:Zu,backendName:"wasm",setupFunc:lfe,kernelFunc:ufe},tD;function cfe(e){tD=e.wasm.cwrap(Ns,null,["number","array","number","array","number","number"])}function dfe(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 c=0;c{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),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return nD(i,o,a.shape.length,Qe[a.dtype],r,s,p,c),[u,d]},gfe={kernelName:ip,backendName:"wasm",setupFunc:mfe,kernelFunc:ffe},aD;function bfe(e){aD=e.wasm.cwrap(op,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function yfe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(w.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),v=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,N=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,_;switch(o){case"constant":_=1;break;case"reflect":_=2;break;case"wrap":_=3;break;case"nearest":_=4;break;default:_=1;break}return aD(I,N,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,_,l,v),x}var xfe={kernelName:op,backendName:"wasm",setupFunc:bfe,kernelFunc:yfe};function vfe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=tk(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var wfe={kernelName:rd,backendName:"wasm",kernelFunc:vfe};function kfe(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 Ife={kernelName:lp,backendName:"wasm",kernelFunc:kfe};function Sfe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Nfe={kernelName:up,backendName:"wasm",kernelFunc:Sfe},Tfe=[oue,lue,uue,pue,due,fue,Iue,Tue,Cue,Eue,_ue,Aue,Fue,$ue,Due,Oue,Hue,zue,Vue,Xue,tpe,rpe,ipe,lpe,upe,ppe,hpe,mpe,bpe,vpe,Ipe,Tpe,_pe,Ape,Fpe,Rpe,Ppe,Wpe,Upe,qpe,Xpe,Jpe,tce,rce,oce,lce,cce,hce,mce,fce,gce,bce,yce,wce,kce,Sce,Cce,Ace,Dce,Oce,zce,Bce,Uce,gue,Gce,Hce,qce,Xce,Zce,Qce,nde,rde,ade,ide,ode,ude,cde,mde,bde,vde,kde,Nde,Ede,Fde,Rde,Pde,Wde,Ude,Hde,Kde,Qde,ehe,nhe,ahe,ihe,uhe,dhe,mhe,bhe,xhe,whe,$$,Nhe,Ehe,Fhe,Dhe,Mhe,Ohe,Phe,Lhe,que,Bhe,Ghe,jhe,Yhe,Qhe,nme,ame,rme,ome,pme,hme,mme,bme,yme,xme,vme,Que,Yde,wme,Ime,Tme,_me,Fme,Dme,Ome,Lme,zme,Wme,Vme,Hme,Kme,Yme,Jme,efe,nfe,sfe,ife,ofe,pfe,hfe,gfe,xfe,vue,wfe,Ife,Nfe];for(let e of Tfe)id(e);var Cv=G();Cv.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});Cv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Cv.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 KS=ks(ZR()),Cfe=ks(JR()),XS=ks(QR()),YS=KS.default||KS,Efe=XS.default||XS,rD=class extends Pc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(sD),Ev=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new $m(this,Ea())}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 u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o)>>>0;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,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||w.sizeFromShape(s);let o=w.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return Ffe(l.buffer,r)}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(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,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 _fe(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,s.module)})})}),{})}function ZS(e,t,n){if(Am!=null)return Am;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),bc!=null&&bc[a]!=null?bc[a]:n+a}async function Afe(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=Cfe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?ZS(e,t,mc!=null?mc:l):l+o},kk&&(r.instantiateWasm=_fe(ZS(e,t,mc!=null?mc:"")));let s=!1;r.onAbort=()=>{s||yc||(yc=!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&&Am==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+YS.toString()],{type:"text/javascript"}),i=YS(r)):i=Efe(r),i.then(o=>{s=!0,yc=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function Ffe(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 $fe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Am=null,mc=null,bc={},yc=!1,kk=!1;function Dfe(e,t=!1){if(zv("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),yc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Am=e,kk=t}function Rfe(e,t=!1){if(yc)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")mc=e;else{bc=e;let n=$fe.filter(a=>bc[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.`)}kk=t}var sD=-1,Ev=-1;function Mfe(e){sD=e}function Ofe(){if(Ev===-1)throw new Error("WASM backend not initialized.");return Ev}var Pfe="4.16.0",Lfe=2;Ym("wasm",async()=>{let{wasm:e}=await Afe();return new rD(e)},Lfe);var JS="4.16.0",zfe="4.16.0",Wfe="4.16.0",Bfe="4.16.0",Vfe="4.16.0",Ufe={tfjs:JS,"tfjs-core":JS,"tfjs-converter":zfe,"tfjs-backend-cpu":Wfe,"tfjs-backend-webgl":Bfe,"tfjs-backend-wasm":Vfe};var jk={};$h(jk,{AnchorPosition:()=>Lk,DrawBox:()=>Bd,DrawBoxOptions:()=>og,DrawFaceLandmarks:()=>yg,DrawFaceLandmarksOptions:()=>bg,DrawTextField:()=>dl,DrawTextFieldOptions:()=>$p,drawContour:()=>zr,drawDetections:()=>Jfe,drawFaceExpressions:()=>age,drawFaceLandmarks:()=>sge});function zr(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 Tk={};$h(Tk,{computeReshapedDimensions:()=>Nk,getCenterPoint:()=>sl,isDimensions:()=>sg,isEven:()=>rg,isFloat:()=>Sk,isTensor:()=>al,isTensor1D:()=>Gfe,isTensor2D:()=>Ik,isTensor3D:()=>Wr,isTensor4D:()=>ka,isValidNumber:()=>Xa,isValidProbablitiy:()=>_p,range:()=>br,round:()=>rl});var Un=class e{constructor(t,n){if(!Xa(t)||!Xa(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 e(1/this.width,1/this.height)}};function al(e,t){return e instanceof Ce&&e.shape.length===t}function Gfe(e){return al(e,1)}function Ik(e){return al(e,2)}function Wr(e){return al(e,3)}function ka(e){return al(e,4)}function Sk(e){return e%1!==0}function rg(e){return e%2===0}function rl(e,t=2){let n=10**t;return Math.floor(e*n)/n}function sg(e){return e&&e.width&&e.height}function Nk({width:e,height:t},n){let a=n/Math.max(t,e);return new Un(Math.round(e*a),Math.round(t*a))}function sl(e){return e.reduce((t,n)=>t.add(n),new Ue(0,0)).div(new Ue(e.length,e.length))}function br(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Xa(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function _p(e){return Xa(e)&&e>=0&&e<=1}var Ue=class e{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new e(this.x+t.x,this.y+t.y)}sub(t){return new e(this.x-t.x,this.y-t.y)}mul(t){return new e(this.x*t.x,this.y*t.y)}div(t){return new e(this.x/t.x,this.y/t.y)}abs(){return new e(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new e(Math.floor(this.x),Math.floor(this.y))}};var on=class e{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Xa)}static assertIsValidBox(t,n,a=!1){if(!e.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(Xa),s=[a.x,a.y,a.width,a.height].every(Xa);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];e.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 Ue(this.left,this.top)}get topRight(){return new Ue(this.right,this.top)}get bottomLeft(){return new Ue(this.left,this.bottom)}get bottomRight(){return new Ue(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 e({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 e({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=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new e({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 il=class extends on{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var ol=class e{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 on(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 on(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new e(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var Tt=class e extends ol{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 e(a,r,s)}};function Ck(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 Ek(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[p]<=n)}return s}function Ya(e,t){return O(()=>{let[n,a,r]=t,s=yn([...e.shape.slice(0,3),1],n,"float32"),i=yn([...e.shape.slice(0,3),1],a,"float32"),o=yn([...e.shape.slice(0,3),1],r,"float32"),l=et([s,i,o],3);return pe(e,l)})}function Ak(e,t=!1){return O(()=>{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=c=>{let h=e.shape.slice();return h[i]=c,yn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>re(c,"float32"));return et(d,i)})}function Hfe(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 zd(e){return 1/(1+Math.exp(-e))}function qfe(e){return Math.log(e/(1-e))}var ll=class extends on{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var jfe=.5,Kfe=.43,Xfe=.45,sa=class{constructor(t,n,a=new Ue(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 Ue(r,s)).add(a))}get shift(){return new Ue(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 Ue(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 Ue(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof Tt?t.box.floor():new on(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=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Xfe),l=sl(t),u=Math.floor(Math.max(0,l.x-jfe*o)),p=Math.floor(Math.max(0,l.y-Kfe*o));return new ll(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=Ek(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var Fk=class extends sa{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],sl([t[3],t[4]])]}};var ul=class extends sa{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(sl)}};var Ap=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?` (${rl(this.distance)})`:""}`}};var Fp=class extends on{static assertIsValidLabeledBox(t,n){if(on.assertIsValidBox(t,n),!Xa(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 Ls=class e{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 e(t.label,n)}};var $k=class extends Fp{static assertIsValidPredictedBox(t,n){if(Fp.assertIsValidLabeledBox(t,n),!_p(t.score)||!_p(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 yr(e){return e.detection instanceof Tt}function pl(e,t){return{...e,...{detection:t}}}function Dk(){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"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Wd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ig(e){let t="";if(!e&&Wd())try{e=ER("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 Rk(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;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")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=ig();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function Mk(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var ln;function Yfe(){if(!ln)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return ln}function Ok(e){ln=e}function Pk(){return Mk()?Ok(Dk()):Wd()?Ok(Rk()):null}function Zfe(e){if(ln||Pk(),!ln)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=ln.Canvas,Image:n=ln.Image}=e;ln.Canvas=t,ln.Image=n,ln.createCanvasElement=e.createCanvasElement||(()=>new t),ln.createImageElement=e.createImageElement||(()=>new n),ln.ImageData=e.ImageData||ln.ImageData,ln.Video=e.Video||ln.Video,ln.fetch=e.fetch||ln.fetch,ln.readFile=e.readFile||ln.readFile}var tt={getEnv:Yfe,setEnv:Ok,initialize:Pk,createBrowserEnv:Dk,createFileSystem:ig,createNodejsEnv:Rk,monkeyPatch:Zfe,isBrowser:Mk,isNodejs:Wd};Pk();function cl(e){return!tt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Gn(e){let{Canvas:t,CanvasRenderingContext2D:n}=tt.getEnv();if(e instanceof n)return e;let a=cl(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var Lk=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(Lk||{}),$p=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"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}},dl=class e{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof e?t.text:t,this.anchor=n,this.options=new $p(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var og=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:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new $p({...i,...s})}},Bd=class{constructor(t,n={}){this.box=new on(t),this.options=new og(n)}draw(t){let n=Gn(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 dl([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Jfe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof Tt?a.score:yr(a)?a.detection.score:void 0,s=a instanceof Tt?a.box:yr(a)?a.detection.box:new on(a),i=r?`${rl(r)}`:void 0;new Bd(s,{label:i}).draw(e)})}function Vd(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function zk(e){return new Promise((t,n)=>{if(e instanceof tt.getEnv().Canvas||Vd(e)){t(null);return}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 Wk(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 hl(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 ml({width:e,height:t}){let{createCanvasElement:n}=tt.getEnv(),a=n();return a.width=e,a.height=t,a}function Ud(e,t){let{ImageData:n}=tt.getEnv();if(!(e instanceof n)&&!Vd(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||hl(e),s=ml({width:a,height:r});return e instanceof n?Gn(s).putImageData(e,0,0):Gn(s).drawImage(e,0,0,a,r),s}async function Bk(e,t){let n=t||tt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ka(e)?1:0),i=O(()=>e.as3D(a,r,s).toInt());return await Xo.toPixels(i,n),i.dispose(),n}function lg(e){let{Image:t,Canvas:n,Video:a}=tt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function Vk(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 ml({width:1,height:1});let s=hl(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=ml({width:t,height:t}),p=e instanceof r?e:Ud(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Gn(u).drawImage(p,c,h,o,l),u}var xr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(Wr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ka(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:Ud(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 br(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 Nk({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,O(()=>{let a=br(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ce){let o=ka(i)?i:Gt(i);return o=Ak(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Qn.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof tt.getEnv().Canvas)return Xo.fromPixels(Vk(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>re(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof xr)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(cl);return a.forEach((r,s)=>{if(!lg(r)&&!Wr(r)&&!ka(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(ka(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=>lg(r)&&zk(r))),new xr(a,Array.isArray(e))}async function Dp(e,t){let{Canvas:n}=tt.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await Bk(o)}let r=Gn(a);return t.map(i=>i instanceof Tt?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 p=ml({width:l,height:u});return l>0&&u>0&&Gn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Rp(e,t){if(!Wr(e)&&!ka(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ka(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return O(()=>{let[n,a,r]=e.shape.slice(ka(e)?1:0);return t.map(o=>o instanceof Tt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>jo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Br(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 Qfe(e){let t=await Br(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 Wk(n)}async function Uk(e){return(await Br(e)).json()}async function ege(e){return new Float32Array(await(await Br(e)).arrayBuffer())}function iD(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=tt.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function tge(e){let t=await Br(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return iD(n)}function ug(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 Gk(e,t){let{manifestUri:n,modelBaseUri:a}=ug(e,t),r=await Uk(n);return qt.loadWeights(r,a)}function nge(e,t,n=!1){let{width:a,height:r}=n?hl(t):t;return e.width=a,e.height=r,{width:a,height:r}}var un=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 cs)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof cs))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 Gk(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}=ug(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>typeof d=="string"?Buffer.from(d):d.buffer))),i=qt.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 Ce))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Hn(e,t,n){return O(()=>{let a=$s(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=X(a,t.bias),a})}function pg(e,t,n=!1){return O(()=>{let a=Ke(n?X($t(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=Hn(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function Gd(e,t,n=!1,a=!0){return O(()=>{let r=Ke(n?X($t(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Hn(e,t.conv0,a?[2,2]:[1,1])),s=Hn(r,t.conv1,[1,1]),i=Ke(X(r,s)),o=Hn(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=Hn(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function fl(e,t,n="same",a=!1){return O(()=>{let r=X($t(e,t.filters,[1,1],n),t.bias);return a?Ke(r):r})}function En(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Mp(e,t){return(n,a,r,s)=>{let i=Da(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 cg(e,t){return(n,a,r)=>{let s=Aa(e(n*a),[n,a]),i=qe(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Hd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Op(e,t){return(n,a,r)=>{let s=Da(e(9*n),[3,3,n,1]),i=Da(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 Hd(s,i,o)}}function Pp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Hd(n,a,r)}}function ia(e,t){return(n,a,r)=>{let s=e[n];if(!al(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 _n(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 dg(e,t){let n=Mp(e,t),a=Op(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function oD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),{extractDenseBlock4Params:r}=dg(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 hg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function mg(e,t){let n=ia(e,t),a=hg(n),r=Pp(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function lD(e){let t=[],{extractDenseBlock4Params:n}=mg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return En(e,t),{params:a,paramMappings:t}}var Lp=class extends un{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=Gd(s,n.dense0,!0);return i=Gd(i,n.dense1),i=Gd(i,n.dense2),i=Gd(i,n.dense3),i=xa(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return lD(t)}extractParams(t){return oD(t)}};function qd(e,t){return O(()=>X($e(e,t.weights),t.bias))}function uD(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=_n(e),o=cg(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 pD(e){let t=[],n=ia(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 En(e,t),{params:r,paramMappings:t}}function fg(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 zp=class extends un{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 O(()=>{let a=t instanceof xr?this.faceFeatureExtractor.forwardInput(t):t;return qd(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 uD(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=fg(t);return this.faceFeatureExtractor.loadFromWeightMap(n),pD(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 Hk=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Vr=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Hk.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Hk.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var jd=class extends zp{constructor(t=new Lp){super("FaceExpressionNet",t)}forwardInput(t){return O(()=>ja(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Vr(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function qk(e){return e.expressions instanceof Vr}function gg(e,t){return{...e,...{expressions:t}}}function age(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Vr?s:qk(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(d=>d.probability>n),u=yr(s)?s.detection.box.bottomLeft:a||new Ue(0,0);new dl(l.map(d=>`${d.expression} (${rl(d.probability)})`),u).draw(e)})}function gl(e){return yr(e)&&e.landmarks instanceof sa&&e.unshiftedLandmarks instanceof sa&&e.alignedRect instanceof Tt}function rge(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l.x-u.x)**2+(l.y-u.y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l.x-u.x),c=Math.floor(u.x-p.x);return d-c},s=(l,u)=>{let p=Math.hypot(u.x-l.x,u.y-l.y),d=u.y-l.y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u.x-l.x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c=new Ue((l.x+p.x)/2,(l.y+p.y)/2),h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c.y-u.y<0?-1:1;return f*g};if(!e||!e.positions||e.positions.length!==68)return a;let o=e.positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function Wp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new Tt(e.detection.score,r.rescale(s.reverse()),s),o=rge(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var bg=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)"}},yg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new bg(n)}draw(t){let n=Gn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof ul&&(n.strokeStyle=i,n.lineWidth=s,zr(n,this.faceLandmarks.getJawOutline()),zr(n,this.faceLandmarks.getLeftEyeBrow()),zr(n,this.faceLandmarks.getRightEyeBrow()),zr(n,this.faceLandmarks.getNose()),zr(n,this.faceLandmarks.getLeftEye(),!0),zr(n,this.faceLandmarks.getRightEye(),!0),zr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function sge(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof sa?a:gl(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new yg(r).draw(e)})}var cD="1.7.13";function lge(e,t){let n=Mp(e,t),a=Op(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function dD(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=_n(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=lge(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};br(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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:c,middle_flow:h,exit_flow:g}}}function uge(e,t){let n=ia(e,t),a=hg(n),r=Pp(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function hD(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=uge(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};br(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return En(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function mD(e,t,n){return X($t(e,t.filters,n,"same"),t.bias)}function Kk(e,t,n=!0){let a=n?Ke(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Ke(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=X(a,mD(e,t.expansion_conv,[2,2])),a}function pge(e,t){let n=Hn(Ke(e),t.separable_conv0,[1,1]);return n=Hn(Ke(n),t.separable_conv1,[1,1]),n=Hn(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var xg=class extends un{constructor(t){super("TinyXception"),this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=Ke(mD(s,n.entry_flow.conv_in,[2,2]));return i=Kk(i,n.entry_flow.reduction_block_0,!1),i=Kk(i,n.entry_flow.reduction_block_1),br(this._numMainBlocks,0,1).forEach(o=>{i=pge(i,n.middle_flow[`main_block_${o}`])}),i=Kk(i,n.exit_flow.reduction_block),i=Ke(Hn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return hD(t,this._numMainBlocks)}extractParams(t){return dD(t,this._numMainBlocks)}};function fD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),r=cg(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 gD(e){let t=[],n=ia(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 En(e,t),{params:r,paramMappings:t}}var vg=(n=>(n.FEMALE="female",n.MALE="male",n))(vg||{});var Kd=class extends un{constructor(t=new xg(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 O(()=>{let a=t instanceof xr?this.faceFeatureExtractor.forwardInput(t):t,r=xa(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=qd(r,n.fc.age).as1D(),i=qd(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return O(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:ja(a)}})}async forward(t){return this.forwardInput(await vt(t))}async predictAgeAndGender(t){let n=await vt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,u)=>({ageTensor:l,genderTensor:s[u]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:u})=>{let p=l.dataSync()[0],d=u.dataSync()[0],c=d>.5,h=c?"male":"female",m=c?d:1-d;return l.dispose(),u.dispose(),{age:p,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 fD(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=fg(t);return this.faceFeatureExtractor.loadFromWeightMap(n),gD(a)}extractParams(t){let a=t.slice(0,t.length-1539),r=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var Bp=class extends zp{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 O(()=>{let i=(d,c)=>Ft([yn([68],d,"float32"),yn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return O(()=>{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 vt(t))}async detectLandmarks(t){let n=await vt(t),a=O(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>rg(d)),u=o.filter((p,d)=>!rg(d));return new ul(Array(68).fill(0).map((p,d)=>new Ue(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var bl=class extends Bp{constructor(t=new Lp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function bD(e){let t=[],{extractDenseBlock3Params:n}=mg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return En(e,t),{params:a,paramMappings:t}}function yD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),{extractDenseBlock3Params:r}=dg(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 wg=class extends un{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=pg(s,n.dense0,!0);return i=pg(i,n.dense1),i=pg(i,n.dense2),i=xa(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return bD(t)}extractParams(t){return yD(t)}};var Xd=class extends Bp{constructor(t=new wg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Xk=class extends bl{};function xD(e,t){return X(z(e,t.weights),t.biases)}function Yk(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=$t(e,s,n,r);return o=X(o,i),o=xD(o,t.scale),a?Ke(o):o}function vD(e,t){return Yk(e,t,[1,1],!0)}function Zk(e,t){return Yk(e,t,[1,1],!1)}function kg(e,t){return Yk(e,t,[2,2],!0,"valid")}function cge(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(Sk(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return O(()=>De(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=qe(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=qe(e(o)),p=qe(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function wD(e){let{extractWeights:t,getRemainingWeights:n}=_n(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=cge(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"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),I=O(()=>De(Aa(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:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:b,conv256_1:y,conv256_2:x,conv256_down_out:v,fc:I},paramMappings:a}}function dge(e,t){let n=ia(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 kD(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=dge(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"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ik(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:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:b,conv256_down_out:y,fc:x};return En(e,t),{params:v,paramMappings:t}}function Za(e,t){let n=vD(e,t.conv1);return n=Zk(n,t.conv2),n=X(n,e),n=Ke(n),n}function Yd(e,t){let n=kg(e,t.conv1);n=Zk(n,t.conv2);let a=xa(e,2,2,"valid"),r=It(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=It(o);n=et([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=et([n,p],2)}return a=s?et([a,r],3):a,n=X(a,n),n=Ke(n),n}var yl=class extends un{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return O(()=>{let a=re(t.toBatchTensor(150,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=kg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Za(i,n.conv32_1),i=Za(i,n.conv32_2),i=Za(i,n.conv32_3),i=Yd(i,n.conv64_down),i=Za(i,n.conv64_1),i=Za(i,n.conv64_2),i=Za(i,n.conv64_3),i=Yd(i,n.conv128_down),i=Za(i,n.conv128_1),i=Za(i,n.conv128_2),i=Yd(i,n.conv256_down),i=Za(i,n.conv256_1),i=Za(i,n.conv256_2),i=Yd(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=O(()=>dt(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 kD(t)}extractParams(t){return wD(t)}};function hge(e){let t=new yl;return t.extractWeights(e),t}function Ig(e,t){return{...e,...{descriptor:t}}}function mge(e){return typeof e.age=="number"}function Sg(e,t){return{...e,...{age:t}}}function fge(e){return(e.gender==="male"||e.gender==="female")&&_p(e.genderProbability)}function Ng(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function gge(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=qe(e(l)),c=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:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Da(e(l*u*p*p),[p,p,l,u]),m=qe(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=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"),b=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:b,conv_10:y,conv_11:x,conv_12:v,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),N=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),_=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"),$=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:I},box_predictor_3:{box_encoding_predictor:N,class_predictor:C},box_predictor_4:{box_encoding_predictor:_,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function ID(e){let t=[],{extractWeights:n,getRemainingWeights:a}=_n(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=gge(n,t),i=r(),o=s(),u={extra_dim:Nd(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 bge(e,t){let n=ia(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:b,batch_norm_variance:y},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,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}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 SD(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=bge(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Wr(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 En(e,t),{params:s,paramMappings:t}}function Oa(e,t,n){return O(()=>{let a=$t(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),an(a,0,6)})}var yge=.0010000000474974513;function xge(e,t,n){return O(()=>{let a=_s(e,t.filters,n,"same");return a=Es(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,yge),an(a,0,6)})}function vge(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function ND(e,t){return O(()=>{let n,a=Oa(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=vge(o);a=xge(a,s.depthwise_conv,l),a=Oa(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 wge(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]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function TD(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=wge(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function kge(e){let t=dt(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function Ige(e,t){let{sizes:n,centers:a}=kge(e),r=dt(De(t,[1,0])),s=he(z(mn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(mn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(Ft([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function CD(e,t,n){return O(()=>{let a=e.shape[0],r=Ige(W(Mn(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ma(Ve(t,[0,0,1],[-1,-1,-1])),i=Ve(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function xl(e,t){return O(()=>{let n=e.shape[0],a=W(fl(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(fl(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function ED(e,t,n){return O(()=>{let a=Oa(e,n.conv_0,[1,1]),r=Oa(a,n.conv_1,[2,2]),s=Oa(r,n.conv_2,[1,1]),i=Oa(s,n.conv_3,[2,2]),o=Oa(i,n.conv_4,[1,1]),l=Oa(o,n.conv_5,[2,2]),u=Oa(l,n.conv_6,[1,1]),p=Oa(u,n.conv_7,[2,2]),d=xl(t,n.box_predictor_0),c=xl(e,n.box_predictor_1),h=xl(r,n.box_predictor_2),m=xl(i,n.box_predictor_3),f=xl(l,n.box_predictor_4),g=xl(p,n.box_predictor_5),b=et([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=et([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ia=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 zs=class extends un{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return O(()=>{let a=re(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=ND(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=ED(s.out,s.conv11,n.prediction_layer);return CD(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ia(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,I]=[Math.max(0,b[x][0]),Math.min(1,b[x][2])].map(_=>_*g),[N,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(_=>_*f);return new Tt(p[x],new ll(N,v,C-N,I-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return SD(t)}extractParams(t){return ID(t)}};function _D(e){let t=new zs;return t.extractWeights(e),t}function Sge(e){return _D(e)}var Jk=class extends zs{};var AD=.4,FD=[new Ue(.738768,.874946),new Ue(2.42204,2.65704),new Ue(4.30971,7.04493),new Ue(10.246,4.59428),new Ue(12.6868,11.8741)],$D=[new Ue(1.603231,2.094468),new Ue(6.041143,7.080126),new Ue(2.882459,3.518061),new Ue(4.266906,5.178857),new Ue(9.041765,10.66308)],DD=[117.001,114.697,97.404],RD="tiny_yolov2_model",MD="tiny_yolov2_separable_conv_model";var Tg=e=>typeof e=="number";function Qk(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(!Tg(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=>Tg(t.x)&&Tg(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(Tg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Vp(e){return O(()=>{let t=z(e,ve(.10000000149011612));return X(Ke(pe(e,t)),t)})}function Ur(e,t){return O(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$t(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Vp(n)})}function Gr(e,t){return O(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$s(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Vp(n)})}function Nge(e,t){let n=Mp(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`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=Op(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function OD(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=_n(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Nge(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,v=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),N=u(h,m,"conv2"),C=u(m,f,"conv3"),_=u(f,g,"conv4"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,x]=a,v=l(d,c,"conv0"),I=l(c,h,"conv1"),N=l(h,m,"conv2"),C=l(m,f,"conv3"),_=l(f,g,"conv4"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function Tge(e,t){let n=ia(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=Pp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function PD(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Tge(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 En(e,n),{params:i,paramMappings:n}}var Ja=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 Cg=class Cg extends un{constructor(t){super("TinyYolov2"),Qk(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=Ur(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=Ur(a,n.conv6),a=Ur(a,n.conv7),fl(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Vp(fl(t,n.conv0,"valid",!1)):Gr(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=n.conv6?Gr(a,n.conv6):a,a=n.conv7?Gr(a,n.conv7):a,fl(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return O(()=>{let r=re(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?Ya(r,this.config.meanRgb):r,r=r.div(255),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await vt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new Ja(n),s=await vt(t),i=await this.forwardInput(s,a),o=O(()=>dt(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 p=u.map(g=>g.box),d=u.map(g=>g.score),c=u.map(g=>g.classScore),h=u.map(g=>this.config.classes[g.label]);return _k(p.map(g=>g.rescale(a)),d,this.config.iouThreshold,!0).map(g=>new ol(d[g],c[g],h[g],p[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return PD(t,this.config)}extractParams(t){let n=this.config.filterSizes||Cg.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 OD(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],p=this.config.anchors.length,[d,c,h]=O(()=>{let b=t.reshape([u,u,p,this.boxEncodingSize]),y=b.slice([0,0,0,0],[u,u,p,4]),x=b.slice([0,0,0,4],[u,u,p,1]),v=this.withClassScores?ja(b.slice([0,0,0,5],[u,u,p,this.config.classes.length]),3):ve(0);return[y,x,v]}),m=[],f=await c.array(),g=await d.array();for(let b=0;ba){let I=(y+zd(g[b][y][x][0]))/u*o,N=(b+zd(g[b][y][x][1]))/u*l,C=Math.exp(g[b][y][x][2])*this.config.anchors[x].x/u*o,_=Math.exp(g[b][y][x][3])*this.config.anchors[x].y/u*l,F=I-C/2,D=N-_/2,$={row:b,col:y,anchor:x},{classScore:S,label:M}=this.withClassScores?await this.extractPredictedClass(h,$):{classScore:1,label:0};m.push({box:new il(F,D,F+C,D+_),score:v,classScore:v*S,label:M,...$})}}return d.dispose(),c.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)}};Cg.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Up=Cg;var vl=class extends Up{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:AD,classes:["face"],...t?{anchors:$D,meanRgb:DD}:{anchors:FD,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 Tt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?MD:RD}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Cge(e,t=!0){let n=new vl(t);return n.extractWeights(e),n}var Zd=class extends Ja{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Sa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function wl(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>gl(l)?r(l):l.detection),i=a||(t instanceof Ce?await Rp(t,s):await Dp(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ce&&l.dispose()),o}async function Gp(e,t,n,a,r){return wl([e],t,async s=>n(s[0]),a,r)}var LD=.4,zD=[new Ue(1.603231,2.094468),new Ue(6.041143,7.080126),new Ue(2.882459,3.518061),new Ue(4.266906,5.178857),new Ue(9.041765,10.66308)],WD=[117.001,114.697,97.404];var kl=class extends Up{constructor(){let t={withSeparableConvs:!0,iouThreshold:LD,classes:["face"],anchors:zD,meanRgb:WD,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 Tt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var nt={ssdMobilenetv1:new zs,tinyFaceDetector:new kl,tinyYolov2:new vl,faceLandmark68Net:new bl,faceLandmark68TinyNet:new Xd,faceRecognitionNet:new yl,faceExpressionNet:new jd,ageGenderNet:new Kd},BD=(e,t)=>nt.ssdMobilenetv1.locateFaces(e,t),Ege=(e,t)=>nt.tinyFaceDetector.locateFaces(e,t),_ge=(e,t)=>nt.tinyYolov2.locateFaces(e,t),VD=e=>nt.faceLandmark68Net.detectLandmarks(e),Age=e=>nt.faceLandmark68TinyNet.detectLandmarks(e),Fge=e=>nt.faceRecognitionNet.computeFaceDescriptor(e),$ge=e=>nt.faceExpressionNet.predictExpressions(e),Dge=e=>nt.ageGenderNet.predictAgeAndGender(e),UD=e=>nt.ssdMobilenetv1.load(e),Rge=e=>nt.tinyFaceDetector.load(e),Mge=e=>nt.tinyYolov2.load(e),Oge=e=>nt.faceLandmark68Net.load(e),Pge=e=>nt.faceLandmark68TinyNet.load(e),Lge=e=>nt.faceRecognitionNet.load(e),zge=e=>nt.faceExpressionNet.load(e),Wge=e=>nt.ageGenderNet.load(e),Bge=UD,Vge=BD,Uge=VD;var Eg=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Il=class extends Eg{async run(){let t=await this.parentTask,n=await wl(t,this.input,async a=>Promise.all(a.map(r=>nt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>gg(a,n[r]))}withAgeAndGender(){return new Nl(this,this.input)}},Sl=class extends Eg{async run(){let t=await this.parentTask;if(!t)return;let n=await Gp(t,this.input,a=>nt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return gg(t,n)}withAgeAndGender(){return new Tl(this,this.input)}},Ws=class extends Il{withAgeAndGender(){return new Vs(this,this.input)}withFaceDescriptors(){return new Hr(this,this.input)}},Bs=class extends Sl{withAgeAndGender(){return new Us(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var _g=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Nl=class extends _g{async run(){let t=await this.parentTask,n=await wl(t,this.input,async a=>Promise.all(a.map(r=>nt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Sg(Ng(a,i,o),s)})}withFaceExpressions(){return new Il(this,this.input)}},Tl=class extends _g{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Gp(t,this.input,s=>nt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Sg(Ng(t,a,r),n)}withFaceExpressions(){return new Sl(this,this.input)}},Vs=class extends Nl{withFaceExpressions(){return new Ws(this,this.input)}withFaceDescriptors(){return new Hr(this,this.input)}},Us=class extends Tl{withFaceExpressions(){return new Bs(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var Jd=class extends Sa{constructor(n,a){super();this.parentTask=n;this.input=a}},Hr=class extends Jd{async run(){let t=await this.parentTask;return(await wl(t,this.input,a=>Promise.all(a.map(r=>nt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Ig(t[r],a))}withFaceExpressions(){return new Ws(this,this.input)}withAgeAndGender(){return new Vs(this,this.input)}},qr=class extends Jd{async run(){let t=await this.parentTask;if(!t)return;let n=await Gp(t,this.input,a=>nt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Ig(t,n)}withFaceExpressions(){return new Bs(this,this.input)}withAgeAndGender(){return new Us(this,this.input)}};var Qd=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?nt.faceLandmark68TinyNet:nt.faceLandmark68Net}},eh=class extends Qd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Ce?await Rp(this.input,n):await Dp(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Ce&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>Wp(i,r[o]))}withFaceExpressions(){return new Ws(this,this.input)}withAgeAndGender(){return new Vs(this,this.input)}withFaceDescriptors(){return new Hr(this,this.input)}},th=class extends Qd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ce?await Rp(this.input,[n]):await Dp(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ce&&s.dispose()),Wp(t,r)}withFaceExpressions(){return new Bs(this,this.input)}withAgeAndGender(){return new Us(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var nh=class extends Sa{constructor(n,a=new Ia){super();this.input=n;this.options=a}},Hp=class extends nh{async run(){let{input:t,options:n}=this,a;if(n instanceof Zd)a=nt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ia)a=nt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Ja)a=nt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>pl({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new eh(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Il(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Nl(this.runAndExtendWithFaceDetections(),this.input)}},ah=class extends nh{async run(){let t=await new Hp(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?pl({},n):void 0)})}withFaceLandmarks(t=!1){return new th(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Sl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Tl(this.runAndExtendWithFaceDetection(),this.input)}};function Gge(e,t=new Ia){return new ah(e,t)}function Ag(e,t=new Ia){return new Hp(e,t)}async function GD(e,t){return Ag(e,new Ia(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Hge(e,t={}){return Ag(e,new Ja(t)).withFaceLandmarks().withFaceDescriptors()}var qge=GD;function eI(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*s,0))}var tI=class e{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 Ls)return i;if(i instanceof Float32Array)return new Ls(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Ls(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=>eI(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Ap(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Ls.fromJSON(a));return new e(n,t.distanceThreshold)}};function jge(e){let t=new kl;return t.extractWeights(e),t}function HD(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=>HD(r,{width:n,height:a}));if(gl(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Wp(pl(e,r),s)}return yr(e)?pl(e,e.detection.forSize(n,a)):e instanceof sa||e instanceof Tt?e.forSize(n,a):e}var Kge=cD;return AR(Xge);})(); + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(a.dataId).id,o=t.dataIdMap.get(r.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=a.shape[0],p=w.sizeFromShape(s.shape),d=t.makeOutput([u,p],a.dtype),c=t.dataIdMap.get(d.dataId).id,h=t.makeOutput([p],s.dtype),m=t.dataIdMap.get(h.dataId).id,f=t.makeOutput([3],"int32"),g=t.dataIdMap.get(f.dataId).id;K$(i,o,l,u,c,m,g);let b=t.readSync(f.dataId),y;switch(b[0]){case 0:{y=T.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(b[1],b[2]);break}case 1:{y=T.getSparseReshapeNegativeOutputDimErrorMessage(b[1],b[2]);break}case 2:y=T.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=T.getSparseReshapeInputOutputMultipleErrorMessage(x,v);break}case 4:{let x=Array.from(t.readSync(r.dataId)),v=Array.from(t.readSync(h.dataId));y=T.getSparseReshapeInputOutputMismatchErrorMessage(x,v);break}default:y=""}if(t.disposeData(f.dataId),y)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(y);return[d,h]}var Dme={kernelName:ap,backendName:"wasm",setupFunc:Fme,kernelFunc:$me},X$;function Y$(e){X$=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function Z$(e,t){let{backend:n,inputs:a}=e,{data:r,indices:s,segmentIds:i}=a,o=s.shape[0],l=n.readSync(i.dataId,o-1,o)[0],u=o>0?l+1:0;if(u<0)throw new Error(T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),b=n.dataIdMap.get(g.dataId).id;X$(d,Qe[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=T.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=T.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=T.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=T.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Rme(e){return Z$(e,!0)}var Mme={kernelName:Zc,backendName:"wasm",setupFunc:Y$,kernelFunc:Rme};function Ome(e){return Z$(e,!1)}var Pme={kernelName:Jc,backendName:"wasm",setupFunc:Y$,kernelFunc:Ome},J$;function Lme(e){J$=e.wasm.cwrap(rp,null,["number","number","number","number","number","number","number","number","array","number","number"])}function zme(e){let{backend:t,inputs:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=n,{outputShape:o}=a,l=t.makeOutput(o,i.dtype);if(w.sizeFromShape(o)===0)return l;let{sliceRank:u,numUpdates:p,sliceSize:d,strides:c,outputSize:h}=T.calculateShapes(s,r,o),m=t.dataIdMap.get(r.dataId).id,f=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=new Uint8Array(new Int32Array(c).buffer),y=t.dataIdMap.get(l.dataId).id;return J$(m,f,s.shape.length,g,Qe[i.dtype],u,p,d,b,h,y),l}var Wme={kernelName:rp,backendName:"wasm",setupFunc:Lme,kernelFunc:zme};function Bme(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=Ni({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Vme={kernelName:np,backendName:"wasm",kernelFunc:Bme},Ume=Xe(zo),Gme=Xe(Qc),Hme=!0,jme=Ut(Vo,Hme),Q$;function qme(e){Q$=e.wasm.cwrap(Cs,null,["number","number","number","number"])}function Kme(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 Q$(i,r,Qe[s.dtype],l),o}var Xme={kernelName:Cs,backendName:"wasm",setupFunc:qme,kernelFunc:Kme},eD;function Yme(e){eD=e.wasm.cwrap(sp,null,["number","array","number","array","array","array","array","array","number","number"])}function Zme(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=zn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=Ni({inputs:{x:r},backend:t,attrs:{begin:y,size:N}});I=zn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let N=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,_=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),F=new Uint8Array(new Int32Array(y).buffer),D=new Uint8Array(new Int32Array(x).buffer),$=new Uint8Array(new Int32Array(v).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer),B=t.dataIdMap.get(N.dataId).id;eD(C,_,r.shape.length,F,D,$,S,M,h.length,B),I=zn({inputs:{x:N},backend:t,attrs:{shape:m}}),t.disposeData(N.dataId)}return I}var Jme={kernelName:sp,backendName:"wasm",setupFunc:Yme,kernelFunc:Zme};function Qme(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=Z1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var efe={kernelName:td,backendName:"wasm",kernelFunc:Qme};function tfe(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=J1(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var nfe={kernelName:nd,backendName:"wasm",kernelFunc:tfe};function afe(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=Q1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var rfe={kernelName:ad,backendName:"wasm",kernelFunc:afe},sfe=!0,ife=Ut(Uo,sfe),tD;function ofe(e){tD=e.wasm.cwrap(Wo,null,["number","number","number","number"])}function lfe(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:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ps(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=T.getInnerMostAxes(m.length,u.shape.length))}T.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=T.computeOutAndReduceShapes(u.shape,m),b=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;tD(l,b,Qe[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=T.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var ufe={kernelName:Wo,backendName:"wasm",setupFunc:ofe,kernelFunc:lfe},pfe=Xe(Go),cfe=Xe(Ho),nD;function dfe(e){nD=e.wasm.cwrap(Zu,null,["number","number","number","number","number","number","array","number","number","number"])}function hfe(e){let{backend:t,inputs:n,attrs:a}=e,{tensor:r,indices:s,updates:i}=n,{}=a,o=t.makeOutput(r.shape,r.dtype);if(w.sizeFromShape(r.shape)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=vf.calculateShapes(i,s,r.shape),h=t.dataIdMap.get(s.dataId).id,m=t.dataIdMap.get(i.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(d).buffer),b=t.dataIdMap.get(o.dataId).id;return nD(h,m,Qe[i.dtype],l,u,p,g,c,b,f),o}var mfe={kernelName:Zu,backendName:"wasm",setupFunc:dfe,kernelFunc:hfe},aD;function ffe(e){aD=e.wasm.cwrap(Ts,null,["number","array","number","array","number","number"])}function gfe(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 c=0;c{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),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return rD(i,o,a.shape.length,Qe[a.dtype],r,s,p,c),[u,d]},vfe={kernelName:ip,backendName:"wasm",setupFunc:yfe,kernelFunc:xfe},sD;function wfe(e){sD=e.wasm.cwrap(op,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function kfe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],b=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(w.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),v=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,N=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,_;switch(o){case"constant":_=1;break;case"reflect":_=2;break;case"wrap":_=3;break;case"nearest":_=4;break;default:_=1;break}return sD(I,N,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,_,l,v),x}var Ife={kernelName:op,backendName:"wasm",setupFunc:wfe,kernelFunc:kfe};function Sfe(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t,{outputValues:i,outputShape:o,indices:l}=tk(a.readSync(s.dataId),r,s.shape,s.dtype);return[a.makeOutput(o,s.dtype,void 0,i),a.makeOutput([l.length],"int32",void 0,l)]}var Nfe={kernelName:rd,backendName:"wasm",kernelFunc:Sfe};function Tfe(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 Cfe={kernelName:lp,backendName:"wasm",kernelFunc:Tfe};function Efe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var _fe={kernelName:up,backendName:"wasm",kernelFunc:Efe},Afe=[cue,due,hue,mue,gue,xue,Cue,Aue,Fue,$ue,Due,Rue,Mue,Oue,Pue,Wue,Xue,Uue,jue,Que,spe,lpe,ppe,dpe,hpe,mpe,bpe,ype,wpe,Spe,Cpe,Ape,Dpe,Rpe,Mpe,Lpe,Bpe,Gpe,qpe,Ype,Qpe,nce,sce,lce,cce,dce,fce,bce,yce,xce,vce,wce,kce,Nce,Tce,Ece,Fce,Rce,Pce,Wce,Uce,Hce,qce,vue,Kce,Xce,Yce,Qce,tde,ade,ide,lde,ode,pde,cde,hde,fde,yde,wde,Sde,Tde,_de,$de,Mde,Lde,Bde,Gde,qde,Xde,Jde,ahe,rhe,ihe,ohe,phe,hhe,ghe,yhe,whe,Ihe,Nhe,R$,_he,$he,Mhe,Phe,zhe,Whe,Bhe,Vhe,Yue,Hhe,Khe,Zhe,eme,ame,ime,ome,lme,cme,mme,bme,yme,wme,kme,Ime,Sme,ape,ehe,Nme,Cme,Ame,Dme,Mme,Pme,Wme,Vme,Ume,Gme,jme,Xme,Jme,efe,nfe,rfe,ife,ufe,pfe,cfe,mfe,bfe,vfe,Ife,Sue,Nfe,Cfe,_fe];for(let e of Afe)id(e);var Ev=G();Ev.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});Ev.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Ev.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 KS=Is(QR()),Ffe=Is(eM()),XS=Is(tM()),YS=KS.default||KS,$fe=XS.default||XS,iD=class extends Pc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(oD),_v=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new $m(this,Ea())}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 u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=w.sizeFromShape(n),o=i*w.bytesPerElement(a),l=this.wasm._malloc(o)>>>0;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,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||w.sizeFromShape(s);let o=w.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return Mfe(l.buffer,r)}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(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n,a){let r;if(n==null)r=this.write(a!=null?a:null,e,t);else{let s=this.dataIdNextNumber++;r={id:s},this.dataIdMap.set(r,{id:s,memoryOffset:n,shape:e,dtype:t,refCount:1});let i=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:r,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 Dfe(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,s.module)})})}),{})}function ZS(e,t,n){if(Am!=null)return Am;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),bc!=null&&bc[a]!=null?bc[a]:n+a}async function Rfe(){let[e,t]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=Ffe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?ZS(e,t,mc!=null?mc:l):l+o},kk&&(r.instantiateWasm=Dfe(ZS(e,t,mc!=null?mc:"")));let s=!1;r.onAbort=()=>{s||yc||(yc=!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&&Am==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+YS.toString()],{type:"text/javascript"}),i=YS(r)):i=$fe(r),i.then(o=>{s=!0,yc=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function Mfe(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 Ofe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Am=null,mc=null,bc={},yc=!1,kk=!1;function Pfe(e,t=!1){if(Wv("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),yc)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Am=e,kk=t}function Lfe(e,t=!1){if(yc)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")mc=e;else{bc=e;let n=Ofe.filter(a=>bc[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.`)}kk=t}var oD=-1,_v=-1;function zfe(e){oD=e}function Wfe(){if(_v===-1)throw new Error("WASM backend not initialized.");return _v}var Bfe="4.21.0",Vfe=2;Ym("wasm",async()=>{let{wasm:e}=await Rfe();return new iD(e)},Vfe);var JS="4.21.0",Ufe="4.21.0",Gfe="4.21.0",Hfe="4.21.0",jfe="4.21.0",qfe={tfjs:JS,"tfjs-core":JS,"tfjs-converter":Ufe,"tfjs-backend-cpu":Gfe,"tfjs-backend-webgl":Hfe,"tfjs-backend-wasm":jfe};var qk={};$h(qk,{AnchorPosition:()=>Lk,DrawBox:()=>Bd,DrawBoxOptions:()=>lg,DrawFaceLandmarks:()=>xg,DrawFaceLandmarksOptions:()=>yg,DrawTextField:()=>dl,DrawTextFieldOptions:()=>$p,drawContour:()=>zr,drawDetections:()=>nge,drawFaceExpressions:()=>oge,drawFaceLandmarks:()=>uge});function zr(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 Tk={};$h(Tk,{computeReshapedDimensions:()=>Nk,getCenterPoint:()=>sl,isDimensions:()=>ig,isEven:()=>sg,isFloat:()=>Sk,isTensor:()=>al,isTensor1D:()=>Kfe,isTensor2D:()=>Ik,isTensor3D:()=>Wr,isTensor4D:()=>ka,isValidNumber:()=>Xa,isValidProbablitiy:()=>_p,range:()=>yr,round:()=>rl});var Un=class e{constructor(t,n){if(!Xa(t)||!Xa(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 e(1/this.width,1/this.height)}};function al(e,t){return e instanceof Ce&&e.shape.length===t}function Kfe(e){return al(e,1)}function Ik(e){return al(e,2)}function Wr(e){return al(e,3)}function ka(e){return al(e,4)}function Sk(e){return e%1!==0}function sg(e){return e%2===0}function rl(e,t=2){let n=10**t;return Math.floor(e*n)/n}function ig(e){return e&&e.width&&e.height}function Nk({width:e,height:t},n){let a=n/Math.max(t,e);return new Un(Math.round(e*a),Math.round(t*a))}function sl(e){return e.reduce((t,n)=>t.add(n),new Ue(0,0)).div(new Ue(e.length,e.length))}function yr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Xa(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function _p(e){return Xa(e)&&e>=0&&e<=1}var Ue=class e{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new e(this.x+t.x,this.y+t.y)}sub(t){return new e(this.x-t.x,this.y-t.y)}mul(t){return new e(this.x*t.x,this.y*t.y)}div(t){return new e(this.x/t.x,this.y/t.y)}abs(){return new e(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new e(Math.floor(this.x),Math.floor(this.y))}};var ln=class e{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Xa)}static assertIsValidBox(t,n,a=!1){if(!e.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(Xa),s=[a.x,a.y,a.width,a.height].every(Xa);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];e.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 Ue(this.left,this.top)}get topRight(){return new Ue(this.right,this.top)}get bottomLeft(){return new Ue(this.left,this.bottom)}get bottomRight(){return new Ue(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 e({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 e({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=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new e({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 il=class extends ln{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var ol=class e{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 ln(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 ln(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new e(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var Tt=class e extends ol{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 e(a,r,s)}};function Ck(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 Ek(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[p]<=n)}return s}function Ya(e,t){return O(()=>{let[n,a,r]=t,s=yn([...e.shape.slice(0,3),1],n,"float32"),i=yn([...e.shape.slice(0,3),1],a,"float32"),o=yn([...e.shape.slice(0,3),1],r,"float32"),l=et([s,i,o],3);return pe(e,l)})}function Ak(e,t=!1){return O(()=>{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=c=>{let h=e.shape.slice();return h[i]=c,yn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>re(c,"float32"));return et(d,i)})}function Xfe(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 zd(e){return 1/(1+Math.exp(-e))}function Yfe(e){return Math.log(e/(1-e))}var ll=class extends ln{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Zfe=.5,Jfe=.43,Qfe=.45,sa=class{constructor(t,n,a=new Ue(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 Ue(r,s)).add(a))}get shift(){return new Ue(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 Ue(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 Ue(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof Tt?t.box.floor():new ln(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=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Qfe),l=sl(t),u=Math.floor(Math.max(0,l.x-Zfe*o)),p=Math.floor(Math.max(0,l.y-Jfe*o));return new ll(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=Ek(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var Fk=class extends sa{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],sl([t[3],t[4]])]}};var ul=class extends sa{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(sl)}};var Ap=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?` (${rl(this.distance)})`:""}`}};var Fp=class extends ln{static assertIsValidLabeledBox(t,n){if(ln.assertIsValidBox(t,n),!Xa(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 zs=class e{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 e(t.label,n)}};var $k=class extends Fp{static assertIsValidPredictedBox(t,n){if(Fp.assertIsValidLabeledBox(t,n),!_p(t.score)||!_p(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 xr(e){return e.detection instanceof Tt}function pl(e,t){return{...e,...{detection:t}}}function Dk(){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"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Wd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function og(e){let t="";if(!e&&Wd())try{e=AR("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 Rk(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;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")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=og();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function Mk(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var un;function ege(){if(!un)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return un}function Ok(e){un=e}function Pk(){return Mk()?Ok(Dk()):Wd()?Ok(Rk()):null}function tge(e){if(un||Pk(),!un)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=un.Canvas,Image:n=un.Image}=e;un.Canvas=t,un.Image=n,un.createCanvasElement=e.createCanvasElement||(()=>new t),un.createImageElement=e.createImageElement||(()=>new n),un.ImageData=e.ImageData||un.ImageData,un.Video=e.Video||un.Video,un.fetch=e.fetch||un.fetch,un.readFile=e.readFile||un.readFile}var tt={getEnv:ege,setEnv:Ok,initialize:Pk,createBrowserEnv:Dk,createFileSystem:og,createNodejsEnv:Rk,monkeyPatch:tge,isBrowser:Mk,isNodejs:Wd};Pk();function cl(e){return!tt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Gn(e){let{Canvas:t,CanvasRenderingContext2D:n}=tt.getEnv();if(e instanceof n)return e;let a=cl(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var Lk=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(Lk||{}),$p=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"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}},dl=class e{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof e?t.text:t,this.anchor=n,this.options=new $p(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var lg=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:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new $p({...i,...s})}},Bd=class{constructor(t,n={}){this.box=new ln(t),this.options=new lg(n)}draw(t){let n=Gn(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 dl([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function nge(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof Tt?a.score:xr(a)?a.detection.score:void 0,s=a instanceof Tt?a.box:xr(a)?a.detection.box:new ln(a),i=r?`${rl(r)}`:void 0;new Bd(s,{label:i}).draw(e)})}function Vd(e){let{Image:t,Video:n}=tt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function zk(e){return new Promise((t,n)=>{if(e instanceof tt.getEnv().Canvas||Vd(e)){t(null);return}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 Wk(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 hl(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 ml({width:e,height:t}){let{createCanvasElement:n}=tt.getEnv(),a=n();return a.width=e,a.height=t,a}function Ud(e,t){let{ImageData:n}=tt.getEnv();if(!(e instanceof n)&&!Vd(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||hl(e),s=ml({width:a,height:r});return e instanceof n?Gn(s).putImageData(e,0,0):Gn(s).drawImage(e,0,0,a,r),s}async function Bk(e,t){let n=t||tt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ka(e)?1:0),i=O(()=>e.as3D(a,r,s).toInt());return await Xo.toPixels(i,n),i.dispose(),n}function ug(e){let{Image:t,Canvas:n,Video:a}=tt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function Vk(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 ml({width:1,height:1});let s=hl(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=ml({width:t,height:t}),p=e instanceof r?e:Ud(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Gn(u).drawImage(p,c,h,o,l),u}var vr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(Wr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ka(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:Ud(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 yr(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 Nk({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,O(()=>{let a=yr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ce){let o=ka(i)?i:Gt(i);return o=Ak(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Qn.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof tt.getEnv().Canvas)return Xo.fromPixels(Vk(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>re(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof vr)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(cl);return a.forEach((r,s)=>{if(!ug(r)&&!Wr(r)&&!ka(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(ka(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=>ug(r)&&zk(r))),new vr(a,Array.isArray(e))}async function Dp(e,t){let{Canvas:n}=tt.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await Bk(o)}let r=Gn(a);return t.map(i=>i instanceof Tt?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 p=ml({width:l,height:u});return l>0&&u>0&&Gn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Rp(e,t){if(!Wr(e)&&!ka(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ka(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return O(()=>{let[n,a,r]=e.shape.slice(ka(e)?1:0);return t.map(o=>o instanceof Tt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>qo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Br(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 age(e){let t=await Br(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 Wk(n)}async function Uk(e){return(await Br(e)).json()}async function rge(e){return new Float32Array(await(await Br(e)).arrayBuffer())}function lD(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=tt.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function sge(e){let t=await Br(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return lD(n)}function pg(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 Gk(e,t){let{manifestUri:n,modelBaseUri:a}=pg(e,t),r=await Uk(n);return jt.loadWeights(r,a)}function ige(e,t,n=!1){let{width:a,height:r}=n?hl(t):t;return e.width=a,e.height=r,{width:a,height:r}}var pn=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 cs)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof cs))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=bn(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 Gk(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}=pg(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>typeof d=="string"?Buffer.from(d):d.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 Ce))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Hn(e,t,n){return O(()=>{let a=Ds(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=X(a,t.bias),a})}function cg(e,t,n=!1){return O(()=>{let a=Ke(n?X($t(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Ke(X(a,r)),i=Hn(s,t.conv2,[1,1]);return Ke(X(a,X(r,i)))})}function Gd(e,t,n=!1,a=!0){return O(()=>{let r=Ke(n?X($t(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Hn(e,t.conv0,a?[2,2]:[1,1])),s=Hn(r,t.conv1,[1,1]),i=Ke(X(r,s)),o=Hn(i,t.conv2,[1,1]),l=Ke(X(r,X(s,o))),u=Hn(l,t.conv3,[1,1]);return Ke(X(r,X(s,X(o,u))))})}function fl(e,t,n="same",a=!1){return O(()=>{let r=X($t(e,t.filters,[1,1],n),t.bias);return a?Ke(r):r})}function _n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Mp(e,t){return(n,a,r,s)=>{let i=Da(e(n*a*r*r),[r,r,n,a]),o=je(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function dg(e,t){return(n,a,r)=>{let s=Aa(e(n*a),[n,a]),i=je(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Hd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Op(e,t){return(n,a,r)=>{let s=Da(e(9*n),[3,3,n,1]),i=Da(e(n*a),[1,1,n,a]),o=je(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Hd(s,i,o)}}function Pp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Hd(n,a,r)}}function ia(e,t){return(n,a,r)=>{let s=e[n];if(!al(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 An(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 hg(e,t){let n=Mp(e,t),a=Op(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function uD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock4Params:r}=hg(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 mg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function fg(e,t){let n=ia(e,t),a=mg(n),r=Pp(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function pD(e){let t=[],{extractDenseBlock4Params:n}=fg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return _n(e,t),{params:a,paramMappings:t}}var Lp=class extends pn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=Gd(s,n.dense0,!0);return i=Gd(i,n.dense1),i=Gd(i,n.dense2),i=Gd(i,n.dense3),i=xa(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return pD(t)}extractParams(t){return uD(t)}};function jd(e,t){return O(()=>X($e(e,t.weights),t.bias))}function cD(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=An(e),o=dg(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 dD(e){let t=[],n=ia(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 _n(e,t),{params:r,paramMappings:t}}function gg(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 zp=class extends pn{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 O(()=>{let a=t instanceof vr?this.faceFeatureExtractor.forwardInput(t):t;return jd(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 cD(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=gg(t);return this.faceFeatureExtractor.loadFromWeightMap(n),dD(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 Hk=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Vr=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Hk.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Hk.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var qd=class extends zp{constructor(t=new Lp){super("FaceExpressionNet",t)}forwardInput(t){return O(()=>qa(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Vr(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function jk(e){return e.expressions instanceof Vr}function bg(e,t){return{...e,...{expressions:t}}}function oge(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Vr?s:jk(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(d=>d.probability>n),u=xr(s)?s.detection.box.bottomLeft:a||new Ue(0,0);new dl(l.map(d=>`${d.expression} (${rl(d.probability)})`),u).draw(e)})}function gl(e){return xr(e)&&e.landmarks instanceof sa&&e.unshiftedLandmarks instanceof sa&&e.alignedRect instanceof Tt}function lge(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l.x-u.x)**2+(l.y-u.y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l.x-u.x),c=Math.floor(u.x-p.x);return d-c},s=(l,u)=>{let p=Math.hypot(u.x-l.x,u.y-l.y),d=u.y-l.y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u.x-l.x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c=new Ue((l.x+p.x)/2,(l.y+p.y)/2),h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c.y-u.y<0?-1:1;return f*g};if(!e||!e.positions||e.positions.length!==68)return a;let o=e.positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function Wp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new Tt(e.detection.score,r.rescale(s.reverse()),s),o=lge(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var yg=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)"}},xg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new yg(n)}draw(t){let n=Gn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof ul&&(n.strokeStyle=i,n.lineWidth=s,zr(n,this.faceLandmarks.getJawOutline()),zr(n,this.faceLandmarks.getLeftEyeBrow()),zr(n,this.faceLandmarks.getRightEyeBrow()),zr(n,this.faceLandmarks.getNose()),zr(n,this.faceLandmarks.getLeftEye(),!0),zr(n,this.faceLandmarks.getRightEye(),!0),zr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function uge(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof sa?a:gl(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new xg(r).draw(e)})}var hD="1.7.14";function dge(e,t){let n=Mp(e,t),a=Op(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function mD(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=An(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=dge(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};yr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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:c,middle_flow:h,exit_flow:g}}}function hge(e,t){let n=ia(e,t),a=mg(n),r=Pp(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function fD(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=hge(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};yr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return _n(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function gD(e,t,n){return X($t(e,t.filters,n,"same"),t.bias)}function Kk(e,t,n=!0){let a=n?Ke(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Ke(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=X(a,gD(e,t.expansion_conv,[2,2])),a}function mge(e,t){let n=Hn(Ke(e),t.separable_conv0,[1,1]);return n=Hn(Ke(n),t.separable_conv1,[1,1]),n=Hn(Ke(n),t.separable_conv2,[1,1]),n=X(n,e),n}var vg=class extends pn{constructor(t){super("TinyXception"),this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=Ke(gD(s,n.entry_flow.conv_in,[2,2]));return i=Kk(i,n.entry_flow.reduction_block_0,!1),i=Kk(i,n.entry_flow.reduction_block_1),yr(this._numMainBlocks,0,1).forEach(o=>{i=mge(i,n.middle_flow[`main_block_${o}`])}),i=Kk(i,n.exit_flow.reduction_block),i=Ke(Hn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return fD(t,this._numMainBlocks)}extractParams(t){return mD(t,this._numMainBlocks)}};function bD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),r=dg(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 yD(e){let t=[],n=ia(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 _n(e,t),{params:r,paramMappings:t}}var wg=(n=>(n.FEMALE="female",n.MALE="male",n))(wg||{});var Kd=class extends pn{constructor(t=new vg(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 O(()=>{let a=t instanceof vr?this.faceFeatureExtractor.forwardInput(t):t,r=xa(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=jd(r,n.fc.age).as1D(),i=jd(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return O(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:qa(a)}})}async forward(t){return this.forwardInput(await vt(t))}async predictAgeAndGender(t){let n=await vt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,u)=>({ageTensor:l,genderTensor:s[u]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:u})=>{let p=l.dataSync()[0],d=u.dataSync()[0],c=d>.5,h=c?"male":"female",m=c?d:1-d;return l.dispose(),u.dispose(),{age:p,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 bD(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=gg(t);return this.faceFeatureExtractor.loadFromWeightMap(n),yD(a)}extractParams(t){let a=t.slice(0,t.length-1539),r=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var Bp=class extends zp{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 O(()=>{let i=(d,c)=>Ft([yn([68],d,"float32"),yn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return O(()=>{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 vt(t))}async detectLandmarks(t){let n=await vt(t),a=O(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>sg(d)),u=o.filter((p,d)=>!sg(d));return new ul(Array(68).fill(0).map((p,d)=>new Ue(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var bl=class extends Bp{constructor(t=new Lp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function xD(e){let t=[],{extractDenseBlock3Params:n}=fg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return _n(e,t),{params:a,paramMappings:t}}function vD(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock3Params:r}=hg(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 kg=class extends pn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return O(()=>{let a=re(t.toBatchTensor(112,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=cg(s,n.dense0,!0);return i=cg(i,n.dense1),i=cg(i,n.dense2),i=xa(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return xD(t)}extractParams(t){return vD(t)}};var Xd=class extends Bp{constructor(t=new kg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Xk=class extends bl{};function wD(e,t){return X(z(e,t.weights),t.biases)}function Yk(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=$t(e,s,n,r);return o=X(o,i),o=wD(o,t.scale),a?Ke(o):o}function kD(e,t){return Yk(e,t,[1,1],!0)}function Zk(e,t){return Yk(e,t,[1,1],!1)}function Ig(e,t){return Yk(e,t,[2,2],!0,"valid")}function fge(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(Sk(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return O(()=>De(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=je(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=je(e(o)),p=je(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function ID(e){let{extractWeights:t,getRemainingWeights:n}=An(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=fge(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"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),v=s(589824,256,3,"conv256_down_out"),I=O(()=>De(Aa(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:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:b,conv256_1:y,conv256_2:x,conv256_down_out:v,fc:I},paramMappings:a}}function gge(e,t){let n=ia(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 SD(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=gge(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"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ik(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:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:b,conv256_down_out:y,fc:x};return _n(e,t),{params:v,paramMappings:t}}function Za(e,t){let n=kD(e,t.conv1);return n=Zk(n,t.conv2),n=X(n,e),n=Ke(n),n}function Yd(e,t){let n=Ig(e,t.conv1);n=Zk(n,t.conv2);let a=xa(e,2,2,"valid"),r=It(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=It(o);n=et([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=et([n,p],2)}return a=s?et([a,r],3):a,n=X(a,n),n=Ke(n),n}var yl=class extends pn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return O(()=>{let a=re(t.toBatchTensor(150,!0),"float32"),s=Ya(a,[122.782,117.001,104.298]).div(255),i=Ig(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Za(i,n.conv32_1),i=Za(i,n.conv32_2),i=Za(i,n.conv32_3),i=Yd(i,n.conv64_down),i=Za(i,n.conv64_1),i=Za(i,n.conv64_2),i=Za(i,n.conv64_3),i=Yd(i,n.conv128_down),i=Za(i,n.conv128_1),i=Za(i,n.conv128_2),i=Yd(i,n.conv256_down),i=Za(i,n.conv256_1),i=Za(i,n.conv256_2),i=Yd(i,n.conv256_down_out);let o=i.mean([1,2]);return $e(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=O(()=>dt(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 SD(t)}extractParams(t){return ID(t)}};function bge(e){let t=new yl;return t.extractWeights(e),t}function Sg(e,t){return{...e,...{descriptor:t}}}function yge(e){return typeof e.age=="number"}function Ng(e,t){return{...e,...{age:t}}}function xge(e){return(e.gender==="male"||e.gender==="female")&&_p(e.genderProbability)}function Tg(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function vge(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=je(e(l)),c=je(e(l)),h=je(e(l)),m=je(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:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Da(e(l*u*p*p),[p,p,l,u]),m=je(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=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"),b=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),v=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:b,conv_10:y,conv_11:x,conv_12:v,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),N=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),_=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"),$=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:v,class_predictor:I},box_predictor_3:{box_encoding_predictor:N,class_predictor:C},box_predictor_4:{box_encoding_predictor:_,class_predictor:F},box_predictor_5:{box_encoding_predictor:D,class_predictor:$}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function ND(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=vge(n,t),i=r(),o=s(),u={extra_dim:Nd(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 wge(e,t){let n=ia(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:b,batch_norm_variance:y},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,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}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 TD(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=wge(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Wr(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 _n(e,t),{params:s,paramMappings:t}}function Oa(e,t,n){return O(()=>{let a=$t(e,t.filters,n,"same");return a=X(a,t.batch_norm_offset),an(a,0,6)})}var kge=.0010000000474974513;function Ige(e,t,n){return O(()=>{let a=As(e,t.filters,n,"same");return a=_s(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,kge),an(a,0,6)})}function Sge(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function CD(e,t){return O(()=>{let n,a=Oa(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=Sge(o);a=Ige(a,s.depthwise_conv,l),a=Oa(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 Nge(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]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function ED(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=Nge(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function Tge(e){let t=dt(De(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[X(t[0],he(n[0],2)),X(t[1],he(n[1],2))];return{sizes:n,centers:a}}function Cge(e,t){let{sizes:n,centers:a}=Tge(e),r=dt(De(t,[1,0])),s=he(z(mn(he(r[2],5)),n[0]),2),i=X(z(he(r[0],10),n[0]),a[0]),o=he(z(mn(he(r[3],5)),n[1]),2),l=X(z(he(r[1],10),n[1]),a[1]);return De(Ft([pe(i,s),pe(l,o),X(i,s),X(l,o)]),[1,0])}function _D(e,t,n){return O(()=>{let a=e.shape[0],r=Cge(W(On(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ma(Ve(t,[0,0,1],[-1,-1,-1])),i=Ve(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function xl(e,t){return O(()=>{let n=e.shape[0],a=W(fl(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(fl(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function AD(e,t,n){return O(()=>{let a=Oa(e,n.conv_0,[1,1]),r=Oa(a,n.conv_1,[2,2]),s=Oa(r,n.conv_2,[1,1]),i=Oa(s,n.conv_3,[2,2]),o=Oa(i,n.conv_4,[1,1]),l=Oa(o,n.conv_5,[2,2]),u=Oa(l,n.conv_6,[1,1]),p=Oa(u,n.conv_7,[2,2]),d=xl(t,n.box_predictor_0),c=xl(e,n.box_predictor_1),h=xl(r,n.box_predictor_2),m=xl(i,n.box_predictor_3),f=xl(l,n.box_predictor_4),g=xl(p,n.box_predictor_5),b=et([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=et([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ia=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 Ws=class extends pn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return O(()=>{let a=re(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=CD(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=AD(s.out,s.conv11,n.prediction_layer);return _D(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ia(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[v,I]=[Math.max(0,b[x][0]),Math.min(1,b[x][2])].map(_=>_*g),[N,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(_=>_*f);return new Tt(p[x],new ll(N,v,C-N,I-v),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return TD(t)}extractParams(t){return ND(t)}};function FD(e){let t=new Ws;return t.extractWeights(e),t}function Ege(e){return FD(e)}var Jk=class extends Ws{};var $D=.4,DD=[new Ue(.738768,.874946),new Ue(2.42204,2.65704),new Ue(4.30971,7.04493),new Ue(10.246,4.59428),new Ue(12.6868,11.8741)],RD=[new Ue(1.603231,2.094468),new Ue(6.041143,7.080126),new Ue(2.882459,3.518061),new Ue(4.266906,5.178857),new Ue(9.041765,10.66308)],MD=[117.001,114.697,97.404],OD="tiny_yolov2_model",PD="tiny_yolov2_separable_conv_model";var Cg=e=>typeof e=="number";function Qk(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(!Cg(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=>Cg(t.x)&&Cg(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(Cg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Vp(e){return O(()=>{let t=z(e,xe(.10000000149011612));return X(Ke(pe(e,t)),t)})}function Ur(e,t){return O(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$t(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=X(n,t.conv.bias),Vp(n)})}function Gr(e,t){return O(()=>{let n=va(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ds(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=X(n,t.bias),Vp(n)})}function _ge(e,t){let n=Mp(e,t);function a(i,o){let l=je(e(i)),u=je(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`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=Op(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function LD(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=An(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=_ge(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,v=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),N=u(h,m,"conv2"),C=u(m,f,"conv3"),_=u(f,g,"conv4"),F=u(g,b,"conv5"),D=y?u(b,y,"conv6"):void 0,$=x?u(y,x,"conv7"):void 0,S=o(x||y||b,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}else{let[d,c,h,m,f,g,b,y,x]=a,v=l(d,c,"conv0"),I=l(c,h,"conv1"),N=l(h,m,"conv2"),C=l(m,f,"conv3"),_=l(f,g,"conv4"),F=l(g,b,"conv5"),D=l(b,y,"conv6"),$=l(y,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:v,conv1:I,conv2:N,conv3:C,conv4:_,conv5:F,conv6:D,conv7:$,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function Age(e,t){let n=ia(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=Pp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function zD(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Age(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 _n(e,n),{params:i,paramMappings:n}}var Ja=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 Eg=class Eg extends pn{constructor(t){super("TinyYolov2"),Qk(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=Ur(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Ur(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=Ur(a,n.conv6),a=Ur(a,n.conv7),fl(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Vp(fl(t,n.conv0,"valid",!1)):Gr(t,n.conv0);return a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv1),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv2),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv3),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv4),a=Dt(a,[2,2],[2,2],"same"),a=Gr(a,n.conv5),a=Dt(a,[2,2],[1,1],"same"),a=n.conv6?Gr(a,n.conv6):a,a=n.conv7?Gr(a,n.conv7):a,fl(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return O(()=>{let r=re(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?Ya(r,this.config.meanRgb):r,r=r.div(255),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await vt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new Ja(n),s=await vt(t),i=await this.forwardInput(s,a),o=O(()=>dt(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 p=u.map(g=>g.box),d=u.map(g=>g.score),c=u.map(g=>g.classScore),h=u.map(g=>this.config.classes[g.label]);return _k(p.map(g=>g.rescale(a)),d,this.config.iouThreshold,!0).map(g=>new ol(d[g],c[g],h[g],p[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return zD(t,this.config)}extractParams(t){let n=this.config.filterSizes||Eg.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 LD(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],p=this.config.anchors.length,[d,c,h]=O(()=>{let b=t.reshape([u,u,p,this.boxEncodingSize]),y=b.slice([0,0,0,0],[u,u,p,4]),x=b.slice([0,0,0,4],[u,u,p,1]),v=this.withClassScores?qa(b.slice([0,0,0,5],[u,u,p,this.config.classes.length]),3):xe(0);return[y,x,v]}),m=[],f=await c.array(),g=await d.array();for(let b=0;ba){let I=(y+zd(g[b][y][x][0]))/u*o,N=(b+zd(g[b][y][x][1]))/u*l,C=Math.exp(g[b][y][x][2])*this.config.anchors[x].x/u*o,_=Math.exp(g[b][y][x][3])*this.config.anchors[x].y/u*l,F=I-C/2,D=N-_/2,$={row:b,col:y,anchor:x},{classScore:S,label:M}=this.withClassScores?await this.extractPredictedClass(h,$):{classScore:1,label:0};m.push({box:new il(F,D,F+C,D+_),score:v,classScore:v*S,label:M,...$})}}return d.dispose(),c.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)}};Eg.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Up=Eg;var vl=class extends Up{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:$D,classes:["face"],...t?{anchors:RD,meanRgb:MD}:{anchors:DD,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 Tt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?PD:OD}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Fge(e,t=!0){let n=new vl(t);return n.extractWeights(e),n}var Zd=class extends Ja{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Sa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function wl(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>gl(l)?r(l):l.detection),i=a||(t instanceof Ce?await Rp(t,s):await Dp(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ce&&l.dispose()),o}async function Gp(e,t,n,a,r){return wl([e],t,async s=>n(s[0]),a,r)}var WD=.4,BD=[new Ue(1.603231,2.094468),new Ue(6.041143,7.080126),new Ue(2.882459,3.518061),new Ue(4.266906,5.178857),new Ue(9.041765,10.66308)],VD=[117.001,114.697,97.404];var kl=class extends Up{constructor(){let t={withSeparableConvs:!0,iouThreshold:WD,classes:["face"],anchors:BD,meanRgb:VD,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 Tt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var nt={ssdMobilenetv1:new Ws,tinyFaceDetector:new kl,tinyYolov2:new vl,faceLandmark68Net:new bl,faceLandmark68TinyNet:new Xd,faceRecognitionNet:new yl,faceExpressionNet:new qd,ageGenderNet:new Kd},UD=(e,t)=>nt.ssdMobilenetv1.locateFaces(e,t),$ge=(e,t)=>nt.tinyFaceDetector.locateFaces(e,t),Dge=(e,t)=>nt.tinyYolov2.locateFaces(e,t),GD=e=>nt.faceLandmark68Net.detectLandmarks(e),Rge=e=>nt.faceLandmark68TinyNet.detectLandmarks(e),Mge=e=>nt.faceRecognitionNet.computeFaceDescriptor(e),Oge=e=>nt.faceExpressionNet.predictExpressions(e),Pge=e=>nt.ageGenderNet.predictAgeAndGender(e),HD=e=>nt.ssdMobilenetv1.load(e),Lge=e=>nt.tinyFaceDetector.load(e),zge=e=>nt.tinyYolov2.load(e),Wge=e=>nt.faceLandmark68Net.load(e),Bge=e=>nt.faceLandmark68TinyNet.load(e),Vge=e=>nt.faceRecognitionNet.load(e),Uge=e=>nt.faceExpressionNet.load(e),Gge=e=>nt.ageGenderNet.load(e),Hge=HD,jge=UD,qge=GD;var _g=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Il=class extends _g{async run(){let t=await this.parentTask,n=await wl(t,this.input,async a=>Promise.all(a.map(r=>nt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>bg(a,n[r]))}withAgeAndGender(){return new Nl(this,this.input)}},Sl=class extends _g{async run(){let t=await this.parentTask;if(!t)return;let n=await Gp(t,this.input,a=>nt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return bg(t,n)}withAgeAndGender(){return new Tl(this,this.input)}},Bs=class extends Il{withAgeAndGender(){return new Us(this,this.input)}withFaceDescriptors(){return new Hr(this,this.input)}},Vs=class extends Sl{withAgeAndGender(){return new Gs(this,this.input)}withFaceDescriptor(){return new jr(this,this.input)}};var Ag=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Nl=class extends Ag{async run(){let t=await this.parentTask,n=await wl(t,this.input,async a=>Promise.all(a.map(r=>nt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Ng(Tg(a,i,o),s)})}withFaceExpressions(){return new Il(this,this.input)}},Tl=class extends Ag{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Gp(t,this.input,s=>nt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Ng(Tg(t,a,r),n)}withFaceExpressions(){return new Sl(this,this.input)}},Us=class extends Nl{withFaceExpressions(){return new Bs(this,this.input)}withFaceDescriptors(){return new Hr(this,this.input)}},Gs=class extends Tl{withFaceExpressions(){return new Vs(this,this.input)}withFaceDescriptor(){return new jr(this,this.input)}};var Jd=class extends Sa{constructor(n,a){super();this.parentTask=n;this.input=a}},Hr=class extends Jd{async run(){let t=await this.parentTask;return(await wl(t,this.input,a=>Promise.all(a.map(r=>nt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Sg(t[r],a))}withFaceExpressions(){return new Bs(this,this.input)}withAgeAndGender(){return new Us(this,this.input)}},jr=class extends Jd{async run(){let t=await this.parentTask;if(!t)return;let n=await Gp(t,this.input,a=>nt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Sg(t,n)}withFaceExpressions(){return new Vs(this,this.input)}withAgeAndGender(){return new Gs(this,this.input)}};var Qd=class extends Sa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?nt.faceLandmark68TinyNet:nt.faceLandmark68Net}},eh=class extends Qd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Ce?await Rp(this.input,n):await Dp(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Ce&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>Wp(i,r[o]))}withFaceExpressions(){return new Bs(this,this.input)}withAgeAndGender(){return new Us(this,this.input)}withFaceDescriptors(){return new Hr(this,this.input)}},th=class extends Qd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ce?await Rp(this.input,[n]):await Dp(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ce&&s.dispose()),Wp(t,r)}withFaceExpressions(){return new Vs(this,this.input)}withAgeAndGender(){return new Gs(this,this.input)}withFaceDescriptor(){return new jr(this,this.input)}};var nh=class extends Sa{constructor(n,a=new Ia){super();this.input=n;this.options=a}},Hp=class extends nh{async run(){let{input:t,options:n}=this,a;if(n instanceof Zd)a=nt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ia)a=nt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Ja)a=nt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>pl({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new eh(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Il(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Nl(this.runAndExtendWithFaceDetections(),this.input)}},ah=class extends nh{async run(){let t=await new Hp(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?pl({},n):void 0)})}withFaceLandmarks(t=!1){return new th(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Sl(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Tl(this.runAndExtendWithFaceDetection(),this.input)}};function Kge(e,t=new Ia){return new ah(e,t)}function Fg(e,t=new Ia){return new Hp(e,t)}async function jD(e,t){return Fg(e,new Ia(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Xge(e,t={}){return Fg(e,new Ja(t)).withFaceLandmarks().withFaceDescriptors()}var Yge=jD;function eI(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*s,0))}var tI=class e{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 zs)return i;if(i instanceof Float32Array)return new zs(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new zs(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=>eI(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Ap(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>zs.fromJSON(a));return new e(n,t.distanceThreshold)}};function Zge(e){let t=new kl;return t.extractWeights(e),t}function qD(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=>qD(r,{width:n,height:a}));if(gl(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Wp(pl(e,r),s)}return xr(e)?pl(e,e.detection.forSize(n,a)):e instanceof sa||e instanceof Tt?e.forSize(n,a):e}var Jge=hD;return $R(Qge);})(); diff --git a/dist/face-api.node-gpu.js b/dist/face-api.node-gpu.js index 06f8a7a..7d8ec81 100644 --- a/dist/face-api.node-gpu.js +++ b/dist/face-api.node-gpu.js @@ -4,4 +4,4 @@ author: ' */ -"use strict";var ln=Object.create;var tr=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,gn=Object.prototype.hasOwnProperty;var xn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Sr=(o,t)=>{for(var e in t)tr(o,e,{get:t[e],enumerable:!0})},_o=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of hn(t))!gn.call(o,n)&&n!==e&&tr(o,n,{get:()=>t[n],enumerable:!(r=dn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?ln(bn(o)):{},_o(t||!o||!o.__esModule?tr(e,"default",{value:o,enumerable:!0}):e,o)),vn=o=>_o(tr({},"__esModule",{value:!0}),o);var x=xn((Ya,Br)=>{"use strict";var Wr=Object.defineProperty,yn=Object.getOwnPropertyDescriptor,_n=Object.getOwnPropertyNames,Tn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _n(t))!Tn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=yn(t,n))||r.enumerable});return o},wn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Fn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>In});Br.exports=Fn(kr);wn(kr,require("@tensorflow/tfjs-node-gpu"),Br.exports);var To="4.16.0",Dn="4.16.0",En="4.16.0",Mn="4.16.0",Cn="4.16.0",In={tfjs:To,"tfjs-core":To,"tfjs-converter":Dn,"tfjs-backend-cpu":En,"tfjs-backend-webgl":Mn,"tfjs-backend-wasm":Cn}});var Ba={};Sr(Ba,{AgeGenderNet:()=>He,BoundingBox:()=>Ot,Box:()=>L,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>_t,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Tt,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>R,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>gt,FaceLandmark68Net:()=>Zt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>H,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Yt,FaceMatch:()=>me,FaceMatcher:()=>vo,FaceRecognitionNet:()=>Kt,Gender:()=>_r,LabeledBox:()=>pe,LabeledFaceDescriptors:()=>Et,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>Ht,Point:()=>_,PredictedBox:()=>Ur,Rect:()=>zt,SsdMobilenetv1:()=>It,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>re,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>te,TinyYolov2Options:()=>st,allFaces:()=>Sa,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>xa,createCanvas:()=>Xt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>ua,createFaceRecognitionNet:()=>ta,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Aa,createTinyYolov2:()=>da,detectAllFaces:()=>Lr,detectFaceLandmarks:()=>mn,detectFaceLandmarksTiny:()=>ga,detectLandmarks:()=>Ia,detectSingleFace:()=>Na,draw:()=>co,env:()=>w,euclideanDistance:()=>xo,extendWithAge:()=>Dr,extendWithFaceDescriptor:()=>Fr,extendWithFaceDetection:()=>Vt,extendWithFaceExpressions:()=>gr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Er,extractFaceTensors:()=>le,extractFaces:()=>fe,fetchImage:()=>On,fetchJson:()=>no,fetchNetWeights:()=>Hn,fetchOrThrow:()=>ht,fetchVideo:()=>zn,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ut,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>Sn,iou:()=>zr,isMediaElement:()=>sr,isMediaLoaded:()=>Ae,isWithAge:()=>ea,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>qt,isWithGender:()=>ra,loadAgeGenderModel:()=>Ea,loadFaceDetectionModel:()=>Ma,loadFaceExpressionModel:()=>Da,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>wa,loadFaceRecognitionModel:()=>Fa,loadSsdMobilenetv1Model:()=>pn,loadTinyFaceDetectorModel:()=>_a,loadTinyYolov2Model:()=>Ta,loadWeightMap:()=>ao,locateFaces:()=>Ca,matchDimensions:()=>Yn,minBbox:()=>Yr,nets:()=>F,nonMaxSuppression:()=>Vr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>ya,recognizeFaceExpressions:()=>va,resizeResults:()=>fn,resolveInput:()=>Gt,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>cn,tf:()=>Wa,tinyFaceDetector:()=>ha,tinyYolov2:()=>ba,toNetInput:()=>D,utils:()=>Hr,validateConfig:()=>ho,version:()=>ka});module.exports=vn(Ba);var Wa=v(x());var co={};Sr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Se,DrawBoxOptions:()=>nr,DrawFaceLandmarks:()=>vr,DrawFaceLandmarksOptions:()=>xr,DrawTextField:()=>jt,DrawTextFieldOptions:()=>ue,drawContour:()=>lt,drawDetections:()=>$n,drawFaceExpressions:()=>Vn,drawFaceLandmarks:()=>jn});function lt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},s)=>{let a=t[s];o.moveTo(a.x,a.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 Hr={};Sr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>$t,isDimensions:()=>rr,isEven:()=>er,isFloat:()=>$r,isTensor:()=>Bt,isTensor1D:()=>Nn,isTensor2D:()=>Rr,isTensor3D:()=>dt,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>ce,range:()=>ct,round:()=>Rt});var Po=v(x());var R=class o{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 o(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Nn(o){return Bt(o,1)}function Rr(o){return Bt(o,2)}function dt(o){return Bt(o,3)}function U(o){return Bt(o,4)}function $r(o){return o%1!==0}function er(o){return o%2===0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function rr(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new R(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new _(0,0)).div(new _(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function ce(o){return et(o)&&o>=0&&o<=1}var _=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var L=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!o.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),s=[r.x,r.y,r.width,r.height].every(et);if(!s&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[a,i,c,m]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:a,y:i,width:c,height:m},"Box.constructor",e),this._x=a,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 _(this.left,this.top)}get topRight(){return new _(this.right,this.top)}get bottomLeft(){return new _(this.left,this.bottom)}get bottomRight(){return new _(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new o({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new o({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,s=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:a,edy:c,dx:s,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new o({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 Ot=class extends L{constructor(t,e,r,n,s=!1){super({left:t,top:e,right:r,bottom:n},s)}};var Ht=class o{constructor(t,e,r,n,s){this._imageDims=new R(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new L(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 L(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class o extends Ht{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:s}=super.forSize(t,e);return new o(r,n,s)}};function zr(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)),s=r*n;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function Yr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:a,boxIndex:i})).sort((a,i)=>a.score-i.score).map(a=>a.boxIndex),s=[];for(;n.length>0;){let a=n.pop();s.push(a);let i=n,c=[];for(let m=0;mc[p]<=e)}return s}var mt=v(x());function rt(o,t){return mt.tidy(()=>{let[e,r,n]=t,s=mt.fill([...o.shape.slice(0,3),1],e,"float32"),a=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([s,a,i],3);return mt.sub(o,c)})}var Dt=v(x());function Gr(o,t=!1){return Dt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),s=Math.round(n*(t?.5:1)),a=e>r?2:1,i=f=>{let l=o.shape.slice();return l[a]=f,Dt.fill(l,0,"float32")},c=i(s),m=n-c.shape[a],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Dt.cast(f,"float32"));return Dt.concat(u,a)})}function Ln(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 Ne(o){return 1/(1+Math.exp(-o))}function Sn(o){return Math.log(o/(1-o))}var zt=class extends L{constructor(t,e,r,n,s=!1){super({x:t,y:e,width:r,height:n},s)}};var An=.5,Wn=.43,kn=.45,H=class{constructor(t,e,r=new _(0,0)){let{width:n,height:s}=e;this._imgDims=new R(n,s),this._shift=r,this._positions=t.map(a=>a.mul(new _(n,s)).add(r))}get shift(){return new _(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 _(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 _(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof M?t.box.floor():new L(t);return this.shiftBy(s.x,s.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,s=u=>n.sub(u).magnitude(),a=(s(e)+s(r))/2,i=Math.floor(a/kn),c=$t(t),m=Math.floor(Math.max(0,c.x-An*i)),p=Math.floor(Math.max(0,c.y-Wn*i));return new zt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Yr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends H{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var Yt=class extends H{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 me=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 pe=class extends L{static assertIsValidLabeledBox(t,e){if(L.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 Et=class o{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 o(t.label,e)}};var Ur=class extends pe{static assertIsValidPredictedBox(t,e){if(pe.assertIsValidLabeledBox(t,e),!ce(t.score)||!ce(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 Vt(o,t){return{...o,...{detection:t}}}function Xr(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Le(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function or(o){let t="";if(!o&&Le())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,s)=>{o.readFile(r,(a,i)=>a?s(a):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},a=global.fetch,i=or();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:s,fetch:a,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var S;function Bn(){if(!S)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return S}function Zr(o){S=o}function Kr(){return qr()?Zr(Xr()):Le()?Zr(Jr()):null}function Rn(o){if(S||Kr(),!S)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=S.Canvas,Image:e=S.Image}=o;S.Canvas=t,S.Image=e,S.createCanvasElement=o.createCanvasElement||(()=>new t),S.createImageElement=o.createImageElement||(()=>new e),S.ImageData=o.ImageData||S.ImageData,S.Video=o.Video||S.Video,S.fetch=o.fetch||S.fetch,S.readFile=o.readFile||S.readFile}var w={getEnv:Bn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:or,createNodejsEnv:Jr,monkeyPatch:Rn,isBrowser:qr,isNodejs:Le};Kr();function Gt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Gt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),ue=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:s,fontStyle:a,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=a||"Georgia",this.padding=i||4}},jt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new ue(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,T=c+u.y+(l+1)*a;r.fillText(f,b,T)})}};var nr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let a={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new ue({...a,...s})}},Se=class{constructor(t,e={}){this.box=new L(t),this.options=new nr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:s,y:a,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(s,a,i,c);let{label:m}=this.options;m&&new jt([m],{x:s-n/2,y:a},this.options.drawLabelOptions).draw(t)}};function $n(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,s=r instanceof M?r.box:pt(r)?r.detection.box:new L(r),a=n?`${Rt(n)}`:void 0;new Se(s,{label:a}).draw(o)})}var Te=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ae(o)){t(null);return}function r(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),e(s))}function n(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(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 Ut(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new R(o.naturalWidth,o.naturalHeight):o instanceof e?new R(o.videoWidth,o.videoHeight):new R(o.width,o.height)}function Xt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ut(o),s=Xt({width:r,height:n});return o instanceof e?$(s).putImageData(o,0,0):$(s).drawImage(o,0,0,r,n),s}var ar=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,s]=o.shape.slice(U(o)?1:0),a=ar.tidy(()=>o.as3D(r,n,s).toInt());return await ar.browser.toPixels(a,e),a.dispose(),e}function sr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var z=v(x());function oo(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 Xt({width:1,height:1});let s=Ut(o),a=t/Math.max(s.height,s.width),i=a*s.width,c=a*s.height,m=Xt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&$(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(dt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let a=r.shape[0];if(a!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${a} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let s=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=s,this._inputDimensions[n]=[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 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 Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,z.tidy(()=>{let r=ct(this.batchSize,0,1).map(s=>{let a=this.getInput(s);if(a instanceof z.Tensor){let i=U(a)?a:z.expandDims(a);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=z.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(a instanceof w.getEnv().Canvas)return z.browser.fromPixels(oo(a,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${a}`)});return z.stack(r.map(s=>z.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof ut)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(Gt);return r.forEach((n,s)=>{if(!sr(n)&&!dt(n)&&!U(n))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let a=n.shape[0];if(a!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${a} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>sr(n)&&to(n))),new ut(r,Array.isArray(o))}async function fe(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let a=await D(o);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=a.getInput(0);r=i instanceof e?i:await ro(i)}let n=$(r);return t.map(a=>a instanceof M?a.forSize(r.width,r.height).box.floor():a).map(a=>a.clipAtImageBorders(r.width,r.height)).map(({x:a,y:i,width:c,height:m})=>{let p=Xt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(a,i,c,m),0,0),p})}var ir=v(x());async function le(o,t){if(!dt(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return ir.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>ir.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function ht(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 On(o){let t=await ht(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 eo(e)}async function no(o){return(await ht(o)).json()}async function Hn(o){return new Float32Array(await(await ht(o)).arrayBuffer())}function wo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function zn(o){let t=await ht(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return wo(e)}var Fo=v(x());function cr(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),s=o.endsWith(".json")?n[n.length-1]:e,a=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return a=o.startsWith("/")?`/${a}`:a,{modelBaseUri:a,manifestUri:a==="/"?`/${s}`:`${a}/${s}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=cr(o,t),n=await no(e);return Fo.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Ut(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ve=v(x());var bt=v(x());var A=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 bt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof bt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=bt.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 ao(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}=cr(t,this.getDefaultModelName()),s=m=>Promise.all(m.map(p=>e(p).then(u=>typeof u=="string"?Buffer.from(u):u.buffer))),a=bt.io.weightsLoaderFactory(s),i=JSON.parse((await e(r)).toString()),c=await a(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((s,a)=>{if(!s.nextObj.hasOwnProperty(a))throw new Error(`traversePropertyPath - object does not have property ${a}, for path ${t}`);return{obj:s.nextObj,objProp:a,nextObj:s.nextObj[a]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof bt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var E=v(x());var de=v(x());function O(o,t,e){return de.tidy(()=>{let r=de.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=de.add(r,t.bias),r})}function mr(o,t,e=!1){return E.tidy(()=>{let r=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),s=E.relu(E.add(r,n)),a=O(s,t.conv2,[1,1]);return E.relu(E.add(r,E.add(n,a)))})}function ke(o,t,e=!1,r=!0){return E.tidy(()=>{let n=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),s=O(n,t.conv1,[1,1]),a=E.relu(E.add(n,s)),i=O(a,t.conv2,[1,1]),c=E.relu(E.add(n,E.add(s,i))),m=O(c,t.conv3,[1,1]);return E.relu(E.add(n,E.add(s,E.add(i,m))))})}var Mt=v(x());function Jt(o,t,e="same",r=!1){return Mt.tidy(()=>{let n=Mt.add(Mt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Mt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var pr=v(x());function he(o,t){return(e,r,n,s)=>{let a=pr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=pr.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:a,bias:i}}}var ur=v(x());function fr(o,t){return(e,r,n)=>{let s=ur.tensor2d(o(e*r),[e,r]),a=ur.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:s,bias:a}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function be(o,t){return(e,r,n)=>{let s=Re.tensor4d(o(9*e),[3,3,e,1]),a=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(s,a,i)}}function ge(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let s=o[e];if(!Bt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:n||e}),s}}function k(o){let t=o;function e(n){let s=t.slice(0,n);return t=t.slice(n),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function lr(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c,m=!1){let p=m?e(a,i,3,`${c}/conv0`):r(a,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(a,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(a,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock4Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i,dense3:c}}}function dr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function hr(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractDenseBlock4Params:e}=hr(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 xe=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ve.tidy(()=>{let r=ve.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ke(s,e.dense0,!0);return a=ke(a,e.dense1),a=ke(a,e.dense2),a=ke(a,e.dense3),a=ve.avgPool(a,[7,7],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Eo(t)}extractParams(t){return Do(t)}};var Io=v(x());var ye=v(x());function $e(o,t){return ye.tidy(()=>ye.add(ye.matMul(o,t.weights),t.bias))}function Mo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:s}=k(o),i=fr(n,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:i}}}function Co(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function br(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 _e=class extends A{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 Io.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t;return $e(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 Mo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Co(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,s=t.slice(0,t.length-n),a=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(a)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends _e{constructor(t=new xe){super("FaceExpressionNet",t)}forwardInput(t){return Te.tidy(()=>Te.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(Te.unstack(r).map(async a=>{let i=a.dataSync();return a.dispose(),i}));r.dispose();let s=n.map(a=>new gt(a));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof gt}function gr(o,t){return{...o,...{expressions:t}}}function Vn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let a=s instanceof gt?s:io(s)?s.expressions:void 0;if(!a)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=a.asSortedArray().filter(u=>u.probability>e),m=pt(s)?s.detection.box.bottomLeft:r||new _(0,0);new jt(c.map(u=>`${u.expression} (${Rt(u.probability)})`),m).draw(o)})}function qt(o){return pt(o)&&o.landmarks instanceof H&&o.unshiftedLandmarks instanceof H&&o.alignedRect instanceof M}function Gn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c.x-m.x)**2+(c.y-m.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c.x-m.x),f=Math.floor(m.x-p.x);return u-f},s=(c,m)=>{let p=Math.hypot(m.x-c.x,m.y-c.y),u=m.y-c.y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),T=m.x-c.x<0?-1:1;return b*T},a=(c,m,p)=>{let u=e(c,p),f=new _((c.x+p.x)/2,(c.y+p.y)/2),l=e(m,f),b=Math.atan(l/u),T=Math.floor(t(b)),h=f.y-m.y<0?-1:1;return T*h};if(!o||!o.positions||o.positions.length!==68)return r;let i=o.positions;return r.roll=s(i[27],i[66]),r.pitch=a(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:s}=o.detection,a=new M(o.detection.score,n.rescale(s.reverse()),s),i=Gn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:a,angle:i}}}var xr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:s,pointSize:a,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=a||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},vr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new xr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:s,lineColor:a,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Yt&&(e.strokeStyle=a,e.lineWidth=s,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 jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof H?r:qt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new vr(n).draw(o)})}var No="1.7.13";var ft=v(x());var N=v(x());function Jn(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c){let m=r(a,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(a,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(a,i){let c=r(a,a,`${i}/separable_conv0`),m=r(a,a,`${i}/separable_conv1`),p=r(a,a,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=k(o),{extractConvParams:s,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:c}=Jn(r,e),m=s(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};ct(t,0,1).forEach(g=>{l[`main_block_${g}`]=c(128,`middle_flow/main_block_${g}`)});let b=i(128,256,"exit_flow/reduction_block"),T=a(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:T};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:h}}}function qn(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(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 a(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:s,extractMainBlockParams:a}}function So(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:s,extractMainBlockParams:a}=qn(o,e),i=r("entry_flow/conv_in"),c=s("entry_flow/reduction_block_0"),m=s("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};ct(t,0,1).forEach(T=>{u[`main_block_${T}`]=a(`middle_flow/main_block_${T}`)});let f=s("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Ao(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?N.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Ao(o,t.expansion_conv,[2,2])),r}function Zn(o,t){let e=O(N.relu(o),t.separable_conv0,[1,1]);return e=O(N.relu(e),t.separable_conv1,[1,1]),e=O(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var yr=class extends A{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"),s=rt(r,[122.782,117.001,104.298]).div(255),a=N.relu(Ao(s,e.entry_flow.conv_in,[2,2]));return a=mo(a,e.entry_flow.reduction_block_0,!1),a=mo(a,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{a=Zn(a,e.middle_flow[`main_block_${i}`])}),a=mo(a,e.exit_flow.reduction_block),a=N.relu(O(a,e.exit_flow.separable_conv,[1,1])),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return So(t,this._numMainBlocks)}extractParams(t){return Lo(t,this._numMainBlocks)}};function Wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),n=fr(e,t),s=n(512,1,"fc/age"),a=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:a}}}}function ko(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var _r=(e=>(e.FEMALE="female",e.MALE="male",e))(_r||{});var He=class extends A{constructor(t=new yr(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 ft.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t,n=ft.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),s=$e(n,e.fc.age).as1D(),a=$e(n,e.fc.gender);return{age:s,gender:a}})}forwardInput(t){return ft.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ft.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=ft.unstack(r.age),s=ft.unstack(r.gender),a=n.map((c,m)=>({ageTensor:c,genderTensor:s[m]})),i=await Promise.all(a.map(async({ageTensor:c,genderTensor:m})=>{let p=c.dataSync()[0],u=m.dataSync()[0],f=u>.5,l=f?"male":"female",b=f?u:1-u;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:b}}));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 Wo(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),ko(r)}extractParams(t){let r=t.slice(0,t.length-1539),n=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var V=v(x());var we=class extends _e{postProcess(t,e,r){let n=r.map(({width:a,height:i})=>{let c=e/Math.max(i,a);return{width:a*c,height:i*c}}),s=n.length;return V.tidy(()=>{let a=(u,f)=>V.stack([V.fill([68],u,"float32"),V.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>la(c(f),m(f))))).div(V.stack(Array.from(Array(s),(u,f)=>a(n[f].width,n[f].height))))})}forwardInput(t){return V.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=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(s,a)=>{let i=Array.from(s.dataSync()),c=i.filter((p,u)=>er(u)),m=i.filter((p,u)=>!er(u));return new Yt(Array(68).fill(0).map((p,u)=>new _(c[u],m[u])),{height:e.getInputHeight(a),width:e.getInputWidth(a)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Zt=class extends we{constructor(t=new xe){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Fe=v(x());function Bo(o){let t=[],{extractDenseBlock3Params:e}=hr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Ro(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock3Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i}}}var Tr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Fe.tidy(()=>{let r=Fe.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=mr(s,e.dense0,!0);return a=mr(a,e.dense1),a=mr(a,e.dense2),a=Fe.avgPool(a,[14,14],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Bo(t)}extractParams(t){return Ro(t)}};var ze=class extends we{constructor(t=new Tr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Zt{};var nt=v(x());var De=v(x());var Pr=v(x());function $o(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:s,bias:a}=t.conv,i=De.conv2d(o,s,e,n);return i=De.add(i,a),i=$o(i,t.scale),r?De.relu(i):i}function Oo(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function wr(o,t){return uo(o,t,[2,2],!0,"valid")}var G=v(x());function Kn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return G.tidy(()=>G.transpose(G.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=G.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=G.tensor1d(o(i)),p=G.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function s(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function a(i,c,m,p,u=!1){let f=s((u?.5:1)*i,c,m,`${p}/conv1`),l=s(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:s,extractResidualLayerParams:a}}function Ho(o){let{extractWeights:t,getRemainingWeights:e}=k(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:s}=Kn(t,r),a=n(4704,32,7,"conv32_down"),i=s(9216,32,3,"conv32_1"),c=s(9216,32,3,"conv32_2"),m=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),u=s(36864,64,3,"conv64_1"),f=s(36864,64,3,"conv64_2"),l=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),T=s(147456,128,3,"conv128_1"),h=s(147456,128,3,"conv128_2"),g=s(589824,256,3,"conv256_down",!0),P=s(589824,256,3,"conv256_1"),y=s(589824,256,3,"conv256_2"),I=s(589824,256,3,"conv256_down_out"),j=G.tidy(()=>G.transpose(G.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:a,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:T,conv128_2:h,conv256_down:g,conv256_1:P,conv256_2:y,conv256_down_out:I,fc:j},paramMappings:r}}function Qn(o,t){let e=Y(o,t);function r(a){let i=e(`${a}/scale/weights`,1),c=e(`${a}/scale/biases`,1);return{weights:i,biases:c}}function n(a){let i=e(`${a}/conv/filters`,4),c=e(`${a}/conv/bias`,1),m=r(a);return{conv:{filters:i,bias:c},scale:m}}function s(a){return{conv1:n(`${a}/conv1`),conv2:n(`${a}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:s}}function zo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Qn(o,t),n=e("conv32_down"),s=r("conv32_1"),a=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),T=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),P=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let I={conv32_down:n,conv32_1:s,conv32_2:a,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:T,conv256_1:h,conv256_2:g,conv256_down_out:P,fc:y};return W(o,t),{params:I,paramMappings:t}}var B=v(x());function ot(o,t){let e=Oo(o,t.conv1);return e=fo(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Ye(o,t){let e=wr(o,t.conv1);e=fo(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),s=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=s?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var Kt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=wr(s,e.conv32_down);a=nt.maxPool(a,3,2,"valid"),a=ot(a,e.conv32_1),a=ot(a,e.conv32_2),a=ot(a,e.conv32_3),a=Ye(a,e.conv64_down),a=ot(a,e.conv64_1),a=ot(a,e.conv64_2),a=ot(a,e.conv64_3),a=Ye(a,e.conv128_down),a=ot(a,e.conv128_1),a=ot(a,e.conv128_2),a=Ye(a,e.conv256_down),a=ot(a,e.conv256_1),a=ot(a,e.conv256_2),a=Ye(a,e.conv256_down_out);let i=a.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(a=>a<=0))return new Float32Array(128);let e=await D(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(a=>a.data()));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return zo(t)}extractParams(t){return Ho(t)}};function ta(o){let t=new Kt;return t.extractWeights(o),t}function Fr(o,t){return{...o,...{descriptor:t}}}function ea(o){return typeof o.age=="number"}function Dr(o,t){return{...o,...{age:t}}}function ra(o){return(o.gender==="male"||o.gender==="female")&&ce(o.genderProbability)}function Er(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Nt=v(x());var at=v(x());function oa(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=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:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function s(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function a(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),u=s(128,128,"mobilenetv1/conv_3"),f=s(128,256,"mobilenetv1/conv_4"),l=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),T=s(512,512,"mobilenetv1/conv_7"),h=s(512,512,"mobilenetv1/conv_8"),g=s(512,512,"mobilenetv1/conv_9"),P=s(512,512,"mobilenetv1/conv_10"),y=s(512,512,"mobilenetv1/conv_11"),I=s(512,1024,"mobilenetv1/conv_12"),j=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,conv_8:h,conv_9:g,conv_10:P,conv_11:y,conv_12:I,conv_13:j}}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"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),T=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),P=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"),j=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Ft=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:P,class_predictor:y},box_predictor_2:{box_encoding_predictor:I,class_predictor:j},box_predictor_3:{box_encoding_predictor:tt,class_predictor:it},box_predictor_4:{box_encoding_predictor:q,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Ft}}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:s}=oa(e,t),a=n(),i=s(),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:a,prediction_layer:i,output_layer:m},paramMappings:t}}function na(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),T=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),h=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),g=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),P=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:T,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:P},pointwise_conv:r("MobilenetV1",m,l)}}function s(){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 a(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=a(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=a(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}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:s,extractPredictionLayerParams:c}}function Vo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=na(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!dt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:s,paramMappings:t}}var xt=v(x());var Ct=v(x());function Z(o,t,e){return Ct.tidy(()=>{let r=Ct.conv2d(o,t.filters,e,"same");return r=Ct.add(r,t.batch_norm_offset),Ct.clipByValue(r,0,6)})}var aa=.0010000000474974513;function sa(o,t,e){return xt.tidy(()=>{let r=xt.depthwiseConv2d(o,t.filters,e,"same");return r=xt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,aa),xt.clipByValue(r,0,6)})}function ia(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Go(o,t){return xt.tidy(()=>{let e,r=Z(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((s,a)=>{let i=a+1,c=ia(i);r=sa(r,s.depthwise_conv,c),r=Z(r,s.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 ca(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),a=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]),u=Math.max(r[e][1],r[e][3]),f=(a-n)*(i-s),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),T=Math.max(s,m),h=Math.min(a,p),g=Math.min(i,u),P=Math.max(h-b,0)*Math.max(g-T,0);return P/(f+l-P)}function jo(o,t,e,r,n){let s=o.shape[0],a=Math.min(e,s),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=a)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ca(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function ma(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function pa(o,t){let{sizes:e,centers:r}=ma(o),n=d.unstack(d.transpose(t,[1,0])),s=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),a=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(a,s),d.sub(c,i),d.add(a,s),d.add(c,i)]),[1,0])}function Uo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=pa(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let s=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),a=d.slice(s,[0,0,0],[-1,-1,1]);a=d.reshape(a,[r,a.shape[1]]);let i=d.unstack(n),c=d.unstack(a);return{boxes:i,scores:c}})}var Ge=v(x());var Ve=v(x());function Qt(o,t){return Ve.tidy(()=>{let e=o.shape[0],r=Ve.reshape(Jt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ve.reshape(Jt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),s=Z(n,e.conv_2,[1,1]),a=Z(s,e.conv_3,[2,2]),i=Z(a,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=Qt(t,e.box_predictor_0),f=Qt(o,e.box_predictor_1),l=Qt(n,e.box_predictor_2),b=Qt(a,e.box_predictor_3),T=Qt(c,e.box_predictor_4),h=Qt(p,e.box_predictor_5),g=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,T.boxPredictionEncoding,h.boxPredictionEncoding],1),P=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,T.classPrediction,h.classPrediction],1);return{boxPredictions:g,classPredictions:P}})}var X=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 It=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(512,!1),"float32"),n=Nt.sub(Nt.div(r,127.5),1),s=Go(n,e.mobilenetv1),{boxPredictions:a,classPredictions:i}=Xo(s.out,s.conv11,e.prediction_layer);return Uo(a,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),s=await D(t),{boxes:a,scores:i}=this.forwardInput(s),c=a[0],m=i[0];for(let y=1;y{let[I,j]=[Math.max(0,g[y][0]),Math.min(1,g[y][2])].map(q=>q*h),[tt,it]=[Math.max(0,g[y][1]),Math.min(1,g[y][3])].map(q=>q*T);return new M(p[y],new zt(tt,I,it-tt,j-I),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return c.dispose(),m.dispose(),P}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new It;return t.extractWeights(o),t}function ua(o){return Jo(o)}var lo=class extends It{};var qo=.4,Zo=[new _(.738768,.874946),new _(2.42204,2.65704),new _(4.30971,7.04493),new _(10.246,4.59428),new _(12.6868,11.8741)],Ko=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],Qo=[117.001,114.697,97.404],tn="tiny_yolov2_model",en="tiny_yolov2_separable_conv_model";var C=v(x());var Mr=o=>typeof o=="number";function ho(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(!Mr(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=>Mr(t.x)&&Mr(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(Mr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Ee(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function vt(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),Ee(e)})}var Lt=v(x());function yt(o,t){return Lt.tidy(()=>{let e=Lt.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Lt.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=Lt.add(e,t.bias),Ee(e)})}var bo=v(x());function fa(o,t){let e=he(o,t);function r(a,i){let c=bo.tensor1d(o(a)),m=bo.tensor1d(o(a));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(a,i,c){let m=e(a,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let s=be(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}}function rn(o,t,e,r){let{extractWeights:n,getRemainingWeights:s}=k(o),a=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=fa(n,a),p;if(t.withSeparableConvs){let[u,f,l,b,T,h,g,P,y]=r,I=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),j=m(f,l,"conv1"),tt=m(l,b,"conv2"),it=m(b,T,"conv3"),q=m(T,h,"conv4"),Pt=m(h,g,"conv5"),wt=P?m(g,P,"conv6"):void 0,Ft=y?m(P,y,"conv7"):void 0,ie=i(y||P||g,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}else{let[u,f,l,b,T,h,g,P,y]=r,I=c(u,f,"conv0"),j=c(f,l,"conv1"),tt=c(l,b,"conv2"),it=c(b,T,"conv3"),q=c(T,h,"conv4"),Pt=c(h,g,"conv5"),wt=c(g,P,"conv6"),Ft=c(P,y,"conv7"),ie=i(y,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:a}}function la(o,t){let e=Y(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 s(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let a=ge(e);return{extractConvParams:n,extractConvWithBatchNormParams:s,extractSeparableConvParams:a}}function on(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}=la(o,e),a;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;a={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:i>7?s("conv6"):void 0,conv7:i>8?s("conv7"):void 0,conv8:r("conv8")}}else a={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:a,paramMappings:e}}var st=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 Cr=class Cr extends A{constructor(t){super("TinyYolov2"),ho(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=vt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=vt(r,e.conv6),r=vt(r,e.conv7),Jt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ee(Jt(t,e.conv0,"valid",!1)):yt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?yt(r,e.conv6):r,r=e.conv7?yt(r,e.conv7):r,Jt(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(255),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 st(e),s=await D(t),a=await this.forwardInput(s,r),i=C.tidy(()=>C.unstack(a)[0].expandDims()),c={width:s.getInputWidth(0),height:s.getInputHeight(0)},m=await this.extractBoxes(i,s.getReshapedInputDimensions(0),n);a.dispose(),i.dispose();let p=m.map(h=>h.box),u=m.map(h=>h.score),f=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Vr(p.map(h=>h.rescale(r)),u,this.config.iouThreshold,!0).map(h=>new Ht(u[h],f[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return on(t,this.config)}extractParams(t){let e=this.config.filterSizes||Cr.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 rn(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:s}=e,a=Math.max(n,s),i=a/n,c=a/s,m=t.shape[1],p=this.config.anchors.length,[u,f,l]=C.tidy(()=>{let g=t.reshape([m,m,p,this.boxEncodingSize]),P=g.slice([0,0,0,0],[m,m,p,4]),y=g.slice([0,0,0,4],[m,m,p,1]),I=this.withClassScores?C.softmax(g.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[P,y,I]}),b=[],T=await f.array(),h=await u.array();for(let g=0;gr){let j=(P+Ne(h[g][P][y][0]))/m*i,tt=(g+Ne(h[g][P][y][1]))/m*c,it=Math.exp(h[g][P][y][2])*this.config.anchors[y].x/m*i,q=Math.exp(h[g][P][y][3])*this.config.anchors[y].y/m*c,Pt=j-it/2,wt=tt-q/2,Ft={row:g,col:P,anchor:y},{classScore:ie,label:yo}=this.withClassScores?await this.extractPredictedClass(l,Ft):{classScore:1,label:0};b.push({box:new Ot(Pt,wt,Pt+it,wt+q),score:I,classScore:I*ie,label:yo,...Ft})}}return u.dispose(),f.dispose(),l.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:n,anchor:s}=e,a=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>a[r][n][s][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}};Cr.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Me=Cr;var te=class extends Me{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:qo,classes:["face"],...t?{anchors:Ko,meanRgb:Qo}:{anchors:Zo,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?en:tn}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function da(o,t=!0){let e=new te(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var go=v(x());async function ee(o,t,e,r,n=({alignedRect:s})=>s){let s=o.map(c=>qt(c)?n(c):c.detection),a=r||(t instanceof go.Tensor?await le(t,s):await fe(t,s)),i=await e(a);return a.forEach(c=>c instanceof go.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return ee([o],t,async s=>e(s[0]),r,n)}var nn=.4,an=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],sn=[117.001,114.697,97.404];var re=class extends Me{constructor(){let t={withSeparableConvs:!0,iouThreshold:nn,classes:["face"],anchors:an,meanRgb:sn,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 F={ssdMobilenetv1:new It,tinyFaceDetector:new re,tinyYolov2:new te,faceLandmark68Net:new Zt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Kt,faceExpressionNet:new Oe,ageGenderNet:new He},cn=(o,t)=>F.ssdMobilenetv1.locateFaces(o,t),ha=(o,t)=>F.tinyFaceDetector.locateFaces(o,t),ba=(o,t)=>F.tinyYolov2.locateFaces(o,t),mn=o=>F.faceLandmark68Net.detectLandmarks(o),ga=o=>F.faceLandmark68TinyNet.detectLandmarks(o),xa=o=>F.faceRecognitionNet.computeFaceDescriptor(o),va=o=>F.faceExpressionNet.predictExpressions(o),ya=o=>F.ageGenderNet.predictAgeAndGender(o),pn=o=>F.ssdMobilenetv1.load(o),_a=o=>F.tinyFaceDetector.load(o),Ta=o=>F.tinyYolov2.load(o),Pa=o=>F.faceLandmark68Net.load(o),wa=o=>F.faceLandmark68TinyNet.load(o),Fa=o=>F.faceRecognitionNet.load(o),Da=o=>F.faceExpressionNet.load(o),Ea=o=>F.ageGenderNet.load(o),Ma=pn,Ca=cn,Ia=mn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},oe=class extends Ir{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>gr(r,e[n]))}withAgeAndGender(){return new ae(this,this.input)}},ne=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceExpressionNet.predictExpressions(r),this.extractedFaces);return gr(t,e)}withAgeAndGender(){return new se(this,this.input)}},St=class extends oe{withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},At=class extends ne{withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Nr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:s,gender:a,genderProbability:i}=e[n];return Dr(Er(r,a,i),s)})}withFaceExpressions(){return new oe(this,this.input)}},se=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,s=>F.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Dr(Er(t,r,n),e)}withFaceExpressions(){return new ne(this,this.input)}},Wt=class extends ae{withFaceExpressions(){return new St(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},kt=class extends se{withFaceExpressions(){return new At(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},_t=class extends Ue{async run(){let t=await this.parentTask;return(await ee(t,this.input,r=>Promise.all(r.map(n=>F.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Fr(t[n],r))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}},Tt=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Fr(t,e)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?F.faceLandmark68TinyNet:F.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof Xe.Tensor?await le(this.input,e):await fe(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),t.filter((a,i)=>n[i]).map((a,i)=>Pe(a,n[i]))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await le(this.input,[e]):await fe(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),Pe(t,n)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=F.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=F.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=F.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>Vt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new oe(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(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?Vt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new ne(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new se(this.runAndExtendWithFaceDetection(),this.input)}};function Na(o,t=new X){return new Qe(o,t)}function Lr(o,t=new X){return new Ie(o,t)}async function un(o,t){return Lr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Lr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Sa=un;function xo(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,s)=>n-r[s]).reduce((n,s)=>n+s*s,0))}var vo=class o{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,s=()=>`person ${n++}`;this._labeledDescriptors=r.map(a=>{if(a instanceof Et)return a;if(a instanceof Float32Array)return new Et(s(),[a]);if(a.descriptor&&a.descriptor instanceof Float32Array)return new Et(s(),[a.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=>xo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Et.fromJSON(r));return new o(e,t.distanceThreshold)}};function Aa(o){let t=new re;return t.extractWeights(o),t}function fn(o,t){let{width:e,height:r}=new R(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=>fn(n,{width:e,height:r}));if(qt(o)){let n=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(Vt(o,n),s)}return pt(o)?Vt(o,o.detection.forSize(e,r)):o instanceof H||o instanceof M?o.forSize(e,r):o}var ka=No;0&&(module.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,fetchVideo,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}); +"use strict";var ln=Object.create;var tr=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,gn=Object.prototype.hasOwnProperty;var xn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Sr=(o,t)=>{for(var e in t)tr(o,e,{get:t[e],enumerable:!0})},_o=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of hn(t))!gn.call(o,n)&&n!==e&&tr(o,n,{get:()=>t[n],enumerable:!(r=dn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?ln(bn(o)):{},_o(t||!o||!o.__esModule?tr(e,"default",{value:o,enumerable:!0}):e,o)),vn=o=>_o(tr({},"__esModule",{value:!0}),o);var x=xn((Ya,Br)=>{"use strict";var Wr=Object.defineProperty,yn=Object.getOwnPropertyDescriptor,_n=Object.getOwnPropertyNames,Tn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _n(t))!Tn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=yn(t,n))||r.enumerable});return o},wn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Fn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>In});Br.exports=Fn(kr);wn(kr,require("@tensorflow/tfjs-node-gpu"),Br.exports);var To="4.21.0",Dn="4.21.0",En="4.21.0",Mn="4.21.0",Cn="4.21.0",In={tfjs:To,"tfjs-core":To,"tfjs-converter":Dn,"tfjs-backend-cpu":En,"tfjs-backend-webgl":Mn,"tfjs-backend-wasm":Cn}});var Ba={};Sr(Ba,{AgeGenderNet:()=>He,BoundingBox:()=>Ot,Box:()=>L,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>_t,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Tt,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>R,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>gt,FaceLandmark68Net:()=>Zt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>H,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Yt,FaceMatch:()=>me,FaceMatcher:()=>vo,FaceRecognitionNet:()=>Kt,Gender:()=>_r,LabeledBox:()=>pe,LabeledFaceDescriptors:()=>Et,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>Ht,Point:()=>_,PredictedBox:()=>Ur,Rect:()=>zt,SsdMobilenetv1:()=>It,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>re,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>te,TinyYolov2Options:()=>st,allFaces:()=>Sa,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>xa,createCanvas:()=>Xt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>ua,createFaceRecognitionNet:()=>ta,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Aa,createTinyYolov2:()=>da,detectAllFaces:()=>Lr,detectFaceLandmarks:()=>mn,detectFaceLandmarksTiny:()=>ga,detectLandmarks:()=>Ia,detectSingleFace:()=>Na,draw:()=>co,env:()=>w,euclideanDistance:()=>xo,extendWithAge:()=>Dr,extendWithFaceDescriptor:()=>Fr,extendWithFaceDetection:()=>Vt,extendWithFaceExpressions:()=>gr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Er,extractFaceTensors:()=>le,extractFaces:()=>fe,fetchImage:()=>On,fetchJson:()=>no,fetchNetWeights:()=>Hn,fetchOrThrow:()=>ht,fetchVideo:()=>zn,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ut,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>Sn,iou:()=>zr,isMediaElement:()=>sr,isMediaLoaded:()=>Ae,isWithAge:()=>ea,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>qt,isWithGender:()=>ra,loadAgeGenderModel:()=>Ea,loadFaceDetectionModel:()=>Ma,loadFaceExpressionModel:()=>Da,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>wa,loadFaceRecognitionModel:()=>Fa,loadSsdMobilenetv1Model:()=>pn,loadTinyFaceDetectorModel:()=>_a,loadTinyYolov2Model:()=>Ta,loadWeightMap:()=>ao,locateFaces:()=>Ca,matchDimensions:()=>Yn,minBbox:()=>Yr,nets:()=>F,nonMaxSuppression:()=>Vr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>ya,recognizeFaceExpressions:()=>va,resizeResults:()=>fn,resolveInput:()=>Gt,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>cn,tf:()=>Wa,tinyFaceDetector:()=>ha,tinyYolov2:()=>ba,toNetInput:()=>D,utils:()=>Hr,validateConfig:()=>ho,version:()=>ka});module.exports=vn(Ba);var Wa=v(x());var co={};Sr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Se,DrawBoxOptions:()=>nr,DrawFaceLandmarks:()=>vr,DrawFaceLandmarksOptions:()=>xr,DrawTextField:()=>jt,DrawTextFieldOptions:()=>ue,drawContour:()=>lt,drawDetections:()=>$n,drawFaceExpressions:()=>Vn,drawFaceLandmarks:()=>jn});function lt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},s)=>{let a=t[s];o.moveTo(a.x,a.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 Hr={};Sr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>$t,isDimensions:()=>rr,isEven:()=>er,isFloat:()=>$r,isTensor:()=>Bt,isTensor1D:()=>Nn,isTensor2D:()=>Rr,isTensor3D:()=>dt,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>ce,range:()=>ct,round:()=>Rt});var Po=v(x());var R=class o{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 o(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Nn(o){return Bt(o,1)}function Rr(o){return Bt(o,2)}function dt(o){return Bt(o,3)}function U(o){return Bt(o,4)}function $r(o){return o%1!==0}function er(o){return o%2===0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function rr(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new R(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new _(0,0)).div(new _(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function ce(o){return et(o)&&o>=0&&o<=1}var _=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var L=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!o.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),s=[r.x,r.y,r.width,r.height].every(et);if(!s&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[a,i,c,m]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:a,y:i,width:c,height:m},"Box.constructor",e),this._x=a,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 _(this.left,this.top)}get topRight(){return new _(this.right,this.top)}get bottomLeft(){return new _(this.left,this.bottom)}get bottomRight(){return new _(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new o({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new o({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,s=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:a,edy:c,dx:s,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new o({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 Ot=class extends L{constructor(t,e,r,n,s=!1){super({left:t,top:e,right:r,bottom:n},s)}};var Ht=class o{constructor(t,e,r,n,s){this._imageDims=new R(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new L(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 L(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class o extends Ht{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:s}=super.forSize(t,e);return new o(r,n,s)}};function zr(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)),s=r*n;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function Yr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:a,boxIndex:i})).sort((a,i)=>a.score-i.score).map(a=>a.boxIndex),s=[];for(;n.length>0;){let a=n.pop();s.push(a);let i=n,c=[];for(let m=0;mc[p]<=e)}return s}var mt=v(x());function rt(o,t){return mt.tidy(()=>{let[e,r,n]=t,s=mt.fill([...o.shape.slice(0,3),1],e,"float32"),a=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([s,a,i],3);return mt.sub(o,c)})}var Dt=v(x());function Gr(o,t=!1){return Dt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),s=Math.round(n*(t?.5:1)),a=e>r?2:1,i=f=>{let l=o.shape.slice();return l[a]=f,Dt.fill(l,0,"float32")},c=i(s),m=n-c.shape[a],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Dt.cast(f,"float32"));return Dt.concat(u,a)})}function Ln(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 Ne(o){return 1/(1+Math.exp(-o))}function Sn(o){return Math.log(o/(1-o))}var zt=class extends L{constructor(t,e,r,n,s=!1){super({x:t,y:e,width:r,height:n},s)}};var An=.5,Wn=.43,kn=.45,H=class{constructor(t,e,r=new _(0,0)){let{width:n,height:s}=e;this._imgDims=new R(n,s),this._shift=r,this._positions=t.map(a=>a.mul(new _(n,s)).add(r))}get shift(){return new _(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 _(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 _(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof M?t.box.floor():new L(t);return this.shiftBy(s.x,s.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,s=u=>n.sub(u).magnitude(),a=(s(e)+s(r))/2,i=Math.floor(a/kn),c=$t(t),m=Math.floor(Math.max(0,c.x-An*i)),p=Math.floor(Math.max(0,c.y-Wn*i));return new zt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Yr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends H{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var Yt=class extends H{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 me=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 pe=class extends L{static assertIsValidLabeledBox(t,e){if(L.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 Et=class o{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 o(t.label,e)}};var Ur=class extends pe{static assertIsValidPredictedBox(t,e){if(pe.assertIsValidLabeledBox(t,e),!ce(t.score)||!ce(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 Vt(o,t){return{...o,...{detection:t}}}function Xr(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Le(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function or(o){let t="";if(!o&&Le())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,s)=>{o.readFile(r,(a,i)=>a?s(a):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},a=global.fetch,i=or();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:s,fetch:a,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var S;function Bn(){if(!S)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return S}function Zr(o){S=o}function Kr(){return qr()?Zr(Xr()):Le()?Zr(Jr()):null}function Rn(o){if(S||Kr(),!S)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=S.Canvas,Image:e=S.Image}=o;S.Canvas=t,S.Image=e,S.createCanvasElement=o.createCanvasElement||(()=>new t),S.createImageElement=o.createImageElement||(()=>new e),S.ImageData=o.ImageData||S.ImageData,S.Video=o.Video||S.Video,S.fetch=o.fetch||S.fetch,S.readFile=o.readFile||S.readFile}var w={getEnv:Bn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:or,createNodejsEnv:Jr,monkeyPatch:Rn,isBrowser:qr,isNodejs:Le};Kr();function Gt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Gt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),ue=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:s,fontStyle:a,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=a||"Georgia",this.padding=i||4}},jt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new ue(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,T=c+u.y+(l+1)*a;r.fillText(f,b,T)})}};var nr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let a={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new ue({...a,...s})}},Se=class{constructor(t,e={}){this.box=new L(t),this.options=new nr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:s,y:a,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(s,a,i,c);let{label:m}=this.options;m&&new jt([m],{x:s-n/2,y:a},this.options.drawLabelOptions).draw(t)}};function $n(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,s=r instanceof M?r.box:pt(r)?r.detection.box:new L(r),a=n?`${Rt(n)}`:void 0;new Se(s,{label:a}).draw(o)})}var Te=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ae(o)){t(null);return}function r(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),e(s))}function n(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(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 Ut(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new R(o.naturalWidth,o.naturalHeight):o instanceof e?new R(o.videoWidth,o.videoHeight):new R(o.width,o.height)}function Xt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ut(o),s=Xt({width:r,height:n});return o instanceof e?$(s).putImageData(o,0,0):$(s).drawImage(o,0,0,r,n),s}var ar=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,s]=o.shape.slice(U(o)?1:0),a=ar.tidy(()=>o.as3D(r,n,s).toInt());return await ar.browser.toPixels(a,e),a.dispose(),e}function sr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var z=v(x());function oo(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 Xt({width:1,height:1});let s=Ut(o),a=t/Math.max(s.height,s.width),i=a*s.width,c=a*s.height,m=Xt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&$(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(dt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let a=r.shape[0];if(a!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${a} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let s=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=s,this._inputDimensions[n]=[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 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 Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,z.tidy(()=>{let r=ct(this.batchSize,0,1).map(s=>{let a=this.getInput(s);if(a instanceof z.Tensor){let i=U(a)?a:z.expandDims(a);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=z.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(a instanceof w.getEnv().Canvas)return z.browser.fromPixels(oo(a,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${a}`)});return z.stack(r.map(s=>z.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof ut)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(Gt);return r.forEach((n,s)=>{if(!sr(n)&&!dt(n)&&!U(n))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let a=n.shape[0];if(a!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${a} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>sr(n)&&to(n))),new ut(r,Array.isArray(o))}async function fe(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let a=await D(o);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=a.getInput(0);r=i instanceof e?i:await ro(i)}let n=$(r);return t.map(a=>a instanceof M?a.forSize(r.width,r.height).box.floor():a).map(a=>a.clipAtImageBorders(r.width,r.height)).map(({x:a,y:i,width:c,height:m})=>{let p=Xt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(a,i,c,m),0,0),p})}var ir=v(x());async function le(o,t){if(!dt(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return ir.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>ir.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function ht(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 On(o){let t=await ht(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 eo(e)}async function no(o){return(await ht(o)).json()}async function Hn(o){return new Float32Array(await(await ht(o)).arrayBuffer())}function wo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function zn(o){let t=await ht(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return wo(e)}var Fo=v(x());function cr(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),s=o.endsWith(".json")?n[n.length-1]:e,a=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return a=o.startsWith("/")?`/${a}`:a,{modelBaseUri:a,manifestUri:a==="/"?`/${s}`:`${a}/${s}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=cr(o,t),n=await no(e);return Fo.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Ut(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ve=v(x());var bt=v(x());var A=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 bt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof bt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=bt.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 ao(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}=cr(t,this.getDefaultModelName()),s=m=>Promise.all(m.map(p=>e(p).then(u=>typeof u=="string"?Buffer.from(u):u.buffer))),a=bt.io.weightsLoaderFactory(s),i=JSON.parse((await e(r)).toString()),c=await a(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((s,a)=>{if(!s.nextObj.hasOwnProperty(a))throw new Error(`traversePropertyPath - object does not have property ${a}, for path ${t}`);return{obj:s.nextObj,objProp:a,nextObj:s.nextObj[a]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof bt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var E=v(x());var de=v(x());function O(o,t,e){return de.tidy(()=>{let r=de.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=de.add(r,t.bias),r})}function mr(o,t,e=!1){return E.tidy(()=>{let r=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),s=E.relu(E.add(r,n)),a=O(s,t.conv2,[1,1]);return E.relu(E.add(r,E.add(n,a)))})}function ke(o,t,e=!1,r=!0){return E.tidy(()=>{let n=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),s=O(n,t.conv1,[1,1]),a=E.relu(E.add(n,s)),i=O(a,t.conv2,[1,1]),c=E.relu(E.add(n,E.add(s,i))),m=O(c,t.conv3,[1,1]);return E.relu(E.add(n,E.add(s,E.add(i,m))))})}var Mt=v(x());function Jt(o,t,e="same",r=!1){return Mt.tidy(()=>{let n=Mt.add(Mt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Mt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var pr=v(x());function he(o,t){return(e,r,n,s)=>{let a=pr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=pr.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:a,bias:i}}}var ur=v(x());function fr(o,t){return(e,r,n)=>{let s=ur.tensor2d(o(e*r),[e,r]),a=ur.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:s,bias:a}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function be(o,t){return(e,r,n)=>{let s=Re.tensor4d(o(9*e),[3,3,e,1]),a=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(s,a,i)}}function ge(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let s=o[e];if(!Bt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:n||e}),s}}function k(o){let t=o;function e(n){let s=t.slice(0,n);return t=t.slice(n),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function lr(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c,m=!1){let p=m?e(a,i,3,`${c}/conv0`):r(a,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(a,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(a,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock4Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i,dense3:c}}}function dr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function hr(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractDenseBlock4Params:e}=hr(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 xe=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ve.tidy(()=>{let r=ve.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ke(s,e.dense0,!0);return a=ke(a,e.dense1),a=ke(a,e.dense2),a=ke(a,e.dense3),a=ve.avgPool(a,[7,7],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Eo(t)}extractParams(t){return Do(t)}};var Io=v(x());var ye=v(x());function $e(o,t){return ye.tidy(()=>ye.add(ye.matMul(o,t.weights),t.bias))}function Mo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:s}=k(o),i=fr(n,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:i}}}function Co(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function br(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 _e=class extends A{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 Io.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t;return $e(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 Mo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Co(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,s=t.slice(0,t.length-n),a=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(a)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends _e{constructor(t=new xe){super("FaceExpressionNet",t)}forwardInput(t){return Te.tidy(()=>Te.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(Te.unstack(r).map(async a=>{let i=a.dataSync();return a.dispose(),i}));r.dispose();let s=n.map(a=>new gt(a));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof gt}function gr(o,t){return{...o,...{expressions:t}}}function Vn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let a=s instanceof gt?s:io(s)?s.expressions:void 0;if(!a)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=a.asSortedArray().filter(u=>u.probability>e),m=pt(s)?s.detection.box.bottomLeft:r||new _(0,0);new jt(c.map(u=>`${u.expression} (${Rt(u.probability)})`),m).draw(o)})}function qt(o){return pt(o)&&o.landmarks instanceof H&&o.unshiftedLandmarks instanceof H&&o.alignedRect instanceof M}function Gn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c.x-m.x)**2+(c.y-m.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c.x-m.x),f=Math.floor(m.x-p.x);return u-f},s=(c,m)=>{let p=Math.hypot(m.x-c.x,m.y-c.y),u=m.y-c.y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),T=m.x-c.x<0?-1:1;return b*T},a=(c,m,p)=>{let u=e(c,p),f=new _((c.x+p.x)/2,(c.y+p.y)/2),l=e(m,f),b=Math.atan(l/u),T=Math.floor(t(b)),h=f.y-m.y<0?-1:1;return T*h};if(!o||!o.positions||o.positions.length!==68)return r;let i=o.positions;return r.roll=s(i[27],i[66]),r.pitch=a(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:s}=o.detection,a=new M(o.detection.score,n.rescale(s.reverse()),s),i=Gn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:a,angle:i}}}var xr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:s,pointSize:a,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=a||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},vr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new xr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:s,lineColor:a,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Yt&&(e.strokeStyle=a,e.lineWidth=s,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 jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof H?r:qt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new vr(n).draw(o)})}var No="1.7.14";var ft=v(x());var N=v(x());function Jn(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c){let m=r(a,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(a,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(a,i){let c=r(a,a,`${i}/separable_conv0`),m=r(a,a,`${i}/separable_conv1`),p=r(a,a,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=k(o),{extractConvParams:s,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:c}=Jn(r,e),m=s(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};ct(t,0,1).forEach(g=>{l[`main_block_${g}`]=c(128,`middle_flow/main_block_${g}`)});let b=i(128,256,"exit_flow/reduction_block"),T=a(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:T};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:h}}}function qn(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(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 a(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:s,extractMainBlockParams:a}}function So(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:s,extractMainBlockParams:a}=qn(o,e),i=r("entry_flow/conv_in"),c=s("entry_flow/reduction_block_0"),m=s("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};ct(t,0,1).forEach(T=>{u[`main_block_${T}`]=a(`middle_flow/main_block_${T}`)});let f=s("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Ao(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?N.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Ao(o,t.expansion_conv,[2,2])),r}function Zn(o,t){let e=O(N.relu(o),t.separable_conv0,[1,1]);return e=O(N.relu(e),t.separable_conv1,[1,1]),e=O(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var yr=class extends A{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"),s=rt(r,[122.782,117.001,104.298]).div(255),a=N.relu(Ao(s,e.entry_flow.conv_in,[2,2]));return a=mo(a,e.entry_flow.reduction_block_0,!1),a=mo(a,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{a=Zn(a,e.middle_flow[`main_block_${i}`])}),a=mo(a,e.exit_flow.reduction_block),a=N.relu(O(a,e.exit_flow.separable_conv,[1,1])),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return So(t,this._numMainBlocks)}extractParams(t){return Lo(t,this._numMainBlocks)}};function Wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),n=fr(e,t),s=n(512,1,"fc/age"),a=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:a}}}}function ko(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var _r=(e=>(e.FEMALE="female",e.MALE="male",e))(_r||{});var He=class extends A{constructor(t=new yr(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 ft.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t,n=ft.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),s=$e(n,e.fc.age).as1D(),a=$e(n,e.fc.gender);return{age:s,gender:a}})}forwardInput(t){return ft.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ft.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=ft.unstack(r.age),s=ft.unstack(r.gender),a=n.map((c,m)=>({ageTensor:c,genderTensor:s[m]})),i=await Promise.all(a.map(async({ageTensor:c,genderTensor:m})=>{let p=c.dataSync()[0],u=m.dataSync()[0],f=u>.5,l=f?"male":"female",b=f?u:1-u;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:b}}));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 Wo(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),ko(r)}extractParams(t){let r=t.slice(0,t.length-1539),n=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var V=v(x());var we=class extends _e{postProcess(t,e,r){let n=r.map(({width:a,height:i})=>{let c=e/Math.max(i,a);return{width:a*c,height:i*c}}),s=n.length;return V.tidy(()=>{let a=(u,f)=>V.stack([V.fill([68],u,"float32"),V.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>la(c(f),m(f))))).div(V.stack(Array.from(Array(s),(u,f)=>a(n[f].width,n[f].height))))})}forwardInput(t){return V.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=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(s,a)=>{let i=Array.from(s.dataSync()),c=i.filter((p,u)=>er(u)),m=i.filter((p,u)=>!er(u));return new Yt(Array(68).fill(0).map((p,u)=>new _(c[u],m[u])),{height:e.getInputHeight(a),width:e.getInputWidth(a)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Zt=class extends we{constructor(t=new xe){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Fe=v(x());function Bo(o){let t=[],{extractDenseBlock3Params:e}=hr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Ro(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock3Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i}}}var Tr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Fe.tidy(()=>{let r=Fe.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=mr(s,e.dense0,!0);return a=mr(a,e.dense1),a=mr(a,e.dense2),a=Fe.avgPool(a,[14,14],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Bo(t)}extractParams(t){return Ro(t)}};var ze=class extends we{constructor(t=new Tr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Zt{};var nt=v(x());var De=v(x());var Pr=v(x());function $o(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:s,bias:a}=t.conv,i=De.conv2d(o,s,e,n);return i=De.add(i,a),i=$o(i,t.scale),r?De.relu(i):i}function Oo(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function wr(o,t){return uo(o,t,[2,2],!0,"valid")}var G=v(x());function Kn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return G.tidy(()=>G.transpose(G.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=G.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=G.tensor1d(o(i)),p=G.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function s(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function a(i,c,m,p,u=!1){let f=s((u?.5:1)*i,c,m,`${p}/conv1`),l=s(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:s,extractResidualLayerParams:a}}function Ho(o){let{extractWeights:t,getRemainingWeights:e}=k(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:s}=Kn(t,r),a=n(4704,32,7,"conv32_down"),i=s(9216,32,3,"conv32_1"),c=s(9216,32,3,"conv32_2"),m=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),u=s(36864,64,3,"conv64_1"),f=s(36864,64,3,"conv64_2"),l=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),T=s(147456,128,3,"conv128_1"),h=s(147456,128,3,"conv128_2"),g=s(589824,256,3,"conv256_down",!0),P=s(589824,256,3,"conv256_1"),y=s(589824,256,3,"conv256_2"),I=s(589824,256,3,"conv256_down_out"),j=G.tidy(()=>G.transpose(G.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:a,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:T,conv128_2:h,conv256_down:g,conv256_1:P,conv256_2:y,conv256_down_out:I,fc:j},paramMappings:r}}function Qn(o,t){let e=Y(o,t);function r(a){let i=e(`${a}/scale/weights`,1),c=e(`${a}/scale/biases`,1);return{weights:i,biases:c}}function n(a){let i=e(`${a}/conv/filters`,4),c=e(`${a}/conv/bias`,1),m=r(a);return{conv:{filters:i,bias:c},scale:m}}function s(a){return{conv1:n(`${a}/conv1`),conv2:n(`${a}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:s}}function zo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Qn(o,t),n=e("conv32_down"),s=r("conv32_1"),a=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),T=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),P=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let I={conv32_down:n,conv32_1:s,conv32_2:a,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:T,conv256_1:h,conv256_2:g,conv256_down_out:P,fc:y};return W(o,t),{params:I,paramMappings:t}}var B=v(x());function ot(o,t){let e=Oo(o,t.conv1);return e=fo(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Ye(o,t){let e=wr(o,t.conv1);e=fo(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),s=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=s?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var Kt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=wr(s,e.conv32_down);a=nt.maxPool(a,3,2,"valid"),a=ot(a,e.conv32_1),a=ot(a,e.conv32_2),a=ot(a,e.conv32_3),a=Ye(a,e.conv64_down),a=ot(a,e.conv64_1),a=ot(a,e.conv64_2),a=ot(a,e.conv64_3),a=Ye(a,e.conv128_down),a=ot(a,e.conv128_1),a=ot(a,e.conv128_2),a=Ye(a,e.conv256_down),a=ot(a,e.conv256_1),a=ot(a,e.conv256_2),a=Ye(a,e.conv256_down_out);let i=a.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(a=>a<=0))return new Float32Array(128);let e=await D(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(a=>a.data()));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return zo(t)}extractParams(t){return Ho(t)}};function ta(o){let t=new Kt;return t.extractWeights(o),t}function Fr(o,t){return{...o,...{descriptor:t}}}function ea(o){return typeof o.age=="number"}function Dr(o,t){return{...o,...{age:t}}}function ra(o){return(o.gender==="male"||o.gender==="female")&&ce(o.genderProbability)}function Er(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Nt=v(x());var at=v(x());function oa(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=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:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function s(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function a(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),u=s(128,128,"mobilenetv1/conv_3"),f=s(128,256,"mobilenetv1/conv_4"),l=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),T=s(512,512,"mobilenetv1/conv_7"),h=s(512,512,"mobilenetv1/conv_8"),g=s(512,512,"mobilenetv1/conv_9"),P=s(512,512,"mobilenetv1/conv_10"),y=s(512,512,"mobilenetv1/conv_11"),I=s(512,1024,"mobilenetv1/conv_12"),j=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,conv_8:h,conv_9:g,conv_10:P,conv_11:y,conv_12:I,conv_13:j}}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"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),T=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),P=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"),j=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Ft=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:P,class_predictor:y},box_predictor_2:{box_encoding_predictor:I,class_predictor:j},box_predictor_3:{box_encoding_predictor:tt,class_predictor:it},box_predictor_4:{box_encoding_predictor:q,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Ft}}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:s}=oa(e,t),a=n(),i=s(),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:a,prediction_layer:i,output_layer:m},paramMappings:t}}function na(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),T=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),h=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),g=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),P=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:T,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:P},pointwise_conv:r("MobilenetV1",m,l)}}function s(){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 a(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=a(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=a(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}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:s,extractPredictionLayerParams:c}}function Vo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=na(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!dt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:s,paramMappings:t}}var xt=v(x());var Ct=v(x());function Z(o,t,e){return Ct.tidy(()=>{let r=Ct.conv2d(o,t.filters,e,"same");return r=Ct.add(r,t.batch_norm_offset),Ct.clipByValue(r,0,6)})}var aa=.0010000000474974513;function sa(o,t,e){return xt.tidy(()=>{let r=xt.depthwiseConv2d(o,t.filters,e,"same");return r=xt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,aa),xt.clipByValue(r,0,6)})}function ia(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Go(o,t){return xt.tidy(()=>{let e,r=Z(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((s,a)=>{let i=a+1,c=ia(i);r=sa(r,s.depthwise_conv,c),r=Z(r,s.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 ca(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),a=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]),u=Math.max(r[e][1],r[e][3]),f=(a-n)*(i-s),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),T=Math.max(s,m),h=Math.min(a,p),g=Math.min(i,u),P=Math.max(h-b,0)*Math.max(g-T,0);return P/(f+l-P)}function jo(o,t,e,r,n){let s=o.shape[0],a=Math.min(e,s),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=a)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ca(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function ma(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function pa(o,t){let{sizes:e,centers:r}=ma(o),n=d.unstack(d.transpose(t,[1,0])),s=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),a=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(a,s),d.sub(c,i),d.add(a,s),d.add(c,i)]),[1,0])}function Uo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=pa(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let s=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),a=d.slice(s,[0,0,0],[-1,-1,1]);a=d.reshape(a,[r,a.shape[1]]);let i=d.unstack(n),c=d.unstack(a);return{boxes:i,scores:c}})}var Ge=v(x());var Ve=v(x());function Qt(o,t){return Ve.tidy(()=>{let e=o.shape[0],r=Ve.reshape(Jt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ve.reshape(Jt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),s=Z(n,e.conv_2,[1,1]),a=Z(s,e.conv_3,[2,2]),i=Z(a,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=Qt(t,e.box_predictor_0),f=Qt(o,e.box_predictor_1),l=Qt(n,e.box_predictor_2),b=Qt(a,e.box_predictor_3),T=Qt(c,e.box_predictor_4),h=Qt(p,e.box_predictor_5),g=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,T.boxPredictionEncoding,h.boxPredictionEncoding],1),P=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,T.classPrediction,h.classPrediction],1);return{boxPredictions:g,classPredictions:P}})}var X=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 It=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(512,!1),"float32"),n=Nt.sub(Nt.div(r,127.5),1),s=Go(n,e.mobilenetv1),{boxPredictions:a,classPredictions:i}=Xo(s.out,s.conv11,e.prediction_layer);return Uo(a,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),s=await D(t),{boxes:a,scores:i}=this.forwardInput(s),c=a[0],m=i[0];for(let y=1;y{let[I,j]=[Math.max(0,g[y][0]),Math.min(1,g[y][2])].map(q=>q*h),[tt,it]=[Math.max(0,g[y][1]),Math.min(1,g[y][3])].map(q=>q*T);return new M(p[y],new zt(tt,I,it-tt,j-I),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return c.dispose(),m.dispose(),P}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new It;return t.extractWeights(o),t}function ua(o){return Jo(o)}var lo=class extends It{};var qo=.4,Zo=[new _(.738768,.874946),new _(2.42204,2.65704),new _(4.30971,7.04493),new _(10.246,4.59428),new _(12.6868,11.8741)],Ko=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],Qo=[117.001,114.697,97.404],tn="tiny_yolov2_model",en="tiny_yolov2_separable_conv_model";var C=v(x());var Mr=o=>typeof o=="number";function ho(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(!Mr(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=>Mr(t.x)&&Mr(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(Mr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Ee(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function vt(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),Ee(e)})}var Lt=v(x());function yt(o,t){return Lt.tidy(()=>{let e=Lt.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Lt.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=Lt.add(e,t.bias),Ee(e)})}var bo=v(x());function fa(o,t){let e=he(o,t);function r(a,i){let c=bo.tensor1d(o(a)),m=bo.tensor1d(o(a));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(a,i,c){let m=e(a,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let s=be(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}}function rn(o,t,e,r){let{extractWeights:n,getRemainingWeights:s}=k(o),a=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=fa(n,a),p;if(t.withSeparableConvs){let[u,f,l,b,T,h,g,P,y]=r,I=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),j=m(f,l,"conv1"),tt=m(l,b,"conv2"),it=m(b,T,"conv3"),q=m(T,h,"conv4"),Pt=m(h,g,"conv5"),wt=P?m(g,P,"conv6"):void 0,Ft=y?m(P,y,"conv7"):void 0,ie=i(y||P||g,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}else{let[u,f,l,b,T,h,g,P,y]=r,I=c(u,f,"conv0"),j=c(f,l,"conv1"),tt=c(l,b,"conv2"),it=c(b,T,"conv3"),q=c(T,h,"conv4"),Pt=c(h,g,"conv5"),wt=c(g,P,"conv6"),Ft=c(P,y,"conv7"),ie=i(y,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:a}}function la(o,t){let e=Y(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 s(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let a=ge(e);return{extractConvParams:n,extractConvWithBatchNormParams:s,extractSeparableConvParams:a}}function on(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}=la(o,e),a;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;a={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:i>7?s("conv6"):void 0,conv7:i>8?s("conv7"):void 0,conv8:r("conv8")}}else a={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:a,paramMappings:e}}var st=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 Cr=class Cr extends A{constructor(t){super("TinyYolov2"),ho(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=vt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=vt(r,e.conv6),r=vt(r,e.conv7),Jt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ee(Jt(t,e.conv0,"valid",!1)):yt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?yt(r,e.conv6):r,r=e.conv7?yt(r,e.conv7):r,Jt(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(255),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 st(e),s=await D(t),a=await this.forwardInput(s,r),i=C.tidy(()=>C.unstack(a)[0].expandDims()),c={width:s.getInputWidth(0),height:s.getInputHeight(0)},m=await this.extractBoxes(i,s.getReshapedInputDimensions(0),n);a.dispose(),i.dispose();let p=m.map(h=>h.box),u=m.map(h=>h.score),f=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Vr(p.map(h=>h.rescale(r)),u,this.config.iouThreshold,!0).map(h=>new Ht(u[h],f[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return on(t,this.config)}extractParams(t){let e=this.config.filterSizes||Cr.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 rn(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:s}=e,a=Math.max(n,s),i=a/n,c=a/s,m=t.shape[1],p=this.config.anchors.length,[u,f,l]=C.tidy(()=>{let g=t.reshape([m,m,p,this.boxEncodingSize]),P=g.slice([0,0,0,0],[m,m,p,4]),y=g.slice([0,0,0,4],[m,m,p,1]),I=this.withClassScores?C.softmax(g.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[P,y,I]}),b=[],T=await f.array(),h=await u.array();for(let g=0;gr){let j=(P+Ne(h[g][P][y][0]))/m*i,tt=(g+Ne(h[g][P][y][1]))/m*c,it=Math.exp(h[g][P][y][2])*this.config.anchors[y].x/m*i,q=Math.exp(h[g][P][y][3])*this.config.anchors[y].y/m*c,Pt=j-it/2,wt=tt-q/2,Ft={row:g,col:P,anchor:y},{classScore:ie,label:yo}=this.withClassScores?await this.extractPredictedClass(l,Ft):{classScore:1,label:0};b.push({box:new Ot(Pt,wt,Pt+it,wt+q),score:I,classScore:I*ie,label:yo,...Ft})}}return u.dispose(),f.dispose(),l.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:n,anchor:s}=e,a=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>a[r][n][s][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}};Cr.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Me=Cr;var te=class extends Me{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:qo,classes:["face"],...t?{anchors:Ko,meanRgb:Qo}:{anchors:Zo,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?en:tn}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function da(o,t=!0){let e=new te(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var go=v(x());async function ee(o,t,e,r,n=({alignedRect:s})=>s){let s=o.map(c=>qt(c)?n(c):c.detection),a=r||(t instanceof go.Tensor?await le(t,s):await fe(t,s)),i=await e(a);return a.forEach(c=>c instanceof go.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return ee([o],t,async s=>e(s[0]),r,n)}var nn=.4,an=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],sn=[117.001,114.697,97.404];var re=class extends Me{constructor(){let t={withSeparableConvs:!0,iouThreshold:nn,classes:["face"],anchors:an,meanRgb:sn,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 F={ssdMobilenetv1:new It,tinyFaceDetector:new re,tinyYolov2:new te,faceLandmark68Net:new Zt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Kt,faceExpressionNet:new Oe,ageGenderNet:new He},cn=(o,t)=>F.ssdMobilenetv1.locateFaces(o,t),ha=(o,t)=>F.tinyFaceDetector.locateFaces(o,t),ba=(o,t)=>F.tinyYolov2.locateFaces(o,t),mn=o=>F.faceLandmark68Net.detectLandmarks(o),ga=o=>F.faceLandmark68TinyNet.detectLandmarks(o),xa=o=>F.faceRecognitionNet.computeFaceDescriptor(o),va=o=>F.faceExpressionNet.predictExpressions(o),ya=o=>F.ageGenderNet.predictAgeAndGender(o),pn=o=>F.ssdMobilenetv1.load(o),_a=o=>F.tinyFaceDetector.load(o),Ta=o=>F.tinyYolov2.load(o),Pa=o=>F.faceLandmark68Net.load(o),wa=o=>F.faceLandmark68TinyNet.load(o),Fa=o=>F.faceRecognitionNet.load(o),Da=o=>F.faceExpressionNet.load(o),Ea=o=>F.ageGenderNet.load(o),Ma=pn,Ca=cn,Ia=mn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},oe=class extends Ir{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>gr(r,e[n]))}withAgeAndGender(){return new ae(this,this.input)}},ne=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceExpressionNet.predictExpressions(r),this.extractedFaces);return gr(t,e)}withAgeAndGender(){return new se(this,this.input)}},St=class extends oe{withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},At=class extends ne{withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Nr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:s,gender:a,genderProbability:i}=e[n];return Dr(Er(r,a,i),s)})}withFaceExpressions(){return new oe(this,this.input)}},se=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,s=>F.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Dr(Er(t,r,n),e)}withFaceExpressions(){return new ne(this,this.input)}},Wt=class extends ae{withFaceExpressions(){return new St(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},kt=class extends se{withFaceExpressions(){return new At(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},_t=class extends Ue{async run(){let t=await this.parentTask;return(await ee(t,this.input,r=>Promise.all(r.map(n=>F.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Fr(t[n],r))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}},Tt=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Fr(t,e)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?F.faceLandmark68TinyNet:F.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof Xe.Tensor?await le(this.input,e):await fe(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),t.filter((a,i)=>n[i]).map((a,i)=>Pe(a,n[i]))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await le(this.input,[e]):await fe(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),Pe(t,n)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=F.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=F.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=F.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>Vt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new oe(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(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?Vt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new ne(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new se(this.runAndExtendWithFaceDetection(),this.input)}};function Na(o,t=new X){return new Qe(o,t)}function Lr(o,t=new X){return new Ie(o,t)}async function un(o,t){return Lr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Lr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Sa=un;function xo(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,s)=>n-r[s]).reduce((n,s)=>n+s*s,0))}var vo=class o{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,s=()=>`person ${n++}`;this._labeledDescriptors=r.map(a=>{if(a instanceof Et)return a;if(a instanceof Float32Array)return new Et(s(),[a]);if(a.descriptor&&a.descriptor instanceof Float32Array)return new Et(s(),[a.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=>xo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Et.fromJSON(r));return new o(e,t.distanceThreshold)}};function Aa(o){let t=new re;return t.extractWeights(o),t}function fn(o,t){let{width:e,height:r}=new R(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=>fn(n,{width:e,height:r}));if(qt(o)){let n=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(Vt(o,n),s)}return pt(o)?Vt(o,o.detection.forSize(e,r)):o instanceof H||o instanceof M?o.forSize(e,r):o}var ka=No;0&&(module.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,fetchVideo,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}); diff --git a/dist/face-api.node-wasm.js b/dist/face-api.node-wasm.js index 7477f90..d08f9b9 100644 --- a/dist/face-api.node-wasm.js +++ b/dist/face-api.node-wasm.js @@ -4,4 +4,4 @@ author: ' */ -"use strict";var dn=Object.create;var tr=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var bn=Object.getOwnPropertyNames;var gn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var vn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Wr=(o,t)=>{for(var e in t)tr(o,e,{get:t[e],enumerable:!0})},_o=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bn(t))!xn.call(o,n)&&n!==e&&tr(o,n,{get:()=>t[n],enumerable:!(r=hn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?dn(gn(o)):{},_o(t||!o||!o.__esModule?tr(e,"default",{value:o,enumerable:!0}):e,o)),yn=o=>_o(tr({},"__esModule",{value:!0}),o);var x=vn((Ya,rr)=>{"use strict";var Br=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,Tn=Object.getOwnPropertyNames,Pn=Object.prototype.hasOwnProperty,wn=(o,t)=>{for(var e in t)Br(o,e,{get:t[e],enumerable:!0})},kr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tn(t))!Pn.call(o,n)&&n!==e&&Br(o,n,{get:()=>t[n],enumerable:!(r=_n(t,n))||r.enumerable});return o},Po=(o,t,e)=>(kr(o,t,"default"),e&&kr(e,t,"default")),Fn=o=>kr(Br({},"__esModule",{value:!0}),o),er={};wn(er,{version:()=>In});rr.exports=Fn(er);Po(er,require("@tensorflow/tfjs"),rr.exports);Po(er,require("@tensorflow/tfjs-backend-wasm"),rr.exports);var To="4.16.0",Dn="4.16.0",En="4.16.0",Mn="4.16.0",Cn="4.16.0",In={tfjs:To,"tfjs-core":To,"tfjs-converter":Dn,"tfjs-backend-cpu":En,"tfjs-backend-webgl":Mn,"tfjs-backend-wasm":Cn}});var Ba={};Wr(Ba,{AgeGenderNet:()=>He,BoundingBox:()=>Ot,Box:()=>L,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>_t,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Tt,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>R,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>gt,FaceLandmark68Net:()=>Zt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>H,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Yt,FaceMatch:()=>me,FaceMatcher:()=>vo,FaceRecognitionNet:()=>Kt,Gender:()=>Pr,LabeledBox:()=>pe,LabeledFaceDescriptors:()=>Et,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>Ht,Point:()=>_,PredictedBox:()=>Ur,Rect:()=>zt,SsdMobilenetv1:()=>It,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>re,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>te,TinyYolov2Options:()=>st,allFaces:()=>Sa,allFacesSsdMobilenetv1:()=>fn,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>xa,createCanvas:()=>Xt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>ua,createFaceRecognitionNet:()=>ta,createSsdMobilenetv1:()=>qo,createTinyFaceDetector:()=>Aa,createTinyYolov2:()=>da,detectAllFaces:()=>Ar,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>ga,detectLandmarks:()=>Ia,detectSingleFace:()=>Na,draw:()=>co,env:()=>w,euclideanDistance:()=>xo,extendWithAge:()=>Mr,extendWithFaceDescriptor:()=>Er,extendWithFaceDetection:()=>Vt,extendWithFaceExpressions:()=>vr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Cr,extractFaceTensors:()=>le,extractFaces:()=>fe,fetchImage:()=>On,fetchJson:()=>no,fetchNetWeights:()=>Hn,fetchOrThrow:()=>ht,fetchVideo:()=>zn,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ut,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>Sn,iou:()=>zr,isMediaElement:()=>cr,isMediaLoaded:()=>Ae,isWithAge:()=>ea,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>qt,isWithGender:()=>ra,loadAgeGenderModel:()=>Ea,loadFaceDetectionModel:()=>Ma,loadFaceExpressionModel:()=>Da,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>wa,loadFaceRecognitionModel:()=>Fa,loadSsdMobilenetv1Model:()=>un,loadTinyFaceDetectorModel:()=>_a,loadTinyYolov2Model:()=>Ta,loadWeightMap:()=>ao,locateFaces:()=>Ca,matchDimensions:()=>Yn,minBbox:()=>Yr,nets:()=>F,nonMaxSuppression:()=>Vr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>ya,recognizeFaceExpressions:()=>va,resizeResults:()=>ln,resolveInput:()=>Gt,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>mn,tf:()=>Wa,tinyFaceDetector:()=>ha,tinyYolov2:()=>ba,toNetInput:()=>D,utils:()=>Hr,validateConfig:()=>ho,version:()=>ka});module.exports=yn(Ba);var Wa=v(x());var co={};Wr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Se,DrawBoxOptions:()=>sr,DrawFaceLandmarks:()=>_r,DrawFaceLandmarksOptions:()=>yr,DrawTextField:()=>jt,DrawTextFieldOptions:()=>ue,drawContour:()=>lt,drawDetections:()=>$n,drawFaceExpressions:()=>Vn,drawFaceLandmarks:()=>jn});function lt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},s)=>{let a=t[s];o.moveTo(a.x,a.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 Hr={};Wr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>$t,isDimensions:()=>nr,isEven:()=>or,isFloat:()=>$r,isTensor:()=>Bt,isTensor1D:()=>Nn,isTensor2D:()=>Rr,isTensor3D:()=>dt,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>ce,range:()=>ct,round:()=>Rt});var wo=v(x());var R=class o{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 o(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof wo.Tensor&&o.shape.length===t}function Nn(o){return Bt(o,1)}function Rr(o){return Bt(o,2)}function dt(o){return Bt(o,3)}function U(o){return Bt(o,4)}function $r(o){return o%1!==0}function or(o){return o%2===0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function nr(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new R(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new _(0,0)).div(new _(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function ce(o){return et(o)&&o>=0&&o<=1}var _=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var L=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!o.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),s=[r.x,r.y,r.width,r.height].every(et);if(!s&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[a,i,c,m]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:a,y:i,width:c,height:m},"Box.constructor",e),this._x=a,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 _(this.left,this.top)}get topRight(){return new _(this.right,this.top)}get bottomLeft(){return new _(this.left,this.bottom)}get bottomRight(){return new _(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new o({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new o({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,s=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:a,edy:c,dx:s,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new o({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 Ot=class extends L{constructor(t,e,r,n,s=!1){super({left:t,top:e,right:r,bottom:n},s)}};var Ht=class o{constructor(t,e,r,n,s){this._imageDims=new R(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new L(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 L(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class o extends Ht{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:s}=super.forSize(t,e);return new o(r,n,s)}};function zr(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)),s=r*n;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function Yr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:a,boxIndex:i})).sort((a,i)=>a.score-i.score).map(a=>a.boxIndex),s=[];for(;n.length>0;){let a=n.pop();s.push(a);let i=n,c=[];for(let m=0;mc[p]<=e)}return s}var mt=v(x());function rt(o,t){return mt.tidy(()=>{let[e,r,n]=t,s=mt.fill([...o.shape.slice(0,3),1],e,"float32"),a=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([s,a,i],3);return mt.sub(o,c)})}var Dt=v(x());function Gr(o,t=!1){return Dt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),s=Math.round(n*(t?.5:1)),a=e>r?2:1,i=f=>{let l=o.shape.slice();return l[a]=f,Dt.fill(l,0,"float32")},c=i(s),m=n-c.shape[a],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Dt.cast(f,"float32"));return Dt.concat(u,a)})}function Ln(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 Ne(o){return 1/(1+Math.exp(-o))}function Sn(o){return Math.log(o/(1-o))}var zt=class extends L{constructor(t,e,r,n,s=!1){super({x:t,y:e,width:r,height:n},s)}};var An=.5,Wn=.43,kn=.45,H=class{constructor(t,e,r=new _(0,0)){let{width:n,height:s}=e;this._imgDims=new R(n,s),this._shift=r,this._positions=t.map(a=>a.mul(new _(n,s)).add(r))}get shift(){return new _(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 _(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 _(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof M?t.box.floor():new L(t);return this.shiftBy(s.x,s.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,s=u=>n.sub(u).magnitude(),a=(s(e)+s(r))/2,i=Math.floor(a/kn),c=$t(t),m=Math.floor(Math.max(0,c.x-An*i)),p=Math.floor(Math.max(0,c.y-Wn*i));return new zt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Yr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends H{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var Yt=class extends H{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 me=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 pe=class extends L{static assertIsValidLabeledBox(t,e){if(L.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 Et=class o{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 o(t.label,e)}};var Ur=class extends pe{static assertIsValidPredictedBox(t,e){if(pe.assertIsValidLabeledBox(t,e),!ce(t.score)||!ce(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 Vt(o,t){return{...o,...{detection:t}}}function Xr(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Le(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ar(o){let t="";if(!o&&Le())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,s)=>{o.readFile(r,(a,i)=>a?s(a):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},a=global.fetch,i=ar();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:s,fetch:a,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var S;function Bn(){if(!S)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return S}function Zr(o){S=o}function Kr(){return qr()?Zr(Xr()):Le()?Zr(Jr()):null}function Rn(o){if(S||Kr(),!S)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=S.Canvas,Image:e=S.Image}=o;S.Canvas=t,S.Image=e,S.createCanvasElement=o.createCanvasElement||(()=>new t),S.createImageElement=o.createImageElement||(()=>new e),S.ImageData=o.ImageData||S.ImageData,S.Video=o.Video||S.Video,S.fetch=o.fetch||S.fetch,S.readFile=o.readFile||S.readFile}var w={getEnv:Bn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:ar,createNodejsEnv:Jr,monkeyPatch:Rn,isBrowser:qr,isNodejs:Le};Kr();function Gt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Gt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),ue=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:s,fontStyle:a,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=a||"Georgia",this.padding=i||4}},jt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new ue(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,T=c+u.y+(l+1)*a;r.fillText(f,b,T)})}};var sr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let a={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new ue({...a,...s})}},Se=class{constructor(t,e={}){this.box=new L(t),this.options=new sr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:s,y:a,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(s,a,i,c);let{label:m}=this.options;m&&new jt([m],{x:s-n/2,y:a},this.options.drawLabelOptions).draw(t)}};function $n(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,s=r instanceof M?r.box:pt(r)?r.detection.box:new L(r),a=n?`${Rt(n)}`:void 0;new Se(s,{label:a}).draw(o)})}var Te=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ae(o)){t(null);return}function r(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),e(s))}function n(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(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 Ut(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new R(o.naturalWidth,o.naturalHeight):o instanceof e?new R(o.videoWidth,o.videoHeight):new R(o.width,o.height)}function Xt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ut(o),s=Xt({width:r,height:n});return o instanceof e?$(s).putImageData(o,0,0):$(s).drawImage(o,0,0,r,n),s}var ir=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,s]=o.shape.slice(U(o)?1:0),a=ir.tidy(()=>o.as3D(r,n,s).toInt());return await ir.browser.toPixels(a,e),a.dispose(),e}function cr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var z=v(x());function oo(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 Xt({width:1,height:1});let s=Ut(o),a=t/Math.max(s.height,s.width),i=a*s.width,c=a*s.height,m=Xt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&$(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(dt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let a=r.shape[0];if(a!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${a} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let s=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=s,this._inputDimensions[n]=[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 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 Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,z.tidy(()=>{let r=ct(this.batchSize,0,1).map(s=>{let a=this.getInput(s);if(a instanceof z.Tensor){let i=U(a)?a:z.expandDims(a);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=z.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(a instanceof w.getEnv().Canvas)return z.browser.fromPixels(oo(a,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${a}`)});return z.stack(r.map(s=>z.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof ut)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(Gt);return r.forEach((n,s)=>{if(!cr(n)&&!dt(n)&&!U(n))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let a=n.shape[0];if(a!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${a} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>cr(n)&&to(n))),new ut(r,Array.isArray(o))}async function fe(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let a=await D(o);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=a.getInput(0);r=i instanceof e?i:await ro(i)}let n=$(r);return t.map(a=>a instanceof M?a.forSize(r.width,r.height).box.floor():a).map(a=>a.clipAtImageBorders(r.width,r.height)).map(({x:a,y:i,width:c,height:m})=>{let p=Xt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(a,i,c,m),0,0),p})}var mr=v(x());async function le(o,t){if(!dt(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return mr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>mr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function ht(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 On(o){let t=await ht(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 eo(e)}async function no(o){return(await ht(o)).json()}async function Hn(o){return new Float32Array(await(await ht(o)).arrayBuffer())}function Fo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function zn(o){let t=await ht(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fo(e)}var Do=v(x());function pr(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),s=o.endsWith(".json")?n[n.length-1]:e,a=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return a=o.startsWith("/")?`/${a}`:a,{modelBaseUri:a,manifestUri:a==="/"?`/${s}`:`${a}/${s}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=pr(o,t),n=await no(e);return Do.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Ut(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ve=v(x());var bt=v(x());var A=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 bt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof bt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=bt.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 ao(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}=pr(t,this.getDefaultModelName()),s=m=>Promise.all(m.map(p=>e(p).then(u=>typeof u=="string"?Buffer.from(u):u.buffer))),a=bt.io.weightsLoaderFactory(s),i=JSON.parse((await e(r)).toString()),c=await a(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((s,a)=>{if(!s.nextObj.hasOwnProperty(a))throw new Error(`traversePropertyPath - object does not have property ${a}, for path ${t}`);return{obj:s.nextObj,objProp:a,nextObj:s.nextObj[a]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof bt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var E=v(x());var de=v(x());function O(o,t,e){return de.tidy(()=>{let r=de.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=de.add(r,t.bias),r})}function ur(o,t,e=!1){return E.tidy(()=>{let r=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),s=E.relu(E.add(r,n)),a=O(s,t.conv2,[1,1]);return E.relu(E.add(r,E.add(n,a)))})}function ke(o,t,e=!1,r=!0){return E.tidy(()=>{let n=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),s=O(n,t.conv1,[1,1]),a=E.relu(E.add(n,s)),i=O(a,t.conv2,[1,1]),c=E.relu(E.add(n,E.add(s,i))),m=O(c,t.conv3,[1,1]);return E.relu(E.add(n,E.add(s,E.add(i,m))))})}var Mt=v(x());function Jt(o,t,e="same",r=!1){return Mt.tidy(()=>{let n=Mt.add(Mt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Mt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var fr=v(x());function he(o,t){return(e,r,n,s)=>{let a=fr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=fr.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:a,bias:i}}}var lr=v(x());function dr(o,t){return(e,r,n)=>{let s=lr.tensor2d(o(e*r),[e,r]),a=lr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:s,bias:a}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function be(o,t){return(e,r,n)=>{let s=Re.tensor4d(o(9*e),[3,3,e,1]),a=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(s,a,i)}}function ge(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let s=o[e];if(!Bt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:n||e}),s}}function k(o){let t=o;function e(n){let s=t.slice(0,n);return t=t.slice(n),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function hr(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c,m=!1){let p=m?e(a,i,3,`${c}/conv0`):r(a,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(a,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(a,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:s}}function Eo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock4Params:n}=hr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i,dense3:c}}}function br(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function gr(o,t){let e=Y(o,t),r=br(e),n=ge(e);function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:a}}function Mo(o){let t=[],{extractDenseBlock4Params:e}=gr(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 xe=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ve.tidy(()=>{let r=ve.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ke(s,e.dense0,!0);return a=ke(a,e.dense1),a=ke(a,e.dense2),a=ke(a,e.dense3),a=ve.avgPool(a,[7,7],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mo(t)}extractParams(t){return Eo(t)}};var No=v(x());var ye=v(x());function $e(o,t){return ye.tidy(()=>ye.add(ye.matMul(o,t.weights),t.bias))}function Co(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:s}=k(o),i=dr(n,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:i}}}function Io(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function xr(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 _e=class extends A{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 No.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t;return $e(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 Co(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=xr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Io(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,s=t.slice(0,t.length-n),a=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(a)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends _e{constructor(t=new xe){super("FaceExpressionNet",t)}forwardInput(t){return Te.tidy(()=>Te.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(Te.unstack(r).map(async a=>{let i=a.dataSync();return a.dispose(),i}));r.dispose();let s=n.map(a=>new gt(a));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof gt}function vr(o,t){return{...o,...{expressions:t}}}function Vn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let a=s instanceof gt?s:io(s)?s.expressions:void 0;if(!a)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=a.asSortedArray().filter(u=>u.probability>e),m=pt(s)?s.detection.box.bottomLeft:r||new _(0,0);new jt(c.map(u=>`${u.expression} (${Rt(u.probability)})`),m).draw(o)})}function qt(o){return pt(o)&&o.landmarks instanceof H&&o.unshiftedLandmarks instanceof H&&o.alignedRect instanceof M}function Gn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c.x-m.x)**2+(c.y-m.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c.x-m.x),f=Math.floor(m.x-p.x);return u-f},s=(c,m)=>{let p=Math.hypot(m.x-c.x,m.y-c.y),u=m.y-c.y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),T=m.x-c.x<0?-1:1;return b*T},a=(c,m,p)=>{let u=e(c,p),f=new _((c.x+p.x)/2,(c.y+p.y)/2),l=e(m,f),b=Math.atan(l/u),T=Math.floor(t(b)),h=f.y-m.y<0?-1:1;return T*h};if(!o||!o.positions||o.positions.length!==68)return r;let i=o.positions;return r.roll=s(i[27],i[66]),r.pitch=a(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:s}=o.detection,a=new M(o.detection.score,n.rescale(s.reverse()),s),i=Gn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:a,angle:i}}}var yr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:s,pointSize:a,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=a||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},_r=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new yr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:s,lineColor:a,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Yt&&(e.strokeStyle=a,e.lineWidth=s,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 jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof H?r:qt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new _r(n).draw(o)})}var Lo="1.7.13";var ft=v(x());var N=v(x());function Jn(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c){let m=r(a,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(a,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(a,i){let c=r(a,a,`${i}/separable_conv0`),m=r(a,a,`${i}/separable_conv1`),p=r(a,a,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:s}}function So(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=k(o),{extractConvParams:s,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:c}=Jn(r,e),m=s(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};ct(t,0,1).forEach(g=>{l[`main_block_${g}`]=c(128,`middle_flow/main_block_${g}`)});let b=i(128,256,"exit_flow/reduction_block"),T=a(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:T};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:h}}}function qn(o,t){let e=Y(o,t),r=br(e),n=ge(e);function s(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 a(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:s,extractMainBlockParams:a}}function Ao(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:s,extractMainBlockParams:a}=qn(o,e),i=r("entry_flow/conv_in"),c=s("entry_flow/reduction_block_0"),m=s("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};ct(t,0,1).forEach(T=>{u[`main_block_${T}`]=a(`middle_flow/main_block_${T}`)});let f=s("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Wo(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?N.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Wo(o,t.expansion_conv,[2,2])),r}function Zn(o,t){let e=O(N.relu(o),t.separable_conv0,[1,1]);return e=O(N.relu(e),t.separable_conv1,[1,1]),e=O(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var Tr=class extends A{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"),s=rt(r,[122.782,117.001,104.298]).div(255),a=N.relu(Wo(s,e.entry_flow.conv_in,[2,2]));return a=mo(a,e.entry_flow.reduction_block_0,!1),a=mo(a,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{a=Zn(a,e.middle_flow[`main_block_${i}`])}),a=mo(a,e.exit_flow.reduction_block),a=N.relu(O(a,e.exit_flow.separable_conv,[1,1])),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Ao(t,this._numMainBlocks)}extractParams(t){return So(t,this._numMainBlocks)}};function ko(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),n=dr(e,t),s=n(512,1,"fc/age"),a=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:a}}}}function Bo(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var Pr=(e=>(e.FEMALE="female",e.MALE="male",e))(Pr||{});var He=class extends A{constructor(t=new Tr(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 ft.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t,n=ft.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),s=$e(n,e.fc.age).as1D(),a=$e(n,e.fc.gender);return{age:s,gender:a}})}forwardInput(t){return ft.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ft.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=ft.unstack(r.age),s=ft.unstack(r.gender),a=n.map((c,m)=>({ageTensor:c,genderTensor:s[m]})),i=await Promise.all(a.map(async({ageTensor:c,genderTensor:m})=>{let p=c.dataSync()[0],u=m.dataSync()[0],f=u>.5,l=f?"male":"female",b=f?u:1-u;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:b}}));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 ko(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=xr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Bo(r)}extractParams(t){let r=t.slice(0,t.length-1539),n=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var V=v(x());var we=class extends _e{postProcess(t,e,r){let n=r.map(({width:a,height:i})=>{let c=e/Math.max(i,a);return{width:a*c,height:i*c}}),s=n.length;return V.tidy(()=>{let a=(u,f)=>V.stack([V.fill([68],u,"float32"),V.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>la(c(f),m(f))))).div(V.stack(Array.from(Array(s),(u,f)=>a(n[f].width,n[f].height))))})}forwardInput(t){return V.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=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(s,a)=>{let i=Array.from(s.dataSync()),c=i.filter((p,u)=>or(u)),m=i.filter((p,u)=>!or(u));return new Yt(Array(68).fill(0).map((p,u)=>new _(c[u],m[u])),{height:e.getInputHeight(a),width:e.getInputWidth(a)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Zt=class extends we{constructor(t=new xe){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Fe=v(x());function Ro(o){let t=[],{extractDenseBlock3Params:e}=gr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock3Params:n}=hr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i}}}var wr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Fe.tidy(()=>{let r=Fe.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ur(s,e.dense0,!0);return a=ur(a,e.dense1),a=ur(a,e.dense2),a=Fe.avgPool(a,[14,14],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return $o(t)}};var ze=class extends we{constructor(t=new wr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Zt{};var nt=v(x());var De=v(x());var Fr=v(x());function Oo(o,t){return Fr.add(Fr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:s,bias:a}=t.conv,i=De.conv2d(o,s,e,n);return i=De.add(i,a),i=Oo(i,t.scale),r?De.relu(i):i}function Ho(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Dr(o,t){return uo(o,t,[2,2],!0,"valid")}var G=v(x());function Kn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return G.tidy(()=>G.transpose(G.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=G.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=G.tensor1d(o(i)),p=G.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function s(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function a(i,c,m,p,u=!1){let f=s((u?.5:1)*i,c,m,`${p}/conv1`),l=s(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:s,extractResidualLayerParams:a}}function zo(o){let{extractWeights:t,getRemainingWeights:e}=k(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:s}=Kn(t,r),a=n(4704,32,7,"conv32_down"),i=s(9216,32,3,"conv32_1"),c=s(9216,32,3,"conv32_2"),m=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),u=s(36864,64,3,"conv64_1"),f=s(36864,64,3,"conv64_2"),l=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),T=s(147456,128,3,"conv128_1"),h=s(147456,128,3,"conv128_2"),g=s(589824,256,3,"conv256_down",!0),P=s(589824,256,3,"conv256_1"),y=s(589824,256,3,"conv256_2"),I=s(589824,256,3,"conv256_down_out"),j=G.tidy(()=>G.transpose(G.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:a,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:T,conv128_2:h,conv256_down:g,conv256_1:P,conv256_2:y,conv256_down_out:I,fc:j},paramMappings:r}}function Qn(o,t){let e=Y(o,t);function r(a){let i=e(`${a}/scale/weights`,1),c=e(`${a}/scale/biases`,1);return{weights:i,biases:c}}function n(a){let i=e(`${a}/conv/filters`,4),c=e(`${a}/conv/bias`,1),m=r(a);return{conv:{filters:i,bias:c},scale:m}}function s(a){return{conv1:n(`${a}/conv1`),conv2:n(`${a}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:s}}function Yo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Qn(o,t),n=e("conv32_down"),s=r("conv32_1"),a=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),T=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),P=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let I={conv32_down:n,conv32_1:s,conv32_2:a,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:T,conv256_1:h,conv256_2:g,conv256_down_out:P,fc:y};return W(o,t),{params:I,paramMappings:t}}var B=v(x());function ot(o,t){let e=Ho(o,t.conv1);return e=fo(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Ye(o,t){let e=Dr(o,t.conv1);e=fo(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),s=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=s?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var Kt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=Dr(s,e.conv32_down);a=nt.maxPool(a,3,2,"valid"),a=ot(a,e.conv32_1),a=ot(a,e.conv32_2),a=ot(a,e.conv32_3),a=Ye(a,e.conv64_down),a=ot(a,e.conv64_1),a=ot(a,e.conv64_2),a=ot(a,e.conv64_3),a=Ye(a,e.conv128_down),a=ot(a,e.conv128_1),a=ot(a,e.conv128_2),a=Ye(a,e.conv256_down),a=ot(a,e.conv256_1),a=ot(a,e.conv256_2),a=Ye(a,e.conv256_down_out);let i=a.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(a=>a<=0))return new Float32Array(128);let e=await D(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(a=>a.data()));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Yo(t)}extractParams(t){return zo(t)}};function ta(o){let t=new Kt;return t.extractWeights(o),t}function Er(o,t){return{...o,...{descriptor:t}}}function ea(o){return typeof o.age=="number"}function Mr(o,t){return{...o,...{age:t}}}function ra(o){return(o.gender==="male"||o.gender==="female")&&ce(o.genderProbability)}function Cr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Nt=v(x());var at=v(x());function oa(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=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:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function s(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function a(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),u=s(128,128,"mobilenetv1/conv_3"),f=s(128,256,"mobilenetv1/conv_4"),l=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),T=s(512,512,"mobilenetv1/conv_7"),h=s(512,512,"mobilenetv1/conv_8"),g=s(512,512,"mobilenetv1/conv_9"),P=s(512,512,"mobilenetv1/conv_10"),y=s(512,512,"mobilenetv1/conv_11"),I=s(512,1024,"mobilenetv1/conv_12"),j=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,conv_8:h,conv_9:g,conv_10:P,conv_11:y,conv_12:I,conv_13:j}}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"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),T=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),P=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"),j=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Ft=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:P,class_predictor:y},box_predictor_2:{box_encoding_predictor:I,class_predictor:j},box_predictor_3:{box_encoding_predictor:tt,class_predictor:it},box_predictor_4:{box_encoding_predictor:q,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Ft}}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:i}}function Vo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:s}=oa(e,t),a=n(),i=s(),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:a,prediction_layer:i,output_layer:m},paramMappings:t}}function na(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),T=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),h=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),g=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),P=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:T,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:P},pointwise_conv:r("MobilenetV1",m,l)}}function s(){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 a(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=a(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=a(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}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:s,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=na(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!dt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:s,paramMappings:t}}var xt=v(x());var Ct=v(x());function Z(o,t,e){return Ct.tidy(()=>{let r=Ct.conv2d(o,t.filters,e,"same");return r=Ct.add(r,t.batch_norm_offset),Ct.clipByValue(r,0,6)})}var aa=.0010000000474974513;function sa(o,t,e){return xt.tidy(()=>{let r=xt.depthwiseConv2d(o,t.filters,e,"same");return r=xt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,aa),xt.clipByValue(r,0,6)})}function ia(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return xt.tidy(()=>{let e,r=Z(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((s,a)=>{let i=a+1,c=ia(i);r=sa(r,s.depthwise_conv,c),r=Z(r,s.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 ca(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),a=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]),u=Math.max(r[e][1],r[e][3]),f=(a-n)*(i-s),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),T=Math.max(s,m),h=Math.min(a,p),g=Math.min(i,u),P=Math.max(h-b,0)*Math.max(g-T,0);return P/(f+l-P)}function Uo(o,t,e,r,n){let s=o.shape[0],a=Math.min(e,s),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=a)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ca(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function ma(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function pa(o,t){let{sizes:e,centers:r}=ma(o),n=d.unstack(d.transpose(t,[1,0])),s=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),a=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(a,s),d.sub(c,i),d.add(a,s),d.add(c,i)]),[1,0])}function Xo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=pa(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let s=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),a=d.slice(s,[0,0,0],[-1,-1,1]);a=d.reshape(a,[r,a.shape[1]]);let i=d.unstack(n),c=d.unstack(a);return{boxes:i,scores:c}})}var Ge=v(x());var Ve=v(x());function Qt(o,t){return Ve.tidy(()=>{let e=o.shape[0],r=Ve.reshape(Jt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ve.reshape(Jt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Jo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),s=Z(n,e.conv_2,[1,1]),a=Z(s,e.conv_3,[2,2]),i=Z(a,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=Qt(t,e.box_predictor_0),f=Qt(o,e.box_predictor_1),l=Qt(n,e.box_predictor_2),b=Qt(a,e.box_predictor_3),T=Qt(c,e.box_predictor_4),h=Qt(p,e.box_predictor_5),g=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,T.boxPredictionEncoding,h.boxPredictionEncoding],1),P=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,T.classPrediction,h.classPrediction],1);return{boxPredictions:g,classPredictions:P}})}var X=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 It=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(512,!1),"float32"),n=Nt.sub(Nt.div(r,127.5),1),s=jo(n,e.mobilenetv1),{boxPredictions:a,classPredictions:i}=Jo(s.out,s.conv11,e.prediction_layer);return Xo(a,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),s=await D(t),{boxes:a,scores:i}=this.forwardInput(s),c=a[0],m=i[0];for(let y=1;y{let[I,j]=[Math.max(0,g[y][0]),Math.min(1,g[y][2])].map(q=>q*h),[tt,it]=[Math.max(0,g[y][1]),Math.min(1,g[y][3])].map(q=>q*T);return new M(p[y],new zt(tt,I,it-tt,j-I),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return c.dispose(),m.dispose(),P}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Vo(t)}};function qo(o){let t=new It;return t.extractWeights(o),t}function ua(o){return qo(o)}var lo=class extends It{};var Zo=.4,Ko=[new _(.738768,.874946),new _(2.42204,2.65704),new _(4.30971,7.04493),new _(10.246,4.59428),new _(12.6868,11.8741)],Qo=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var C=v(x());var Ir=o=>typeof o=="number";function ho(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(!Ir(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=>Ir(t.x)&&Ir(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(Ir)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Ee(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function vt(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),Ee(e)})}var Lt=v(x());function yt(o,t){return Lt.tidy(()=>{let e=Lt.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Lt.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=Lt.add(e,t.bias),Ee(e)})}var bo=v(x());function fa(o,t){let e=he(o,t);function r(a,i){let c=bo.tensor1d(o(a)),m=bo.tensor1d(o(a));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(a,i,c){let m=e(a,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let s=be(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:s}=k(o),a=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=fa(n,a),p;if(t.withSeparableConvs){let[u,f,l,b,T,h,g,P,y]=r,I=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),j=m(f,l,"conv1"),tt=m(l,b,"conv2"),it=m(b,T,"conv3"),q=m(T,h,"conv4"),Pt=m(h,g,"conv5"),wt=P?m(g,P,"conv6"):void 0,Ft=y?m(P,y,"conv7"):void 0,ie=i(y||P||g,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}else{let[u,f,l,b,T,h,g,P,y]=r,I=c(u,f,"conv0"),j=c(f,l,"conv1"),tt=c(l,b,"conv2"),it=c(b,T,"conv3"),q=c(T,h,"conv4"),Pt=c(h,g,"conv5"),wt=c(g,P,"conv6"),Ft=c(P,y,"conv7"),ie=i(y,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:a}}function la(o,t){let e=Y(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 s(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let a=ge(e);return{extractConvParams:n,extractConvWithBatchNormParams:s,extractSeparableConvParams:a}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}=la(o,e),a;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;a={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:i>7?s("conv6"):void 0,conv7:i>8?s("conv7"):void 0,conv8:r("conv8")}}else a={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:a,paramMappings:e}}var st=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 Nr=class Nr extends A{constructor(t){super("TinyYolov2"),ho(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=vt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=vt(r,e.conv6),r=vt(r,e.conv7),Jt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ee(Jt(t,e.conv0,"valid",!1)):yt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?yt(r,e.conv6):r,r=e.conv7?yt(r,e.conv7):r,Jt(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(255),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 st(e),s=await D(t),a=await this.forwardInput(s,r),i=C.tidy(()=>C.unstack(a)[0].expandDims()),c={width:s.getInputWidth(0),height:s.getInputHeight(0)},m=await this.extractBoxes(i,s.getReshapedInputDimensions(0),n);a.dispose(),i.dispose();let p=m.map(h=>h.box),u=m.map(h=>h.score),f=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Vr(p.map(h=>h.rescale(r)),u,this.config.iouThreshold,!0).map(h=>new Ht(u[h],f[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||Nr.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:s}=e,a=Math.max(n,s),i=a/n,c=a/s,m=t.shape[1],p=this.config.anchors.length,[u,f,l]=C.tidy(()=>{let g=t.reshape([m,m,p,this.boxEncodingSize]),P=g.slice([0,0,0,0],[m,m,p,4]),y=g.slice([0,0,0,4],[m,m,p,1]),I=this.withClassScores?C.softmax(g.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[P,y,I]}),b=[],T=await f.array(),h=await u.array();for(let g=0;gr){let j=(P+Ne(h[g][P][y][0]))/m*i,tt=(g+Ne(h[g][P][y][1]))/m*c,it=Math.exp(h[g][P][y][2])*this.config.anchors[y].x/m*i,q=Math.exp(h[g][P][y][3])*this.config.anchors[y].y/m*c,Pt=j-it/2,wt=tt-q/2,Ft={row:g,col:P,anchor:y},{classScore:ie,label:yo}=this.withClassScores?await this.extractPredictedClass(l,Ft):{classScore:1,label:0};b.push({box:new Ot(Pt,wt,Pt+it,wt+q),score:I,classScore:I*ie,label:yo,...Ft})}}return u.dispose(),f.dispose(),l.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:n,anchor:s}=e,a=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>a[r][n][s][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}};Nr.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Me=Nr;var te=class extends Me{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 da(o,t=!0){let e=new te(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var go=v(x());async function ee(o,t,e,r,n=({alignedRect:s})=>s){let s=o.map(c=>qt(c)?n(c):c.detection),a=r||(t instanceof go.Tensor?await le(t,s):await fe(t,s)),i=await e(a);return a.forEach(c=>c instanceof go.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return ee([o],t,async s=>e(s[0]),r,n)}var an=.4,sn=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],cn=[117.001,114.697,97.404];var re=class extends Me{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 F={ssdMobilenetv1:new It,tinyFaceDetector:new re,tinyYolov2:new te,faceLandmark68Net:new Zt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Kt,faceExpressionNet:new Oe,ageGenderNet:new He},mn=(o,t)=>F.ssdMobilenetv1.locateFaces(o,t),ha=(o,t)=>F.tinyFaceDetector.locateFaces(o,t),ba=(o,t)=>F.tinyYolov2.locateFaces(o,t),pn=o=>F.faceLandmark68Net.detectLandmarks(o),ga=o=>F.faceLandmark68TinyNet.detectLandmarks(o),xa=o=>F.faceRecognitionNet.computeFaceDescriptor(o),va=o=>F.faceExpressionNet.predictExpressions(o),ya=o=>F.ageGenderNet.predictAgeAndGender(o),un=o=>F.ssdMobilenetv1.load(o),_a=o=>F.tinyFaceDetector.load(o),Ta=o=>F.tinyYolov2.load(o),Pa=o=>F.faceLandmark68Net.load(o),wa=o=>F.faceLandmark68TinyNet.load(o),Fa=o=>F.faceRecognitionNet.load(o),Da=o=>F.faceExpressionNet.load(o),Ea=o=>F.ageGenderNet.load(o),Ma=un,Ca=mn,Ia=pn;var Lr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},oe=class extends Lr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>vr(r,e[n]))}withAgeAndGender(){return new ae(this,this.input)}},ne=class extends Lr{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceExpressionNet.predictExpressions(r),this.extractedFaces);return vr(t,e)}withAgeAndGender(){return new se(this,this.input)}},St=class extends oe{withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},At=class extends ne{withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Sr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Sr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:s,gender:a,genderProbability:i}=e[n];return Mr(Cr(r,a,i),s)})}withFaceExpressions(){return new oe(this,this.input)}},se=class extends Sr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,s=>F.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Mr(Cr(t,r,n),e)}withFaceExpressions(){return new ne(this,this.input)}},Wt=class extends ae{withFaceExpressions(){return new St(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},kt=class extends se{withFaceExpressions(){return new At(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},_t=class extends Ue{async run(){let t=await this.parentTask;return(await ee(t,this.input,r=>Promise.all(r.map(n=>F.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Er(t[n],r))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}},Tt=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Er(t,e)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?F.faceLandmark68TinyNet:F.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof Xe.Tensor?await le(this.input,e):await fe(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),t.filter((a,i)=>n[i]).map((a,i)=>Pe(a,n[i]))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await le(this.input,[e]):await fe(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),Pe(t,n)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=F.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=F.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=F.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>Vt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new oe(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(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?Vt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new ne(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new se(this.runAndExtendWithFaceDetection(),this.input)}};function Na(o,t=new X){return new Qe(o,t)}function Ar(o,t=new X){return new Ie(o,t)}async function fn(o,t){return Ar(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Ar(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Sa=fn;function xo(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,s)=>n-r[s]).reduce((n,s)=>n+s*s,0))}var vo=class o{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,s=()=>`person ${n++}`;this._labeledDescriptors=r.map(a=>{if(a instanceof Et)return a;if(a instanceof Float32Array)return new Et(s(),[a]);if(a.descriptor&&a.descriptor instanceof Float32Array)return new Et(s(),[a.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=>xo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Et.fromJSON(r));return new o(e,t.distanceThreshold)}};function Aa(o){let t=new re;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new R(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(qt(o)){let n=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(Vt(o,n),s)}return pt(o)?Vt(o,o.detection.forSize(e,r)):o instanceof H||o instanceof M?o.forSize(e,r):o}var ka=Lo;0&&(module.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,fetchVideo,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}); +"use strict";var dn=Object.create;var tr=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var bn=Object.getOwnPropertyNames;var gn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var vn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Wr=(o,t)=>{for(var e in t)tr(o,e,{get:t[e],enumerable:!0})},_o=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bn(t))!xn.call(o,n)&&n!==e&&tr(o,n,{get:()=>t[n],enumerable:!(r=hn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?dn(gn(o)):{},_o(t||!o||!o.__esModule?tr(e,"default",{value:o,enumerable:!0}):e,o)),yn=o=>_o(tr({},"__esModule",{value:!0}),o);var x=vn((Ya,rr)=>{"use strict";var Br=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,Tn=Object.getOwnPropertyNames,Pn=Object.prototype.hasOwnProperty,wn=(o,t)=>{for(var e in t)Br(o,e,{get:t[e],enumerable:!0})},kr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tn(t))!Pn.call(o,n)&&n!==e&&Br(o,n,{get:()=>t[n],enumerable:!(r=_n(t,n))||r.enumerable});return o},Po=(o,t,e)=>(kr(o,t,"default"),e&&kr(e,t,"default")),Fn=o=>kr(Br({},"__esModule",{value:!0}),o),er={};wn(er,{version:()=>In});rr.exports=Fn(er);Po(er,require("@tensorflow/tfjs"),rr.exports);Po(er,require("@tensorflow/tfjs-backend-wasm"),rr.exports);var To="4.21.0",Dn="4.21.0",En="4.21.0",Mn="4.21.0",Cn="4.21.0",In={tfjs:To,"tfjs-core":To,"tfjs-converter":Dn,"tfjs-backend-cpu":En,"tfjs-backend-webgl":Mn,"tfjs-backend-wasm":Cn}});var Ba={};Wr(Ba,{AgeGenderNet:()=>He,BoundingBox:()=>Ot,Box:()=>L,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>_t,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Tt,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>R,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>gt,FaceLandmark68Net:()=>Zt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>H,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Yt,FaceMatch:()=>me,FaceMatcher:()=>vo,FaceRecognitionNet:()=>Kt,Gender:()=>Pr,LabeledBox:()=>pe,LabeledFaceDescriptors:()=>Et,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>Ht,Point:()=>_,PredictedBox:()=>Ur,Rect:()=>zt,SsdMobilenetv1:()=>It,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>re,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>te,TinyYolov2Options:()=>st,allFaces:()=>Sa,allFacesSsdMobilenetv1:()=>fn,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>xa,createCanvas:()=>Xt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>ua,createFaceRecognitionNet:()=>ta,createSsdMobilenetv1:()=>qo,createTinyFaceDetector:()=>Aa,createTinyYolov2:()=>da,detectAllFaces:()=>Ar,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>ga,detectLandmarks:()=>Ia,detectSingleFace:()=>Na,draw:()=>co,env:()=>w,euclideanDistance:()=>xo,extendWithAge:()=>Mr,extendWithFaceDescriptor:()=>Er,extendWithFaceDetection:()=>Vt,extendWithFaceExpressions:()=>vr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Cr,extractFaceTensors:()=>le,extractFaces:()=>fe,fetchImage:()=>On,fetchJson:()=>no,fetchNetWeights:()=>Hn,fetchOrThrow:()=>ht,fetchVideo:()=>zn,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ut,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>Sn,iou:()=>zr,isMediaElement:()=>cr,isMediaLoaded:()=>Ae,isWithAge:()=>ea,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>qt,isWithGender:()=>ra,loadAgeGenderModel:()=>Ea,loadFaceDetectionModel:()=>Ma,loadFaceExpressionModel:()=>Da,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>wa,loadFaceRecognitionModel:()=>Fa,loadSsdMobilenetv1Model:()=>un,loadTinyFaceDetectorModel:()=>_a,loadTinyYolov2Model:()=>Ta,loadWeightMap:()=>ao,locateFaces:()=>Ca,matchDimensions:()=>Yn,minBbox:()=>Yr,nets:()=>F,nonMaxSuppression:()=>Vr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>ya,recognizeFaceExpressions:()=>va,resizeResults:()=>ln,resolveInput:()=>Gt,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>mn,tf:()=>Wa,tinyFaceDetector:()=>ha,tinyYolov2:()=>ba,toNetInput:()=>D,utils:()=>Hr,validateConfig:()=>ho,version:()=>ka});module.exports=yn(Ba);var Wa=v(x());var co={};Wr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Se,DrawBoxOptions:()=>sr,DrawFaceLandmarks:()=>_r,DrawFaceLandmarksOptions:()=>yr,DrawTextField:()=>jt,DrawTextFieldOptions:()=>ue,drawContour:()=>lt,drawDetections:()=>$n,drawFaceExpressions:()=>Vn,drawFaceLandmarks:()=>jn});function lt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},s)=>{let a=t[s];o.moveTo(a.x,a.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 Hr={};Wr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>$t,isDimensions:()=>nr,isEven:()=>or,isFloat:()=>$r,isTensor:()=>Bt,isTensor1D:()=>Nn,isTensor2D:()=>Rr,isTensor3D:()=>dt,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>ce,range:()=>ct,round:()=>Rt});var wo=v(x());var R=class o{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 o(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof wo.Tensor&&o.shape.length===t}function Nn(o){return Bt(o,1)}function Rr(o){return Bt(o,2)}function dt(o){return Bt(o,3)}function U(o){return Bt(o,4)}function $r(o){return o%1!==0}function or(o){return o%2===0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function nr(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new R(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new _(0,0)).div(new _(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function ce(o){return et(o)&&o>=0&&o<=1}var _=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var L=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!o.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),s=[r.x,r.y,r.width,r.height].every(et);if(!s&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[a,i,c,m]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:a,y:i,width:c,height:m},"Box.constructor",e),this._x=a,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 _(this.left,this.top)}get topRight(){return new _(this.right,this.top)}get bottomLeft(){return new _(this.left,this.bottom)}get bottomRight(){return new _(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new o({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new o({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,s=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:a,edy:c,dx:s,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new o({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 Ot=class extends L{constructor(t,e,r,n,s=!1){super({left:t,top:e,right:r,bottom:n},s)}};var Ht=class o{constructor(t,e,r,n,s){this._imageDims=new R(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new L(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 L(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class o extends Ht{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:s}=super.forSize(t,e);return new o(r,n,s)}};function zr(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)),s=r*n;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function Yr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:a,boxIndex:i})).sort((a,i)=>a.score-i.score).map(a=>a.boxIndex),s=[];for(;n.length>0;){let a=n.pop();s.push(a);let i=n,c=[];for(let m=0;mc[p]<=e)}return s}var mt=v(x());function rt(o,t){return mt.tidy(()=>{let[e,r,n]=t,s=mt.fill([...o.shape.slice(0,3),1],e,"float32"),a=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([s,a,i],3);return mt.sub(o,c)})}var Dt=v(x());function Gr(o,t=!1){return Dt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),s=Math.round(n*(t?.5:1)),a=e>r?2:1,i=f=>{let l=o.shape.slice();return l[a]=f,Dt.fill(l,0,"float32")},c=i(s),m=n-c.shape[a],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Dt.cast(f,"float32"));return Dt.concat(u,a)})}function Ln(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 Ne(o){return 1/(1+Math.exp(-o))}function Sn(o){return Math.log(o/(1-o))}var zt=class extends L{constructor(t,e,r,n,s=!1){super({x:t,y:e,width:r,height:n},s)}};var An=.5,Wn=.43,kn=.45,H=class{constructor(t,e,r=new _(0,0)){let{width:n,height:s}=e;this._imgDims=new R(n,s),this._shift=r,this._positions=t.map(a=>a.mul(new _(n,s)).add(r))}get shift(){return new _(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 _(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 _(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof M?t.box.floor():new L(t);return this.shiftBy(s.x,s.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,s=u=>n.sub(u).magnitude(),a=(s(e)+s(r))/2,i=Math.floor(a/kn),c=$t(t),m=Math.floor(Math.max(0,c.x-An*i)),p=Math.floor(Math.max(0,c.y-Wn*i));return new zt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Yr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends H{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var Yt=class extends H{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 me=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 pe=class extends L{static assertIsValidLabeledBox(t,e){if(L.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 Et=class o{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 o(t.label,e)}};var Ur=class extends pe{static assertIsValidPredictedBox(t,e){if(pe.assertIsValidLabeledBox(t,e),!ce(t.score)||!ce(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 Vt(o,t){return{...o,...{detection:t}}}function Xr(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Le(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ar(o){let t="";if(!o&&Le())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,s)=>{o.readFile(r,(a,i)=>a?s(a):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},a=global.fetch,i=ar();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:s,fetch:a,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var S;function Bn(){if(!S)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return S}function Zr(o){S=o}function Kr(){return qr()?Zr(Xr()):Le()?Zr(Jr()):null}function Rn(o){if(S||Kr(),!S)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=S.Canvas,Image:e=S.Image}=o;S.Canvas=t,S.Image=e,S.createCanvasElement=o.createCanvasElement||(()=>new t),S.createImageElement=o.createImageElement||(()=>new e),S.ImageData=o.ImageData||S.ImageData,S.Video=o.Video||S.Video,S.fetch=o.fetch||S.fetch,S.readFile=o.readFile||S.readFile}var w={getEnv:Bn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:ar,createNodejsEnv:Jr,monkeyPatch:Rn,isBrowser:qr,isNodejs:Le};Kr();function Gt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Gt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),ue=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:s,fontStyle:a,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=a||"Georgia",this.padding=i||4}},jt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new ue(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,T=c+u.y+(l+1)*a;r.fillText(f,b,T)})}};var sr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let a={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new ue({...a,...s})}},Se=class{constructor(t,e={}){this.box=new L(t),this.options=new sr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:s,y:a,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(s,a,i,c);let{label:m}=this.options;m&&new jt([m],{x:s-n/2,y:a},this.options.drawLabelOptions).draw(t)}};function $n(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,s=r instanceof M?r.box:pt(r)?r.detection.box:new L(r),a=n?`${Rt(n)}`:void 0;new Se(s,{label:a}).draw(o)})}var Te=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ae(o)){t(null);return}function r(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),e(s))}function n(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(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 Ut(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new R(o.naturalWidth,o.naturalHeight):o instanceof e?new R(o.videoWidth,o.videoHeight):new R(o.width,o.height)}function Xt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ut(o),s=Xt({width:r,height:n});return o instanceof e?$(s).putImageData(o,0,0):$(s).drawImage(o,0,0,r,n),s}var ir=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,s]=o.shape.slice(U(o)?1:0),a=ir.tidy(()=>o.as3D(r,n,s).toInt());return await ir.browser.toPixels(a,e),a.dispose(),e}function cr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var z=v(x());function oo(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 Xt({width:1,height:1});let s=Ut(o),a=t/Math.max(s.height,s.width),i=a*s.width,c=a*s.height,m=Xt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&$(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(dt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let a=r.shape[0];if(a!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${a} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let s=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=s,this._inputDimensions[n]=[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 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 Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,z.tidy(()=>{let r=ct(this.batchSize,0,1).map(s=>{let a=this.getInput(s);if(a instanceof z.Tensor){let i=U(a)?a:z.expandDims(a);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=z.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(a instanceof w.getEnv().Canvas)return z.browser.fromPixels(oo(a,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${a}`)});return z.stack(r.map(s=>z.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof ut)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(Gt);return r.forEach((n,s)=>{if(!cr(n)&&!dt(n)&&!U(n))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let a=n.shape[0];if(a!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${a} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>cr(n)&&to(n))),new ut(r,Array.isArray(o))}async function fe(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let a=await D(o);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=a.getInput(0);r=i instanceof e?i:await ro(i)}let n=$(r);return t.map(a=>a instanceof M?a.forSize(r.width,r.height).box.floor():a).map(a=>a.clipAtImageBorders(r.width,r.height)).map(({x:a,y:i,width:c,height:m})=>{let p=Xt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(a,i,c,m),0,0),p})}var mr=v(x());async function le(o,t){if(!dt(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return mr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>mr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function ht(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 On(o){let t=await ht(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 eo(e)}async function no(o){return(await ht(o)).json()}async function Hn(o){return new Float32Array(await(await ht(o)).arrayBuffer())}function Fo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function zn(o){let t=await ht(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fo(e)}var Do=v(x());function pr(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),s=o.endsWith(".json")?n[n.length-1]:e,a=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return a=o.startsWith("/")?`/${a}`:a,{modelBaseUri:a,manifestUri:a==="/"?`/${s}`:`${a}/${s}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=pr(o,t),n=await no(e);return Do.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Ut(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ve=v(x());var bt=v(x());var A=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 bt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof bt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=bt.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 ao(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}=pr(t,this.getDefaultModelName()),s=m=>Promise.all(m.map(p=>e(p).then(u=>typeof u=="string"?Buffer.from(u):u.buffer))),a=bt.io.weightsLoaderFactory(s),i=JSON.parse((await e(r)).toString()),c=await a(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((s,a)=>{if(!s.nextObj.hasOwnProperty(a))throw new Error(`traversePropertyPath - object does not have property ${a}, for path ${t}`);return{obj:s.nextObj,objProp:a,nextObj:s.nextObj[a]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof bt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var E=v(x());var de=v(x());function O(o,t,e){return de.tidy(()=>{let r=de.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=de.add(r,t.bias),r})}function ur(o,t,e=!1){return E.tidy(()=>{let r=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),s=E.relu(E.add(r,n)),a=O(s,t.conv2,[1,1]);return E.relu(E.add(r,E.add(n,a)))})}function ke(o,t,e=!1,r=!0){return E.tidy(()=>{let n=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),s=O(n,t.conv1,[1,1]),a=E.relu(E.add(n,s)),i=O(a,t.conv2,[1,1]),c=E.relu(E.add(n,E.add(s,i))),m=O(c,t.conv3,[1,1]);return E.relu(E.add(n,E.add(s,E.add(i,m))))})}var Mt=v(x());function Jt(o,t,e="same",r=!1){return Mt.tidy(()=>{let n=Mt.add(Mt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Mt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var fr=v(x());function he(o,t){return(e,r,n,s)=>{let a=fr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=fr.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:a,bias:i}}}var lr=v(x());function dr(o,t){return(e,r,n)=>{let s=lr.tensor2d(o(e*r),[e,r]),a=lr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:s,bias:a}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function be(o,t){return(e,r,n)=>{let s=Re.tensor4d(o(9*e),[3,3,e,1]),a=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(s,a,i)}}function ge(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let s=o[e];if(!Bt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:n||e}),s}}function k(o){let t=o;function e(n){let s=t.slice(0,n);return t=t.slice(n),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function hr(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c,m=!1){let p=m?e(a,i,3,`${c}/conv0`):r(a,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(a,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(a,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:s}}function Eo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock4Params:n}=hr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i,dense3:c}}}function br(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function gr(o,t){let e=Y(o,t),r=br(e),n=ge(e);function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:a}}function Mo(o){let t=[],{extractDenseBlock4Params:e}=gr(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 xe=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ve.tidy(()=>{let r=ve.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ke(s,e.dense0,!0);return a=ke(a,e.dense1),a=ke(a,e.dense2),a=ke(a,e.dense3),a=ve.avgPool(a,[7,7],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mo(t)}extractParams(t){return Eo(t)}};var No=v(x());var ye=v(x());function $e(o,t){return ye.tidy(()=>ye.add(ye.matMul(o,t.weights),t.bias))}function Co(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:s}=k(o),i=dr(n,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:i}}}function Io(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function xr(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 _e=class extends A{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 No.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t;return $e(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 Co(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=xr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Io(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,s=t.slice(0,t.length-n),a=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(a)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends _e{constructor(t=new xe){super("FaceExpressionNet",t)}forwardInput(t){return Te.tidy(()=>Te.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(Te.unstack(r).map(async a=>{let i=a.dataSync();return a.dispose(),i}));r.dispose();let s=n.map(a=>new gt(a));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof gt}function vr(o,t){return{...o,...{expressions:t}}}function Vn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let a=s instanceof gt?s:io(s)?s.expressions:void 0;if(!a)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=a.asSortedArray().filter(u=>u.probability>e),m=pt(s)?s.detection.box.bottomLeft:r||new _(0,0);new jt(c.map(u=>`${u.expression} (${Rt(u.probability)})`),m).draw(o)})}function qt(o){return pt(o)&&o.landmarks instanceof H&&o.unshiftedLandmarks instanceof H&&o.alignedRect instanceof M}function Gn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c.x-m.x)**2+(c.y-m.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c.x-m.x),f=Math.floor(m.x-p.x);return u-f},s=(c,m)=>{let p=Math.hypot(m.x-c.x,m.y-c.y),u=m.y-c.y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),T=m.x-c.x<0?-1:1;return b*T},a=(c,m,p)=>{let u=e(c,p),f=new _((c.x+p.x)/2,(c.y+p.y)/2),l=e(m,f),b=Math.atan(l/u),T=Math.floor(t(b)),h=f.y-m.y<0?-1:1;return T*h};if(!o||!o.positions||o.positions.length!==68)return r;let i=o.positions;return r.roll=s(i[27],i[66]),r.pitch=a(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:s}=o.detection,a=new M(o.detection.score,n.rescale(s.reverse()),s),i=Gn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:a,angle:i}}}var yr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:s,pointSize:a,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=a||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},_r=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new yr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:s,lineColor:a,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Yt&&(e.strokeStyle=a,e.lineWidth=s,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 jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof H?r:qt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new _r(n).draw(o)})}var Lo="1.7.14";var ft=v(x());var N=v(x());function Jn(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c){let m=r(a,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(a,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(a,i){let c=r(a,a,`${i}/separable_conv0`),m=r(a,a,`${i}/separable_conv1`),p=r(a,a,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:s}}function So(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=k(o),{extractConvParams:s,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:c}=Jn(r,e),m=s(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};ct(t,0,1).forEach(g=>{l[`main_block_${g}`]=c(128,`middle_flow/main_block_${g}`)});let b=i(128,256,"exit_flow/reduction_block"),T=a(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:T};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:h}}}function qn(o,t){let e=Y(o,t),r=br(e),n=ge(e);function s(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 a(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:s,extractMainBlockParams:a}}function Ao(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:s,extractMainBlockParams:a}=qn(o,e),i=r("entry_flow/conv_in"),c=s("entry_flow/reduction_block_0"),m=s("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};ct(t,0,1).forEach(T=>{u[`main_block_${T}`]=a(`middle_flow/main_block_${T}`)});let f=s("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Wo(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?N.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Wo(o,t.expansion_conv,[2,2])),r}function Zn(o,t){let e=O(N.relu(o),t.separable_conv0,[1,1]);return e=O(N.relu(e),t.separable_conv1,[1,1]),e=O(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var Tr=class extends A{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"),s=rt(r,[122.782,117.001,104.298]).div(255),a=N.relu(Wo(s,e.entry_flow.conv_in,[2,2]));return a=mo(a,e.entry_flow.reduction_block_0,!1),a=mo(a,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{a=Zn(a,e.middle_flow[`main_block_${i}`])}),a=mo(a,e.exit_flow.reduction_block),a=N.relu(O(a,e.exit_flow.separable_conv,[1,1])),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Ao(t,this._numMainBlocks)}extractParams(t){return So(t,this._numMainBlocks)}};function ko(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),n=dr(e,t),s=n(512,1,"fc/age"),a=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:a}}}}function Bo(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var Pr=(e=>(e.FEMALE="female",e.MALE="male",e))(Pr||{});var He=class extends A{constructor(t=new Tr(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 ft.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t,n=ft.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),s=$e(n,e.fc.age).as1D(),a=$e(n,e.fc.gender);return{age:s,gender:a}})}forwardInput(t){return ft.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ft.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=ft.unstack(r.age),s=ft.unstack(r.gender),a=n.map((c,m)=>({ageTensor:c,genderTensor:s[m]})),i=await Promise.all(a.map(async({ageTensor:c,genderTensor:m})=>{let p=c.dataSync()[0],u=m.dataSync()[0],f=u>.5,l=f?"male":"female",b=f?u:1-u;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:b}}));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 ko(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=xr(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Bo(r)}extractParams(t){let r=t.slice(0,t.length-1539),n=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var V=v(x());var we=class extends _e{postProcess(t,e,r){let n=r.map(({width:a,height:i})=>{let c=e/Math.max(i,a);return{width:a*c,height:i*c}}),s=n.length;return V.tidy(()=>{let a=(u,f)=>V.stack([V.fill([68],u,"float32"),V.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>la(c(f),m(f))))).div(V.stack(Array.from(Array(s),(u,f)=>a(n[f].width,n[f].height))))})}forwardInput(t){return V.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=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(s,a)=>{let i=Array.from(s.dataSync()),c=i.filter((p,u)=>or(u)),m=i.filter((p,u)=>!or(u));return new Yt(Array(68).fill(0).map((p,u)=>new _(c[u],m[u])),{height:e.getInputHeight(a),width:e.getInputWidth(a)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Zt=class extends we{constructor(t=new xe){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Fe=v(x());function Ro(o){let t=[],{extractDenseBlock3Params:e}=gr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock3Params:n}=hr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i}}}var wr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Fe.tidy(()=>{let r=Fe.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ur(s,e.dense0,!0);return a=ur(a,e.dense1),a=ur(a,e.dense2),a=Fe.avgPool(a,[14,14],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return $o(t)}};var ze=class extends we{constructor(t=new wr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Zt{};var nt=v(x());var De=v(x());var Fr=v(x());function Oo(o,t){return Fr.add(Fr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:s,bias:a}=t.conv,i=De.conv2d(o,s,e,n);return i=De.add(i,a),i=Oo(i,t.scale),r?De.relu(i):i}function Ho(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Dr(o,t){return uo(o,t,[2,2],!0,"valid")}var G=v(x());function Kn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return G.tidy(()=>G.transpose(G.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=G.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=G.tensor1d(o(i)),p=G.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function s(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function a(i,c,m,p,u=!1){let f=s((u?.5:1)*i,c,m,`${p}/conv1`),l=s(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:s,extractResidualLayerParams:a}}function zo(o){let{extractWeights:t,getRemainingWeights:e}=k(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:s}=Kn(t,r),a=n(4704,32,7,"conv32_down"),i=s(9216,32,3,"conv32_1"),c=s(9216,32,3,"conv32_2"),m=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),u=s(36864,64,3,"conv64_1"),f=s(36864,64,3,"conv64_2"),l=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),T=s(147456,128,3,"conv128_1"),h=s(147456,128,3,"conv128_2"),g=s(589824,256,3,"conv256_down",!0),P=s(589824,256,3,"conv256_1"),y=s(589824,256,3,"conv256_2"),I=s(589824,256,3,"conv256_down_out"),j=G.tidy(()=>G.transpose(G.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:a,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:T,conv128_2:h,conv256_down:g,conv256_1:P,conv256_2:y,conv256_down_out:I,fc:j},paramMappings:r}}function Qn(o,t){let e=Y(o,t);function r(a){let i=e(`${a}/scale/weights`,1),c=e(`${a}/scale/biases`,1);return{weights:i,biases:c}}function n(a){let i=e(`${a}/conv/filters`,4),c=e(`${a}/conv/bias`,1),m=r(a);return{conv:{filters:i,bias:c},scale:m}}function s(a){return{conv1:n(`${a}/conv1`),conv2:n(`${a}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:s}}function Yo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Qn(o,t),n=e("conv32_down"),s=r("conv32_1"),a=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),T=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),P=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let I={conv32_down:n,conv32_1:s,conv32_2:a,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:T,conv256_1:h,conv256_2:g,conv256_down_out:P,fc:y};return W(o,t),{params:I,paramMappings:t}}var B=v(x());function ot(o,t){let e=Ho(o,t.conv1);return e=fo(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Ye(o,t){let e=Dr(o,t.conv1);e=fo(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),s=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=s?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var Kt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=Dr(s,e.conv32_down);a=nt.maxPool(a,3,2,"valid"),a=ot(a,e.conv32_1),a=ot(a,e.conv32_2),a=ot(a,e.conv32_3),a=Ye(a,e.conv64_down),a=ot(a,e.conv64_1),a=ot(a,e.conv64_2),a=ot(a,e.conv64_3),a=Ye(a,e.conv128_down),a=ot(a,e.conv128_1),a=ot(a,e.conv128_2),a=Ye(a,e.conv256_down),a=ot(a,e.conv256_1),a=ot(a,e.conv256_2),a=Ye(a,e.conv256_down_out);let i=a.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(a=>a<=0))return new Float32Array(128);let e=await D(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(a=>a.data()));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Yo(t)}extractParams(t){return zo(t)}};function ta(o){let t=new Kt;return t.extractWeights(o),t}function Er(o,t){return{...o,...{descriptor:t}}}function ea(o){return typeof o.age=="number"}function Mr(o,t){return{...o,...{age:t}}}function ra(o){return(o.gender==="male"||o.gender==="female")&&ce(o.genderProbability)}function Cr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Nt=v(x());var at=v(x());function oa(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=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:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function s(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function a(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),u=s(128,128,"mobilenetv1/conv_3"),f=s(128,256,"mobilenetv1/conv_4"),l=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),T=s(512,512,"mobilenetv1/conv_7"),h=s(512,512,"mobilenetv1/conv_8"),g=s(512,512,"mobilenetv1/conv_9"),P=s(512,512,"mobilenetv1/conv_10"),y=s(512,512,"mobilenetv1/conv_11"),I=s(512,1024,"mobilenetv1/conv_12"),j=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,conv_8:h,conv_9:g,conv_10:P,conv_11:y,conv_12:I,conv_13:j}}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"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),T=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),P=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"),j=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Ft=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:P,class_predictor:y},box_predictor_2:{box_encoding_predictor:I,class_predictor:j},box_predictor_3:{box_encoding_predictor:tt,class_predictor:it},box_predictor_4:{box_encoding_predictor:q,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Ft}}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:i}}function Vo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:s}=oa(e,t),a=n(),i=s(),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:a,prediction_layer:i,output_layer:m},paramMappings:t}}function na(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),T=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),h=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),g=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),P=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:T,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:P},pointwise_conv:r("MobilenetV1",m,l)}}function s(){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 a(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=a(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=a(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}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:s,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=na(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!dt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:s,paramMappings:t}}var xt=v(x());var Ct=v(x());function Z(o,t,e){return Ct.tidy(()=>{let r=Ct.conv2d(o,t.filters,e,"same");return r=Ct.add(r,t.batch_norm_offset),Ct.clipByValue(r,0,6)})}var aa=.0010000000474974513;function sa(o,t,e){return xt.tidy(()=>{let r=xt.depthwiseConv2d(o,t.filters,e,"same");return r=xt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,aa),xt.clipByValue(r,0,6)})}function ia(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return xt.tidy(()=>{let e,r=Z(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((s,a)=>{let i=a+1,c=ia(i);r=sa(r,s.depthwise_conv,c),r=Z(r,s.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 ca(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),a=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]),u=Math.max(r[e][1],r[e][3]),f=(a-n)*(i-s),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),T=Math.max(s,m),h=Math.min(a,p),g=Math.min(i,u),P=Math.max(h-b,0)*Math.max(g-T,0);return P/(f+l-P)}function Uo(o,t,e,r,n){let s=o.shape[0],a=Math.min(e,s),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=a)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ca(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function ma(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function pa(o,t){let{sizes:e,centers:r}=ma(o),n=d.unstack(d.transpose(t,[1,0])),s=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),a=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(a,s),d.sub(c,i),d.add(a,s),d.add(c,i)]),[1,0])}function Xo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=pa(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let s=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),a=d.slice(s,[0,0,0],[-1,-1,1]);a=d.reshape(a,[r,a.shape[1]]);let i=d.unstack(n),c=d.unstack(a);return{boxes:i,scores:c}})}var Ge=v(x());var Ve=v(x());function Qt(o,t){return Ve.tidy(()=>{let e=o.shape[0],r=Ve.reshape(Jt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ve.reshape(Jt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Jo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),s=Z(n,e.conv_2,[1,1]),a=Z(s,e.conv_3,[2,2]),i=Z(a,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=Qt(t,e.box_predictor_0),f=Qt(o,e.box_predictor_1),l=Qt(n,e.box_predictor_2),b=Qt(a,e.box_predictor_3),T=Qt(c,e.box_predictor_4),h=Qt(p,e.box_predictor_5),g=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,T.boxPredictionEncoding,h.boxPredictionEncoding],1),P=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,T.classPrediction,h.classPrediction],1);return{boxPredictions:g,classPredictions:P}})}var X=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 It=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(512,!1),"float32"),n=Nt.sub(Nt.div(r,127.5),1),s=jo(n,e.mobilenetv1),{boxPredictions:a,classPredictions:i}=Jo(s.out,s.conv11,e.prediction_layer);return Xo(a,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),s=await D(t),{boxes:a,scores:i}=this.forwardInput(s),c=a[0],m=i[0];for(let y=1;y{let[I,j]=[Math.max(0,g[y][0]),Math.min(1,g[y][2])].map(q=>q*h),[tt,it]=[Math.max(0,g[y][1]),Math.min(1,g[y][3])].map(q=>q*T);return new M(p[y],new zt(tt,I,it-tt,j-I),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return c.dispose(),m.dispose(),P}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Vo(t)}};function qo(o){let t=new It;return t.extractWeights(o),t}function ua(o){return qo(o)}var lo=class extends It{};var Zo=.4,Ko=[new _(.738768,.874946),new _(2.42204,2.65704),new _(4.30971,7.04493),new _(10.246,4.59428),new _(12.6868,11.8741)],Qo=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var C=v(x());var Ir=o=>typeof o=="number";function ho(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(!Ir(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=>Ir(t.x)&&Ir(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(Ir)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Ee(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function vt(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),Ee(e)})}var Lt=v(x());function yt(o,t){return Lt.tidy(()=>{let e=Lt.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Lt.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=Lt.add(e,t.bias),Ee(e)})}var bo=v(x());function fa(o,t){let e=he(o,t);function r(a,i){let c=bo.tensor1d(o(a)),m=bo.tensor1d(o(a));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(a,i,c){let m=e(a,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let s=be(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:s}=k(o),a=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=fa(n,a),p;if(t.withSeparableConvs){let[u,f,l,b,T,h,g,P,y]=r,I=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),j=m(f,l,"conv1"),tt=m(l,b,"conv2"),it=m(b,T,"conv3"),q=m(T,h,"conv4"),Pt=m(h,g,"conv5"),wt=P?m(g,P,"conv6"):void 0,Ft=y?m(P,y,"conv7"):void 0,ie=i(y||P||g,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}else{let[u,f,l,b,T,h,g,P,y]=r,I=c(u,f,"conv0"),j=c(f,l,"conv1"),tt=c(l,b,"conv2"),it=c(b,T,"conv3"),q=c(T,h,"conv4"),Pt=c(h,g,"conv5"),wt=c(g,P,"conv6"),Ft=c(P,y,"conv7"),ie=i(y,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:a}}function la(o,t){let e=Y(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 s(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let a=ge(e);return{extractConvParams:n,extractConvWithBatchNormParams:s,extractSeparableConvParams:a}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}=la(o,e),a;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;a={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:i>7?s("conv6"):void 0,conv7:i>8?s("conv7"):void 0,conv8:r("conv8")}}else a={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:a,paramMappings:e}}var st=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 Nr=class Nr extends A{constructor(t){super("TinyYolov2"),ho(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=vt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=vt(r,e.conv6),r=vt(r,e.conv7),Jt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ee(Jt(t,e.conv0,"valid",!1)):yt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?yt(r,e.conv6):r,r=e.conv7?yt(r,e.conv7):r,Jt(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(255),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 st(e),s=await D(t),a=await this.forwardInput(s,r),i=C.tidy(()=>C.unstack(a)[0].expandDims()),c={width:s.getInputWidth(0),height:s.getInputHeight(0)},m=await this.extractBoxes(i,s.getReshapedInputDimensions(0),n);a.dispose(),i.dispose();let p=m.map(h=>h.box),u=m.map(h=>h.score),f=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Vr(p.map(h=>h.rescale(r)),u,this.config.iouThreshold,!0).map(h=>new Ht(u[h],f[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||Nr.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:s}=e,a=Math.max(n,s),i=a/n,c=a/s,m=t.shape[1],p=this.config.anchors.length,[u,f,l]=C.tidy(()=>{let g=t.reshape([m,m,p,this.boxEncodingSize]),P=g.slice([0,0,0,0],[m,m,p,4]),y=g.slice([0,0,0,4],[m,m,p,1]),I=this.withClassScores?C.softmax(g.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[P,y,I]}),b=[],T=await f.array(),h=await u.array();for(let g=0;gr){let j=(P+Ne(h[g][P][y][0]))/m*i,tt=(g+Ne(h[g][P][y][1]))/m*c,it=Math.exp(h[g][P][y][2])*this.config.anchors[y].x/m*i,q=Math.exp(h[g][P][y][3])*this.config.anchors[y].y/m*c,Pt=j-it/2,wt=tt-q/2,Ft={row:g,col:P,anchor:y},{classScore:ie,label:yo}=this.withClassScores?await this.extractPredictedClass(l,Ft):{classScore:1,label:0};b.push({box:new Ot(Pt,wt,Pt+it,wt+q),score:I,classScore:I*ie,label:yo,...Ft})}}return u.dispose(),f.dispose(),l.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:n,anchor:s}=e,a=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>a[r][n][s][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}};Nr.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Me=Nr;var te=class extends Me{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 da(o,t=!0){let e=new te(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var go=v(x());async function ee(o,t,e,r,n=({alignedRect:s})=>s){let s=o.map(c=>qt(c)?n(c):c.detection),a=r||(t instanceof go.Tensor?await le(t,s):await fe(t,s)),i=await e(a);return a.forEach(c=>c instanceof go.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return ee([o],t,async s=>e(s[0]),r,n)}var an=.4,sn=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],cn=[117.001,114.697,97.404];var re=class extends Me{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 F={ssdMobilenetv1:new It,tinyFaceDetector:new re,tinyYolov2:new te,faceLandmark68Net:new Zt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Kt,faceExpressionNet:new Oe,ageGenderNet:new He},mn=(o,t)=>F.ssdMobilenetv1.locateFaces(o,t),ha=(o,t)=>F.tinyFaceDetector.locateFaces(o,t),ba=(o,t)=>F.tinyYolov2.locateFaces(o,t),pn=o=>F.faceLandmark68Net.detectLandmarks(o),ga=o=>F.faceLandmark68TinyNet.detectLandmarks(o),xa=o=>F.faceRecognitionNet.computeFaceDescriptor(o),va=o=>F.faceExpressionNet.predictExpressions(o),ya=o=>F.ageGenderNet.predictAgeAndGender(o),un=o=>F.ssdMobilenetv1.load(o),_a=o=>F.tinyFaceDetector.load(o),Ta=o=>F.tinyYolov2.load(o),Pa=o=>F.faceLandmark68Net.load(o),wa=o=>F.faceLandmark68TinyNet.load(o),Fa=o=>F.faceRecognitionNet.load(o),Da=o=>F.faceExpressionNet.load(o),Ea=o=>F.ageGenderNet.load(o),Ma=un,Ca=mn,Ia=pn;var Lr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},oe=class extends Lr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>vr(r,e[n]))}withAgeAndGender(){return new ae(this,this.input)}},ne=class extends Lr{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceExpressionNet.predictExpressions(r),this.extractedFaces);return vr(t,e)}withAgeAndGender(){return new se(this,this.input)}},St=class extends oe{withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},At=class extends ne{withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Sr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Sr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:s,gender:a,genderProbability:i}=e[n];return Mr(Cr(r,a,i),s)})}withFaceExpressions(){return new oe(this,this.input)}},se=class extends Sr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,s=>F.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Mr(Cr(t,r,n),e)}withFaceExpressions(){return new ne(this,this.input)}},Wt=class extends ae{withFaceExpressions(){return new St(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},kt=class extends se{withFaceExpressions(){return new At(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},_t=class extends Ue{async run(){let t=await this.parentTask;return(await ee(t,this.input,r=>Promise.all(r.map(n=>F.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Er(t[n],r))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}},Tt=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Er(t,e)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?F.faceLandmark68TinyNet:F.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof Xe.Tensor?await le(this.input,e):await fe(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),t.filter((a,i)=>n[i]).map((a,i)=>Pe(a,n[i]))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await le(this.input,[e]):await fe(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),Pe(t,n)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=F.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=F.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=F.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>Vt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new oe(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(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?Vt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new ne(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new se(this.runAndExtendWithFaceDetection(),this.input)}};function Na(o,t=new X){return new Qe(o,t)}function Ar(o,t=new X){return new Ie(o,t)}async function fn(o,t){return Ar(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Ar(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Sa=fn;function xo(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,s)=>n-r[s]).reduce((n,s)=>n+s*s,0))}var vo=class o{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,s=()=>`person ${n++}`;this._labeledDescriptors=r.map(a=>{if(a instanceof Et)return a;if(a instanceof Float32Array)return new Et(s(),[a]);if(a.descriptor&&a.descriptor instanceof Float32Array)return new Et(s(),[a.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=>xo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Et.fromJSON(r));return new o(e,t.distanceThreshold)}};function Aa(o){let t=new re;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new R(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(qt(o)){let n=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(Vt(o,n),s)}return pt(o)?Vt(o,o.detection.forSize(e,r)):o instanceof H||o instanceof M?o.forSize(e,r):o}var ka=Lo;0&&(module.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,fetchVideo,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}); diff --git a/dist/face-api.node.js b/dist/face-api.node.js index 52b0525..8589ca5 100644 --- a/dist/face-api.node.js +++ b/dist/face-api.node.js @@ -4,4 +4,4 @@ author: ' */ -"use strict";var ln=Object.create;var tr=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,gn=Object.prototype.hasOwnProperty;var xn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Sr=(o,t)=>{for(var e in t)tr(o,e,{get:t[e],enumerable:!0})},_o=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of hn(t))!gn.call(o,n)&&n!==e&&tr(o,n,{get:()=>t[n],enumerable:!(r=dn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?ln(bn(o)):{},_o(t||!o||!o.__esModule?tr(e,"default",{value:o,enumerable:!0}):e,o)),vn=o=>_o(tr({},"__esModule",{value:!0}),o);var x=xn((Ya,Br)=>{"use strict";var Wr=Object.defineProperty,yn=Object.getOwnPropertyDescriptor,_n=Object.getOwnPropertyNames,Tn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _n(t))!Tn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=yn(t,n))||r.enumerable});return o},wn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Fn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>In});Br.exports=Fn(kr);wn(kr,require("@tensorflow/tfjs-node"),Br.exports);var To="4.16.0",Dn="4.16.0",En="4.16.0",Mn="4.16.0",Cn="4.16.0",In={tfjs:To,"tfjs-core":To,"tfjs-converter":Dn,"tfjs-backend-cpu":En,"tfjs-backend-webgl":Mn,"tfjs-backend-wasm":Cn}});var Ba={};Sr(Ba,{AgeGenderNet:()=>He,BoundingBox:()=>Ot,Box:()=>L,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>_t,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Tt,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>R,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>gt,FaceLandmark68Net:()=>Zt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>H,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Yt,FaceMatch:()=>me,FaceMatcher:()=>vo,FaceRecognitionNet:()=>Kt,Gender:()=>_r,LabeledBox:()=>pe,LabeledFaceDescriptors:()=>Et,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>Ht,Point:()=>_,PredictedBox:()=>Ur,Rect:()=>zt,SsdMobilenetv1:()=>It,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>re,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>te,TinyYolov2Options:()=>st,allFaces:()=>Sa,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>xa,createCanvas:()=>Xt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>ua,createFaceRecognitionNet:()=>ta,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Aa,createTinyYolov2:()=>da,detectAllFaces:()=>Lr,detectFaceLandmarks:()=>mn,detectFaceLandmarksTiny:()=>ga,detectLandmarks:()=>Ia,detectSingleFace:()=>Na,draw:()=>co,env:()=>w,euclideanDistance:()=>xo,extendWithAge:()=>Dr,extendWithFaceDescriptor:()=>Fr,extendWithFaceDetection:()=>Vt,extendWithFaceExpressions:()=>gr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Er,extractFaceTensors:()=>le,extractFaces:()=>fe,fetchImage:()=>On,fetchJson:()=>no,fetchNetWeights:()=>Hn,fetchOrThrow:()=>ht,fetchVideo:()=>zn,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ut,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>Sn,iou:()=>zr,isMediaElement:()=>sr,isMediaLoaded:()=>Ae,isWithAge:()=>ea,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>qt,isWithGender:()=>ra,loadAgeGenderModel:()=>Ea,loadFaceDetectionModel:()=>Ma,loadFaceExpressionModel:()=>Da,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>wa,loadFaceRecognitionModel:()=>Fa,loadSsdMobilenetv1Model:()=>pn,loadTinyFaceDetectorModel:()=>_a,loadTinyYolov2Model:()=>Ta,loadWeightMap:()=>ao,locateFaces:()=>Ca,matchDimensions:()=>Yn,minBbox:()=>Yr,nets:()=>F,nonMaxSuppression:()=>Vr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>ya,recognizeFaceExpressions:()=>va,resizeResults:()=>fn,resolveInput:()=>Gt,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>cn,tf:()=>Wa,tinyFaceDetector:()=>ha,tinyYolov2:()=>ba,toNetInput:()=>D,utils:()=>Hr,validateConfig:()=>ho,version:()=>ka});module.exports=vn(Ba);var Wa=v(x());var co={};Sr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Se,DrawBoxOptions:()=>nr,DrawFaceLandmarks:()=>vr,DrawFaceLandmarksOptions:()=>xr,DrawTextField:()=>jt,DrawTextFieldOptions:()=>ue,drawContour:()=>lt,drawDetections:()=>$n,drawFaceExpressions:()=>Vn,drawFaceLandmarks:()=>jn});function lt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},s)=>{let a=t[s];o.moveTo(a.x,a.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 Hr={};Sr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>$t,isDimensions:()=>rr,isEven:()=>er,isFloat:()=>$r,isTensor:()=>Bt,isTensor1D:()=>Nn,isTensor2D:()=>Rr,isTensor3D:()=>dt,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>ce,range:()=>ct,round:()=>Rt});var Po=v(x());var R=class o{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 o(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Nn(o){return Bt(o,1)}function Rr(o){return Bt(o,2)}function dt(o){return Bt(o,3)}function U(o){return Bt(o,4)}function $r(o){return o%1!==0}function er(o){return o%2===0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function rr(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new R(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new _(0,0)).div(new _(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function ce(o){return et(o)&&o>=0&&o<=1}var _=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var L=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!o.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),s=[r.x,r.y,r.width,r.height].every(et);if(!s&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[a,i,c,m]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:a,y:i,width:c,height:m},"Box.constructor",e),this._x=a,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 _(this.left,this.top)}get topRight(){return new _(this.right,this.top)}get bottomLeft(){return new _(this.left,this.bottom)}get bottomRight(){return new _(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new o({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new o({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,s=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:a,edy:c,dx:s,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new o({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 Ot=class extends L{constructor(t,e,r,n,s=!1){super({left:t,top:e,right:r,bottom:n},s)}};var Ht=class o{constructor(t,e,r,n,s){this._imageDims=new R(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new L(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 L(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class o extends Ht{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:s}=super.forSize(t,e);return new o(r,n,s)}};function zr(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)),s=r*n;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function Yr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:a,boxIndex:i})).sort((a,i)=>a.score-i.score).map(a=>a.boxIndex),s=[];for(;n.length>0;){let a=n.pop();s.push(a);let i=n,c=[];for(let m=0;mc[p]<=e)}return s}var mt=v(x());function rt(o,t){return mt.tidy(()=>{let[e,r,n]=t,s=mt.fill([...o.shape.slice(0,3),1],e,"float32"),a=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([s,a,i],3);return mt.sub(o,c)})}var Dt=v(x());function Gr(o,t=!1){return Dt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),s=Math.round(n*(t?.5:1)),a=e>r?2:1,i=f=>{let l=o.shape.slice();return l[a]=f,Dt.fill(l,0,"float32")},c=i(s),m=n-c.shape[a],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Dt.cast(f,"float32"));return Dt.concat(u,a)})}function Ln(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 Ne(o){return 1/(1+Math.exp(-o))}function Sn(o){return Math.log(o/(1-o))}var zt=class extends L{constructor(t,e,r,n,s=!1){super({x:t,y:e,width:r,height:n},s)}};var An=.5,Wn=.43,kn=.45,H=class{constructor(t,e,r=new _(0,0)){let{width:n,height:s}=e;this._imgDims=new R(n,s),this._shift=r,this._positions=t.map(a=>a.mul(new _(n,s)).add(r))}get shift(){return new _(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 _(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 _(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof M?t.box.floor():new L(t);return this.shiftBy(s.x,s.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,s=u=>n.sub(u).magnitude(),a=(s(e)+s(r))/2,i=Math.floor(a/kn),c=$t(t),m=Math.floor(Math.max(0,c.x-An*i)),p=Math.floor(Math.max(0,c.y-Wn*i));return new zt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Yr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends H{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var Yt=class extends H{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 me=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 pe=class extends L{static assertIsValidLabeledBox(t,e){if(L.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 Et=class o{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 o(t.label,e)}};var Ur=class extends pe{static assertIsValidPredictedBox(t,e){if(pe.assertIsValidLabeledBox(t,e),!ce(t.score)||!ce(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 Vt(o,t){return{...o,...{detection:t}}}function Xr(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Le(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function or(o){let t="";if(!o&&Le())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,s)=>{o.readFile(r,(a,i)=>a?s(a):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},a=global.fetch,i=or();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:s,fetch:a,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var S;function Bn(){if(!S)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return S}function Zr(o){S=o}function Kr(){return qr()?Zr(Xr()):Le()?Zr(Jr()):null}function Rn(o){if(S||Kr(),!S)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=S.Canvas,Image:e=S.Image}=o;S.Canvas=t,S.Image=e,S.createCanvasElement=o.createCanvasElement||(()=>new t),S.createImageElement=o.createImageElement||(()=>new e),S.ImageData=o.ImageData||S.ImageData,S.Video=o.Video||S.Video,S.fetch=o.fetch||S.fetch,S.readFile=o.readFile||S.readFile}var w={getEnv:Bn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:or,createNodejsEnv:Jr,monkeyPatch:Rn,isBrowser:qr,isNodejs:Le};Kr();function Gt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Gt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),ue=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:s,fontStyle:a,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=a||"Georgia",this.padding=i||4}},jt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new ue(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,T=c+u.y+(l+1)*a;r.fillText(f,b,T)})}};var nr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let a={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new ue({...a,...s})}},Se=class{constructor(t,e={}){this.box=new L(t),this.options=new nr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:s,y:a,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(s,a,i,c);let{label:m}=this.options;m&&new jt([m],{x:s-n/2,y:a},this.options.drawLabelOptions).draw(t)}};function $n(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,s=r instanceof M?r.box:pt(r)?r.detection.box:new L(r),a=n?`${Rt(n)}`:void 0;new Se(s,{label:a}).draw(o)})}var Te=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ae(o)){t(null);return}function r(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),e(s))}function n(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(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 Ut(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new R(o.naturalWidth,o.naturalHeight):o instanceof e?new R(o.videoWidth,o.videoHeight):new R(o.width,o.height)}function Xt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ut(o),s=Xt({width:r,height:n});return o instanceof e?$(s).putImageData(o,0,0):$(s).drawImage(o,0,0,r,n),s}var ar=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,s]=o.shape.slice(U(o)?1:0),a=ar.tidy(()=>o.as3D(r,n,s).toInt());return await ar.browser.toPixels(a,e),a.dispose(),e}function sr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var z=v(x());function oo(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 Xt({width:1,height:1});let s=Ut(o),a=t/Math.max(s.height,s.width),i=a*s.width,c=a*s.height,m=Xt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&$(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(dt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let a=r.shape[0];if(a!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${a} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let s=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=s,this._inputDimensions[n]=[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 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 Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,z.tidy(()=>{let r=ct(this.batchSize,0,1).map(s=>{let a=this.getInput(s);if(a instanceof z.Tensor){let i=U(a)?a:z.expandDims(a);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=z.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(a instanceof w.getEnv().Canvas)return z.browser.fromPixels(oo(a,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${a}`)});return z.stack(r.map(s=>z.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof ut)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(Gt);return r.forEach((n,s)=>{if(!sr(n)&&!dt(n)&&!U(n))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let a=n.shape[0];if(a!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${a} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>sr(n)&&to(n))),new ut(r,Array.isArray(o))}async function fe(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let a=await D(o);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=a.getInput(0);r=i instanceof e?i:await ro(i)}let n=$(r);return t.map(a=>a instanceof M?a.forSize(r.width,r.height).box.floor():a).map(a=>a.clipAtImageBorders(r.width,r.height)).map(({x:a,y:i,width:c,height:m})=>{let p=Xt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(a,i,c,m),0,0),p})}var ir=v(x());async function le(o,t){if(!dt(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return ir.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>ir.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function ht(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 On(o){let t=await ht(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 eo(e)}async function no(o){return(await ht(o)).json()}async function Hn(o){return new Float32Array(await(await ht(o)).arrayBuffer())}function wo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function zn(o){let t=await ht(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return wo(e)}var Fo=v(x());function cr(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),s=o.endsWith(".json")?n[n.length-1]:e,a=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return a=o.startsWith("/")?`/${a}`:a,{modelBaseUri:a,manifestUri:a==="/"?`/${s}`:`${a}/${s}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=cr(o,t),n=await no(e);return Fo.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Ut(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ve=v(x());var bt=v(x());var A=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 bt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof bt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=bt.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 ao(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}=cr(t,this.getDefaultModelName()),s=m=>Promise.all(m.map(p=>e(p).then(u=>typeof u=="string"?Buffer.from(u):u.buffer))),a=bt.io.weightsLoaderFactory(s),i=JSON.parse((await e(r)).toString()),c=await a(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((s,a)=>{if(!s.nextObj.hasOwnProperty(a))throw new Error(`traversePropertyPath - object does not have property ${a}, for path ${t}`);return{obj:s.nextObj,objProp:a,nextObj:s.nextObj[a]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof bt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var E=v(x());var de=v(x());function O(o,t,e){return de.tidy(()=>{let r=de.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=de.add(r,t.bias),r})}function mr(o,t,e=!1){return E.tidy(()=>{let r=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),s=E.relu(E.add(r,n)),a=O(s,t.conv2,[1,1]);return E.relu(E.add(r,E.add(n,a)))})}function ke(o,t,e=!1,r=!0){return E.tidy(()=>{let n=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),s=O(n,t.conv1,[1,1]),a=E.relu(E.add(n,s)),i=O(a,t.conv2,[1,1]),c=E.relu(E.add(n,E.add(s,i))),m=O(c,t.conv3,[1,1]);return E.relu(E.add(n,E.add(s,E.add(i,m))))})}var Mt=v(x());function Jt(o,t,e="same",r=!1){return Mt.tidy(()=>{let n=Mt.add(Mt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Mt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var pr=v(x());function he(o,t){return(e,r,n,s)=>{let a=pr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=pr.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:a,bias:i}}}var ur=v(x());function fr(o,t){return(e,r,n)=>{let s=ur.tensor2d(o(e*r),[e,r]),a=ur.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:s,bias:a}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function be(o,t){return(e,r,n)=>{let s=Re.tensor4d(o(9*e),[3,3,e,1]),a=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(s,a,i)}}function ge(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let s=o[e];if(!Bt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:n||e}),s}}function k(o){let t=o;function e(n){let s=t.slice(0,n);return t=t.slice(n),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function lr(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c,m=!1){let p=m?e(a,i,3,`${c}/conv0`):r(a,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(a,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(a,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock4Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i,dense3:c}}}function dr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function hr(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractDenseBlock4Params:e}=hr(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 xe=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ve.tidy(()=>{let r=ve.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ke(s,e.dense0,!0);return a=ke(a,e.dense1),a=ke(a,e.dense2),a=ke(a,e.dense3),a=ve.avgPool(a,[7,7],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Eo(t)}extractParams(t){return Do(t)}};var Io=v(x());var ye=v(x());function $e(o,t){return ye.tidy(()=>ye.add(ye.matMul(o,t.weights),t.bias))}function Mo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:s}=k(o),i=fr(n,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:i}}}function Co(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function br(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 _e=class extends A{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 Io.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t;return $e(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 Mo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Co(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,s=t.slice(0,t.length-n),a=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(a)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends _e{constructor(t=new xe){super("FaceExpressionNet",t)}forwardInput(t){return Te.tidy(()=>Te.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(Te.unstack(r).map(async a=>{let i=a.dataSync();return a.dispose(),i}));r.dispose();let s=n.map(a=>new gt(a));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof gt}function gr(o,t){return{...o,...{expressions:t}}}function Vn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let a=s instanceof gt?s:io(s)?s.expressions:void 0;if(!a)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=a.asSortedArray().filter(u=>u.probability>e),m=pt(s)?s.detection.box.bottomLeft:r||new _(0,0);new jt(c.map(u=>`${u.expression} (${Rt(u.probability)})`),m).draw(o)})}function qt(o){return pt(o)&&o.landmarks instanceof H&&o.unshiftedLandmarks instanceof H&&o.alignedRect instanceof M}function Gn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c.x-m.x)**2+(c.y-m.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c.x-m.x),f=Math.floor(m.x-p.x);return u-f},s=(c,m)=>{let p=Math.hypot(m.x-c.x,m.y-c.y),u=m.y-c.y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),T=m.x-c.x<0?-1:1;return b*T},a=(c,m,p)=>{let u=e(c,p),f=new _((c.x+p.x)/2,(c.y+p.y)/2),l=e(m,f),b=Math.atan(l/u),T=Math.floor(t(b)),h=f.y-m.y<0?-1:1;return T*h};if(!o||!o.positions||o.positions.length!==68)return r;let i=o.positions;return r.roll=s(i[27],i[66]),r.pitch=a(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:s}=o.detection,a=new M(o.detection.score,n.rescale(s.reverse()),s),i=Gn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:a,angle:i}}}var xr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:s,pointSize:a,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=a||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},vr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new xr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:s,lineColor:a,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Yt&&(e.strokeStyle=a,e.lineWidth=s,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 jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof H?r:qt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new vr(n).draw(o)})}var No="1.7.13";var ft=v(x());var N=v(x());function Jn(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c){let m=r(a,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(a,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(a,i){let c=r(a,a,`${i}/separable_conv0`),m=r(a,a,`${i}/separable_conv1`),p=r(a,a,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=k(o),{extractConvParams:s,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:c}=Jn(r,e),m=s(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};ct(t,0,1).forEach(g=>{l[`main_block_${g}`]=c(128,`middle_flow/main_block_${g}`)});let b=i(128,256,"exit_flow/reduction_block"),T=a(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:T};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:h}}}function qn(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(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 a(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:s,extractMainBlockParams:a}}function So(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:s,extractMainBlockParams:a}=qn(o,e),i=r("entry_flow/conv_in"),c=s("entry_flow/reduction_block_0"),m=s("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};ct(t,0,1).forEach(T=>{u[`main_block_${T}`]=a(`middle_flow/main_block_${T}`)});let f=s("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Ao(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?N.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Ao(o,t.expansion_conv,[2,2])),r}function Zn(o,t){let e=O(N.relu(o),t.separable_conv0,[1,1]);return e=O(N.relu(e),t.separable_conv1,[1,1]),e=O(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var yr=class extends A{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"),s=rt(r,[122.782,117.001,104.298]).div(255),a=N.relu(Ao(s,e.entry_flow.conv_in,[2,2]));return a=mo(a,e.entry_flow.reduction_block_0,!1),a=mo(a,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{a=Zn(a,e.middle_flow[`main_block_${i}`])}),a=mo(a,e.exit_flow.reduction_block),a=N.relu(O(a,e.exit_flow.separable_conv,[1,1])),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return So(t,this._numMainBlocks)}extractParams(t){return Lo(t,this._numMainBlocks)}};function Wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),n=fr(e,t),s=n(512,1,"fc/age"),a=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:a}}}}function ko(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var _r=(e=>(e.FEMALE="female",e.MALE="male",e))(_r||{});var He=class extends A{constructor(t=new yr(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 ft.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t,n=ft.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),s=$e(n,e.fc.age).as1D(),a=$e(n,e.fc.gender);return{age:s,gender:a}})}forwardInput(t){return ft.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ft.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=ft.unstack(r.age),s=ft.unstack(r.gender),a=n.map((c,m)=>({ageTensor:c,genderTensor:s[m]})),i=await Promise.all(a.map(async({ageTensor:c,genderTensor:m})=>{let p=c.dataSync()[0],u=m.dataSync()[0],f=u>.5,l=f?"male":"female",b=f?u:1-u;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:b}}));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 Wo(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),ko(r)}extractParams(t){let r=t.slice(0,t.length-1539),n=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var V=v(x());var we=class extends _e{postProcess(t,e,r){let n=r.map(({width:a,height:i})=>{let c=e/Math.max(i,a);return{width:a*c,height:i*c}}),s=n.length;return V.tidy(()=>{let a=(u,f)=>V.stack([V.fill([68],u,"float32"),V.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>la(c(f),m(f))))).div(V.stack(Array.from(Array(s),(u,f)=>a(n[f].width,n[f].height))))})}forwardInput(t){return V.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=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(s,a)=>{let i=Array.from(s.dataSync()),c=i.filter((p,u)=>er(u)),m=i.filter((p,u)=>!er(u));return new Yt(Array(68).fill(0).map((p,u)=>new _(c[u],m[u])),{height:e.getInputHeight(a),width:e.getInputWidth(a)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Zt=class extends we{constructor(t=new xe){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Fe=v(x());function Bo(o){let t=[],{extractDenseBlock3Params:e}=hr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Ro(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock3Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i}}}var Tr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Fe.tidy(()=>{let r=Fe.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=mr(s,e.dense0,!0);return a=mr(a,e.dense1),a=mr(a,e.dense2),a=Fe.avgPool(a,[14,14],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Bo(t)}extractParams(t){return Ro(t)}};var ze=class extends we{constructor(t=new Tr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Zt{};var nt=v(x());var De=v(x());var Pr=v(x());function $o(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:s,bias:a}=t.conv,i=De.conv2d(o,s,e,n);return i=De.add(i,a),i=$o(i,t.scale),r?De.relu(i):i}function Oo(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function wr(o,t){return uo(o,t,[2,2],!0,"valid")}var G=v(x());function Kn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return G.tidy(()=>G.transpose(G.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=G.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=G.tensor1d(o(i)),p=G.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function s(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function a(i,c,m,p,u=!1){let f=s((u?.5:1)*i,c,m,`${p}/conv1`),l=s(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:s,extractResidualLayerParams:a}}function Ho(o){let{extractWeights:t,getRemainingWeights:e}=k(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:s}=Kn(t,r),a=n(4704,32,7,"conv32_down"),i=s(9216,32,3,"conv32_1"),c=s(9216,32,3,"conv32_2"),m=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),u=s(36864,64,3,"conv64_1"),f=s(36864,64,3,"conv64_2"),l=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),T=s(147456,128,3,"conv128_1"),h=s(147456,128,3,"conv128_2"),g=s(589824,256,3,"conv256_down",!0),P=s(589824,256,3,"conv256_1"),y=s(589824,256,3,"conv256_2"),I=s(589824,256,3,"conv256_down_out"),j=G.tidy(()=>G.transpose(G.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:a,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:T,conv128_2:h,conv256_down:g,conv256_1:P,conv256_2:y,conv256_down_out:I,fc:j},paramMappings:r}}function Qn(o,t){let e=Y(o,t);function r(a){let i=e(`${a}/scale/weights`,1),c=e(`${a}/scale/biases`,1);return{weights:i,biases:c}}function n(a){let i=e(`${a}/conv/filters`,4),c=e(`${a}/conv/bias`,1),m=r(a);return{conv:{filters:i,bias:c},scale:m}}function s(a){return{conv1:n(`${a}/conv1`),conv2:n(`${a}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:s}}function zo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Qn(o,t),n=e("conv32_down"),s=r("conv32_1"),a=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),T=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),P=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let I={conv32_down:n,conv32_1:s,conv32_2:a,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:T,conv256_1:h,conv256_2:g,conv256_down_out:P,fc:y};return W(o,t),{params:I,paramMappings:t}}var B=v(x());function ot(o,t){let e=Oo(o,t.conv1);return e=fo(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Ye(o,t){let e=wr(o,t.conv1);e=fo(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),s=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=s?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var Kt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=wr(s,e.conv32_down);a=nt.maxPool(a,3,2,"valid"),a=ot(a,e.conv32_1),a=ot(a,e.conv32_2),a=ot(a,e.conv32_3),a=Ye(a,e.conv64_down),a=ot(a,e.conv64_1),a=ot(a,e.conv64_2),a=ot(a,e.conv64_3),a=Ye(a,e.conv128_down),a=ot(a,e.conv128_1),a=ot(a,e.conv128_2),a=Ye(a,e.conv256_down),a=ot(a,e.conv256_1),a=ot(a,e.conv256_2),a=Ye(a,e.conv256_down_out);let i=a.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(a=>a<=0))return new Float32Array(128);let e=await D(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(a=>a.data()));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return zo(t)}extractParams(t){return Ho(t)}};function ta(o){let t=new Kt;return t.extractWeights(o),t}function Fr(o,t){return{...o,...{descriptor:t}}}function ea(o){return typeof o.age=="number"}function Dr(o,t){return{...o,...{age:t}}}function ra(o){return(o.gender==="male"||o.gender==="female")&&ce(o.genderProbability)}function Er(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Nt=v(x());var at=v(x());function oa(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=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:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function s(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function a(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),u=s(128,128,"mobilenetv1/conv_3"),f=s(128,256,"mobilenetv1/conv_4"),l=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),T=s(512,512,"mobilenetv1/conv_7"),h=s(512,512,"mobilenetv1/conv_8"),g=s(512,512,"mobilenetv1/conv_9"),P=s(512,512,"mobilenetv1/conv_10"),y=s(512,512,"mobilenetv1/conv_11"),I=s(512,1024,"mobilenetv1/conv_12"),j=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,conv_8:h,conv_9:g,conv_10:P,conv_11:y,conv_12:I,conv_13:j}}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"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),T=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),P=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"),j=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Ft=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:P,class_predictor:y},box_predictor_2:{box_encoding_predictor:I,class_predictor:j},box_predictor_3:{box_encoding_predictor:tt,class_predictor:it},box_predictor_4:{box_encoding_predictor:q,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Ft}}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:s}=oa(e,t),a=n(),i=s(),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:a,prediction_layer:i,output_layer:m},paramMappings:t}}function na(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),T=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),h=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),g=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),P=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:T,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:P},pointwise_conv:r("MobilenetV1",m,l)}}function s(){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 a(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=a(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=a(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}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:s,extractPredictionLayerParams:c}}function Vo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=na(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!dt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:s,paramMappings:t}}var xt=v(x());var Ct=v(x());function Z(o,t,e){return Ct.tidy(()=>{let r=Ct.conv2d(o,t.filters,e,"same");return r=Ct.add(r,t.batch_norm_offset),Ct.clipByValue(r,0,6)})}var aa=.0010000000474974513;function sa(o,t,e){return xt.tidy(()=>{let r=xt.depthwiseConv2d(o,t.filters,e,"same");return r=xt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,aa),xt.clipByValue(r,0,6)})}function ia(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Go(o,t){return xt.tidy(()=>{let e,r=Z(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((s,a)=>{let i=a+1,c=ia(i);r=sa(r,s.depthwise_conv,c),r=Z(r,s.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 ca(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),a=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]),u=Math.max(r[e][1],r[e][3]),f=(a-n)*(i-s),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),T=Math.max(s,m),h=Math.min(a,p),g=Math.min(i,u),P=Math.max(h-b,0)*Math.max(g-T,0);return P/(f+l-P)}function jo(o,t,e,r,n){let s=o.shape[0],a=Math.min(e,s),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=a)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ca(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function ma(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function pa(o,t){let{sizes:e,centers:r}=ma(o),n=d.unstack(d.transpose(t,[1,0])),s=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),a=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(a,s),d.sub(c,i),d.add(a,s),d.add(c,i)]),[1,0])}function Uo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=pa(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let s=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),a=d.slice(s,[0,0,0],[-1,-1,1]);a=d.reshape(a,[r,a.shape[1]]);let i=d.unstack(n),c=d.unstack(a);return{boxes:i,scores:c}})}var Ge=v(x());var Ve=v(x());function Qt(o,t){return Ve.tidy(()=>{let e=o.shape[0],r=Ve.reshape(Jt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ve.reshape(Jt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),s=Z(n,e.conv_2,[1,1]),a=Z(s,e.conv_3,[2,2]),i=Z(a,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=Qt(t,e.box_predictor_0),f=Qt(o,e.box_predictor_1),l=Qt(n,e.box_predictor_2),b=Qt(a,e.box_predictor_3),T=Qt(c,e.box_predictor_4),h=Qt(p,e.box_predictor_5),g=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,T.boxPredictionEncoding,h.boxPredictionEncoding],1),P=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,T.classPrediction,h.classPrediction],1);return{boxPredictions:g,classPredictions:P}})}var X=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 It=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(512,!1),"float32"),n=Nt.sub(Nt.div(r,127.5),1),s=Go(n,e.mobilenetv1),{boxPredictions:a,classPredictions:i}=Xo(s.out,s.conv11,e.prediction_layer);return Uo(a,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),s=await D(t),{boxes:a,scores:i}=this.forwardInput(s),c=a[0],m=i[0];for(let y=1;y{let[I,j]=[Math.max(0,g[y][0]),Math.min(1,g[y][2])].map(q=>q*h),[tt,it]=[Math.max(0,g[y][1]),Math.min(1,g[y][3])].map(q=>q*T);return new M(p[y],new zt(tt,I,it-tt,j-I),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return c.dispose(),m.dispose(),P}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new It;return t.extractWeights(o),t}function ua(o){return Jo(o)}var lo=class extends It{};var qo=.4,Zo=[new _(.738768,.874946),new _(2.42204,2.65704),new _(4.30971,7.04493),new _(10.246,4.59428),new _(12.6868,11.8741)],Ko=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],Qo=[117.001,114.697,97.404],tn="tiny_yolov2_model",en="tiny_yolov2_separable_conv_model";var C=v(x());var Mr=o=>typeof o=="number";function ho(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(!Mr(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=>Mr(t.x)&&Mr(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(Mr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Ee(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function vt(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),Ee(e)})}var Lt=v(x());function yt(o,t){return Lt.tidy(()=>{let e=Lt.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Lt.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=Lt.add(e,t.bias),Ee(e)})}var bo=v(x());function fa(o,t){let e=he(o,t);function r(a,i){let c=bo.tensor1d(o(a)),m=bo.tensor1d(o(a));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(a,i,c){let m=e(a,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let s=be(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}}function rn(o,t,e,r){let{extractWeights:n,getRemainingWeights:s}=k(o),a=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=fa(n,a),p;if(t.withSeparableConvs){let[u,f,l,b,T,h,g,P,y]=r,I=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),j=m(f,l,"conv1"),tt=m(l,b,"conv2"),it=m(b,T,"conv3"),q=m(T,h,"conv4"),Pt=m(h,g,"conv5"),wt=P?m(g,P,"conv6"):void 0,Ft=y?m(P,y,"conv7"):void 0,ie=i(y||P||g,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}else{let[u,f,l,b,T,h,g,P,y]=r,I=c(u,f,"conv0"),j=c(f,l,"conv1"),tt=c(l,b,"conv2"),it=c(b,T,"conv3"),q=c(T,h,"conv4"),Pt=c(h,g,"conv5"),wt=c(g,P,"conv6"),Ft=c(P,y,"conv7"),ie=i(y,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:a}}function la(o,t){let e=Y(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 s(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let a=ge(e);return{extractConvParams:n,extractConvWithBatchNormParams:s,extractSeparableConvParams:a}}function on(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}=la(o,e),a;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;a={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:i>7?s("conv6"):void 0,conv7:i>8?s("conv7"):void 0,conv8:r("conv8")}}else a={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:a,paramMappings:e}}var st=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 Cr=class Cr extends A{constructor(t){super("TinyYolov2"),ho(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=vt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=vt(r,e.conv6),r=vt(r,e.conv7),Jt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ee(Jt(t,e.conv0,"valid",!1)):yt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?yt(r,e.conv6):r,r=e.conv7?yt(r,e.conv7):r,Jt(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(255),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 st(e),s=await D(t),a=await this.forwardInput(s,r),i=C.tidy(()=>C.unstack(a)[0].expandDims()),c={width:s.getInputWidth(0),height:s.getInputHeight(0)},m=await this.extractBoxes(i,s.getReshapedInputDimensions(0),n);a.dispose(),i.dispose();let p=m.map(h=>h.box),u=m.map(h=>h.score),f=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Vr(p.map(h=>h.rescale(r)),u,this.config.iouThreshold,!0).map(h=>new Ht(u[h],f[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return on(t,this.config)}extractParams(t){let e=this.config.filterSizes||Cr.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 rn(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:s}=e,a=Math.max(n,s),i=a/n,c=a/s,m=t.shape[1],p=this.config.anchors.length,[u,f,l]=C.tidy(()=>{let g=t.reshape([m,m,p,this.boxEncodingSize]),P=g.slice([0,0,0,0],[m,m,p,4]),y=g.slice([0,0,0,4],[m,m,p,1]),I=this.withClassScores?C.softmax(g.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[P,y,I]}),b=[],T=await f.array(),h=await u.array();for(let g=0;gr){let j=(P+Ne(h[g][P][y][0]))/m*i,tt=(g+Ne(h[g][P][y][1]))/m*c,it=Math.exp(h[g][P][y][2])*this.config.anchors[y].x/m*i,q=Math.exp(h[g][P][y][3])*this.config.anchors[y].y/m*c,Pt=j-it/2,wt=tt-q/2,Ft={row:g,col:P,anchor:y},{classScore:ie,label:yo}=this.withClassScores?await this.extractPredictedClass(l,Ft):{classScore:1,label:0};b.push({box:new Ot(Pt,wt,Pt+it,wt+q),score:I,classScore:I*ie,label:yo,...Ft})}}return u.dispose(),f.dispose(),l.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:n,anchor:s}=e,a=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>a[r][n][s][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}};Cr.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Me=Cr;var te=class extends Me{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:qo,classes:["face"],...t?{anchors:Ko,meanRgb:Qo}:{anchors:Zo,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?en:tn}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function da(o,t=!0){let e=new te(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var go=v(x());async function ee(o,t,e,r,n=({alignedRect:s})=>s){let s=o.map(c=>qt(c)?n(c):c.detection),a=r||(t instanceof go.Tensor?await le(t,s):await fe(t,s)),i=await e(a);return a.forEach(c=>c instanceof go.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return ee([o],t,async s=>e(s[0]),r,n)}var nn=.4,an=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],sn=[117.001,114.697,97.404];var re=class extends Me{constructor(){let t={withSeparableConvs:!0,iouThreshold:nn,classes:["face"],anchors:an,meanRgb:sn,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 F={ssdMobilenetv1:new It,tinyFaceDetector:new re,tinyYolov2:new te,faceLandmark68Net:new Zt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Kt,faceExpressionNet:new Oe,ageGenderNet:new He},cn=(o,t)=>F.ssdMobilenetv1.locateFaces(o,t),ha=(o,t)=>F.tinyFaceDetector.locateFaces(o,t),ba=(o,t)=>F.tinyYolov2.locateFaces(o,t),mn=o=>F.faceLandmark68Net.detectLandmarks(o),ga=o=>F.faceLandmark68TinyNet.detectLandmarks(o),xa=o=>F.faceRecognitionNet.computeFaceDescriptor(o),va=o=>F.faceExpressionNet.predictExpressions(o),ya=o=>F.ageGenderNet.predictAgeAndGender(o),pn=o=>F.ssdMobilenetv1.load(o),_a=o=>F.tinyFaceDetector.load(o),Ta=o=>F.tinyYolov2.load(o),Pa=o=>F.faceLandmark68Net.load(o),wa=o=>F.faceLandmark68TinyNet.load(o),Fa=o=>F.faceRecognitionNet.load(o),Da=o=>F.faceExpressionNet.load(o),Ea=o=>F.ageGenderNet.load(o),Ma=pn,Ca=cn,Ia=mn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},oe=class extends Ir{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>gr(r,e[n]))}withAgeAndGender(){return new ae(this,this.input)}},ne=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceExpressionNet.predictExpressions(r),this.extractedFaces);return gr(t,e)}withAgeAndGender(){return new se(this,this.input)}},St=class extends oe{withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},At=class extends ne{withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Nr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:s,gender:a,genderProbability:i}=e[n];return Dr(Er(r,a,i),s)})}withFaceExpressions(){return new oe(this,this.input)}},se=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,s=>F.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Dr(Er(t,r,n),e)}withFaceExpressions(){return new ne(this,this.input)}},Wt=class extends ae{withFaceExpressions(){return new St(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},kt=class extends se{withFaceExpressions(){return new At(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},_t=class extends Ue{async run(){let t=await this.parentTask;return(await ee(t,this.input,r=>Promise.all(r.map(n=>F.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Fr(t[n],r))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}},Tt=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Fr(t,e)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?F.faceLandmark68TinyNet:F.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof Xe.Tensor?await le(this.input,e):await fe(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),t.filter((a,i)=>n[i]).map((a,i)=>Pe(a,n[i]))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await le(this.input,[e]):await fe(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),Pe(t,n)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=F.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=F.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=F.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>Vt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new oe(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(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?Vt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new ne(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new se(this.runAndExtendWithFaceDetection(),this.input)}};function Na(o,t=new X){return new Qe(o,t)}function Lr(o,t=new X){return new Ie(o,t)}async function un(o,t){return Lr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Lr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Sa=un;function xo(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,s)=>n-r[s]).reduce((n,s)=>n+s*s,0))}var vo=class o{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,s=()=>`person ${n++}`;this._labeledDescriptors=r.map(a=>{if(a instanceof Et)return a;if(a instanceof Float32Array)return new Et(s(),[a]);if(a.descriptor&&a.descriptor instanceof Float32Array)return new Et(s(),[a.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=>xo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Et.fromJSON(r));return new o(e,t.distanceThreshold)}};function Aa(o){let t=new re;return t.extractWeights(o),t}function fn(o,t){let{width:e,height:r}=new R(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=>fn(n,{width:e,height:r}));if(qt(o)){let n=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(Vt(o,n),s)}return pt(o)?Vt(o,o.detection.forSize(e,r)):o instanceof H||o instanceof M?o.forSize(e,r):o}var ka=No;0&&(module.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,fetchVideo,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}); +"use strict";var ln=Object.create;var tr=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,gn=Object.prototype.hasOwnProperty;var xn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Sr=(o,t)=>{for(var e in t)tr(o,e,{get:t[e],enumerable:!0})},_o=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of hn(t))!gn.call(o,n)&&n!==e&&tr(o,n,{get:()=>t[n],enumerable:!(r=dn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?ln(bn(o)):{},_o(t||!o||!o.__esModule?tr(e,"default",{value:o,enumerable:!0}):e,o)),vn=o=>_o(tr({},"__esModule",{value:!0}),o);var x=xn((Ya,Br)=>{"use strict";var Wr=Object.defineProperty,yn=Object.getOwnPropertyDescriptor,_n=Object.getOwnPropertyNames,Tn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _n(t))!Tn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=yn(t,n))||r.enumerable});return o},wn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Fn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>In});Br.exports=Fn(kr);wn(kr,require("@tensorflow/tfjs-node"),Br.exports);var To="4.21.0",Dn="4.21.0",En="4.21.0",Mn="4.21.0",Cn="4.21.0",In={tfjs:To,"tfjs-core":To,"tfjs-converter":Dn,"tfjs-backend-cpu":En,"tfjs-backend-webgl":Mn,"tfjs-backend-wasm":Cn}});var Ba={};Sr(Ba,{AgeGenderNet:()=>He,BoundingBox:()=>Ot,Box:()=>L,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>_t,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Tt,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>R,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>gt,FaceLandmark68Net:()=>Zt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>H,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Yt,FaceMatch:()=>me,FaceMatcher:()=>vo,FaceRecognitionNet:()=>Kt,Gender:()=>_r,LabeledBox:()=>pe,LabeledFaceDescriptors:()=>Et,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>Ht,Point:()=>_,PredictedBox:()=>Ur,Rect:()=>zt,SsdMobilenetv1:()=>It,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>re,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>te,TinyYolov2Options:()=>st,allFaces:()=>Sa,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>xa,createCanvas:()=>Xt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>ua,createFaceRecognitionNet:()=>ta,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Aa,createTinyYolov2:()=>da,detectAllFaces:()=>Lr,detectFaceLandmarks:()=>mn,detectFaceLandmarksTiny:()=>ga,detectLandmarks:()=>Ia,detectSingleFace:()=>Na,draw:()=>co,env:()=>w,euclideanDistance:()=>xo,extendWithAge:()=>Dr,extendWithFaceDescriptor:()=>Fr,extendWithFaceDetection:()=>Vt,extendWithFaceExpressions:()=>gr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Er,extractFaceTensors:()=>le,extractFaces:()=>fe,fetchImage:()=>On,fetchJson:()=>no,fetchNetWeights:()=>Hn,fetchOrThrow:()=>ht,fetchVideo:()=>zn,getContext2dOrThrow:()=>$,getMediaDimensions:()=>Ut,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>Sn,iou:()=>zr,isMediaElement:()=>sr,isMediaLoaded:()=>Ae,isWithAge:()=>ea,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>qt,isWithGender:()=>ra,loadAgeGenderModel:()=>Ea,loadFaceDetectionModel:()=>Ma,loadFaceExpressionModel:()=>Da,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>wa,loadFaceRecognitionModel:()=>Fa,loadSsdMobilenetv1Model:()=>pn,loadTinyFaceDetectorModel:()=>_a,loadTinyYolov2Model:()=>Ta,loadWeightMap:()=>ao,locateFaces:()=>Ca,matchDimensions:()=>Yn,minBbox:()=>Yr,nets:()=>F,nonMaxSuppression:()=>Vr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>ya,recognizeFaceExpressions:()=>va,resizeResults:()=>fn,resolveInput:()=>Gt,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>cn,tf:()=>Wa,tinyFaceDetector:()=>ha,tinyYolov2:()=>ba,toNetInput:()=>D,utils:()=>Hr,validateConfig:()=>ho,version:()=>ka});module.exports=vn(Ba);var Wa=v(x());var co={};Sr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Se,DrawBoxOptions:()=>nr,DrawFaceLandmarks:()=>vr,DrawFaceLandmarksOptions:()=>xr,DrawTextField:()=>jt,DrawTextFieldOptions:()=>ue,drawContour:()=>lt,drawDetections:()=>$n,drawFaceExpressions:()=>Vn,drawFaceLandmarks:()=>jn});function lt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},s)=>{let a=t[s];o.moveTo(a.x,a.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 Hr={};Sr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>$t,isDimensions:()=>rr,isEven:()=>er,isFloat:()=>$r,isTensor:()=>Bt,isTensor1D:()=>Nn,isTensor2D:()=>Rr,isTensor3D:()=>dt,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>ce,range:()=>ct,round:()=>Rt});var Po=v(x());var R=class o{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 o(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Nn(o){return Bt(o,1)}function Rr(o){return Bt(o,2)}function dt(o){return Bt(o,3)}function U(o){return Bt(o,4)}function $r(o){return o%1!==0}function er(o){return o%2===0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function rr(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new R(Math.round(o*r),Math.round(t*r))}function $t(o){return o.reduce((t,e)=>t.add(e),new _(0,0)).div(new _(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function ce(o){return et(o)&&o>=0&&o<=1}var _=class o{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new o(this.x+t.x,this.y+t.y)}sub(t){return new o(this.x-t.x,this.y-t.y)}mul(t){return new o(this.x*t.x,this.y*t.y)}div(t){return new o(this.x/t.x,this.y/t.y)}abs(){return new o(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new o(Math.floor(this.x),Math.floor(this.y))}};var L=class o{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!o.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),s=[r.x,r.y,r.width,r.height].every(et);if(!s&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[a,i,c,m]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];o.assertIsValidBox({x:a,y:i,width:c,height:m},"Box.constructor",e),this._x=a,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 _(this.left,this.top)}get topRight(){return new _(this.right,this.top)}get bottomLeft(){return new _(this.left,this.bottom)}get bottomRight(){return new _(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new o({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new o({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,s=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:a,edy:c,dx:s,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new o({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 Ot=class extends L{constructor(t,e,r,n,s=!1){super({left:t,top:e,right:r,bottom:n},s)}};var Ht=class o{constructor(t,e,r,n,s){this._imageDims=new R(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new L(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 L(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new o(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class o extends Ht{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:s}=super.forSize(t,e);return new o(r,n,s)}};function zr(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)),s=r*n;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function Yr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:a,boxIndex:i})).sort((a,i)=>a.score-i.score).map(a=>a.boxIndex),s=[];for(;n.length>0;){let a=n.pop();s.push(a);let i=n,c=[];for(let m=0;mc[p]<=e)}return s}var mt=v(x());function rt(o,t){return mt.tidy(()=>{let[e,r,n]=t,s=mt.fill([...o.shape.slice(0,3),1],e,"float32"),a=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([s,a,i],3);return mt.sub(o,c)})}var Dt=v(x());function Gr(o,t=!1){return Dt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),s=Math.round(n*(t?.5:1)),a=e>r?2:1,i=f=>{let l=o.shape.slice();return l[a]=f,Dt.fill(l,0,"float32")},c=i(s),m=n-c.shape[a],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Dt.cast(f,"float32"));return Dt.concat(u,a)})}function Ln(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 Ne(o){return 1/(1+Math.exp(-o))}function Sn(o){return Math.log(o/(1-o))}var zt=class extends L{constructor(t,e,r,n,s=!1){super({x:t,y:e,width:r,height:n},s)}};var An=.5,Wn=.43,kn=.45,H=class{constructor(t,e,r=new _(0,0)){let{width:n,height:s}=e;this._imgDims=new R(n,s),this._shift=r,this._positions=t.map(a=>a.mul(new _(n,s)).add(r))}get shift(){return new _(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 _(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 _(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof M?t.box.floor():new L(t);return this.shiftBy(s.x,s.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,s=u=>n.sub(u).magnitude(),a=(s(e)+s(r))/2,i=Math.floor(a/kn),c=$t(t),m=Math.floor(Math.max(0,c.x-An*i)),p=Math.floor(Math.max(0,c.y-Wn*i));return new zt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Yr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends H{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$t([t[3],t[4]])]}};var Yt=class extends H{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 me=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 pe=class extends L{static assertIsValidLabeledBox(t,e){if(L.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 Et=class o{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 o(t.label,e)}};var Ur=class extends pe{static assertIsValidPredictedBox(t,e){if(pe.assertIsValidLabeledBox(t,e),!ce(t.score)||!ce(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 Vt(o,t){return{...o,...{detection:t}}}function Xr(){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"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Le(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function or(o){let t="";if(!o&&Le())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,s)=>{o.readFile(r,(a,i)=>a?s(a):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},a=global.fetch,i=or();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:s,fetch:a,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var S;function Bn(){if(!S)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return S}function Zr(o){S=o}function Kr(){return qr()?Zr(Xr()):Le()?Zr(Jr()):null}function Rn(o){if(S||Kr(),!S)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=S.Canvas,Image:e=S.Image}=o;S.Canvas=t,S.Image=e,S.createCanvasElement=o.createCanvasElement||(()=>new t),S.createImageElement=o.createImageElement||(()=>new e),S.ImageData=o.ImageData||S.ImageData,S.Video=o.Video||S.Video,S.fetch=o.fetch||S.fetch,S.readFile=o.readFile||S.readFile}var w={getEnv:Bn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:or,createNodejsEnv:Jr,monkeyPatch:Rn,isBrowser:qr,isNodejs:Le};Kr();function Gt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Gt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),ue=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:s,fontStyle:a,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=a||"Georgia",this.padding=i||4}},jt=class o{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof o?t.text:t,this.anchor=e,this.options=new ue(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,T=c+u.y+(l+1)*a;r.fillText(f,b,T)})}};var nr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let a={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new ue({...a,...s})}},Se=class{constructor(t,e={}){this.box=new L(t),this.options=new nr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:s,y:a,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(s,a,i,c);let{label:m}=this.options;m&&new jt([m],{x:s-n/2,y:a},this.options.drawLabelOptions).draw(t)}};function $n(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,s=r instanceof M?r.box:pt(r)?r.detection.box:new L(r),a=n?`${Rt(n)}`:void 0;new Se(s,{label:a}).draw(o)})}var Te=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ae(o)){t(null);return}function r(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),e(s))}function n(s){s.currentTarget&&(s.currentTarget.removeEventListener("load",n),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(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 Ut(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new R(o.naturalWidth,o.naturalHeight):o instanceof e?new R(o.videoWidth,o.videoHeight):new R(o.width,o.height)}function Xt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ut(o),s=Xt({width:r,height:n});return o instanceof e?$(s).putImageData(o,0,0):$(s).drawImage(o,0,0,r,n),s}var ar=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,s]=o.shape.slice(U(o)?1:0),a=ar.tidy(()=>o.as3D(r,n,s).toInt());return await ar.browser.toPixels(a,e),a.dispose(),e}function sr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var z=v(x());function oo(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 Xt({width:1,height:1});let s=Ut(o),a=t/Math.max(s.height,s.width),i=a*s.width,c=a*s.height,m=Xt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&$(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;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(dt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let a=r.shape[0];if(a!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${a} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let s=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=s,this._inputDimensions[n]=[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 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 Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,z.tidy(()=>{let r=ct(this.batchSize,0,1).map(s=>{let a=this.getInput(s);if(a instanceof z.Tensor){let i=U(a)?a:z.expandDims(a);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=z.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(a instanceof w.getEnv().Canvas)return z.browser.fromPixels(oo(a,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${a}`)});return z.stack(r.map(s=>z.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function D(o){if(o instanceof ut)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(Gt);return r.forEach((n,s)=>{if(!sr(n)&&!dt(n)&&!U(n))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let a=n.shape[0];if(a!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${a} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>sr(n)&&to(n))),new ut(r,Array.isArray(o))}async function fe(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let a=await D(o);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=a.getInput(0);r=i instanceof e?i:await ro(i)}let n=$(r);return t.map(a=>a instanceof M?a.forSize(r.width,r.height).box.floor():a).map(a=>a.clipAtImageBorders(r.width,r.height)).map(({x:a,y:i,width:c,height:m})=>{let p=Xt({width:c,height:m});return c>0&&m>0&&$(p).putImageData(n.getImageData(a,i,c,m),0,0),p})}var ir=v(x());async function le(o,t){if(!dt(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return ir.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>ir.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function ht(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 On(o){let t=await ht(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 eo(e)}async function no(o){return(await ht(o)).json()}async function Hn(o){return new Float32Array(await(await ht(o)).arrayBuffer())}function wo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function zn(o){let t=await ht(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return wo(e)}var Fo=v(x());function cr(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),s=o.endsWith(".json")?n[n.length-1]:e,a=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return a=o.startsWith("/")?`/${a}`:a,{modelBaseUri:a,manifestUri:a==="/"?`/${s}`:`${a}/${s}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=cr(o,t),n=await no(e);return Fo.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Ut(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ve=v(x());var bt=v(x());var A=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 bt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof bt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=bt.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 ao(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}=cr(t,this.getDefaultModelName()),s=m=>Promise.all(m.map(p=>e(p).then(u=>typeof u=="string"?Buffer.from(u):u.buffer))),a=bt.io.weightsLoaderFactory(s),i=JSON.parse((await e(r)).toString()),c=await a(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((s,a)=>{if(!s.nextObj.hasOwnProperty(a))throw new Error(`traversePropertyPath - object does not have property ${a}, for path ${t}`);return{obj:s.nextObj,objProp:a,nextObj:s.nextObj[a]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof bt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var E=v(x());var de=v(x());function O(o,t,e){return de.tidy(()=>{let r=de.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=de.add(r,t.bias),r})}function mr(o,t,e=!1){return E.tidy(()=>{let r=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),s=E.relu(E.add(r,n)),a=O(s,t.conv2,[1,1]);return E.relu(E.add(r,E.add(n,a)))})}function ke(o,t,e=!1,r=!0){return E.tidy(()=>{let n=E.relu(e?E.add(E.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),s=O(n,t.conv1,[1,1]),a=E.relu(E.add(n,s)),i=O(a,t.conv2,[1,1]),c=E.relu(E.add(n,E.add(s,i))),m=O(c,t.conv3,[1,1]);return E.relu(E.add(n,E.add(s,E.add(i,m))))})}var Mt=v(x());function Jt(o,t,e="same",r=!1){return Mt.tidy(()=>{let n=Mt.add(Mt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Mt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var pr=v(x());function he(o,t){return(e,r,n,s)=>{let a=pr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=pr.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:a,bias:i}}}var ur=v(x());function fr(o,t){return(e,r,n)=>{let s=ur.tensor2d(o(e*r),[e,r]),a=ur.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:s,bias:a}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function be(o,t){return(e,r,n)=>{let s=Re.tensor4d(o(9*e),[3,3,e,1]),a=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(s,a,i)}}function ge(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let s=o[e];if(!Bt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:n||e}),s}}function k(o){let t=o;function e(n){let s=t.slice(0,n);return t=t.slice(n),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function lr(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c,m=!1){let p=m?e(a,i,3,`${c}/conv0`):r(a,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function s(a,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(a,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock4Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i,dense3:c}}}function dr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function hr(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractDenseBlock4Params:e}=hr(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 xe=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ve.tidy(()=>{let r=ve.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=ke(s,e.dense0,!0);return a=ke(a,e.dense1),a=ke(a,e.dense2),a=ke(a,e.dense3),a=ve.avgPool(a,[7,7],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Eo(t)}extractParams(t){return Do(t)}};var Io=v(x());var ye=v(x());function $e(o,t){return ye.tidy(()=>ye.add(ye.matMul(o,t.weights),t.bias))}function Mo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:s}=k(o),i=fr(n,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:i}}}function Co(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function br(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 _e=class extends A{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 Io.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t;return $e(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 Mo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Co(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,s=t.slice(0,t.length-n),a=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(a)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],gt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends _e{constructor(t=new xe){super("FaceExpressionNet",t)}forwardInput(t){return Te.tidy(()=>Te.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(Te.unstack(r).map(async a=>{let i=a.dataSync();return a.dispose(),i}));r.dispose();let s=n.map(a=>new gt(a));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof gt}function gr(o,t){return{...o,...{expressions:t}}}function Vn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let a=s instanceof gt?s:io(s)?s.expressions:void 0;if(!a)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=a.asSortedArray().filter(u=>u.probability>e),m=pt(s)?s.detection.box.bottomLeft:r||new _(0,0);new jt(c.map(u=>`${u.expression} (${Rt(u.probability)})`),m).draw(o)})}function qt(o){return pt(o)&&o.landmarks instanceof H&&o.unshiftedLandmarks instanceof H&&o.alignedRect instanceof M}function Gn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c.x-m.x)**2+(c.y-m.y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c.x-m.x),f=Math.floor(m.x-p.x);return u-f},s=(c,m)=>{let p=Math.hypot(m.x-c.x,m.y-c.y),u=m.y-c.y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),T=m.x-c.x<0?-1:1;return b*T},a=(c,m,p)=>{let u=e(c,p),f=new _((c.x+p.x)/2,(c.y+p.y)/2),l=e(m,f),b=Math.atan(l/u),T=Math.floor(t(b)),h=f.y-m.y<0?-1:1;return T*h};if(!o||!o.positions||o.positions.length!==68)return r;let i=o.positions;return r.roll=s(i[27],i[66]),r.pitch=a(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:s}=o.detection,a=new M(o.detection.score,n.rescale(s.reverse()),s),i=Gn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:a,angle:i}}}var xr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:s,pointSize:a,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=a||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},vr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new xr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:s,lineColor:a,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Yt&&(e.strokeStyle=a,e.lineWidth=s,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 jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof H?r:qt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new vr(n).draw(o)})}var No="1.7.14";var ft=v(x());var N=v(x());function Jn(o,t){let e=he(o,t),r=be(o,t);function n(a,i,c){let m=r(a,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(a,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function s(a,i){let c=r(a,a,`${i}/separable_conv0`),m=r(a,a,`${i}/separable_conv1`),p=r(a,a,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=k(o),{extractConvParams:s,extractSeparableConvParams:a,extractReductionBlockParams:i,extractMainBlockParams:c}=Jn(r,e),m=s(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};ct(t,0,1).forEach(g=>{l[`main_block_${g}`]=c(128,`middle_flow/main_block_${g}`)});let b=i(128,256,"exit_flow/reduction_block"),T=a(256,512,"exit_flow/separable_conv"),h={reduction_block:b,separable_conv:T};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:h}}}function qn(o,t){let e=Y(o,t),r=dr(e),n=ge(e);function s(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 a(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:s,extractMainBlockParams:a}}function So(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:s,extractMainBlockParams:a}=qn(o,e),i=r("entry_flow/conv_in"),c=s("entry_flow/reduction_block_0"),m=s("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};ct(t,0,1).forEach(T=>{u[`main_block_${T}`]=a(`middle_flow/main_block_${T}`)});let f=s("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Ao(o,t,e){return N.add(N.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?N.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(N.relu(r),t.separable_conv1,[1,1]),r=N.maxPool(r,[3,3],[2,2],"same"),r=N.add(r,Ao(o,t.expansion_conv,[2,2])),r}function Zn(o,t){let e=O(N.relu(o),t.separable_conv0,[1,1]);return e=O(N.relu(e),t.separable_conv1,[1,1]),e=O(N.relu(e),t.separable_conv2,[1,1]),e=N.add(e,o),e}var yr=class extends A{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"),s=rt(r,[122.782,117.001,104.298]).div(255),a=N.relu(Ao(s,e.entry_flow.conv_in,[2,2]));return a=mo(a,e.entry_flow.reduction_block_0,!1),a=mo(a,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{a=Zn(a,e.middle_flow[`main_block_${i}`])}),a=mo(a,e.exit_flow.reduction_block),a=N.relu(O(a,e.exit_flow.separable_conv,[1,1])),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return So(t,this._numMainBlocks)}extractParams(t){return Lo(t,this._numMainBlocks)}};function Wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),n=fr(e,t),s=n(512,1,"fc/age"),a=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:a}}}}function ko(o){let t=[],e=Y(o,t);function r(s){let a=e(`${s}/weights`,2),i=e(`${s}/bias`,1);return{weights:a,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var _r=(e=>(e.FEMALE="female",e.MALE="male",e))(_r||{});var He=class extends A{constructor(t=new yr(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 ft.tidy(()=>{let r=t instanceof ut?this.faceFeatureExtractor.forwardInput(t):t,n=ft.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),s=$e(n,e.fc.age).as1D(),a=$e(n,e.fc.gender);return{age:s,gender:a}})}forwardInput(t){return ft.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ft.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=ft.unstack(r.age),s=ft.unstack(r.gender),a=n.map((c,m)=>({ageTensor:c,genderTensor:s[m]})),i=await Promise.all(a.map(async({ageTensor:c,genderTensor:m})=>{let p=c.dataSync()[0],u=m.dataSync()[0],f=u>.5,l=f?"male":"female",b=f?u:1-u;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:b}}));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 Wo(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=br(t);return this.faceFeatureExtractor.loadFromWeightMap(e),ko(r)}extractParams(t){let r=t.slice(0,t.length-1539),n=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var V=v(x());var we=class extends _e{postProcess(t,e,r){let n=r.map(({width:a,height:i})=>{let c=e/Math.max(i,a);return{width:a*c,height:i*c}}),s=n.length;return V.tidy(()=>{let a=(u,f)=>V.stack([V.fill([68],u,"float32"),V.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>la(c(f),m(f))))).div(V.stack(Array.from(Array(s),(u,f)=>a(n[f].width,n[f].height))))})}forwardInput(t){return V.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=V.tidy(()=>V.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(s,a)=>{let i=Array.from(s.dataSync()),c=i.filter((p,u)=>er(u)),m=i.filter((p,u)=>!er(u));return new Yt(Array(68).fill(0).map((p,u)=>new _(c[u],m[u])),{height:e.getInputHeight(a),width:e.getInputWidth(a)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Zt=class extends we{constructor(t=new xe){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Fe=v(x());function Bo(o){let t=[],{extractDenseBlock3Params:e}=hr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Ro(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractDenseBlock3Params:n}=lr(e,t),s=n(3,32,"dense0",!0),a=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:s,dense1:a,dense2:i}}}var Tr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Fe.tidy(()=>{let r=Fe.cast(t.toBatchTensor(112,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=mr(s,e.dense0,!0);return a=mr(a,e.dense1),a=mr(a,e.dense2),a=Fe.avgPool(a,[14,14],[2,2],"valid"),a})}async forward(t){return this.forwardInput(await D(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Bo(t)}extractParams(t){return Ro(t)}};var ze=class extends we{constructor(t=new Tr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Zt{};var nt=v(x());var De=v(x());var Pr=v(x());function $o(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:s,bias:a}=t.conv,i=De.conv2d(o,s,e,n);return i=De.add(i,a),i=$o(i,t.scale),r?De.relu(i):i}function Oo(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function wr(o,t){return uo(o,t,[2,2],!0,"valid")}var G=v(x());function Kn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return G.tidy(()=>G.transpose(G.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=G.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=G.tensor1d(o(i)),p=G.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function s(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function a(i,c,m,p,u=!1){let f=s((u?.5:1)*i,c,m,`${p}/conv1`),l=s(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:s,extractResidualLayerParams:a}}function Ho(o){let{extractWeights:t,getRemainingWeights:e}=k(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:s}=Kn(t,r),a=n(4704,32,7,"conv32_down"),i=s(9216,32,3,"conv32_1"),c=s(9216,32,3,"conv32_2"),m=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),u=s(36864,64,3,"conv64_1"),f=s(36864,64,3,"conv64_2"),l=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),T=s(147456,128,3,"conv128_1"),h=s(147456,128,3,"conv128_2"),g=s(589824,256,3,"conv256_down",!0),P=s(589824,256,3,"conv256_1"),y=s(589824,256,3,"conv256_2"),I=s(589824,256,3,"conv256_down_out"),j=G.tidy(()=>G.transpose(G.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:a,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:T,conv128_2:h,conv256_down:g,conv256_1:P,conv256_2:y,conv256_down_out:I,fc:j},paramMappings:r}}function Qn(o,t){let e=Y(o,t);function r(a){let i=e(`${a}/scale/weights`,1),c=e(`${a}/scale/biases`,1);return{weights:i,biases:c}}function n(a){let i=e(`${a}/conv/filters`,4),c=e(`${a}/conv/bias`,1),m=r(a);return{conv:{filters:i,bias:c},scale:m}}function s(a){return{conv1:n(`${a}/conv1`),conv2:n(`${a}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:s}}function zo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Qn(o,t),n=e("conv32_down"),s=r("conv32_1"),a=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),T=r("conv256_down"),h=r("conv256_1"),g=r("conv256_2"),P=r("conv256_down_out"),{fc:y}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(y))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${y}`);let I={conv32_down:n,conv32_1:s,conv32_2:a,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:T,conv256_1:h,conv256_2:g,conv256_down_out:P,fc:y};return W(o,t),{params:I,paramMappings:t}}var B=v(x());function ot(o,t){let e=Oo(o,t.conv1);return e=fo(e,t.conv2),e=B.add(e,o),e=B.relu(e),e}function Ye(o,t){let e=wr(o,t.conv1);e=fo(e,t.conv2);let r=B.avgPool(o,2,2,"valid"),n=B.zeros(r.shape),s=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=s?B.concat([r,n],3):r,e=B.add(r,e),e=B.relu(e),e}var Kt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),s=rt(r,[122.782,117.001,104.298]).div(255),a=wr(s,e.conv32_down);a=nt.maxPool(a,3,2,"valid"),a=ot(a,e.conv32_1),a=ot(a,e.conv32_2),a=ot(a,e.conv32_3),a=Ye(a,e.conv64_down),a=ot(a,e.conv64_1),a=ot(a,e.conv64_2),a=ot(a,e.conv64_3),a=Ye(a,e.conv128_down),a=ot(a,e.conv128_1),a=ot(a,e.conv128_2),a=Ye(a,e.conv256_down),a=ot(a,e.conv256_1),a=ot(a,e.conv256_2),a=Ye(a,e.conv256_down_out);let i=a.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await D(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(a=>a<=0))return new Float32Array(128);let e=await D(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(a=>a.data()));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return zo(t)}extractParams(t){return Ho(t)}};function ta(o){let t=new Kt;return t.extractWeights(o),t}function Fr(o,t){return{...o,...{descriptor:t}}}function ea(o){return typeof o.age=="number"}function Dr(o,t){return{...o,...{age:t}}}function ra(o){return(o.gender==="male"||o.gender==="female")&&ce(o.genderProbability)}function Er(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Nt=v(x());var at=v(x());function oa(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=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:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function s(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function a(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),u=s(128,128,"mobilenetv1/conv_3"),f=s(128,256,"mobilenetv1/conv_4"),l=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),T=s(512,512,"mobilenetv1/conv_7"),h=s(512,512,"mobilenetv1/conv_8"),g=s(512,512,"mobilenetv1/conv_9"),P=s(512,512,"mobilenetv1/conv_10"),y=s(512,512,"mobilenetv1/conv_11"),I=s(512,1024,"mobilenetv1/conv_12"),j=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,conv_8:h,conv_9:g,conv_10:P,conv_11:y,conv_12:I,conv_13:j}}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"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),T=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),g=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),P=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"),j=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Ft=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:T,box_predictor_0:{box_encoding_predictor:h,class_predictor:g},box_predictor_1:{box_encoding_predictor:P,class_predictor:y},box_predictor_2:{box_encoding_predictor:I,class_predictor:j},box_predictor_3:{box_encoding_predictor:tt,class_predictor:it},box_predictor_4:{box_encoding_predictor:q,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Ft}}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=k(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:s}=oa(e,t),a=n(),i=s(),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:a,prediction_layer:i,output_layer:m},paramMappings:t}}function na(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),T=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),h=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),g=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),P=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:T,batch_norm_offset:h,batch_norm_mean:g,batch_norm_variance:P},pointwise_conv:r("MobilenetV1",m,l)}}function s(){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 a(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=a(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=a(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}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:s,extractPredictionLayerParams:c}}function Vo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=na(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!dt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:s,paramMappings:t}}var xt=v(x());var Ct=v(x());function Z(o,t,e){return Ct.tidy(()=>{let r=Ct.conv2d(o,t.filters,e,"same");return r=Ct.add(r,t.batch_norm_offset),Ct.clipByValue(r,0,6)})}var aa=.0010000000474974513;function sa(o,t,e){return xt.tidy(()=>{let r=xt.depthwiseConv2d(o,t.filters,e,"same");return r=xt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,aa),xt.clipByValue(r,0,6)})}function ia(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Go(o,t){return xt.tidy(()=>{let e,r=Z(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((s,a)=>{let i=a+1,c=ia(i);r=sa(r,s.depthwise_conv,c),r=Z(r,s.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 ca(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),a=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]),u=Math.max(r[e][1],r[e][3]),f=(a-n)*(i-s),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),T=Math.max(s,m),h=Math.min(a,p),g=Math.min(i,u),P=Math.max(h-b,0)*Math.max(g-T,0);return P/(f+l-P)}function jo(o,t,e,r,n){let s=o.shape[0],a=Math.min(e,s),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=a)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ca(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function ma(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function pa(o,t){let{sizes:e,centers:r}=ma(o),n=d.unstack(d.transpose(t,[1,0])),s=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),a=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(a,s),d.sub(c,i),d.add(a,s),d.add(c,i)]),[1,0])}function Uo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=pa(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let s=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),a=d.slice(s,[0,0,0],[-1,-1,1]);a=d.reshape(a,[r,a.shape[1]]);let i=d.unstack(n),c=d.unstack(a);return{boxes:i,scores:c}})}var Ge=v(x());var Ve=v(x());function Qt(o,t){return Ve.tidy(()=>{let e=o.shape[0],r=Ve.reshape(Jt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ve.reshape(Jt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),s=Z(n,e.conv_2,[1,1]),a=Z(s,e.conv_3,[2,2]),i=Z(a,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=Qt(t,e.box_predictor_0),f=Qt(o,e.box_predictor_1),l=Qt(n,e.box_predictor_2),b=Qt(a,e.box_predictor_3),T=Qt(c,e.box_predictor_4),h=Qt(p,e.box_predictor_5),g=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,T.boxPredictionEncoding,h.boxPredictionEncoding],1),P=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,T.classPrediction,h.classPrediction],1);return{boxPredictions:g,classPredictions:P}})}var X=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 It=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(512,!1),"float32"),n=Nt.sub(Nt.div(r,127.5),1),s=Go(n,e.mobilenetv1),{boxPredictions:a,classPredictions:i}=Xo(s.out,s.conv11,e.prediction_layer);return Uo(a,i,e.output_layer)})}async forward(t){return this.forwardInput(await D(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),s=await D(t),{boxes:a,scores:i}=this.forwardInput(s),c=a[0],m=i[0];for(let y=1;y{let[I,j]=[Math.max(0,g[y][0]),Math.min(1,g[y][2])].map(q=>q*h),[tt,it]=[Math.max(0,g[y][1]),Math.min(1,g[y][3])].map(q=>q*T);return new M(p[y],new zt(tt,I,it-tt,j-I),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return c.dispose(),m.dispose(),P}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new It;return t.extractWeights(o),t}function ua(o){return Jo(o)}var lo=class extends It{};var qo=.4,Zo=[new _(.738768,.874946),new _(2.42204,2.65704),new _(4.30971,7.04493),new _(10.246,4.59428),new _(12.6868,11.8741)],Ko=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],Qo=[117.001,114.697,97.404],tn="tiny_yolov2_model",en="tiny_yolov2_separable_conv_model";var C=v(x());var Mr=o=>typeof o=="number";function ho(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(!Mr(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=>Mr(t.x)&&Mr(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(Mr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Ee(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function vt(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),Ee(e)})}var Lt=v(x());function yt(o,t){return Lt.tidy(()=>{let e=Lt.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Lt.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=Lt.add(e,t.bias),Ee(e)})}var bo=v(x());function fa(o,t){let e=he(o,t);function r(a,i){let c=bo.tensor1d(o(a)),m=bo.tensor1d(o(a));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(a,i,c){let m=e(a,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let s=be(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}}function rn(o,t,e,r){let{extractWeights:n,getRemainingWeights:s}=k(o),a=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=fa(n,a),p;if(t.withSeparableConvs){let[u,f,l,b,T,h,g,P,y]=r,I=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),j=m(f,l,"conv1"),tt=m(l,b,"conv2"),it=m(b,T,"conv3"),q=m(T,h,"conv4"),Pt=m(h,g,"conv5"),wt=P?m(g,P,"conv6"):void 0,Ft=y?m(P,y,"conv7"):void 0,ie=i(y||P||g,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}else{let[u,f,l,b,T,h,g,P,y]=r,I=c(u,f,"conv0"),j=c(f,l,"conv1"),tt=c(l,b,"conv2"),it=c(b,T,"conv3"),q=c(T,h,"conv4"),Pt=c(h,g,"conv5"),wt=c(g,P,"conv6"),Ft=c(P,y,"conv7"),ie=i(y,5*e,1,"conv8");p={conv0:I,conv1:j,conv2:tt,conv3:it,conv4:q,conv5:Pt,conv6:wt,conv7:Ft,conv8:ie}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:a}}function la(o,t){let e=Y(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 s(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let a=ge(e);return{extractConvParams:n,extractConvWithBatchNormParams:s,extractSeparableConvParams:a}}function on(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:s}=la(o,e),a;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;a={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:i>7?s("conv6"):void 0,conv7:i>8?s("conv7"):void 0,conv8:r("conv8")}}else a={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:a,paramMappings:e}}var st=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 Cr=class Cr extends A{constructor(t){super("TinyYolov2"),ho(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=vt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=vt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=vt(r,e.conv6),r=vt(r,e.conv7),Jt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?Ee(Jt(t,e.conv0,"valid",!1)):yt(t,e.conv0);return r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv1),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv2),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv3),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv4),r=C.maxPool(r,[2,2],[2,2],"same"),r=yt(r,e.conv5),r=C.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?yt(r,e.conv6):r,r=e.conv7?yt(r,e.conv7):r,Jt(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(255),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 st(e),s=await D(t),a=await this.forwardInput(s,r),i=C.tidy(()=>C.unstack(a)[0].expandDims()),c={width:s.getInputWidth(0),height:s.getInputHeight(0)},m=await this.extractBoxes(i,s.getReshapedInputDimensions(0),n);a.dispose(),i.dispose();let p=m.map(h=>h.box),u=m.map(h=>h.score),f=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Vr(p.map(h=>h.rescale(r)),u,this.config.iouThreshold,!0).map(h=>new Ht(u[h],f[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return on(t,this.config)}extractParams(t){let e=this.config.filterSizes||Cr.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 rn(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:s}=e,a=Math.max(n,s),i=a/n,c=a/s,m=t.shape[1],p=this.config.anchors.length,[u,f,l]=C.tidy(()=>{let g=t.reshape([m,m,p,this.boxEncodingSize]),P=g.slice([0,0,0,0],[m,m,p,4]),y=g.slice([0,0,0,4],[m,m,p,1]),I=this.withClassScores?C.softmax(g.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):C.scalar(0);return[P,y,I]}),b=[],T=await f.array(),h=await u.array();for(let g=0;gr){let j=(P+Ne(h[g][P][y][0]))/m*i,tt=(g+Ne(h[g][P][y][1]))/m*c,it=Math.exp(h[g][P][y][2])*this.config.anchors[y].x/m*i,q=Math.exp(h[g][P][y][3])*this.config.anchors[y].y/m*c,Pt=j-it/2,wt=tt-q/2,Ft={row:g,col:P,anchor:y},{classScore:ie,label:yo}=this.withClassScores?await this.extractPredictedClass(l,Ft):{classScore:1,label:0};b.push({box:new Ot(Pt,wt,Pt+it,wt+q),score:I,classScore:I*ie,label:yo,...Ft})}}return u.dispose(),f.dispose(),l.dispose(),b}async extractPredictedClass(t,e){let{row:r,col:n,anchor:s}=e,a=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>a[r][n][s][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}};Cr.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Me=Cr;var te=class extends Me{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:qo,classes:["face"],...t?{anchors:Ko,meanRgb:Qo}:{anchors:Zo,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?en:tn}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function da(o,t=!0){let e=new te(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var go=v(x());async function ee(o,t,e,r,n=({alignedRect:s})=>s){let s=o.map(c=>qt(c)?n(c):c.detection),a=r||(t instanceof go.Tensor?await le(t,s):await fe(t,s)),i=await e(a);return a.forEach(c=>c instanceof go.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return ee([o],t,async s=>e(s[0]),r,n)}var nn=.4,an=[new _(1.603231,2.094468),new _(6.041143,7.080126),new _(2.882459,3.518061),new _(4.266906,5.178857),new _(9.041765,10.66308)],sn=[117.001,114.697,97.404];var re=class extends Me{constructor(){let t={withSeparableConvs:!0,iouThreshold:nn,classes:["face"],anchors:an,meanRgb:sn,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 F={ssdMobilenetv1:new It,tinyFaceDetector:new re,tinyYolov2:new te,faceLandmark68Net:new Zt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Kt,faceExpressionNet:new Oe,ageGenderNet:new He},cn=(o,t)=>F.ssdMobilenetv1.locateFaces(o,t),ha=(o,t)=>F.tinyFaceDetector.locateFaces(o,t),ba=(o,t)=>F.tinyYolov2.locateFaces(o,t),mn=o=>F.faceLandmark68Net.detectLandmarks(o),ga=o=>F.faceLandmark68TinyNet.detectLandmarks(o),xa=o=>F.faceRecognitionNet.computeFaceDescriptor(o),va=o=>F.faceExpressionNet.predictExpressions(o),ya=o=>F.ageGenderNet.predictAgeAndGender(o),pn=o=>F.ssdMobilenetv1.load(o),_a=o=>F.tinyFaceDetector.load(o),Ta=o=>F.tinyYolov2.load(o),Pa=o=>F.faceLandmark68Net.load(o),wa=o=>F.faceLandmark68TinyNet.load(o),Fa=o=>F.faceRecognitionNet.load(o),Da=o=>F.faceExpressionNet.load(o),Ea=o=>F.ageGenderNet.load(o),Ma=pn,Ca=cn,Ia=mn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},oe=class extends Ir{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>gr(r,e[n]))}withAgeAndGender(){return new ae(this,this.input)}},ne=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceExpressionNet.predictExpressions(r),this.extractedFaces);return gr(t,e)}withAgeAndGender(){return new se(this,this.input)}},St=class extends oe{withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},At=class extends ne{withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Nr{async run(){let t=await this.parentTask,e=await ee(t,this.input,async r=>Promise.all(r.map(n=>F.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:s,gender:a,genderProbability:i}=e[n];return Dr(Er(r,a,i),s)})}withFaceExpressions(){return new oe(this,this.input)}},se=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,s=>F.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Dr(Er(t,r,n),e)}withFaceExpressions(){return new ne(this,this.input)}},Wt=class extends ae{withFaceExpressions(){return new St(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},kt=class extends se{withFaceExpressions(){return new At(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},_t=class extends Ue{async run(){let t=await this.parentTask;return(await ee(t,this.input,r=>Promise.all(r.map(n=>F.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Fr(t[n],r))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}},Tt=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>F.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Fr(t,e)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?F.faceLandmark68TinyNet:F.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof Xe.Tensor?await le(this.input,e):await fe(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),t.filter((a,i)=>n[i]).map((a,i)=>Pe(a,n[i]))}withFaceExpressions(){return new St(this,this.input)}withAgeAndGender(){return new Wt(this,this.input)}withFaceDescriptors(){return new _t(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await le(this.input,[e]):await fe(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),Pe(t,n)}withFaceExpressions(){return new At(this,this.input)}withAgeAndGender(){return new kt(this,this.input)}withFaceDescriptor(){return new Tt(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=F.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=F.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=F.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>Vt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new oe(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(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?Vt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new ne(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new se(this.runAndExtendWithFaceDetection(),this.input)}};function Na(o,t=new X){return new Qe(o,t)}function Lr(o,t=new X){return new Ie(o,t)}async function un(o,t){return Lr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Lr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Sa=un;function xo(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,s)=>n-r[s]).reduce((n,s)=>n+s*s,0))}var vo=class o{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,s=()=>`person ${n++}`;this._labeledDescriptors=r.map(a=>{if(a instanceof Et)return a;if(a instanceof Float32Array)return new Et(s(),[a]);if(a.descriptor&&a.descriptor instanceof Float32Array)return new Et(s(),[a.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=>xo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Et.fromJSON(r));return new o(e,t.distanceThreshold)}};function Aa(o){let t=new re;return t.extractWeights(o),t}function fn(o,t){let{width:e,height:r}=new R(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=>fn(n,{width:e,height:r}));if(qt(o)){let n=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(Vt(o,n),s)}return pt(o)?Vt(o,o.detection.forSize(e,r)):o instanceof H||o instanceof M?o.forSize(e,r):o}var ka=No;0&&(module.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,fetchVideo,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}); diff --git a/dist/tfjs.esm.js b/dist/tfjs.esm.js index ddd582e..3eb9d39 100644 --- a/dist/tfjs.esm.js +++ b/dist/tfjs.esm.js @@ -4,69 +4,69 @@ author: ' */ -var Mq=Object.create;var p0=Object.defineProperty;var Pq=Object.getOwnPropertyDescriptor;var Lq=Object.getOwnPropertyNames;var zq=Object.getPrototypeOf,Bq=Object.prototype.hasOwnProperty;var br=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)p0(r,e,{get:t[e],enumerable:!0})},Vq=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Lq(t))!Bq.call(r,o)&&o!==e&&p0(r,o,{get:()=>t[o],enumerable:!(n=Pq(t,o))||n.enumerable});return r};var Gl=(r,t,e)=>(e=r!=null?Mq(zq(r)):{},Vq(t||!r||!r.__esModule?p0(e,"default",{value:r,enumerable:!0}):e,r));var V_=br((mft,B_)=>{B_.exports=He;var yo=null;try{yo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function He(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}He.prototype.__isLong__;Object.defineProperty(He.prototype,"__isLong__",{value:!0});function zn(r){return(r&&r.__isLong__)===!0}He.isLong=zn;var D_={},$_={};function oc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=$_[r],n)?n:(e=qe(r,(r|0)<0?-1:0,!0),o&&($_[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=D_[r],n)?n:(e=qe(r,r<0?-1:0,!1),o&&(D_[r]=e),e))}He.fromInt=oc;function bo(r,t){if(isNaN(r))return t?nc:wo;if(t){if(r<0)return nc;if(r>=M_)return z_}else{if(r<=-F_)return Ln;if(r+1>=F_)return L_}return r<0?bo(-r,t).neg():qe(r%Hp|0,r/Hp|0,t)}He.fromNumber=bo;function qe(r,t,e){return new He(r,t,e)}He.fromBits=qe;var Zg=Math.pow;function S0(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return wo;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return S0(r.substring(1),t,e).neg();for(var o=bo(Zg(e,8)),s=wo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Hp+(this.low>>>0):this.high*Hp+(this.low>>>0)};xt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}};xt.getHighBits=function(){return this.high};xt.getHighBitsUnsigned=function(){return this.high>>>0};xt.getLowBits=function(){return this.low};xt.getLowBitsUnsigned=function(){return this.low>>>0};xt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ln)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&!(t&1<=0};xt.isOdd=function(){return(this.low&1)===1};xt.isEven=function(){return(this.low&1)===0};xt.equals=function(t){return zn(t)||(t=oi(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};xt.eq=xt.equals;xt.notEquals=function(t){return!this.eq(t)};xt.neq=xt.notEquals;xt.ne=xt.notEquals;xt.lessThan=function(t){return this.comp(t)<0};xt.lt=xt.lessThan;xt.lessThanOrEqual=function(t){return this.comp(t)<=0};xt.lte=xt.lessThanOrEqual;xt.le=xt.lessThanOrEqual;xt.greaterThan=function(t){return this.comp(t)>0};xt.gt=xt.greaterThan;xt.greaterThanOrEqual=function(t){return this.comp(t)>=0};xt.gte=xt.greaterThanOrEqual;xt.ge=xt.greaterThanOrEqual;xt.compare=function(t){if(zn(t)||(t=oi(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};xt.comp=xt.compare;xt.negate=function(){return!this.unsigned&&this.eq(Ln)?Ln:this.not().add(Up)};xt.neg=xt.negate;xt.add=function(t){zn(t)||(t=oi(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,qe(m<<16|f,c<<16|p,this.unsigned)};xt.subtract=function(t){return zn(t)||(t=oi(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return wo;if(zn(t)||(t=oi(t)),yo){var e=yo.mul(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(t.isZero())return wo;if(this.eq(Ln))return t.isOdd()?Ln:wo;if(t.eq(Ln))return this.isOdd()?Ln:wo;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(O_)&&t.lt(O_))return bo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,qe(f<<16|d,p<<16|m,this.unsigned)};xt.mul=xt.multiply;xt.divide=function(t){if(zn(t)||(t=oi(t)),t.isZero())throw Error("division by zero");if(yo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?yo.div_u:yo.div_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?nc:wo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return nc;if(t.gt(this.shru(1)))return P_;s=nc}else{if(this.eq(Ln)){if(t.eq(Up)||t.eq(v0))return Ln;if(t.eq(Ln))return Up;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(wo)?t.isNegative()?Up:v0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Ln))return this.unsigned?nc:wo;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=wo}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Zg(2,a-48),l=bo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=bo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Up),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(zn(t)||(t=oi(t)),yo){var e=(this.unsigned?yo.rem_u:yo.rem_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};xt.mod=xt.modulo;xt.rem=xt.modulo;xt.not=function(){return qe(~this.low,~this.high,this.unsigned)};xt.and=function(t){return zn(t)||(t=oi(t)),qe(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return zn(t)||(t=oi(t)),qe(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return zn(t)||(t=oi(t)),qe(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return zn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?qe(this.low<>>32-t,this.unsigned):qe(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):qe(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};xt.shr=xt.shiftRight;xt.shiftRightUnsigned=function(t){if(zn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return qe(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?qe(e,0,this.unsigned):qe(e>>>t-32,0,this.unsigned)};xt.shru=xt.shiftRightUnsigned;xt.shr_u=xt.shiftRightUnsigned;xt.toSigned=function(){return this.unsigned?qe(this.low,this.high,!1):this};xt.toUnsigned=function(){return this.unsigned?this:qe(this.low,this.high,!0)};xt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};xt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};xt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};He.fromBytes=function(t,e,n){return n?He.fromBytesLE(t,e):He.fromBytesBE(t,e)};He.fromBytesLE=function(t,e){return new He(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};He.fromBytesBE=function(t,e){return new He(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var NE=br(()=>{});var kE=br(()=>{});var eA=br((tA,nN)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(" "),u.s1=l(" "),u.s2=l(" "),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(tA,typeof nN=="object"&&nN,typeof define=="function"&&define)});var nA=br((rA,oN)=>{(function(r,t,e){function n(i){var a=this,u="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(rA,typeof oN=="object"&&oN,typeof define=="function"&&define)});var sA=br((oA,sN)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(oA,typeof sN=="object"&&sN,typeof define=="function"&&define)});var aA=br((iA,iN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(iA,typeof iN=="object"&&iN,typeof define=="function"&&define)});var uA=br((lA,aN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+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,a.i=p,f+(l^l>>>16)|0};function u(l,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;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(lA,typeof aN=="object"&&aN,typeof define=="function"&&define)});var pA=br((cA,lN)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(cA,typeof lN=="object"&&lN,typeof define=="function"&&define)});var mA=br(()=>{});var dA=br((fA,ty)=>{(function(r,t,e){var n=256,o=6,s=52,i="random",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var M=D.g(o),V=a,G=0;M=l;)M/=2,V/=2,G>>>=1;return(M+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(M,V,G,W){return W&&(W.S&&d(W,D),M.state=function(){return d(D,{})}),G?(e[i]=M,V):M})(F,A,"global"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var PX=eA(),LX=nA(),zX=sA(),BX=aA(),VX=uA(),GX=pA(),hc=dA();hc.alea=PX;hc.xor128=LX;hc.xorwow=zX;hc.xorshift7=BX;hc.xor4096=VX;hc.tychei=GX;hA.exports=hc});var Ak=br(()=>{});var fw=br(()=>{});var Q1=br(()=>{});var UH=br(()=>{});var HH=br(()=>{});var qH=br(()=>{});var KH=br((DC,e_)=>{var t_=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};function e(){return it.buffer!=re&&Xe(it.buffer),ye}function n(){return it.buffer!=re&&Xe(it.buffer),de}function o(){return it.buffer!=re&&Xe(it.buffer),Ee}function s(){return it.buffer!=re&&Xe(it.buffer),On}function i(){return it.buffer!=re&&Xe(it.buffer),lr}function a(){return it.buffer!=re&&Xe(it.buffer),Zn}function u(){return it.buffer!=re&&Xe(it.buffer),zr}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(P,U){c=P,p=U});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var f=Object.assign({},l),d=[],h="./this.program",g=(P,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",I=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function E(P){return l.locateFile?l.locateFile(P,N):N+P}var A,D,F,M;function V(P){if(P instanceof Yu)return;Y("exiting due to exception: "+P)}if(w){var G=fw(),W=Q1();b?N=W.dirname(N)+"/":N=__dirname+"/",A=(U,dt)=>(U=wp(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:"utf8")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Pt)=>{U=wp(U)?new URL(U):W.normalize(U),G.readFile(U,function(Jt,Zt){Jt?Pt(Jt):dt(Zt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof Yu))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,dt)=>{if(zo())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let P;try{P=UH()}catch(U){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=P.Worker}else(x||b)&&(b?N=self.location.href:typeof document!="undefined"&&document.currentScript&&(N=document.currentScript.src),typeof r!="undefined"&&r&&(N=r),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="",w||(A=P=>{var U=new XMLHttpRequest;return U.open("GET",P,!1),U.send(null),U.responseText},b&&(F=P=>{var U=new XMLHttpRequest;return U.open("GET",P,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),D=(P,U,dt)=>{var Pt=new XMLHttpRequest;Pt.open("GET",P,!0),Pt.responseType="arraybuffer",Pt.onload=()=>{if(Pt.status==200||Pt.status==0&&Pt.response){U(Pt.response);return}dt()},Pt.onerror=dt,Pt.send(null)}),M=P=>document.title=P);w&&typeof performance=="undefined"&&(global.performance=HH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=P=>G.writeSync(1,P+` +var zq=Object.create;var f0=Object.defineProperty;var Bq=Object.getOwnPropertyDescriptor;var Vq=Object.getOwnPropertyNames;var Gq=Object.getPrototypeOf,Wq=Object.prototype.hasOwnProperty;var br=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Kt=(r,t)=>{for(var e in t)f0(r,e,{get:t[e],enumerable:!0})},Uq=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Vq(t))!Wq.call(r,o)&&o!==e&&f0(r,o,{get:()=>t[o],enumerable:!(n=Bq(t,o))||n.enumerable});return r};var Gl=(r,t,e)=>(e=r!=null?zq(Gq(r)):{},Uq(t||!r||!r.__esModule?f0(e,"default",{value:r,enumerable:!0}):e,r));var W_=br((gft,G_)=>{G_.exports=He;var yo=null;try{yo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function He(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}He.prototype.__isLong__;Object.defineProperty(He.prototype,"__isLong__",{value:!0});function zn(r){return(r&&r.__isLong__)===!0}He.isLong=zn;var R_={},F_={};function oc(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=F_[r],n)?n:(e=qe(r,(r|0)<0?-1:0,!0),o&&(F_[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=R_[r],n)?n:(e=qe(r,r<0?-1:0,!1),o&&(R_[r]=e),e))}He.fromInt=oc;function bo(r,t){if(isNaN(r))return t?nc:wo;if(t){if(r<0)return nc;if(r>=L_)return V_}else{if(r<=-M_)return Ln;if(r+1>=M_)return B_}return r<0?bo(-r,t).neg():qe(r%Hp|0,r/Hp|0,t)}He.fromNumber=bo;function qe(r,t,e){return new He(r,t,e)}He.fromBits=qe;var Jg=Math.pow;function k0(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return wo;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return k0(r.substring(1),t,e).neg();for(var o=bo(Jg(e,8)),s=wo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Hp+(this.low>>>0):this.high*Hp+(this.low>>>0)};xt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}};xt.getHighBits=function(){return this.high};xt.getHighBitsUnsigned=function(){return this.high>>>0};xt.getLowBits=function(){return this.low};xt.getLowBitsUnsigned=function(){return this.low>>>0};xt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ln)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&!(t&1<=0};xt.isOdd=function(){return(this.low&1)===1};xt.isEven=function(){return(this.low&1)===0};xt.equals=function(t){return zn(t)||(t=oi(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};xt.eq=xt.equals;xt.notEquals=function(t){return!this.eq(t)};xt.neq=xt.notEquals;xt.ne=xt.notEquals;xt.lessThan=function(t){return this.comp(t)<0};xt.lt=xt.lessThan;xt.lessThanOrEqual=function(t){return this.comp(t)<=0};xt.lte=xt.lessThanOrEqual;xt.le=xt.lessThanOrEqual;xt.greaterThan=function(t){return this.comp(t)>0};xt.gt=xt.greaterThan;xt.greaterThanOrEqual=function(t){return this.comp(t)>=0};xt.gte=xt.greaterThanOrEqual;xt.ge=xt.greaterThanOrEqual;xt.compare=function(t){if(zn(t)||(t=oi(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};xt.comp=xt.compare;xt.negate=function(){return!this.unsigned&&this.eq(Ln)?Ln:this.not().add(Up)};xt.neg=xt.negate;xt.add=function(t){zn(t)||(t=oi(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,qe(m<<16|f,c<<16|p,this.unsigned)};xt.subtract=function(t){return zn(t)||(t=oi(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return wo;if(zn(t)||(t=oi(t)),yo){var e=yo.mul(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(t.isZero())return wo;if(this.eq(Ln))return t.isOdd()?Ln:wo;if(t.eq(Ln))return this.isOdd()?Ln:wo;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(P_)&&t.lt(P_))return bo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,qe(f<<16|d,p<<16|m,this.unsigned)};xt.mul=xt.multiply;xt.divide=function(t){if(zn(t)||(t=oi(t)),t.isZero())throw Error("division by zero");if(yo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?yo.div_u:yo.div_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?nc:wo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return nc;if(t.gt(this.shru(1)))return z_;s=nc}else{if(this.eq(Ln)){if(t.eq(Up)||t.eq(N0))return Ln;if(t.eq(Ln))return Up;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(wo)?t.isNegative()?Up:N0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Ln))return this.unsigned?nc:wo;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=wo}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Jg(2,a-48),l=bo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=bo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Up),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(zn(t)||(t=oi(t)),yo){var e=(this.unsigned?yo.rem_u:yo.rem_s)(this.low,this.high,t.low,t.high);return qe(e,yo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};xt.mod=xt.modulo;xt.rem=xt.modulo;xt.not=function(){return qe(~this.low,~this.high,this.unsigned)};xt.and=function(t){return zn(t)||(t=oi(t)),qe(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return zn(t)||(t=oi(t)),qe(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return zn(t)||(t=oi(t)),qe(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return zn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?qe(this.low<>>32-t,this.unsigned):qe(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):qe(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};xt.shr=xt.shiftRight;xt.shiftRightUnsigned=function(t){if(zn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return qe(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?qe(e,0,this.unsigned):qe(e>>>t-32,0,this.unsigned)};xt.shru=xt.shiftRightUnsigned;xt.shr_u=xt.shiftRightUnsigned;xt.toSigned=function(){return this.unsigned?qe(this.low,this.high,!1):this};xt.toUnsigned=function(){return this.unsigned?this:qe(this.low,this.high,!0)};xt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};xt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};xt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};He.fromBytes=function(t,e,n){return n?He.fromBytesLE(t,e):He.fromBytesBE(t,e)};He.fromBytesLE=function(t,e){return new He(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};He.fromBytesBE=function(t,e){return new He(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var TE=br(()=>{});var _E=br(()=>{});var nA=br((rA,sN)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(" "),u.s1=l(" "),u.s2=l(" "),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(rA,typeof sN=="object"&&sN,typeof define=="function"&&define)});var sA=br((oA,iN)=>{(function(r,t,e){function n(i){var a=this,u="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(oA,typeof iN=="object"&&iN,typeof define=="function"&&define)});var aA=br((iA,aN)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(iA,typeof aN=="object"&&aN,typeof define=="function"&&define)});var uA=br((lA,lN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(lA,typeof lN=="object"&&lN,typeof define=="function"&&define)});var pA=br((cA,uN)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+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,a.i=p,f+(l^l>>>16)|0};function u(l,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;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(cA,typeof uN=="object"&&uN,typeof define=="function"&&define)});var fA=br((mA,cN)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(mA,typeof cN=="object"&&cN,typeof define=="function"&&define)});var dA=br(()=>{});var gA=br((hA,ty)=>{(function(r,t,e){var n=256,o=6,s=52,i="random",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,I,N){var E=[];I=I==!0?{entropy:!0}:I||{};var A=g(h(I.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),F=function(){for(var M=D.g(o),V=a,G=0;M=l;)M/=2,V/=2,G>>>=1;return(M+G)/V};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,g(b(D.S),t),(I.pass||N||function(M,V,G,W){return W&&(W.S&&d(W,D),M.state=function(){return d(D,{})}),G?(e[i]=M,V):M})(F,A,"global"in I?I.global:this==e,I.state)}function f(w){var I,N=w.length,E=this,A=0,D=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var BX=nA(),VX=sA(),GX=aA(),WX=uA(),UX=pA(),HX=fA(),hc=gA();hc.alea=BX;hc.xor128=VX;hc.xorwow=GX;hc.xorshift7=WX;hc.xor4096=UX;hc.tychei=HX;xA.exports=hc});var $k=br(()=>{});var hw=br(()=>{});var e_=br(()=>{});var KH=br(()=>{});var jH=br(()=>{});var XH=br(()=>{});var YH=br((RC,n_)=>{var r_=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};function e(){return it.buffer!=re&&Xe(it.buffer),be}function n(){return it.buffer!=re&&Xe(it.buffer),de}function o(){return it.buffer!=re&&Xe(it.buffer),Ee}function s(){return it.buffer!=re&&Xe(it.buffer),On}function i(){return it.buffer!=re&&Xe(it.buffer),lr}function a(){return it.buffer!=re&&Xe(it.buffer),Zn}function u(){return it.buffer!=re&&Xe(it.buffer),Br}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(P,U){c=P,p=U});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var f=Object.assign({},l),d=[],h="./this.program",g=(P,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",I=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function E(P){return l.locateFile?l.locateFile(P,N):N+P}var A,D,F,M;function V(P){if(P instanceof Yu)return;Y("exiting due to exception: "+P)}if(w){var G=hw(),W=e_();b?N=W.dirname(N)+"/":N=__dirname+"/",A=(U,dt)=>(U=wp(U)?new URL(U):W.normalize(U),G.readFileSync(U,dt?void 0:"utf8")),F=U=>{var dt=A(U,!0);return dt.buffer||(dt=new Uint8Array(dt)),dt},D=(U,dt,Pt)=>{U=wp(U)?new URL(U):W.normalize(U),G.readFile(U,function(Jt,Zt){Jt?Pt(Jt):dt(Zt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof Yu))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,dt)=>{if(zo())throw process.exitCode=U,dt;V(dt),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let P;try{P=KH()}catch(U){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=P.Worker}else(x||b)&&(b?N=self.location.href:typeof document!="undefined"&&document.currentScript&&(N=document.currentScript.src),typeof r!="undefined"&&r&&(N=r),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="",w||(A=P=>{var U=new XMLHttpRequest;return U.open("GET",P,!1),U.send(null),U.responseText},b&&(F=P=>{var U=new XMLHttpRequest;return U.open("GET",P,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),D=(P,U,dt)=>{var Pt=new XMLHttpRequest;Pt.open("GET",P,!0),Pt.responseType="arraybuffer",Pt.onload=()=>{if(Pt.status==200||Pt.status==0&&Pt.response){U(Pt.response);return}dt()},Pt.onerror=dt,Pt.send(null)}),M=P=>document.title=P);w&&typeof performance=="undefined"&&(global.performance=jH().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=P=>G.writeSync(1,P+` `),H=P=>G.writeSync(2,P+` -`));var K=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,nt=Atomics.store,st=Atomics.compareExchange,lt;l.wasmBinary&&(lt=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!="object"&&Xu("no native wasm support detected");var it,ft,gt=!1,Ct;function Rt(P,U){P||Xu(U)}var Dt=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Ht(P,U,dt){U>>>=0;for(var Pt=U+dt,Jt=U;P[Jt]&&!(Jt>=Pt);)++Jt;if(Jt-U>16&&P.buffer&&Dt)return Dt.decode(P.buffer instanceof SharedArrayBuffer?P.slice(U,Jt):P.subarray(U,Jt));for(var Zt="";U>10,56320|eo&1023)}}return Zt}function qt(P,U){return P>>>=0,P?Ht(n(),P,U):""}function pe(P,U,dt,Pt){if(dt>>>=0,!(Pt>0))return 0;for(var Jt=dt,Zt=dt+Pt-1,bt=0;bt=55296&&$t<=57343){var or=P.charCodeAt(++bt);$t=65536+(($t&1023)<<10)|or&1023}if($t<=127){if(dt>=Zt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Zt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Zt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Zt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Jt}function xe(P,U,dt){return pe(P,n(),U,dt)}var re,ye,de,Ee,Ae,On,lr,Zn,zr;I&&(re=l.buffer);function Xe(P){re=P,l.HEAP8=ye=new Int8Array(P),l.HEAP16=Ee=new Int16Array(P),l.HEAP32=On=new Int32Array(P),l.HEAPU8=de=new Uint8Array(P),l.HEAPU16=Ae=new Uint16Array(P),l.HEAPU32=lr=new Uint32Array(P),l.HEAPF32=Zn=new Float32Array(P),l.HEAPF64=zr=new Float64Array(P)}var Br=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,re=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Br/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw Y("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&Y("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");it&&(re=it.buffer),Br=re.byteLength,Xe(re);var Vr,Jn=[],Qn=[],Zr=[],Ca=!1;function zo(){return ot}function ki(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)Bd(l.preRun.shift());Wd(Jn)}function Er(){Ca=!0,!I&&Wd(Qn)}function va(){if(!I){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)l_(l.postRun.shift());Wd(Zr)}}function Bd(P){Jn.unshift(P)}function Vd(P){Qn.unshift(P)}function l_(P){Zr.unshift(P)}var zl=0,bp=null,Sa=null;function FC(P){zl++,l.monitorRunDependencies&&l.monitorRunDependencies(zl)}function wg(P){if(zl--,l.monitorRunDependencies&&l.monitorRunDependencies(zl),zl==0&&(bp!==null&&(clearInterval(bp),bp=null),Sa)){var U=Sa;Sa=null,U()}}function Xu(P){l.onAbort&&l.onAbort(P),P="Aborted("+P+")",Y(P),gt=!0,Ct=1,P+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(P);throw p(U),U}var OC="data:application/octet-stream;base64,";function Ig(P){return P.startsWith(OC)}function wp(P){return P.startsWith("file://")}var Jr;Jr="tfjs-backend-wasm-threaded-simd.wasm",Ig(Jr)||(Jr=E(Jr));function Cg(P){try{if(P==Jr&<)return new Uint8Array(lt);if(F)return F(P);throw"both async and sync fetching of the wasm failed"}catch(U){Xu(U)}}function MC(){if(!lt&&(x||b)){if(typeof fetch=="function"&&!wp(Jr))return fetch(Jr,{credentials:"same-origin"}).then(function(P){if(!P.ok)throw"failed to load wasm binary file at '"+Jr+"'";return P.arrayBuffer()}).catch(function(){return Cg(Jr)});if(D)return new Promise(function(P,U){D(Jr,function(dt){P(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return Cg(Jr)})}function PC(){var P={env:Og,wasi_snapshot_preview1:Og};function U(bt,$t){var or=bt.exports;if(l.asm=or,qC(l.asm._emscripten_tls_init),Vr=l.asm.__indirect_function_table,Vd(l.asm.__wasm_call_ctors),ft=$t,!I){var eo=Yt.unusedWorkers.length;Yt.unusedWorkers.forEach(function(ka){Yt.loadWasmModuleToWorker(ka,function(){--eo||wg("wasm-instantiate")})})}}I||FC("wasm-instantiate");function dt(bt){U(bt.instance,bt.module)}function Pt(bt){return MC().then(function($t){return WebAssembly.instantiate($t,P)}).then(function($t){return $t}).then(bt,function($t){Y("failed to asynchronously prepare wasm: "+$t),Xu($t)})}function Jt(){return!lt&&typeof WebAssembly.instantiateStreaming=="function"&&!Ig(Jr)&&!wp(Jr)&&!w&&typeof fetch=="function"?fetch(Jr,{credentials:"same-origin"}).then(function(bt){var $t=WebAssembly.instantiateStreaming(bt,P);return $t.then(dt,function(or){return Y("wasm streaming compile failed: "+or),Y("falling back to ArrayBuffer instantiation"),Pt(dt)})}):Pt(dt)}if(l.instantiateWasm)try{var Zt=l.instantiateWasm(P,U);return Zt}catch(bt){Y("Module.instantiateWasm callback failed with error: "+bt),p(bt)}return Jt().catch(p),{}}var u_,c_,vg={};function Yu(P){this.name="ExitStatus",this.message="Program terminated with exit("+P+")",this.status=P}function LC(P){var U=Yt.pthreads[P];delete Yt.pthreads[P],U.terminate(),l0(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function zC(P){var U=Yt.pthreads[P];U.postMessage({cmd:"cancel"})}function Gd(P){var U=Yt.pthreads[P];Rt(U),Yt.returnWorkerToPool(U)}function BC(P){var U=Yt.getNewWorker();if(!U)return 6;Yt.runningWorkers.push(U),Yt.pthreads[P.pthread_ptr]=U,U.pthread_ptr=P.pthread_ptr;var dt={cmd:"run",start_routine:P.startRoutine,arg:P.arg,pthread_ptr:P.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,P.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var Sg={varargs:void 0,get:function(){Sg.varargs+=4;var P=s()[Sg.varargs-4>>>2];return P},getStr:function(P){var U=qt(P);return U}};function Ng(P){if(I)return Bl(1,1,P);Ct=P,zo()||(Yt.terminateAllThreads(),l.onExit&&l.onExit(P),gt=!0),g(P,new Yu(P))}function VC(P,U){if(Ct=P,!U&&I)throw Tg(P),"unwind";Ng(P)}var kg=VC;function GC(P){if(P instanceof Yu||P=="unwind")return Ct;g(1,P)}var Yt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Yt.initWorker():Yt.initMainThread()},initMainThread:function(){for(var P=8;P--;)Yt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(P){Ct=P},terminateAllThreads:function(){for(var P of Object.values(Yt.pthreads))Yt.returnWorkerToPool(P);for(var P of Yt.unusedWorkers)P.terminate();Yt.unusedWorkers=[]},returnWorkerToPool:function(P){var U=P.pthread_ptr;delete Yt.pthreads[U],Yt.unusedWorkers.push(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(P),1),P.pthread_ptr=0,w&&P.unref(),l0(U)},receiveObjectTransfer:function(P){},threadInitTLS:function(){Yt.tlsInitFunctions.forEach(P=>P())},loadWasmModuleToWorker:function(P,U){P.onmessage=Zt=>{var bt=Zt.data,$t=bt.cmd;if(P.pthread_ptr&&(Yt.currentProxiedOperationCallerThread=P.pthread_ptr),bt.targetThread&&bt.targetThread!=Vg()){var or=Yt.pthreads[bt.targetThread];or?or.postMessage(bt,bt.transferList):Y('Internal error! Worker sent a message "'+$t+'" to target pthread '+bt.targetThread+", but that thread no longer exists!"),Yt.currentProxiedOperationCallerThread=void 0;return}$t==="processProxyingQueue"?Ud(bt.queue):$t==="spawnThread"?BC(bt):$t==="cleanupThread"?Gd(bt.thread):$t==="killThread"?LC(bt.thread):$t==="cancelThread"?zC(bt.thread):$t==="loaded"?(P.loaded=!0,w&&P.unref(),U&&U(P),P.runPthread&&P.runPthread()):$t==="print"?K("Thread "+bt.threadId+": "+bt.text):$t==="printErr"?Y("Thread "+bt.threadId+": "+bt.text):$t==="alert"?alert("Thread "+bt.threadId+": "+bt.text):bt.target==="setimmediate"?P.postMessage(bt):$t==="callHandler"?l[bt.handler](...bt.args):$t&&Y("worker sent an unknown command "+$t),Yt.currentProxiedOperationCallerThread=void 0},P.onerror=Zt=>{var bt="worker sent an error!";throw Y(bt+" "+Zt.filename+":"+Zt.lineno+": "+Zt.message),Zt},w&&(P.on("message",function(Zt){P.onmessage({data:Zt})}),P.on("error",function(Zt){P.onerror(Zt)}),P.on("detachedExit",function(){}));var dt=[],Pt=["onExit","onAbort","print","printErr"];for(var Jt of Pt)l.hasOwnProperty(Jt)&&dt.push(Jt);P.postMessage({cmd:"load",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:ft})},allocateUnusedWorker:function(){var P,U=E("tfjs-backend-wasm-threaded-simd.worker.js");P=new Worker(U),Yt.unusedWorkers.push(P)},getNewWorker:function(){return Yt.unusedWorkers.length==0&&(Yt.allocateUnusedWorker(),Yt.loadWasmModuleToWorker(Yt.unusedWorkers[0])),Yt.unusedWorkers.pop()}};l.PThread=Yt;function Wd(P){for(;P.length>0;)P.shift()(l)}function WC(){var P=Vg(),U=s()[P+52>>>2],dt=s()[P+56>>>2],Pt=U-dt;g_(U,Pt),Gg(U)}l.establishStackSpace=WC;function Tg(P){if(I)return Bl(2,0,P);try{kg(P)}catch(U){GC(U)}}var Ip=[];function UC(P){var U=Ip[P];return U||(P>=Ip.length&&(Ip.length=P+1),Ip[P]=U=Vr.get(P)),U}function HC(P,U){var dt=UC(P)(U);zo()?Yt.setExitStatus(dt):h_(dt)}l.invokeEntryPoint=HC;function qC(P){Yt.tlsInitFunctions.push(P)}function KC(P){m_(P,!b,1,!x),Yt.threadInitTLS()}function jC(P){I?postMessage({cmd:"cleanupThread",thread:P}):Gd(P)}function _g(P,U,dt,Pt){return I?Bl(3,1,P,U,dt,Pt):Eg(P,U,dt,Pt)}function Eg(P,U,dt,Pt){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Jt=[],Zt=0;if(I&&(Jt.length===0||Zt))return _g(P,U,dt,Pt);if(Zt)return Zt;var bt={startRoutine:dt,pthread_ptr:P,arg:Pt,transferList:Jt};return I?(bt.cmd="spawnThread",postMessage(bt,Jt),0):BC(bt)}function XC(){return 65536}var YC=!0;function ZC(){return YC}function Ud(P){Atomics.store(s(),P>>2,1),Vg()&&d_(P),Atomics.compareExchange(s(),P>>2,1,0)}l.executeNotifiedProxyingQueue=Ud;function JC(P,U,dt,Pt){if(P==U)setTimeout(()=>Ud(Pt));else if(I)postMessage({targetThread:P,cmd:"processProxyingQueue",queue:Pt});else{var Jt=Yt.pthreads[P];if(!Jt)return;Jt.postMessage({cmd:"processProxyingQueue",queue:Pt})}return 1}function QC(P,U,dt){return-1}function tv(){Xu("")}function Zu(P){Zu.shown||(Zu.shown={}),Zu.shown[P]||(Zu.shown[P]=1,w&&(P="warning: "+P),Y(P))}function ev(){w||b||Zu("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function rv(){return Date.now()}function Ag(){return 4294901760}function nv(){return Ag()}var Hd;w?Hd=()=>{var P=process.hrtime();return P[0]*1e3+P[1]/1e6}:Hd=()=>performance.timeOrigin+performance.now();function ov(P,U,dt){n().copyWithin(P>>>0,U>>>0,U+dt>>>0)}function sv(){return w?qH().cpus().length:navigator.hardwareConcurrency}function iv(P){var U=u0(),dt=P();return Gg(U),dt}function Bl(P,U){var dt=arguments.length-2,Pt=arguments;return iv(()=>{for(var Jt=dt,Zt=Wg(Jt*8),bt=Zt>>3,$t=0;$t>>0]=or}return f_(P,Jt,Zt,U)})}var qd=[];function av(P,U,dt){qd.length=U;for(var Pt=dt>>3,Jt=0;Jt>>0];var Zt=P<0,bt=Zt?vg[-P-1]:gv[P];return bt.apply(null,qd)}function lv(P){try{return it.grow(P-re.byteLength+65535>>>16),Xe(it.buffer),1}catch(U){}}function uv(P){var U=n().length;if(P=P>>>0,P<=U)return!1;var dt=Ag();if(P>dt)return!1;let Pt=(or,eo)=>or+(eo-or%eo)%eo;for(var Jt=1;Jt<=4;Jt*=2){var Zt=U*(1+.2/Jt);Zt=Math.min(Zt,P+100663296);var bt=Math.min(dt,Pt(Math.max(P,Zt),65536)),$t=lv(bt);if($t)return!0}return!1}function cv(){throw"unwind"}function Dg(P){return I?Bl(4,1,P):52}function $g(P,U,dt,Pt,Jt){return I?Bl(5,1,P,U,dt,Pt,Jt):70}var pv=[null,[],[]];function mv(P,U){var dt=pv[P];U===0||U===10?((P===1?K:Y)(Ht(dt,0)),dt.length=0):dt.push(U)}function Rg(P,U,dt,Pt){if(I)return Bl(6,1,P,U,dt,Pt);for(var Jt=0,Zt=0;Zt>>2],$t=i()[U+4>>>2];U+=8;for(var or=0;or<$t;or++)mv(P,n()[bt+or>>>0]);Jt+=$t}return i()[Pt>>>2]=Jt,0}function Fg(P){var U=l["_"+P];return U}function fv(P,U){e().set(P,U>>>0)}function dv(P,U,dt,Pt,Jt){var Zt={string:Mn=>{var Np=0;if(Mn!=null&&Mn!==0){var b_=(Mn.length<<2)+1;Np=Wg(b_),xe(Mn,Np,b_)}return Np},array:Mn=>{var Np=Wg(Mn.length);return fv(Mn,Np),Np}};function bt(Mn){return U==="string"?qt(Mn):U==="boolean"?!!Mn:Mn}var $t=Fg(P),or=[],eo=0;if(Pt)for(var ka=0;kabt==="number"||bt==="boolean"),Zt=U!=="string";return Zt&&Jt&&!Pt?Fg(P):function(){return dv(P,U,dt,arguments,Pt)}}Yt.init();var gv=[null,Ng,Tg,_g,Dg,$g,Rg],Og={__emscripten_init_main_thread_js:KC,__emscripten_thread_cleanup:jC,__pthread_create_js:Eg,_emscripten_default_pthread_stack_size:XC,_emscripten_get_now_is_monotonic:ZC,_emscripten_notify_task_queue:JC,_emscripten_set_offscreencanvas_size:QC,abort:tv,emscripten_check_blocking_allowed:ev,emscripten_date_now:rv,emscripten_get_heap_max:nv,emscripten_get_now:Hd,emscripten_memcpy_big:ov,emscripten_num_logical_cores:sv,emscripten_receive_on_main_thread_js:av,emscripten_resize_heap:uv,emscripten_unwind_to_js_event_loop:cv,exit:kg,fd_close:Dg,fd_seek:$g,fd_write:Rg,memory:it||l.wasmMemory},p_=PC(),xv=l.___wasm_call_ctors=function(){return(xv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},yv=l._init=function(){return(yv=l._init=l.asm.init).apply(null,arguments)},bv=l._init_with_threads_count=function(){return(bv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},wv=l._get_threads_count=function(){return(wv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},Iv=l._register_tensor=function(){return(Iv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},Cv=l._dispose_data=function(){return(Cv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},vv=l._dispose=function(){return(vv=l._dispose=l.asm.dispose).apply(null,arguments)},Sv=l._Abs=function(){return(Sv=l._Abs=l.asm.Abs).apply(null,arguments)},Nv=l._Acos=function(){return(Nv=l._Acos=l.asm.Acos).apply(null,arguments)},kv=l._Acosh=function(){return(kv=l._Acosh=l.asm.Acosh).apply(null,arguments)},Tv=l._Add=function(){return(Tv=l._Add=l.asm.Add).apply(null,arguments)},_v=l._AddN=function(){return(_v=l._AddN=l.asm.AddN).apply(null,arguments)},Ev=l._All=function(){return(Ev=l._All=l.asm.All).apply(null,arguments)},Av=l._Any=function(){return(Av=l._Any=l.asm.Any).apply(null,arguments)},Dv=l._ArgMax=function(){return(Dv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},$v=l._ArgMin=function(){return($v=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Rv=l._Asin=function(){return(Rv=l._Asin=l.asm.Asin).apply(null,arguments)},Fv=l._Asinh=function(){return(Fv=l._Asinh=l.asm.Asinh).apply(null,arguments)},Ov=l._Atan=function(){return(Ov=l._Atan=l.asm.Atan).apply(null,arguments)},Mv=l._Atan2=function(){return(Mv=l._Atan2=l.asm.Atan2).apply(null,arguments)},Pv=l._Atanh=function(){return(Pv=l._Atanh=l.asm.Atanh).apply(null,arguments)},Lv=l._AvgPool=function(){return(Lv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},zv=l._AvgPool3D=function(){return(zv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Bv=l._AvgPool3DGrad=function(){return(Bv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},Vv=l._AvgPoolGrad=function(){return(Vv=l._AvgPoolGrad=l.asm.AvgPoolGrad).apply(null,arguments)},Gv=l._BatchMatMul=function(){return(Gv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Wv=l._Bincount=function(){return(Wv=l._Bincount=l.asm.Bincount).apply(null,arguments)},Uv=l._BitwiseAnd=function(){return(Uv=l._BitwiseAnd=l.asm.BitwiseAnd).apply(null,arguments)},Hv=l._Ceil=function(){return(Hv=l._Ceil=l.asm.Ceil).apply(null,arguments)},qv=l._ClipByValue=function(){return(qv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Kv=l._Conv2D=function(){return(Kv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},jv=l._Conv2DBackpropInput=function(){return(jv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Xv=l._Conv3D=function(){return(Xv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},Yv=l._Conv3DBackpropFilterV2=function(){return(Yv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Zv=l._Conv3DBackpropInputV2=function(){return(Zv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},Jv=l._Cos=function(){return(Jv=l._Cos=l.asm.Cos).apply(null,arguments)},Qv=l._Cosh=function(){return(Qv=l._Cosh=l.asm.Cosh).apply(null,arguments)},tS=l._CropAndResize=function(){return(tS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},eS=l._Cumprod=function(){return(eS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},rS=l._Cumsum=function(){return(rS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},nS=l._DenseBincount=function(){return(nS=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},oS=l._DepthToSpace=function(){return(oS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},sS=l._DepthwiseConv2dNative=function(){return(sS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},iS=l._Diag=function(){return(iS=l._Diag=l.asm.Diag).apply(null,arguments)},aS=l._Dilation2D=function(){return(aS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},lS=l._Dilation2DBackpropFilter=function(){return(lS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},uS=l._Dilation2DBackpropInput=function(){return(uS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},cS=l._Elu=function(){return(cS=l._Elu=l.asm.Elu).apply(null,arguments)},pS=l._EluGrad=function(){return(pS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},mS=l._Equal=function(){return(mS=l._Equal=l.asm.Equal).apply(null,arguments)},fS=l._Erf=function(){return(fS=l._Erf=l.asm.Erf).apply(null,arguments)},dS=l._Exp=function(){return(dS=l._Exp=l.asm.Exp).apply(null,arguments)},hS=l._Expm1=function(){return(hS=l._Expm1=l.asm.Expm1).apply(null,arguments)},gS=l._FlipLeftRight=function(){return(gS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},xS=l._Floor=function(){return(xS=l._Floor=l.asm.Floor).apply(null,arguments)},yS=l._FloorDiv=function(){return(yS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},bS=l._FusedBatchNorm=function(){return(bS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},wS=l._FusedConv2D=function(){return(wS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},IS=l._FusedDepthwiseConv2D=function(){return(IS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},CS=l._Gather=function(){return(CS=l._Gather=l.asm.Gather).apply(null,arguments)},vS=l._GatherNd=function(){return(vS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},SS=l._Greater=function(){return(SS=l._Greater=l.asm.Greater).apply(null,arguments)},NS=l._GreaterEqual=function(){return(NS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},kS=l._IsFinite=function(){return(kS=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},TS=l._IsInf=function(){return(TS=l._IsInf=l.asm.IsInf).apply(null,arguments)},_S=l._IsNan=function(){return(_S=l._IsNan=l.asm.IsNan).apply(null,arguments)},ES=l._LRN=function(){return(ES=l._LRN=l.asm.LRN).apply(null,arguments)},AS=l._LRNGrad=function(){return(AS=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},DS=l._LeakyRelu=function(){return(DS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},$S=l._Less=function(){return($S=l._Less=l.asm.Less).apply(null,arguments)},RS=l._LessEqual=function(){return(RS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},FS=l._LinSpace=function(){return(FS=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},OS=l._Log=function(){return(OS=l._Log=l.asm.Log).apply(null,arguments)},MS=l._Log1p=function(){return(MS=l._Log1p=l.asm.Log1p).apply(null,arguments)},PS=l._LogicalAnd=function(){return(PS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},LS=l._LogicalNot=function(){return(LS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},zS=l._LogicalOr=function(){return(zS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},BS=l._LogicalXor=function(){return(BS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},VS=l._Max=function(){return(VS=l._Max=l.asm.Max).apply(null,arguments)},GS=l._MaxPool=function(){return(GS=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},WS=l._MaxPool3D=function(){return(WS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},US=l._MaxPool3DGrad=function(){return(US=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},HS=l._MaxPoolGrad=function(){return(HS=l._MaxPoolGrad=l.asm.MaxPoolGrad).apply(null,arguments)},qS=l._MaxPoolWithArgmax=function(){return(qS=l._MaxPoolWithArgmax=l.asm.MaxPoolWithArgmax).apply(null,arguments)},KS=l._Maximum=function(){return(KS=l._Maximum=l.asm.Maximum).apply(null,arguments)},jS=l._Mean=function(){return(jS=l._Mean=l.asm.Mean).apply(null,arguments)},XS=l._Min=function(){return(XS=l._Min=l.asm.Min).apply(null,arguments)},YS=l._Minimum=function(){return(YS=l._Minimum=l.asm.Minimum).apply(null,arguments)},ZS=l._MirrorPad=function(){return(ZS=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},JS=l._Mod=function(){return(JS=l._Mod=l.asm.Mod).apply(null,arguments)},QS=l._Multinomial=function(){return(QS=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},t0=l._Multiply=function(){return(t0=l._Multiply=l.asm.Multiply).apply(null,arguments)},e0=l._Neg=function(){return(e0=l._Neg=l.asm.Neg).apply(null,arguments)},r0=l._NonMaxSuppressionV3=function(){return(r0=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},n0=l._NonMaxSuppressionV4=function(){return(n0=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Mg=l._NonMaxSuppressionV5=function(){return(Mg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},Pg=l._NotEqual=function(){return(Pg=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},Kd=l._OneHot=function(){return(Kd=l._OneHot=l.asm.OneHot).apply(null,arguments)},o0=l._PadV2=function(){return(o0=l._PadV2=l.asm.PadV2).apply(null,arguments)},s0=l._Pow=function(){return(s0=l._Pow=l.asm.Pow).apply(null,arguments)},Cp=l._Prelu=function(){return(Cp=l._Prelu=l.asm.Prelu).apply(null,arguments)},Lg=l._Prod=function(){return(Lg=l._Prod=l.asm.Prod).apply(null,arguments)},vp=l._RealDiv=function(){return(vp=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},Sp=l._Reciprocal=function(){return(Sp=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},i0=l._Relu=function(){return(i0=l._Relu=l.asm.Relu).apply(null,arguments)},j=l._Relu6=function(){return(j=l._Relu6=l.asm.Relu6).apply(null,arguments)},ut=l._ResizeBilinear=function(){return(ut=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Ft=l._ResizeBilinearGrad=function(){return(Ft=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},me=l._ResizeNearestNeighbor=function(){return(me=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ye=l._ResizeNearestNeighborGrad=function(){return(Ye=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},Ze=l._Reverse=function(){return(Ze=l._Reverse=l.asm.Reverse).apply(null,arguments)},se=l._RotateWithOffset=function(){return(se=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},ne=l._Round=function(){return(ne=l._Round=l.asm.Round).apply(null,arguments)},yr=l._Rsqrt=function(){return(yr=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},to=l._ScatterNd=function(){return(to=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Na=l._SearchSorted=function(){return(Na=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},zg=l._SelectV2=function(){return(zg=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},jd=l._Selu=function(){return(jd=l._Selu=l.asm.Selu).apply(null,arguments)},a0=l._Sigmoid=function(){return(a0=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},nn=l._Sign=function(){return(nn=l._Sign=l.asm.Sign).apply(null,arguments)},Vl=l._Sin=function(){return(Vl=l._Sin=l.asm.Sin).apply(null,arguments)},Bg=l._Sinh=function(){return(Bg=l._Sinh=l.asm.Sinh).apply(null,arguments)},nq=l._Softmax=function(){return(nq=l._Softmax=l.asm.Softmax).apply(null,arguments)},oq=l._Softplus=function(){return(oq=l._Softplus=l.asm.Softplus).apply(null,arguments)},sq=l._SparseFillEmptyRows=function(){return(sq=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},iq=l._SparseReshape=function(){return(iq=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},aq=l._SparseSegmentReduction=function(){return(aq=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},lq=l._SparseToDense=function(){return(lq=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},uq=l._Sqrt=function(){return(uq=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},cq=l._Square=function(){return(cq=l._Square=l.asm.Square).apply(null,arguments)},pq=l._SquaredDifference=function(){return(pq=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},mq=l._Step=function(){return(mq=l._Step=l.asm.Step).apply(null,arguments)},fq=l._StridedSlice=function(){return(fq=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},dq=l._Sub=function(){return(dq=l._Sub=l.asm.Sub).apply(null,arguments)},hq=l._Sum=function(){return(hq=l._Sum=l.asm.Sum).apply(null,arguments)},gq=l._Tan=function(){return(gq=l._Tan=l.asm.Tan).apply(null,arguments)},xq=l._Tanh=function(){return(xq=l._Tanh=l.asm.Tanh).apply(null,arguments)},yq=l._TensorScatterUpdate=function(){return(yq=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},bq=l._Tile=function(){return(bq=l._Tile=l.asm.Tile).apply(null,arguments)},wq=l._TopK=function(){return(wq=l._TopK=l.asm.TopK).apply(null,arguments)},Iq=l._Transform=function(){return(Iq=l._Transform=l.asm.Transform).apply(null,arguments)},Cq=l._Transpose=function(){return(Cq=l._Transpose=l.asm.Transpose).apply(null,arguments)},vq=l.__FusedMatMul=function(){return(vq=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},Sq=l._malloc=function(){return(Sq=l._malloc=l.asm.malloc).apply(null,arguments)},Nq=l._free=function(){return(Nq=l._free=l.asm.free).apply(null,arguments)},kq=l.__emscripten_tls_init=function(){return(kq=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Vg=l._pthread_self=function(){return(Vg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},Tq=l.___errno_location=function(){return(Tq=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},m_=l.__emscripten_thread_init=function(){return(m_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},_q=l.__emscripten_thread_crashed=function(){return(_q=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},Eq=l._emscripten_main_thread_process_queued_calls=function(){return(Eq=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},Aq=l._emscripten_main_browser_thread_id=function(){return(Aq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},f_=l._emscripten_run_in_main_runtime_thread_js=function(){return(f_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Dq=l._emscripten_dispatch_to_thread_=function(){return(Dq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},d_=l.__emscripten_proxy_execute_task_queue=function(){return(d_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},l0=l.__emscripten_thread_free_data=function(){return(l0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},h_=l.__emscripten_thread_exit=function(){return(h_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},g_=l._emscripten_stack_set_limits=function(){return(g_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},u0=l.stackSave=function(){return(u0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Gg=l.stackRestore=function(){return(Gg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Wg=l.stackAlloc=function(){return(Wg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},$q=l.dynCall_iijjiiii=function(){return($q=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},Rq=l.dynCall_jiji=function(){return(Rq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=zo,l.wasmMemory=it,l.cwrap=hv,l.ExitStatus=Yu,l.PThread=Yt;var Ug;Sa=function P(){Ug||x_(),Ug||(Sa=P)};function x_(P){if(P=P||d,zl>0)return;if(I){c(l),Er(),startWorker(l);return}if(ki(),zl>0)return;function U(){Ug||(Ug=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),va()))}l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();x_();var Hg;m&&(Hg={uncaughtException:process.listeners("uncaughtException").filter(function(P){return!m.uncaughtException.indexOf(P)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(P){return!m.unhandledRejection.indexOf(P)>-1})});var qg;if(typeof WasmBackendModule!="undefined")qg=WasmBackendModule;else if(typeof t!="undefined")qg=t;else throw new Error("Could not find wasm module in post.js");if(Hg){var Fq=qg._dispose;qg._dispose=function(){Fq(),Hg.uncaughtException.forEach(function(P){process.removeListener("uncaughtException",P)}),Hg.unhandledRejection.forEach(function(P){process.removeListener("unhandledRejection",P)})}}return t.ready}})();typeof DC=="object"&&typeof e_=="object"?e_.exports=t_:typeof define=="function"&&define.amd?define([],function(){return t_}):typeof DC=="object"&&(DC.WasmBackendModuleThreadedSimd=t_)});var XH=br((pnr,jH)=>{jH.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}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;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`});var YH=br(($C,n_)=>{var r_=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!="undefined"?t:{},n,o;e.ready=new Promise(function(j,ut){n=j,o=ut});var s;typeof process!="undefined"&&process.listeners&&(s={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var i=Object.assign({},e),a=[],u="./this.program",l=(j,ut)=>{throw ut},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(j){return e.locateFile?e.locateFile(j,f):f+j}var h,g,x,b;function w(j){if(j instanceof bp)return;A("exiting due to exception: "+j)}if(m){var I=fw(),N=Q1();p?f=N.dirname(f)+"/":f=__dirname+"/",h=(j,ut)=>(j=ki(j)?new URL(j):N.normalize(j),I.readFileSync(j,ut?void 0:"utf8")),x=j=>{var ut=h(j,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},g=(j,ut,Ft)=>{j=ki(j)?new URL(j):N.normalize(j),I.readFile(j,function(me,Ye){me?Ft(me):ut(Ye.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof bp))throw j}),process.on("unhandledRejection",function(j){throw j}),l=(j,ut)=>{if(de())throw process.exitCode=j,ut;w(ut),process.exit(j)},e.inspect=function(){return"[Emscripten Module object]"}}else(c||p)&&(p?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf("blob:")!==0?f=f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):f="",h=j=>{var ut=new XMLHttpRequest;return ut.open("GET",j,!1),ut.send(null),ut.responseText},p&&(x=j=>{var ut=new XMLHttpRequest;return ut.open("GET",j,!1),ut.responseType="arraybuffer",ut.send(null),new Uint8Array(ut.response)}),g=(j,ut,Ft)=>{var me=new XMLHttpRequest;me.open("GET",j,!0),me.responseType="arraybuffer",me.onload=()=>{if(me.status==200||me.status==0&&me.response){ut(me.response);return}Ft()},me.onerror=Ft,me.send(null)},b=j=>document.title=j);var E=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var D=4,F;e.wasmBinary&&(F=e.wasmBinary);var M=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Zr("no native wasm support detected");var V,G=!1,W;function q(j,ut){j||Zr(ut)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function K(j,ut,Ft){ut>>>=0;for(var me=ut+Ft,Ye=ut;j[Ye]&&!(Ye>=me);)++Ye;if(Ye-ut>16&&j.buffer&&H)return H.decode(j.subarray(ut,Ye));for(var Ze="";ut>10,56320|to&1023)}}return Ze}function Y(j,ut){return j>>>=0,j?K(lt,j,ut):""}function Z(j,ut,Ft,me){if(Ft>>>=0,!(me>0))return 0;for(var Ye=Ft,Ze=Ft+me-1,se=0;se=55296&&ne<=57343){var yr=j.charCodeAt(++se);ne=65536+((ne&1023)<<10)|yr&1023}if(ne<=127){if(Ft>=Ze)break;ut[Ft++>>>0]=ne}else if(ne<=2047){if(Ft+1>=Ze)break;ut[Ft++>>>0]=192|ne>>6,ut[Ft++>>>0]=128|ne&63}else if(ne<=65535){if(Ft+2>=Ze)break;ut[Ft++>>>0]=224|ne>>12,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}else{if(Ft+3>=Ze)break;ut[Ft++>>>0]=240|ne>>18,ut[Ft++>>>0]=128|ne>>12&63,ut[Ft++>>>0]=128|ne>>6&63,ut[Ft++>>>0]=128|ne&63}}return ut[Ft>>>0]=0,Ft-Ye}function et(j,ut,Ft){return Z(j,lt,ut,Ft)}var nt,st,lt,ot,it,ft,gt,Ct,Rt;function Dt(j){nt=j,e.HEAP8=st=new Int8Array(j),e.HEAP16=ot=new Int16Array(j),e.HEAP32=ft=new Int32Array(j),e.HEAPU8=lt=new Uint8Array(j),e.HEAPU16=it=new Uint16Array(j),e.HEAPU32=gt=new Uint32Array(j),e.HEAPF32=Ct=new Float32Array(j),e.HEAPF64=Rt=new Float64Array(j)}var Ht=e.INITIAL_MEMORY||16777216,qt,pe=[],xe=[],re=[],ye=!1;function de(){return M}function Ee(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());Sa(pe)}function Ae(){ye=!0,Sa(xe)}function On(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)zr(e.postRun.shift());Sa(re)}function lr(j){pe.unshift(j)}function Zn(j){xe.unshift(j)}function zr(j){re.unshift(j)}var Xe=0,Br=null,Vr=null;function Jn(j){Xe++,e.monitorRunDependencies&&e.monitorRunDependencies(Xe)}function Qn(j){if(Xe--,e.monitorRunDependencies&&e.monitorRunDependencies(Xe),Xe==0&&(Br!==null&&(clearInterval(Br),Br=null),Vr)){var ut=Vr;Vr=null,ut()}}function Zr(j){e.onAbort&&e.onAbort(j),j="Aborted("+j+")",A(j),G=!0,W=1,j+=". Build with -sASSERTIONS for more info.";var ut=new WebAssembly.RuntimeError(j);throw o(ut),ut}var Ca="data:application/octet-stream;base64,";function zo(j){return j.startsWith(Ca)}function ki(j){return j.startsWith("file://")}var Er;Er="tfjs-backend-wasm.wasm",zo(Er)||(Er=d(Er));function va(j){try{if(j==Er&&F)return new Uint8Array(F);if(x)return x(j);throw"both async and sync fetching of the wasm failed"}catch(ut){Zr(ut)}}function Bd(){if(!F&&(c||p)){if(typeof fetch=="function"&&!ki(Er))return fetch(Er,{credentials:"same-origin"}).then(function(j){if(!j.ok)throw"failed to load wasm binary file at '"+Er+"'";return j.arrayBuffer()}).catch(function(){return va(Er)});if(g)return new Promise(function(j,ut){g(Er,function(Ft){j(new Uint8Array(Ft))},ut)})}return Promise.resolve().then(function(){return va(Er)})}function Vd(){var j={env:Gd,wasi_snapshot_preview1:Gd};function ut(se,ne){var yr=se.exports;e.asm=yr,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,Zn(e.asm.__wasm_call_ctors),Qn("wasm-instantiate")}Jn("wasm-instantiate");function Ft(se){ut(se.instance)}function me(se){return Bd().then(function(ne){return WebAssembly.instantiate(ne,j)}).then(function(ne){return ne}).then(se,function(ne){A("failed to asynchronously prepare wasm: "+ne),Zr(ne)})}function Ye(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!zo(Er)&&!ki(Er)&&!m&&typeof fetch=="function"?fetch(Er,{credentials:"same-origin"}).then(function(se){var ne=WebAssembly.instantiateStreaming(se,j);return ne.then(Ft,function(yr){return A("wasm streaming compile failed: "+yr),A("falling back to ArrayBuffer instantiation"),me(Ft)})}):me(Ft)}if(e.instantiateWasm)try{var Ze=e.instantiateWasm(j,ut);return Ze}catch(se){A("Module.instantiateWasm callback failed with error: "+se),o(se)}return Ye().catch(o),{}}var l_,zl;function bp(j){this.name="ExitStatus",this.message="Program terminated with exit("+j+")",this.status=j}function Sa(j){for(;j.length>0;)j.shift()(e)}function FC(){Zr("")}function wg(){return 4294901760}function Xu(){return wg()}function OC(j,ut,Ft){lt.copyWithin(j>>>0,ut>>>0,ut+Ft>>>0)}function Ig(j){try{return V.grow(j-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ut){}}function wp(j){var ut=lt.length;j=j>>>0;var Ft=wg();if(j>Ft)return!1;let me=(yr,to)=>yr+(to-yr%to)%to;for(var Ye=1;Ye<=4;Ye*=2){var Ze=ut*(1+.2/Ye);Ze=Math.min(Ze,j+100663296);var se=Math.min(Ft,me(Math.max(j,Ze),65536)),ne=Ig(se);if(ne)return!0}return!1}var Jr={varargs:void 0,get:function(){Jr.varargs+=4;var j=ft[Jr.varargs-4>>>2];return j},getStr:function(j){var ut=Y(j);return ut}};function Cg(j){return 52}function MC(j,ut,Ft,me,Ye){return 70}var PC=[null,[],[]];function u_(j,ut){var Ft=PC[j];ut===0||ut===10?((j===1?E:A)(K(Ft,0)),Ft.length=0):Ft.push(ut)}function c_(j,ut,Ft,me){for(var Ye=0,Ze=0;Ze>>2],ne=gt[ut+4>>>2];ut+=8;for(var yr=0;yr>>0]);Ye+=ne}return gt[me>>>2]=Ye,0}function vg(j){var ut=e["_"+j];return ut}function Yu(j,ut){st.set(j,ut>>>0)}function LC(j,ut,Ft,me,Ye){var Ze={string:nn=>{var Vl=0;if(nn!=null&&nn!==0){var Bg=(nn.length<<2)+1;Vl=Kd(Bg),et(nn,Vl,Bg)}return Vl},array:nn=>{var Vl=Kd(nn.length);return Yu(nn,Vl),Vl}};function se(nn){return ut==="string"?Y(nn):ut==="boolean"?!!nn:nn}var ne=vg(j),yr=[],to=0;if(me)for(var Na=0;Nase==="number"||se==="boolean"),Ze=ut!=="string";return Ze&&Ye&&!me?vg(j):function(){return LC(j,ut,Ft,arguments,me)}}var Gd={abort:FC,emscripten_get_heap_max:Xu,emscripten_memcpy_big:OC,emscripten_resize_heap:wp,fd_close:Cg,fd_seek:MC,fd_write:c_},BC=Vd(),Sg=e.___wasm_call_ctors=function(){return(Sg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Ng=e._init=function(){return(Ng=e._init=e.asm.init).apply(null,arguments)},VC=e._init_with_threads_count=function(){return(VC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},kg=e._get_threads_count=function(){return(kg=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},GC=e._register_tensor=function(){return(GC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Yt=e._dispose_data=function(){return(Yt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Wd=e._dispose=function(){return(Wd=e._dispose=e.asm.dispose).apply(null,arguments)},WC=e._Abs=function(){return(WC=e._Abs=e.asm.Abs).apply(null,arguments)},Tg=e._Acos=function(){return(Tg=e._Acos=e.asm.Acos).apply(null,arguments)},Ip=e._Acosh=function(){return(Ip=e._Acosh=e.asm.Acosh).apply(null,arguments)},UC=e._Add=function(){return(UC=e._Add=e.asm.Add).apply(null,arguments)},HC=e._AddN=function(){return(HC=e._AddN=e.asm.AddN).apply(null,arguments)},qC=e._All=function(){return(qC=e._All=e.asm.All).apply(null,arguments)},KC=e._Any=function(){return(KC=e._Any=e.asm.Any).apply(null,arguments)},jC=e._ArgMax=function(){return(jC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},_g=e._ArgMin=function(){return(_g=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Eg=e._Asin=function(){return(Eg=e._Asin=e.asm.Asin).apply(null,arguments)},XC=e._Asinh=function(){return(XC=e._Asinh=e.asm.Asinh).apply(null,arguments)},YC=e._Atan=function(){return(YC=e._Atan=e.asm.Atan).apply(null,arguments)},ZC=e._Atan2=function(){return(ZC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Ud=e._Atanh=function(){return(Ud=e._Atanh=e.asm.Atanh).apply(null,arguments)},JC=e._AvgPool=function(){return(JC=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},QC=e._AvgPool3D=function(){return(QC=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},tv=e._AvgPool3DGrad=function(){return(tv=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},Zu=e._AvgPoolGrad=function(){return(Zu=e._AvgPoolGrad=e.asm.AvgPoolGrad).apply(null,arguments)},ev=e._BatchMatMul=function(){return(ev=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},rv=e._Bincount=function(){return(rv=e._Bincount=e.asm.Bincount).apply(null,arguments)},Ag=e._BitwiseAnd=function(){return(Ag=e._BitwiseAnd=e.asm.BitwiseAnd).apply(null,arguments)},nv=e._Ceil=function(){return(nv=e._Ceil=e.asm.Ceil).apply(null,arguments)},Hd=e._ClipByValue=function(){return(Hd=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},ov=e._Conv2D=function(){return(ov=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},sv=e._Conv2DBackpropInput=function(){return(sv=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},iv=e._Conv3D=function(){return(iv=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},Bl=e._Conv3DBackpropFilterV2=function(){return(Bl=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},qd=e._Conv3DBackpropInputV2=function(){return(qd=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},av=e._Cos=function(){return(av=e._Cos=e.asm.Cos).apply(null,arguments)},lv=e._Cosh=function(){return(lv=e._Cosh=e.asm.Cosh).apply(null,arguments)},uv=e._CropAndResize=function(){return(uv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},cv=e._Cumprod=function(){return(cv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},Dg=e._Cumsum=function(){return(Dg=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},$g=e._DenseBincount=function(){return($g=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},pv=e._DepthToSpace=function(){return(pv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},mv=e._DepthwiseConv2dNative=function(){return(mv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Rg=e._Diag=function(){return(Rg=e._Diag=e.asm.Diag).apply(null,arguments)},Fg=e._Dilation2D=function(){return(Fg=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},fv=e._Dilation2DBackpropFilter=function(){return(fv=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},dv=e._Dilation2DBackpropInput=function(){return(dv=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},hv=e._Elu=function(){return(hv=e._Elu=e.asm.Elu).apply(null,arguments)},gv=e._EluGrad=function(){return(gv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},Og=e._Equal=function(){return(Og=e._Equal=e.asm.Equal).apply(null,arguments)},p_=e._Erf=function(){return(p_=e._Erf=e.asm.Erf).apply(null,arguments)},xv=e._Exp=function(){return(xv=e._Exp=e.asm.Exp).apply(null,arguments)},yv=e._Expm1=function(){return(yv=e._Expm1=e.asm.Expm1).apply(null,arguments)},bv=e._FlipLeftRight=function(){return(bv=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},wv=e._Floor=function(){return(wv=e._Floor=e.asm.Floor).apply(null,arguments)},Iv=e._FloorDiv=function(){return(Iv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},Cv=e._FusedBatchNorm=function(){return(Cv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},vv=e._FusedConv2D=function(){return(vv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},Sv=e._FusedDepthwiseConv2D=function(){return(Sv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Nv=e._Gather=function(){return(Nv=e._Gather=e.asm.Gather).apply(null,arguments)},kv=e._GatherNd=function(){return(kv=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Tv=e._Greater=function(){return(Tv=e._Greater=e.asm.Greater).apply(null,arguments)},_v=e._GreaterEqual=function(){return(_v=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Ev=e._IsFinite=function(){return(Ev=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},Av=e._IsInf=function(){return(Av=e._IsInf=e.asm.IsInf).apply(null,arguments)},Dv=e._IsNan=function(){return(Dv=e._IsNan=e.asm.IsNan).apply(null,arguments)},$v=e._LRN=function(){return($v=e._LRN=e.asm.LRN).apply(null,arguments)},Rv=e._LRNGrad=function(){return(Rv=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},Fv=e._LeakyRelu=function(){return(Fv=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Ov=e._Less=function(){return(Ov=e._Less=e.asm.Less).apply(null,arguments)},Mv=e._LessEqual=function(){return(Mv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},Pv=e._LinSpace=function(){return(Pv=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Lv=e._Log=function(){return(Lv=e._Log=e.asm.Log).apply(null,arguments)},zv=e._Log1p=function(){return(zv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Bv=e._LogicalAnd=function(){return(Bv=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Vv=e._LogicalNot=function(){return(Vv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Gv=e._LogicalOr=function(){return(Gv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Wv=e._LogicalXor=function(){return(Wv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},Uv=e._Max=function(){return(Uv=e._Max=e.asm.Max).apply(null,arguments)},Hv=e._MaxPool=function(){return(Hv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},qv=e._MaxPool3D=function(){return(qv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Kv=e._MaxPool3DGrad=function(){return(Kv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},jv=e._MaxPoolGrad=function(){return(jv=e._MaxPoolGrad=e.asm.MaxPoolGrad).apply(null,arguments)},Xv=e._MaxPoolWithArgmax=function(){return(Xv=e._MaxPoolWithArgmax=e.asm.MaxPoolWithArgmax).apply(null,arguments)},Yv=e._Maximum=function(){return(Yv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Zv=e._Mean=function(){return(Zv=e._Mean=e.asm.Mean).apply(null,arguments)},Jv=e._Min=function(){return(Jv=e._Min=e.asm.Min).apply(null,arguments)},Qv=e._Minimum=function(){return(Qv=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Mod=function(){return(eS=e._Mod=e.asm.Mod).apply(null,arguments)},rS=e._Multinomial=function(){return(rS=e._Multinomial=e.asm.Multinomial).apply(null,arguments)},nS=e._Multiply=function(){return(nS=e._Multiply=e.asm.Multiply).apply(null,arguments)},oS=e._Neg=function(){return(oS=e._Neg=e.asm.Neg).apply(null,arguments)},sS=e._NonMaxSuppressionV3=function(){return(sS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},iS=e._NonMaxSuppressionV4=function(){return(iS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},aS=e._NonMaxSuppressionV5=function(){return(aS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},lS=e._NotEqual=function(){return(lS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},uS=e._OneHot=function(){return(uS=e._OneHot=e.asm.OneHot).apply(null,arguments)},cS=e._PadV2=function(){return(cS=e._PadV2=e.asm.PadV2).apply(null,arguments)},pS=e._Pow=function(){return(pS=e._Pow=e.asm.Pow).apply(null,arguments)},mS=e._Prelu=function(){return(mS=e._Prelu=e.asm.Prelu).apply(null,arguments)},fS=e._Prod=function(){return(fS=e._Prod=e.asm.Prod).apply(null,arguments)},dS=e._RealDiv=function(){return(dS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},hS=e._Reciprocal=function(){return(hS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},gS=e._Relu=function(){return(gS=e._Relu=e.asm.Relu).apply(null,arguments)},xS=e._Relu6=function(){return(xS=e._Relu6=e.asm.Relu6).apply(null,arguments)},yS=e._ResizeBilinear=function(){return(yS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},bS=e._ResizeBilinearGrad=function(){return(bS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},wS=e._ResizeNearestNeighbor=function(){return(wS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},IS=e._ResizeNearestNeighborGrad=function(){return(IS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},CS=e._Reverse=function(){return(CS=e._Reverse=e.asm.Reverse).apply(null,arguments)},vS=e._RotateWithOffset=function(){return(vS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},SS=e._Round=function(){return(SS=e._Round=e.asm.Round).apply(null,arguments)},NS=e._Rsqrt=function(){return(NS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},kS=e._ScatterNd=function(){return(kS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},TS=e._SearchSorted=function(){return(TS=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},_S=e._SelectV2=function(){return(_S=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},ES=e._Selu=function(){return(ES=e._Selu=e.asm.Selu).apply(null,arguments)},AS=e._Sigmoid=function(){return(AS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},DS=e._Sign=function(){return(DS=e._Sign=e.asm.Sign).apply(null,arguments)},$S=e._Sin=function(){return($S=e._Sin=e.asm.Sin).apply(null,arguments)},RS=e._Sinh=function(){return(RS=e._Sinh=e.asm.Sinh).apply(null,arguments)},FS=e._Softmax=function(){return(FS=e._Softmax=e.asm.Softmax).apply(null,arguments)},OS=e._Softplus=function(){return(OS=e._Softplus=e.asm.Softplus).apply(null,arguments)},MS=e._SparseFillEmptyRows=function(){return(MS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},PS=e._SparseReshape=function(){return(PS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},LS=e._SparseSegmentReduction=function(){return(LS=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},zS=e._SparseToDense=function(){return(zS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},BS=e._Sqrt=function(){return(BS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},VS=e._Square=function(){return(VS=e._Square=e.asm.Square).apply(null,arguments)},GS=e._SquaredDifference=function(){return(GS=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},WS=e._Step=function(){return(WS=e._Step=e.asm.Step).apply(null,arguments)},US=e._StridedSlice=function(){return(US=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},HS=e._Sub=function(){return(HS=e._Sub=e.asm.Sub).apply(null,arguments)},qS=e._Sum=function(){return(qS=e._Sum=e.asm.Sum).apply(null,arguments)},KS=e._Tan=function(){return(KS=e._Tan=e.asm.Tan).apply(null,arguments)},jS=e._Tanh=function(){return(jS=e._Tanh=e.asm.Tanh).apply(null,arguments)},XS=e._TensorScatterUpdate=function(){return(XS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},YS=e._Tile=function(){return(YS=e._Tile=e.asm.Tile).apply(null,arguments)},ZS=e._TopK=function(){return(ZS=e._TopK=e.asm.TopK).apply(null,arguments)},JS=e._Transform=function(){return(JS=e._Transform=e.asm.Transform).apply(null,arguments)},QS=e._Transpose=function(){return(QS=e._Transpose=e.asm.Transpose).apply(null,arguments)},t0=e.__FusedMatMul=function(){return(t0=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},e0=e._malloc=function(){return(e0=e._malloc=e.asm.malloc).apply(null,arguments)},r0=e._free=function(){return(r0=e._free=e.asm.free).apply(null,arguments)},n0=e.___errno_location=function(){return(n0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Mg=e.stackSave=function(){return(Mg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Pg=e.stackRestore=function(){return(Pg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Kd=e.stackAlloc=function(){return(Kd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},o0=e.dynCall_iijjiiii=function(){return(o0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},s0=e.dynCall_jiji=function(){return(s0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=zC;var Cp;Vr=function j(){Cp||Lg(),Cp||(Vr=j)};function Lg(j){if(j=j||a,Xe>0||(Ee(),Xe>0))return;function ut(){Cp||(Cp=!0,e.calledRun=!0,!G&&(Ae(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),On()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),ut()},1)):ut()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Lg();var vp;s&&(vp={uncaughtException:process.listeners("uncaughtException").filter(function(j){return!s.uncaughtException.indexOf(j)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(j){return!s.unhandledRejection.indexOf(j)>-1})});var Sp;if(typeof t!="undefined")Sp=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Sp=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(vp){var i0=Sp._dispose;Sp._dispose=function(){i0(),vp.uncaughtException.forEach(function(j){process.removeListener("uncaughtException",j)}),vp.unhandledRejection.forEach(function(j){process.removeListener("unhandledRejection",j)})}}return t.ready}})();typeof $C=="object"&&typeof n_=="object"?n_.exports=r_:typeof define=="function"&&define.amd?define([],function(){return r_}):typeof $C=="object"&&($C.WasmBackendModule=r_)});var Ta=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},Bo=class{refCount(t){return Pn("refCount")}incRef(t){return Pn("incRef")}timerAvailable(){return!0}time(t){return Pn("time")}read(t){return Pn("read")}readSync(t){return Pn("readSync")}readToGPU(t,e){return Pn("readToGPU")}numDataIds(){return Pn("numDataIds")}disposeData(t,e){return Pn("disposeData")}write(t,e,n){return Pn("write")}move(t,e,n,o,s){return Pn("move")}createTensorFromGPUData(t,e,n){return Pn("createTensorFromGPUData")}memory(){return Pn("memory")}floatPrecision(){return Pn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Pn("dispose")}};function Pn(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 w_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Kg(r,t,e)}function Gq(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Kg(r,e,n),Kg(t,e,n)}function kp(r,t,e){return Math.max(r,Math.min(t,e))}function Wq(r){return r%2===0?r:r+1}function Kg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function Uq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function ro(r){_(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function jt(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function Jq(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function fr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),_(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),_(r.every(n=>_a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function f0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function d0(r,t){return jg(r,t)}function jg(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else if(r==="string")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function h0(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r=="string"||r instanceof String}function I_(r){return typeof r=="boolean"}function C_(r){return typeof r=="number"}function Wl(r){return Array.isArray(r)?Wl(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":C_(r)?"float32":Vo(r)?"string":I_(r)?"bool":"float32"}function Ti(r){return!!(r&&r.constructor&&r.call&&r.apply)}function _p(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function v_(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?" for a complex tensor":""}.`);return v_(0,r,t,e)}function tK(r,t){if(Array.isArray(r))return r;if(t==="float32")return r instanceof Float32Array?r:new Float32Array(r);if(t==="int32")return r instanceof Int32Array?r:new Int32Array(r);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function Xd(r,t){let e=Ep(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Ju(r,new Float32Array(e));if(t==="int32")return Ju(r,new Int32Array(e));if(t==="bool")return Ju(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Le(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function rK(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(":");this.urlFlags[o]=aK(o,s)})}};function sK(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(iK(t,n[0],n[1]),n.join("="))),t}function iK(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function aK(r,t){let e=t.toLowerCase();return e==="true"||e==="false"?e==="true":`${+e}`===e?+e:t}function L(){return y0}var y0=null;function N_(r){y0=r}var b0;function w0(){if(b0==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");b0=r}return b0}function lK(){let r=w0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Zd(r,t){let e=lK();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var Ei="Abs",Go="Acos",Wo="Acosh",no="Add",Uo="AddN",Ea="All",Aa="Any",Ai="ArgMax",Di="ArgMin",Ho="Asin",qo="Asinh",Ko="Atan",jo="Atanh",Xo="Atan2",Yo="AvgPool",Ul="AvgPoolGrad",$i="AvgPool3D",Hl="AvgPool3DGrad",Zo="BatchMatMul",Ri="BatchToSpaceND",Da="Bincount",$a="BitwiseAnd",k_="BroadcastTo",ql="BroadcastArgs",fo="Cast",Jo="Ceil",ho="ClipByValue",Ap="Complex",Kl="ComplexAbs",Fi="Concat",Qo="Conv2D",Dp="Conv2DBackpropFilter",ts="Conv2DBackpropInput",es="Conv3D",Ra="Conv3DBackpropFilterV2",Fa="Conv3DBackpropInputV2",rs="Cos",ns="Cosh",Oa="Cumprod",os="Cumsum",Ma="CropAndResize",jl="DenseBincount",Pa="DepthToSpace",ss="DepthwiseConv2dNative",$p="DepthwiseConv2dNativeBackpropFilter",Rp="DepthwiseConv2dNativeBackpropInput",Xl="Diag",is="Dilation2D",Yl="Dilation2DBackpropInput",Zl="Dilation2DBackpropFilter",Jd="Draw",as="RealDiv",Fp="Einsum",ls="Elu",La="EluGrad",us="Erf",za="Equal",cs="Exp",Oi="ExpandDims",ps="Expm1",Op="FFT",Jl="Fill",Ba="FlipLeftRight",ms="Floor",fs="FloorDiv",ds="FusedBatchNorm",Mi="GatherV2",Va="GatherNd",Ga="Greater",hs="GreaterEqual",go="Identity",Mp="IFFT",Pp="Imag",gs="IsFinite",xs="IsInf",ys="IsNan",bs="LeakyRelu",Wa="Less",Ua="LessEqual",Ha="LinSpace",ws="Log",Is="Log1p",qa="LogicalAnd",Ka="LogicalNot",ja="LogicalOr",T_="LogicalXor",__="LogSoftmax",Qmt="LowerBound",Cs="LRN",Xa="LRNGrad",tft="MatrixBandPart",vs="Max",Ss="Maximum",Ns="MaxPool",Ql="MaxPoolGrad",Pi="MaxPool3D",tu="MaxPool3DGrad",eu="MaxPoolWithArgmax",ks="Mean",Ts="Min",_s="Minimum",Es="MirrorPad",As="Mod",Ya="Multinomial",Ds="Multiply",Li="Neg",Za="NotEqual",Ja="NonMaxSuppressionV3",Qa="NonMaxSuppressionV4",tl="NonMaxSuppressionV5",zi="OnesLike",$s="OneHot",Bi="Pack",Rs="PadV2",eft="Pool",Fs="Pow",Os="Prelu",Ms="Prod",Lp="RaggedGather",zp="RaggedRange",Bp="RaggedTensorToTensor",ru="Range",Vp="Real",Ps="Reciprocal",Ls="Relu",Vi="Reshape",zs="ResizeNearestNeighbor",el="ResizeNearestNeighborGrad",Bs="ResizeBilinear",rl="ResizeBilinearGrad",Vs="Relu6",Gs="Reverse",Ws="Round",Us="Rsqrt",nl="ScatterNd",ol="TensorScatterUpdate",sl="SearchSorted",Gi="Select",Hs="Selu",Wi="Slice",qs="Sin",Ks="Sinh",js="Sign",Xs="Sigmoid",Ys="Softplus",Zs="Sqrt",Js="Sum",Ui="SpaceToBatchND",Hi="SplitV",Qs="Softmax",nu="SparseFillEmptyRows",il="SparseReshape",ou="SparseSegmentMean",su="SparseSegmentSum",al="SparseToDense",ti="SquaredDifference",iu="Square",ec="StaticRegexReplace",ll="StridedSlice",au="StringNGrams",lu="StringSplit",uu="StringToHashBucketFast",ei="Sub",ri="Tan",ni="Tanh",oo="Tile",ul="TopK",cl="Transform",so="Transpose",cu="Unique",qi="Unpack",pu="UnsortedSegmentSum",rft="UpperBound",Ki="ZerosLike",xo="Step",Qd="FromPixels",pl="RotateWithOffset",ji="_FusedMatMul",Xi="FusedConv2D",Yi="FusedDepthwiseConv2D";function Zi(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.warn(...r)}function uK(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.log(...r)}var Gp=Zd("kernelRegistry",()=>new Map),th=Zd("gradRegistry",()=>new Map);function Wp(r,t){let e=C0(r,t);return Gp.get(e)}function I0(r){return th.get(r)}function Xg(r){let t=Gp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split("_");a===r&&e.push(i)}return e}function rc(r){let{kernelName:t,backendName:e}=r,n=C0(t,e);Gp.has(n)&&Zi(`The kernel '${t}' for backend '${e}' is already registered`),Gp.set(n,r)}function A_(r){let{kernelName:t}=r;th.has(t)&&L().getBool("DEBUG")&&Zi(`Overriding the gradient for '${t}'`),th.set(t,r)}function aft(r,t){let e=C0(r,t);if(!Gp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Gp.delete(e)}function lft(r){if(!th.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);th.delete(r)}function uft(r,t){Xg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});rc(o)})}function C0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>on,arraysEqualWithNull:()=>m0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Le,assertNonNull:()=>ro,assertShapesMatch:()=>$e,bytesFromStringArray:()=>x0,bytesPerElement:()=>Tp,checkConversionForErrors:()=>h0,clamp:()=>kp,computeStrides:()=>_i,convertBackendValuesAndArrayBuffer:()=>tK,createScalarValue:()=>gK,createShuffledIndices:()=>Yq,decodeString:()=>Kp,distSquared:()=>qq,encodeString:()=>fu,fetch:()=>yK,fingerPrint64:()=>hK,flatten:()=>si,getArrayFromDType:()=>jg,getTypedArrayFromDType:()=>d0,hasEncodingLoss:()=>Qq,hexToLong:()=>eh,indexToLoc:()=>nK,inferDtype:()=>Wl,inferFromImplicitShape:()=>Jq,isBoolean:()=>I_,isFunction:()=>Ti,isInt:()=>_a,isNumber:()=>C_,isPromise:()=>tc,isScalarShape:()=>Kq,isString:()=>Vo,isTypedArray:()=>sr,isValidDtype:()=>g0,locToIndex:()=>rK,makeOnesTypedArray:()=>Xd,makeZerosNestedTypedArray:()=>eK,makeZerosTypedArray:()=>Ep,nearestDivisor:()=>_p,nearestLargerEven:()=>Wq,now:()=>ac,parseAxisParam:()=>fr,randUniform:()=>Hq,repeatedTry:()=>Zq,rightPad:()=>Qu,shuffle:()=>w_,shuffleCombo:()=>Gq,sizeFromShape:()=>jt,sizeToSquarishShape:()=>Xq,squeezeShape:()=>f0,sum:()=>Uq,swap:()=>Kg,tanh:()=>jq,toNestedArray:()=>Ju,toTypedArray:()=>qp});function Yg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var k0=Gl(V_());var ic=k0.default||k0;function eh(r){return ic.fromString(r,!0,16)}var W_=eh("c3a5c85c97cb3127"),sc=eh("b492b66fbe98f273"),sn=eh("9ae16a3b2f90404f");function N0(r){return r.xor(r.shru(47))}function U_(r,t,e){let n=r.slice(t,t+e);return ic.fromBytes(Array.from(n),!0,!0)}function ze(r,t){return U_(r,t,8)}function G_(r,t){return U_(r,t,4)}function Ar(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function mu(r,t,e=eh("9ddfea08eb382d69")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function pK(r,t,e,n,o,s){o=o.add(r),s=Ar(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Ar(o,44)),[o.add(n),s.add(i)]}function Jg(r,t,e,n){return pK(ze(r,t),ze(r,t+8),ze(r,t+16),ze(r,t+24),e,n)}function mK(r,t=r.length){if(t>=8){let e=sn.add(t*2),n=ze(r,0).add(sn),o=ze(r,t-8),s=Ar(o,37).mul(e).add(n),i=Ar(n,25).add(o).mul(e);return mu(s,i,e)}if(t>=4){let e=sn.add(t*2),n=G_(r,0);return mu(n.shl(3).add(t),G_(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return N0(sn.mul(s).xor(W_.mul(i))).mul(sn)}return sn}function fK(r,t=r.length){let e=sn.add(t*2),n=ze(r,0).mul(sc),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(sn);return mu(Ar(n.add(o),43).add(Ar(s,30)).add(i),n.add(Ar(o.add(sn),18)).add(s),e)}function dK(r,t=r.length){let e=sn.add(t*2),n=ze(r,0).mul(sn),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(sn),a=Ar(n.add(o),43).add(Ar(s,30)).add(i),u=mu(a,n.add(Ar(o.add(sn),18)).add(s),e),l=ze(r,16).mul(e),c=ze(r,24),p=a.add(ze(r,t-32)).mul(e),m=u.add(ze(r,t-24)).mul(e);return mu(Ar(l.add(c),43).add(Ar(p,30)).add(m),l.add(Ar(c.add(n),18)).add(p),e)}function hK(r,t=r.length){let e=ic.fromNumber(81,!0);if(t<=32)return t<=16?mK(r,t):fK(r,t);if(t<=64)return dK(r,t);let n=e,o=e.mul(sc).add(113),s=N0(o.mul(sn).add(113)).mul(sn),i=[ic.UZERO,ic.UZERO],a=[ic.UZERO,ic.UZERO];n=n.mul(sn).add(ze(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(sc),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(sc),n=n.xor(a[1]),o=o.add(i[0]).add(ze(r,u+40)),s=Ar(s.add(a[0]),33).mul(sc),i=Jg(r,u,i[1].mul(sc),n.add(a[0])),a=Jg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=sc.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(p),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(ze(r,u+40))),s=Ar(s.add(a[0]),33).mul(p),i=Jg(r,u,i[1].mul(p),n.add(a[0])),a=Jg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],mu(mu(i[0],a[0],p).add(N0(o).mul(W_)).add(s),mu(i[1],a[1],p).add(n),p)}function gK(r,t){return t==="string"?fu(r):qp([r],t)}function xK(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function qp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=si(r)),L().getBool("DEBUG")&&h0(r,t),xK(r,t))return r;if(t==null||t==="float32"||t==="complex64")return new Float32Array(r);if(t==="int32")return new Int32Array(r);if(t==="bool"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=ac();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:ac()-a})}if(L().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{bK(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function bK(r,t,e){if(t!=="float32")return!1;for(let n=0;n0?h:""} `}}console.log(`%c${u} %c${a} %c${l}D ${p} %c${c} %c${m} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function H_(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!on(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var K_=20,rh=3,_0=7;function j_(r,t,e,n){let o=_i(t),s=wK(r,t,e,o),i=t.length,a=tx(r,t,e,o,s),u=["Tensor"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(" values:")),u.push(a.map(l=>" "+l).join(` +`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,nt=Atomics.store,st=Atomics.compareExchange,lt;l.wasmBinary&&(lt=l.wasmBinary);var ot=l.noExitRuntime||!0;typeof WebAssembly!="object"&&Xu("no native wasm support detected");var it,ft,gt=!1,Ct;function Rt(P,U){P||Xu(U)}var Dt=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Ht(P,U,dt){U>>>=0;for(var Pt=U+dt,Jt=U;P[Jt]&&!(Jt>=Pt);)++Jt;if(Jt-U>16&&P.buffer&&Dt)return Dt.decode(P.buffer instanceof SharedArrayBuffer?P.slice(U,Jt):P.subarray(U,Jt));for(var Zt="";U>10,56320|eo&1023)}}return Zt}function qt(P,U){return P>>>=0,P?Ht(n(),P,U):""}function pe(P,U,dt,Pt){if(dt>>>=0,!(Pt>0))return 0;for(var Jt=dt,Zt=dt+Pt-1,bt=0;bt=55296&&$t<=57343){var or=P.charCodeAt(++bt);$t=65536+(($t&1023)<<10)|or&1023}if($t<=127){if(dt>=Zt)break;U[dt++>>>0]=$t}else if($t<=2047){if(dt+1>=Zt)break;U[dt++>>>0]=192|$t>>6,U[dt++>>>0]=128|$t&63}else if($t<=65535){if(dt+2>=Zt)break;U[dt++>>>0]=224|$t>>12,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}else{if(dt+3>=Zt)break;U[dt++>>>0]=240|$t>>18,U[dt++>>>0]=128|$t>>12&63,U[dt++>>>0]=128|$t>>6&63,U[dt++>>>0]=128|$t&63}}return U[dt>>>0]=0,dt-Jt}function ye(P,U,dt){return pe(P,n(),U,dt)}var re,be,de,Ee,Ae,On,lr,Zn,Br;I&&(re=l.buffer);function Xe(P){re=P,l.HEAP8=be=new Int8Array(P),l.HEAP16=Ee=new Int16Array(P),l.HEAP32=On=new Int32Array(P),l.HEAPU8=de=new Uint8Array(P),l.HEAPU16=Ae=new Uint16Array(P),l.HEAPU32=lr=new Uint32Array(P),l.HEAPF32=Zn=new Float32Array(P),l.HEAPF64=Br=new Float64Array(P)}var Vr=l.INITIAL_MEMORY||16777216;if(I)it=l.wasmMemory,re=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Vr/65536,maximum:65536,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw Y("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&Y("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");it&&(re=it.buffer),Vr=re.byteLength,Xe(re);var Gr,Jn=[],Qn=[],Qr=[],Ca=!1;function zo(){return ot}function Ti(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)Vd(l.preRun.shift());Ud(Jn)}function Er(){Ca=!0,!I&&Ud(Qn)}function va(){if(!I){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)c_(l.postRun.shift());Ud(Qr)}}function Vd(P){Jn.unshift(P)}function Gd(P){Qn.unshift(P)}function c_(P){Qr.unshift(P)}var zl=0,bp=null,Sa=null;function MC(P){zl++,l.monitorRunDependencies&&l.monitorRunDependencies(zl)}function Ig(P){if(zl--,l.monitorRunDependencies&&l.monitorRunDependencies(zl),zl==0&&(bp!==null&&(clearInterval(bp),bp=null),Sa)){var U=Sa;Sa=null,U()}}function Xu(P){l.onAbort&&l.onAbort(P),P="Aborted("+P+")",Y(P),gt=!0,Ct=1,P+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(P);throw p(U),U}var PC="data:application/octet-stream;base64,";function Cg(P){return P.startsWith(PC)}function wp(P){return P.startsWith("file://")}var tn;tn="tfjs-backend-wasm-threaded-simd.wasm",Cg(tn)||(tn=E(tn));function vg(P){try{if(P==tn&<)return new Uint8Array(lt);if(F)return F(P);throw"both async and sync fetching of the wasm failed"}catch(U){Xu(U)}}function LC(){if(!lt&&(x||b)){if(typeof fetch=="function"&&!wp(tn))return fetch(tn,{credentials:"same-origin"}).then(function(P){if(!P.ok)throw"failed to load wasm binary file at '"+tn+"'";return P.arrayBuffer()}).catch(function(){return vg(tn)});if(D)return new Promise(function(P,U){D(tn,function(dt){P(new Uint8Array(dt))},U)})}return Promise.resolve().then(function(){return vg(tn)})}function zC(){var P={env:Mg,wasi_snapshot_preview1:Mg};function U(bt,$t){var or=bt.exports;if(l.asm=or,jC(l.asm._emscripten_tls_init),Gr=l.asm.__indirect_function_table,Gd(l.asm.__wasm_call_ctors),ft=$t,!I){var eo=Yt.unusedWorkers.length;Yt.unusedWorkers.forEach(function(ka){Yt.loadWasmModuleToWorker(ka,function(){--eo||Ig("wasm-instantiate")})})}}I||MC("wasm-instantiate");function dt(bt){U(bt.instance,bt.module)}function Pt(bt){return LC().then(function($t){return WebAssembly.instantiate($t,P)}).then(function($t){return $t}).then(bt,function($t){Y("failed to asynchronously prepare wasm: "+$t),Xu($t)})}function Jt(){return!lt&&typeof WebAssembly.instantiateStreaming=="function"&&!Cg(tn)&&!wp(tn)&&!w&&typeof fetch=="function"?fetch(tn,{credentials:"same-origin"}).then(function(bt){var $t=WebAssembly.instantiateStreaming(bt,P);return $t.then(dt,function(or){return Y("wasm streaming compile failed: "+or),Y("falling back to ArrayBuffer instantiation"),Pt(dt)})}):Pt(dt)}if(l.instantiateWasm)try{var Zt=l.instantiateWasm(P,U);return Zt}catch(bt){Y("Module.instantiateWasm callback failed with error: "+bt),p(bt)}return Jt().catch(p),{}}var p_,m_,Sg={};function Yu(P){this.name="ExitStatus",this.message="Program terminated with exit("+P+")",this.status=P}function BC(P){var U=Yt.pthreads[P];delete Yt.pthreads[P],U.terminate(),c0(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function VC(P){var U=Yt.pthreads[P];U.postMessage({cmd:"cancel"})}function Wd(P){var U=Yt.pthreads[P];Rt(U),Yt.returnWorkerToPool(U)}function GC(P){var U=Yt.getNewWorker();if(!U)return 6;Yt.runningWorkers.push(U),Yt.pthreads[P.pthread_ptr]=U,U.pthread_ptr=P.pthread_ptr;var dt={cmd:"run",start_routine:P.startRoutine,arg:P.arg,pthread_ptr:P.pthread_ptr};return U.runPthread=()=>{w&&U.ref(),U.postMessage(dt,P.transferList),delete U.runPthread},U.loaded&&U.runPthread(),0}var Ng={varargs:void 0,get:function(){Ng.varargs+=4;var P=s()[Ng.varargs-4>>>2];return P},getStr:function(P){var U=qt(P);return U}};function kg(P){if(I)return Bl(1,1,P);Ct=P,zo()||(Yt.terminateAllThreads(),l.onExit&&l.onExit(P),gt=!0),g(P,new Yu(P))}function WC(P,U){if(Ct=P,!U&&I)throw _g(P),"unwind";kg(P)}var Tg=WC;function UC(P){if(P instanceof Yu||P=="unwind")return Ct;g(1,P)}var Yt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?Yt.initWorker():Yt.initMainThread()},initMainThread:function(){for(var P=8;P--;)Yt.allocateUnusedWorker()},initWorker:function(){ot=!1},setExitStatus:function(P){Ct=P},terminateAllThreads:function(){for(var P of Object.values(Yt.pthreads))Yt.returnWorkerToPool(P);for(var P of Yt.unusedWorkers)P.terminate();Yt.unusedWorkers=[]},returnWorkerToPool:function(P){var U=P.pthread_ptr;delete Yt.pthreads[U],Yt.unusedWorkers.push(P),Yt.runningWorkers.splice(Yt.runningWorkers.indexOf(P),1),P.pthread_ptr=0,w&&P.unref(),c0(U)},receiveObjectTransfer:function(P){},threadInitTLS:function(){Yt.tlsInitFunctions.forEach(P=>P())},loadWasmModuleToWorker:function(P,U){P.onmessage=Zt=>{var bt=Zt.data,$t=bt.cmd;if(P.pthread_ptr&&(Yt.currentProxiedOperationCallerThread=P.pthread_ptr),bt.targetThread&&bt.targetThread!=Gg()){var or=Yt.pthreads[bt.targetThread];or?or.postMessage(bt,bt.transferList):Y('Internal error! Worker sent a message "'+$t+'" to target pthread '+bt.targetThread+", but that thread no longer exists!"),Yt.currentProxiedOperationCallerThread=void 0;return}$t==="processProxyingQueue"?Hd(bt.queue):$t==="spawnThread"?GC(bt):$t==="cleanupThread"?Wd(bt.thread):$t==="killThread"?BC(bt.thread):$t==="cancelThread"?VC(bt.thread):$t==="loaded"?(P.loaded=!0,w&&P.unref(),U&&U(P),P.runPthread&&P.runPthread()):$t==="print"?j("Thread "+bt.threadId+": "+bt.text):$t==="printErr"?Y("Thread "+bt.threadId+": "+bt.text):$t==="alert"?alert("Thread "+bt.threadId+": "+bt.text):bt.target==="setimmediate"?P.postMessage(bt):$t==="callHandler"?l[bt.handler](...bt.args):$t&&Y("worker sent an unknown command "+$t),Yt.currentProxiedOperationCallerThread=void 0},P.onerror=Zt=>{var bt="worker sent an error!";throw Y(bt+" "+Zt.filename+":"+Zt.lineno+": "+Zt.message),Zt},w&&(P.on("message",function(Zt){P.onmessage({data:Zt})}),P.on("error",function(Zt){P.onerror(Zt)}),P.on("detachedExit",function(){}));var dt=[],Pt=["onExit","onAbort","print","printErr"];for(var Jt of Pt)l.hasOwnProperty(Jt)&&dt.push(Jt);P.postMessage({cmd:"load",handlers:dt,urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:ft})},allocateUnusedWorker:function(){var P,U=E("tfjs-backend-wasm-threaded-simd.worker.js");P=new Worker(U),Yt.unusedWorkers.push(P)},getNewWorker:function(){return Yt.unusedWorkers.length==0&&(Yt.allocateUnusedWorker(),Yt.loadWasmModuleToWorker(Yt.unusedWorkers[0])),Yt.unusedWorkers.pop()}};l.PThread=Yt;function Ud(P){for(;P.length>0;)P.shift()(l)}function HC(){var P=Gg(),U=s()[P+52>>>2],dt=s()[P+56>>>2],Pt=U-dt;y_(U,Pt),Wg(U)}l.establishStackSpace=HC;function _g(P){if(I)return Bl(2,0,P);try{Tg(P)}catch(U){UC(U)}}var Ip=[];function qC(P){var U=Ip[P];return U||(P>=Ip.length&&(Ip.length=P+1),Ip[P]=U=Gr.get(P)),U}function KC(P,U){var dt=qC(P)(U);zo()?Yt.setExitStatus(dt):x_(dt)}l.invokeEntryPoint=KC;function jC(P){Yt.tlsInitFunctions.push(P)}function XC(P){d_(P,!b,1,!x),Yt.threadInitTLS()}function YC(P){I?postMessage({cmd:"cleanupThread",thread:P}):Wd(P)}function Eg(P,U,dt,Pt){return I?Bl(3,1,P,U,dt,Pt):Ag(P,U,dt,Pt)}function Ag(P,U,dt,Pt){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Jt=[],Zt=0;if(I&&(Jt.length===0||Zt))return Eg(P,U,dt,Pt);if(Zt)return Zt;var bt={startRoutine:dt,pthread_ptr:P,arg:Pt,transferList:Jt};return I?(bt.cmd="spawnThread",postMessage(bt,Jt),0):GC(bt)}function ZC(){return 65536}var JC=!0;function QC(){return JC}function Hd(P){Atomics.store(s(),P>>2,1),Gg()&&g_(P),Atomics.compareExchange(s(),P>>2,1,0)}l.executeNotifiedProxyingQueue=Hd;function tv(P,U,dt,Pt){if(P==U)setTimeout(()=>Hd(Pt));else if(I)postMessage({targetThread:P,cmd:"processProxyingQueue",queue:Pt});else{var Jt=Yt.pthreads[P];if(!Jt)return;Jt.postMessage({cmd:"processProxyingQueue",queue:Pt})}return 1}function ev(P,U,dt){return-1}function rv(){Xu("")}function Zu(P){Zu.shown||(Zu.shown={}),Zu.shown[P]||(Zu.shown[P]=1,w&&(P="warning: "+P),Y(P))}function nv(){w||b||Zu("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function ov(){return Date.now()}function Dg(){return 4294901760}function sv(){return Dg()}var qd;w?qd=()=>{var P=process.hrtime();return P[0]*1e3+P[1]/1e6}:qd=()=>performance.timeOrigin+performance.now();function iv(P,U,dt){n().copyWithin(P>>>0,U>>>0,U+dt>>>0)}function av(){return w?XH().cpus().length:navigator.hardwareConcurrency}function lv(P){var U=p0(),dt=P();return Wg(U),dt}function Bl(P,U){var dt=arguments.length-2,Pt=arguments;return lv(()=>{for(var Jt=dt,Zt=Ug(Jt*8),bt=Zt>>3,$t=0;$t>>0]=or}return h_(P,Jt,Zt,U)})}var Kd=[];function uv(P,U,dt){Kd.length=U;for(var Pt=dt>>3,Jt=0;Jt>>0];var Zt=P<0,bt=Zt?Sg[-P-1]:yv[P];return bt.apply(null,Kd)}function cv(P){try{return it.grow(P-re.byteLength+65535>>>16),Xe(it.buffer),1}catch(U){}}function pv(P){var U=n().length;if(P=P>>>0,P<=U)return!1;var dt=Dg();if(P>dt)return!1;let Pt=(or,eo)=>or+(eo-or%eo)%eo;for(var Jt=1;Jt<=4;Jt*=2){var Zt=U*(1+.2/Jt);Zt=Math.min(Zt,P+100663296);var bt=Math.min(dt,Pt(Math.max(P,Zt),65536)),$t=cv(bt);if($t)return!0}return!1}function mv(){throw"unwind"}function $g(P){return I?Bl(4,1,P):52}function Rg(P,U,dt,Pt,Jt){return I?Bl(5,1,P,U,dt,Pt,Jt):70}var fv=[null,[],[]];function dv(P,U){var dt=fv[P];U===0||U===10?((P===1?j:Y)(Ht(dt,0)),dt.length=0):dt.push(U)}function Fg(P,U,dt,Pt){if(I)return Bl(6,1,P,U,dt,Pt);for(var Jt=0,Zt=0;Zt>>2],$t=i()[U+4>>>2];U+=8;for(var or=0;or<$t;or++)dv(P,n()[bt+or>>>0]);Jt+=$t}return i()[Pt>>>2]=Jt,0}function Og(P){var U=l["_"+P];return U}function hv(P,U){e().set(P,U>>>0)}function gv(P,U,dt,Pt,Jt){var Zt={string:Mn=>{var Np=0;if(Mn!=null&&Mn!==0){var I_=(Mn.length<<2)+1;Np=Ug(I_),ye(Mn,Np,I_)}return Np},array:Mn=>{var Np=Ug(Mn.length);return hv(Mn,Np),Np}};function bt(Mn){return U==="string"?qt(Mn):U==="boolean"?!!Mn:Mn}var $t=Og(P),or=[],eo=0;if(Pt)for(var ka=0;kabt==="number"||bt==="boolean"),Zt=U!=="string";return Zt&&Jt&&!Pt?Og(P):function(){return gv(P,U,dt,arguments,Pt)}}Yt.init();var yv=[null,kg,_g,Eg,$g,Rg,Fg],Mg={__emscripten_init_main_thread_js:XC,__emscripten_thread_cleanup:YC,__pthread_create_js:Ag,_emscripten_default_pthread_stack_size:ZC,_emscripten_get_now_is_monotonic:QC,_emscripten_notify_task_queue:tv,_emscripten_set_offscreencanvas_size:ev,abort:rv,emscripten_check_blocking_allowed:nv,emscripten_date_now:ov,emscripten_get_heap_max:sv,emscripten_get_now:qd,emscripten_memcpy_big:iv,emscripten_num_logical_cores:av,emscripten_receive_on_main_thread_js:uv,emscripten_resize_heap:pv,emscripten_unwind_to_js_event_loop:mv,exit:Tg,fd_close:$g,fd_seek:Rg,fd_write:Fg,memory:it||l.wasmMemory},f_=zC(),bv=l.___wasm_call_ctors=function(){return(bv=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},wv=l._init=function(){return(wv=l._init=l.asm.init).apply(null,arguments)},Iv=l._init_with_threads_count=function(){return(Iv=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},Cv=l._get_threads_count=function(){return(Cv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},vv=l._register_tensor=function(){return(vv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},Sv=l._dispose_data=function(){return(Sv=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},Nv=l._dispose=function(){return(Nv=l._dispose=l.asm.dispose).apply(null,arguments)},kv=l._Abs=function(){return(kv=l._Abs=l.asm.Abs).apply(null,arguments)},Tv=l._Acos=function(){return(Tv=l._Acos=l.asm.Acos).apply(null,arguments)},_v=l._Acosh=function(){return(_v=l._Acosh=l.asm.Acosh).apply(null,arguments)},Ev=l._Add=function(){return(Ev=l._Add=l.asm.Add).apply(null,arguments)},Av=l._AddN=function(){return(Av=l._AddN=l.asm.AddN).apply(null,arguments)},Dv=l._All=function(){return(Dv=l._All=l.asm.All).apply(null,arguments)},$v=l._Any=function(){return($v=l._Any=l.asm.Any).apply(null,arguments)},Rv=l._ArgMax=function(){return(Rv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},Fv=l._ArgMin=function(){return(Fv=l._ArgMin=l.asm.ArgMin).apply(null,arguments)},Ov=l._Asin=function(){return(Ov=l._Asin=l.asm.Asin).apply(null,arguments)},Mv=l._Asinh=function(){return(Mv=l._Asinh=l.asm.Asinh).apply(null,arguments)},Pv=l._Atan=function(){return(Pv=l._Atan=l.asm.Atan).apply(null,arguments)},Lv=l._Atan2=function(){return(Lv=l._Atan2=l.asm.Atan2).apply(null,arguments)},zv=l._Atanh=function(){return(zv=l._Atanh=l.asm.Atanh).apply(null,arguments)},Bv=l._AvgPool=function(){return(Bv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},Vv=l._AvgPool3D=function(){return(Vv=l._AvgPool3D=l.asm.AvgPool3D).apply(null,arguments)},Gv=l._AvgPool3DGrad=function(){return(Gv=l._AvgPool3DGrad=l.asm.AvgPool3DGrad).apply(null,arguments)},Wv=l._AvgPoolGrad=function(){return(Wv=l._AvgPoolGrad=l.asm.AvgPoolGrad).apply(null,arguments)},Uv=l._BatchMatMul=function(){return(Uv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},Hv=l._Bincount=function(){return(Hv=l._Bincount=l.asm.Bincount).apply(null,arguments)},qv=l._BitwiseAnd=function(){return(qv=l._BitwiseAnd=l.asm.BitwiseAnd).apply(null,arguments)},Kv=l._Ceil=function(){return(Kv=l._Ceil=l.asm.Ceil).apply(null,arguments)},jv=l._ClipByValue=function(){return(jv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},Xv=l._Conv2D=function(){return(Xv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},Yv=l._Conv2DBackpropInput=function(){return(Yv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},Zv=l._Conv3D=function(){return(Zv=l._Conv3D=l.asm.Conv3D).apply(null,arguments)},Jv=l._Conv3DBackpropFilterV2=function(){return(Jv=l._Conv3DBackpropFilterV2=l.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Qv=l._Conv3DBackpropInputV2=function(){return(Qv=l._Conv3DBackpropInputV2=l.asm.Conv3DBackpropInputV2).apply(null,arguments)},tS=l._Cos=function(){return(tS=l._Cos=l.asm.Cos).apply(null,arguments)},eS=l._Cosh=function(){return(eS=l._Cosh=l.asm.Cosh).apply(null,arguments)},rS=l._CropAndResize=function(){return(rS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},nS=l._Cumprod=function(){return(nS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},oS=l._Cumsum=function(){return(oS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},sS=l._DenseBincount=function(){return(sS=l._DenseBincount=l.asm.DenseBincount).apply(null,arguments)},iS=l._DepthToSpace=function(){return(iS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},aS=l._DepthwiseConv2dNative=function(){return(aS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},lS=l._Diag=function(){return(lS=l._Diag=l.asm.Diag).apply(null,arguments)},uS=l._Dilation2D=function(){return(uS=l._Dilation2D=l.asm.Dilation2D).apply(null,arguments)},cS=l._Dilation2DBackpropFilter=function(){return(cS=l._Dilation2DBackpropFilter=l.asm.Dilation2DBackpropFilter).apply(null,arguments)},pS=l._Dilation2DBackpropInput=function(){return(pS=l._Dilation2DBackpropInput=l.asm.Dilation2DBackpropInput).apply(null,arguments)},mS=l._Elu=function(){return(mS=l._Elu=l.asm.Elu).apply(null,arguments)},fS=l._EluGrad=function(){return(fS=l._EluGrad=l.asm.EluGrad).apply(null,arguments)},dS=l._Equal=function(){return(dS=l._Equal=l.asm.Equal).apply(null,arguments)},hS=l._Erf=function(){return(hS=l._Erf=l.asm.Erf).apply(null,arguments)},gS=l._Exp=function(){return(gS=l._Exp=l.asm.Exp).apply(null,arguments)},xS=l._Expm1=function(){return(xS=l._Expm1=l.asm.Expm1).apply(null,arguments)},yS=l._FlipLeftRight=function(){return(yS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},bS=l._Floor=function(){return(bS=l._Floor=l.asm.Floor).apply(null,arguments)},wS=l._FloorDiv=function(){return(wS=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},IS=l._FusedBatchNorm=function(){return(IS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},CS=l._FusedConv2D=function(){return(CS=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},vS=l._FusedDepthwiseConv2D=function(){return(vS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},SS=l._Gather=function(){return(SS=l._Gather=l.asm.Gather).apply(null,arguments)},NS=l._GatherNd=function(){return(NS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},kS=l._Greater=function(){return(kS=l._Greater=l.asm.Greater).apply(null,arguments)},TS=l._GreaterEqual=function(){return(TS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},_S=l._IsFinite=function(){return(_S=l._IsFinite=l.asm.IsFinite).apply(null,arguments)},ES=l._IsInf=function(){return(ES=l._IsInf=l.asm.IsInf).apply(null,arguments)},AS=l._IsNan=function(){return(AS=l._IsNan=l.asm.IsNan).apply(null,arguments)},DS=l._LRN=function(){return(DS=l._LRN=l.asm.LRN).apply(null,arguments)},$S=l._LRNGrad=function(){return($S=l._LRNGrad=l.asm.LRNGrad).apply(null,arguments)},RS=l._LeakyRelu=function(){return(RS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},FS=l._Less=function(){return(FS=l._Less=l.asm.Less).apply(null,arguments)},OS=l._LessEqual=function(){return(OS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},MS=l._LinSpace=function(){return(MS=l._LinSpace=l.asm.LinSpace).apply(null,arguments)},PS=l._Log=function(){return(PS=l._Log=l.asm.Log).apply(null,arguments)},LS=l._Log1p=function(){return(LS=l._Log1p=l.asm.Log1p).apply(null,arguments)},zS=l._LogicalAnd=function(){return(zS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},BS=l._LogicalNot=function(){return(BS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},VS=l._LogicalOr=function(){return(VS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},GS=l._LogicalXor=function(){return(GS=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},WS=l._Max=function(){return(WS=l._Max=l.asm.Max).apply(null,arguments)},US=l._MaxPool=function(){return(US=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},HS=l._MaxPool3D=function(){return(HS=l._MaxPool3D=l.asm.MaxPool3D).apply(null,arguments)},qS=l._MaxPool3DGrad=function(){return(qS=l._MaxPool3DGrad=l.asm.MaxPool3DGrad).apply(null,arguments)},KS=l._MaxPoolGrad=function(){return(KS=l._MaxPoolGrad=l.asm.MaxPoolGrad).apply(null,arguments)},jS=l._MaxPoolWithArgmax=function(){return(jS=l._MaxPoolWithArgmax=l.asm.MaxPoolWithArgmax).apply(null,arguments)},XS=l._Maximum=function(){return(XS=l._Maximum=l.asm.Maximum).apply(null,arguments)},YS=l._Mean=function(){return(YS=l._Mean=l.asm.Mean).apply(null,arguments)},ZS=l._Min=function(){return(ZS=l._Min=l.asm.Min).apply(null,arguments)},JS=l._Minimum=function(){return(JS=l._Minimum=l.asm.Minimum).apply(null,arguments)},QS=l._MirrorPad=function(){return(QS=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},t0=l._Mod=function(){return(t0=l._Mod=l.asm.Mod).apply(null,arguments)},e0=l._Multinomial=function(){return(e0=l._Multinomial=l.asm.Multinomial).apply(null,arguments)},r0=l._Multiply=function(){return(r0=l._Multiply=l.asm.Multiply).apply(null,arguments)},n0=l._Neg=function(){return(n0=l._Neg=l.asm.Neg).apply(null,arguments)},o0=l._NonMaxSuppressionV3=function(){return(o0=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},s0=l._NonMaxSuppressionV4=function(){return(s0=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Pg=l._NonMaxSuppressionV5=function(){return(Pg=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},Lg=l._NotEqual=function(){return(Lg=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},jd=l._OneHot=function(){return(jd=l._OneHot=l.asm.OneHot).apply(null,arguments)},i0=l._PadV2=function(){return(i0=l._PadV2=l.asm.PadV2).apply(null,arguments)},a0=l._Pow=function(){return(a0=l._Pow=l.asm.Pow).apply(null,arguments)},Cp=l._Prelu=function(){return(Cp=l._Prelu=l.asm.Prelu).apply(null,arguments)},zg=l._Prod=function(){return(zg=l._Prod=l.asm.Prod).apply(null,arguments)},vp=l._RealDiv=function(){return(vp=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},Sp=l._Reciprocal=function(){return(Sp=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},l0=l._Relu=function(){return(l0=l._Relu=l.asm.Relu).apply(null,arguments)},X=l._Relu6=function(){return(X=l._Relu6=l.asm.Relu6).apply(null,arguments)},ct=l._ResizeBilinear=function(){return(ct=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Ft=l._ResizeBilinearGrad=function(){return(Ft=l._ResizeBilinearGrad=l.asm.ResizeBilinearGrad).apply(null,arguments)},me=l._ResizeNearestNeighbor=function(){return(me=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ye=l._ResizeNearestNeighborGrad=function(){return(Ye=l._ResizeNearestNeighborGrad=l.asm.ResizeNearestNeighborGrad).apply(null,arguments)},Ze=l._Reverse=function(){return(Ze=l._Reverse=l.asm.Reverse).apply(null,arguments)},se=l._RotateWithOffset=function(){return(se=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},ne=l._Round=function(){return(ne=l._Round=l.asm.Round).apply(null,arguments)},yr=l._Rsqrt=function(){return(yr=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},to=l._ScatterNd=function(){return(to=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},Na=l._SearchSorted=function(){return(Na=l._SearchSorted=l.asm.SearchSorted).apply(null,arguments)},Bg=l._SelectV2=function(){return(Bg=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},Xd=l._Selu=function(){return(Xd=l._Selu=l.asm.Selu).apply(null,arguments)},u0=l._Sigmoid=function(){return(u0=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},on=l._Sign=function(){return(on=l._Sign=l.asm.Sign).apply(null,arguments)},Vl=l._Sin=function(){return(Vl=l._Sin=l.asm.Sin).apply(null,arguments)},Vg=l._Sinh=function(){return(Vg=l._Sinh=l.asm.Sinh).apply(null,arguments)},iq=l._Softmax=function(){return(iq=l._Softmax=l.asm.Softmax).apply(null,arguments)},aq=l._Softplus=function(){return(aq=l._Softplus=l.asm.Softplus).apply(null,arguments)},lq=l._SparseFillEmptyRows=function(){return(lq=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},uq=l._SparseReshape=function(){return(uq=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},cq=l._SparseSegmentReduction=function(){return(cq=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},pq=l._SparseToDense=function(){return(pq=l._SparseToDense=l.asm.SparseToDense).apply(null,arguments)},mq=l._Sqrt=function(){return(mq=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},fq=l._Square=function(){return(fq=l._Square=l.asm.Square).apply(null,arguments)},dq=l._SquaredDifference=function(){return(dq=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},hq=l._Step=function(){return(hq=l._Step=l.asm.Step).apply(null,arguments)},gq=l._StridedSlice=function(){return(gq=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},xq=l._Sub=function(){return(xq=l._Sub=l.asm.Sub).apply(null,arguments)},yq=l._Sum=function(){return(yq=l._Sum=l.asm.Sum).apply(null,arguments)},bq=l._Tan=function(){return(bq=l._Tan=l.asm.Tan).apply(null,arguments)},wq=l._Tanh=function(){return(wq=l._Tanh=l.asm.Tanh).apply(null,arguments)},Iq=l._TensorScatterUpdate=function(){return(Iq=l._TensorScatterUpdate=l.asm.TensorScatterUpdate).apply(null,arguments)},Cq=l._Tile=function(){return(Cq=l._Tile=l.asm.Tile).apply(null,arguments)},vq=l._TopK=function(){return(vq=l._TopK=l.asm.TopK).apply(null,arguments)},Sq=l._Transform=function(){return(Sq=l._Transform=l.asm.Transform).apply(null,arguments)},Nq=l._Transpose=function(){return(Nq=l._Transpose=l.asm.Transpose).apply(null,arguments)},kq=l.__FusedMatMul=function(){return(kq=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},Tq=l._malloc=function(){return(Tq=l._malloc=l.asm.malloc).apply(null,arguments)},_q=l._free=function(){return(_q=l._free=l.asm.free).apply(null,arguments)},Eq=l.__emscripten_tls_init=function(){return(Eq=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Gg=l._pthread_self=function(){return(Gg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},Aq=l.___errno_location=function(){return(Aq=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},d_=l.__emscripten_thread_init=function(){return(d_=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},Dq=l.__emscripten_thread_crashed=function(){return(Dq=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},$q=l._emscripten_main_thread_process_queued_calls=function(){return($q=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},Rq=l._emscripten_main_browser_thread_id=function(){return(Rq=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},h_=l._emscripten_run_in_main_runtime_thread_js=function(){return(h_=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Fq=l._emscripten_dispatch_to_thread_=function(){return(Fq=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},g_=l.__emscripten_proxy_execute_task_queue=function(){return(g_=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},c0=l.__emscripten_thread_free_data=function(){return(c0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},x_=l.__emscripten_thread_exit=function(){return(x_=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},y_=l._emscripten_stack_set_limits=function(){return(y_=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},p0=l.stackSave=function(){return(p0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Wg=l.stackRestore=function(){return(Wg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Ug=l.stackAlloc=function(){return(Ug=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},Oq=l.dynCall_iijjiiii=function(){return(Oq=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},Mq=l.dynCall_jiji=function(){return(Mq=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=zo,l.wasmMemory=it,l.cwrap=xv,l.ExitStatus=Yu,l.PThread=Yt;var Hg;Sa=function P(){Hg||b_(),Hg||(Sa=P)};function b_(P){if(P=P||d,zl>0)return;if(I){c(l),Er(),startWorker(l);return}if(Ti(),zl>0)return;function U(){Hg||(Hg=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),va()))}l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();b_();var qg;m&&(qg={uncaughtException:process.listeners("uncaughtException").filter(function(P){return!m.uncaughtException.indexOf(P)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(P){return!m.unhandledRejection.indexOf(P)>-1})});var Kg;if(typeof WasmBackendModule!="undefined")Kg=WasmBackendModule;else if(typeof t!="undefined")Kg=t;else throw new Error("Could not find wasm module in post.js");if(qg){var Pq=Kg._dispose;Kg._dispose=function(){Pq(),qg.uncaughtException.forEach(function(P){process.removeListener("uncaughtException",P)}),qg.unhandledRejection.forEach(function(P){process.removeListener("unhandledRejection",P)})}}return t.ready}})();typeof RC=="object"&&typeof n_=="object"?n_.exports=r_:typeof define=="function"&&define.amd?define([],function(){return r_}):typeof RC=="object"&&(RC.WasmBackendModuleThreadedSimd=r_)});var JH=br((fnr,ZH)=>{ZH.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}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;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({"cmd":"loaded"})};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}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)}else if(e.data.cmd==="run"){Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`});var QH=br((FC,s_)=>{var o_=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!="undefined"?t:{},n,o;e.ready=new Promise(function(X,ct){n=X,o=ct});var s;typeof process!="undefined"&&process.listeners&&(s={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var i=Object.assign({},e),a=[],u="./this.program",l=(X,ct)=>{throw ct},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(X){return e.locateFile?e.locateFile(X,f):f+X}var h,g,x,b;function w(X){if(X instanceof bp)return;A("exiting due to exception: "+X)}if(m){var I=hw(),N=e_();p?f=N.dirname(f)+"/":f=__dirname+"/",h=(X,ct)=>(X=Ti(X)?new URL(X):N.normalize(X),I.readFileSync(X,ct?void 0:"utf8")),x=X=>{var ct=h(X,!0);return ct.buffer||(ct=new Uint8Array(ct)),ct},g=(X,ct,Ft)=>{X=Ti(X)?new URL(X):N.normalize(X),I.readFile(X,function(me,Ye){me?Ft(me):ct(Ye.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof bp))throw X}),process.on("unhandledRejection",function(X){throw X}),l=(X,ct)=>{if(de())throw process.exitCode=X,ct;w(ct),process.exit(X)},e.inspect=function(){return"[Emscripten Module object]"}}else(c||p)&&(p?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf("blob:")!==0?f=f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):f="",h=X=>{var ct=new XMLHttpRequest;return ct.open("GET",X,!1),ct.send(null),ct.responseText},p&&(x=X=>{var ct=new XMLHttpRequest;return ct.open("GET",X,!1),ct.responseType="arraybuffer",ct.send(null),new Uint8Array(ct.response)}),g=(X,ct,Ft)=>{var me=new XMLHttpRequest;me.open("GET",X,!0),me.responseType="arraybuffer",me.onload=()=>{if(me.status==200||me.status==0&&me.response){ct(me.response);return}Ft()},me.onerror=Ft,me.send(null)},b=X=>document.title=X);var E=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var D=4,F;e.wasmBinary&&(F=e.wasmBinary);var M=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Qr("no native wasm support detected");var V,G=!1,W;function q(X,ct){X||Qr(ct)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function j(X,ct,Ft){ct>>>=0;for(var me=ct+Ft,Ye=ct;X[Ye]&&!(Ye>=me);)++Ye;if(Ye-ct>16&&X.buffer&&H)return H.decode(X.subarray(ct,Ye));for(var Ze="";ct>10,56320|to&1023)}}return Ze}function Y(X,ct){return X>>>=0,X?j(lt,X,ct):""}function Z(X,ct,Ft,me){if(Ft>>>=0,!(me>0))return 0;for(var Ye=Ft,Ze=Ft+me-1,se=0;se=55296&&ne<=57343){var yr=X.charCodeAt(++se);ne=65536+((ne&1023)<<10)|yr&1023}if(ne<=127){if(Ft>=Ze)break;ct[Ft++>>>0]=ne}else if(ne<=2047){if(Ft+1>=Ze)break;ct[Ft++>>>0]=192|ne>>6,ct[Ft++>>>0]=128|ne&63}else if(ne<=65535){if(Ft+2>=Ze)break;ct[Ft++>>>0]=224|ne>>12,ct[Ft++>>>0]=128|ne>>6&63,ct[Ft++>>>0]=128|ne&63}else{if(Ft+3>=Ze)break;ct[Ft++>>>0]=240|ne>>18,ct[Ft++>>>0]=128|ne>>12&63,ct[Ft++>>>0]=128|ne>>6&63,ct[Ft++>>>0]=128|ne&63}}return ct[Ft>>>0]=0,Ft-Ye}function et(X,ct,Ft){return Z(X,lt,ct,Ft)}var nt,st,lt,ot,it,ft,gt,Ct,Rt;function Dt(X){nt=X,e.HEAP8=st=new Int8Array(X),e.HEAP16=ot=new Int16Array(X),e.HEAP32=ft=new Int32Array(X),e.HEAPU8=lt=new Uint8Array(X),e.HEAPU16=it=new Uint16Array(X),e.HEAPU32=gt=new Uint32Array(X),e.HEAPF32=Ct=new Float32Array(X),e.HEAPF64=Rt=new Float64Array(X)}var Ht=e.INITIAL_MEMORY||16777216,qt,pe=[],ye=[],re=[],be=!1;function de(){return M}function Ee(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)lr(e.preRun.shift());Sa(pe)}function Ae(){be=!0,Sa(ye)}function On(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Br(e.postRun.shift());Sa(re)}function lr(X){pe.unshift(X)}function Zn(X){ye.unshift(X)}function Br(X){re.unshift(X)}var Xe=0,Vr=null,Gr=null;function Jn(X){Xe++,e.monitorRunDependencies&&e.monitorRunDependencies(Xe)}function Qn(X){if(Xe--,e.monitorRunDependencies&&e.monitorRunDependencies(Xe),Xe==0&&(Vr!==null&&(clearInterval(Vr),Vr=null),Gr)){var ct=Gr;Gr=null,ct()}}function Qr(X){e.onAbort&&e.onAbort(X),X="Aborted("+X+")",A(X),G=!0,W=1,X+=". Build with -sASSERTIONS for more info.";var ct=new WebAssembly.RuntimeError(X);throw o(ct),ct}var Ca="data:application/octet-stream;base64,";function zo(X){return X.startsWith(Ca)}function Ti(X){return X.startsWith("file://")}var Er;Er="tfjs-backend-wasm.wasm",zo(Er)||(Er=d(Er));function va(X){try{if(X==Er&&F)return new Uint8Array(F);if(x)return x(X);throw"both async and sync fetching of the wasm failed"}catch(ct){Qr(ct)}}function Vd(){if(!F&&(c||p)){if(typeof fetch=="function"&&!Ti(Er))return fetch(Er,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Er+"'";return X.arrayBuffer()}).catch(function(){return va(Er)});if(g)return new Promise(function(X,ct){g(Er,function(Ft){X(new Uint8Array(Ft))},ct)})}return Promise.resolve().then(function(){return va(Er)})}function Gd(){var X={env:Wd,wasi_snapshot_preview1:Wd};function ct(se,ne){var yr=se.exports;e.asm=yr,V=e.asm.memory,Dt(V.buffer),qt=e.asm.__indirect_function_table,Zn(e.asm.__wasm_call_ctors),Qn("wasm-instantiate")}Jn("wasm-instantiate");function Ft(se){ct(se.instance)}function me(se){return Vd().then(function(ne){return WebAssembly.instantiate(ne,X)}).then(function(ne){return ne}).then(se,function(ne){A("failed to asynchronously prepare wasm: "+ne),Qr(ne)})}function Ye(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!zo(Er)&&!Ti(Er)&&!m&&typeof fetch=="function"?fetch(Er,{credentials:"same-origin"}).then(function(se){var ne=WebAssembly.instantiateStreaming(se,X);return ne.then(Ft,function(yr){return A("wasm streaming compile failed: "+yr),A("falling back to ArrayBuffer instantiation"),me(Ft)})}):me(Ft)}if(e.instantiateWasm)try{var Ze=e.instantiateWasm(X,ct);return Ze}catch(se){A("Module.instantiateWasm callback failed with error: "+se),o(se)}return Ye().catch(o),{}}var c_,zl;function bp(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function Sa(X){for(;X.length>0;)X.shift()(e)}function MC(){Qr("")}function Ig(){return 4294901760}function Xu(){return Ig()}function PC(X,ct,Ft){lt.copyWithin(X>>>0,ct>>>0,ct+Ft>>>0)}function Cg(X){try{return V.grow(X-nt.byteLength+65535>>>16),Dt(V.buffer),1}catch(ct){}}function wp(X){var ct=lt.length;X=X>>>0;var Ft=Ig();if(X>Ft)return!1;let me=(yr,to)=>yr+(to-yr%to)%to;for(var Ye=1;Ye<=4;Ye*=2){var Ze=ct*(1+.2/Ye);Ze=Math.min(Ze,X+100663296);var se=Math.min(Ft,me(Math.max(X,Ze),65536)),ne=Cg(se);if(ne)return!0}return!1}var tn={varargs:void 0,get:function(){tn.varargs+=4;var X=ft[tn.varargs-4>>>2];return X},getStr:function(X){var ct=Y(X);return ct}};function vg(X){return 52}function LC(X,ct,Ft,me,Ye){return 70}var zC=[null,[],[]];function p_(X,ct){var Ft=zC[X];ct===0||ct===10?((X===1?E:A)(j(Ft,0)),Ft.length=0):Ft.push(ct)}function m_(X,ct,Ft,me){for(var Ye=0,Ze=0;Ze>>2],ne=gt[ct+4>>>2];ct+=8;for(var yr=0;yr>>0]);Ye+=ne}return gt[me>>>2]=Ye,0}function Sg(X){var ct=e["_"+X];return ct}function Yu(X,ct){st.set(X,ct>>>0)}function BC(X,ct,Ft,me,Ye){var Ze={string:on=>{var Vl=0;if(on!=null&&on!==0){var Vg=(on.length<<2)+1;Vl=jd(Vg),et(on,Vl,Vg)}return Vl},array:on=>{var Vl=jd(on.length);return Yu(on,Vl),Vl}};function se(on){return ct==="string"?Y(on):ct==="boolean"?!!on:on}var ne=Sg(X),yr=[],to=0;if(me)for(var Na=0;Nase==="number"||se==="boolean"),Ze=ct!=="string";return Ze&&Ye&&!me?Sg(X):function(){return BC(X,ct,Ft,arguments,me)}}var Wd={abort:MC,emscripten_get_heap_max:Xu,emscripten_memcpy_big:PC,emscripten_resize_heap:wp,fd_close:vg,fd_seek:LC,fd_write:m_},GC=Gd(),Ng=e.___wasm_call_ctors=function(){return(Ng=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},kg=e._init=function(){return(kg=e._init=e.asm.init).apply(null,arguments)},WC=e._init_with_threads_count=function(){return(WC=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Tg=e._get_threads_count=function(){return(Tg=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},UC=e._register_tensor=function(){return(UC=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Yt=e._dispose_data=function(){return(Yt=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Ud=e._dispose=function(){return(Ud=e._dispose=e.asm.dispose).apply(null,arguments)},HC=e._Abs=function(){return(HC=e._Abs=e.asm.Abs).apply(null,arguments)},_g=e._Acos=function(){return(_g=e._Acos=e.asm.Acos).apply(null,arguments)},Ip=e._Acosh=function(){return(Ip=e._Acosh=e.asm.Acosh).apply(null,arguments)},qC=e._Add=function(){return(qC=e._Add=e.asm.Add).apply(null,arguments)},KC=e._AddN=function(){return(KC=e._AddN=e.asm.AddN).apply(null,arguments)},jC=e._All=function(){return(jC=e._All=e.asm.All).apply(null,arguments)},XC=e._Any=function(){return(XC=e._Any=e.asm.Any).apply(null,arguments)},YC=e._ArgMax=function(){return(YC=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Eg=e._ArgMin=function(){return(Eg=e._ArgMin=e.asm.ArgMin).apply(null,arguments)},Ag=e._Asin=function(){return(Ag=e._Asin=e.asm.Asin).apply(null,arguments)},ZC=e._Asinh=function(){return(ZC=e._Asinh=e.asm.Asinh).apply(null,arguments)},JC=e._Atan=function(){return(JC=e._Atan=e.asm.Atan).apply(null,arguments)},QC=e._Atan2=function(){return(QC=e._Atan2=e.asm.Atan2).apply(null,arguments)},Hd=e._Atanh=function(){return(Hd=e._Atanh=e.asm.Atanh).apply(null,arguments)},tv=e._AvgPool=function(){return(tv=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},ev=e._AvgPool3D=function(){return(ev=e._AvgPool3D=e.asm.AvgPool3D).apply(null,arguments)},rv=e._AvgPool3DGrad=function(){return(rv=e._AvgPool3DGrad=e.asm.AvgPool3DGrad).apply(null,arguments)},Zu=e._AvgPoolGrad=function(){return(Zu=e._AvgPoolGrad=e.asm.AvgPoolGrad).apply(null,arguments)},nv=e._BatchMatMul=function(){return(nv=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},ov=e._Bincount=function(){return(ov=e._Bincount=e.asm.Bincount).apply(null,arguments)},Dg=e._BitwiseAnd=function(){return(Dg=e._BitwiseAnd=e.asm.BitwiseAnd).apply(null,arguments)},sv=e._Ceil=function(){return(sv=e._Ceil=e.asm.Ceil).apply(null,arguments)},qd=e._ClipByValue=function(){return(qd=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},iv=e._Conv2D=function(){return(iv=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},av=e._Conv2DBackpropInput=function(){return(av=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},lv=e._Conv3D=function(){return(lv=e._Conv3D=e.asm.Conv3D).apply(null,arguments)},Bl=e._Conv3DBackpropFilterV2=function(){return(Bl=e._Conv3DBackpropFilterV2=e.asm.Conv3DBackpropFilterV2).apply(null,arguments)},Kd=e._Conv3DBackpropInputV2=function(){return(Kd=e._Conv3DBackpropInputV2=e.asm.Conv3DBackpropInputV2).apply(null,arguments)},uv=e._Cos=function(){return(uv=e._Cos=e.asm.Cos).apply(null,arguments)},cv=e._Cosh=function(){return(cv=e._Cosh=e.asm.Cosh).apply(null,arguments)},pv=e._CropAndResize=function(){return(pv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},mv=e._Cumprod=function(){return(mv=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},$g=e._Cumsum=function(){return($g=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},Rg=e._DenseBincount=function(){return(Rg=e._DenseBincount=e.asm.DenseBincount).apply(null,arguments)},fv=e._DepthToSpace=function(){return(fv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},dv=e._DepthwiseConv2dNative=function(){return(dv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fg=e._Diag=function(){return(Fg=e._Diag=e.asm.Diag).apply(null,arguments)},Og=e._Dilation2D=function(){return(Og=e._Dilation2D=e.asm.Dilation2D).apply(null,arguments)},hv=e._Dilation2DBackpropFilter=function(){return(hv=e._Dilation2DBackpropFilter=e.asm.Dilation2DBackpropFilter).apply(null,arguments)},gv=e._Dilation2DBackpropInput=function(){return(gv=e._Dilation2DBackpropInput=e.asm.Dilation2DBackpropInput).apply(null,arguments)},xv=e._Elu=function(){return(xv=e._Elu=e.asm.Elu).apply(null,arguments)},yv=e._EluGrad=function(){return(yv=e._EluGrad=e.asm.EluGrad).apply(null,arguments)},Mg=e._Equal=function(){return(Mg=e._Equal=e.asm.Equal).apply(null,arguments)},f_=e._Erf=function(){return(f_=e._Erf=e.asm.Erf).apply(null,arguments)},bv=e._Exp=function(){return(bv=e._Exp=e.asm.Exp).apply(null,arguments)},wv=e._Expm1=function(){return(wv=e._Expm1=e.asm.Expm1).apply(null,arguments)},Iv=e._FlipLeftRight=function(){return(Iv=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},Cv=e._Floor=function(){return(Cv=e._Floor=e.asm.Floor).apply(null,arguments)},vv=e._FloorDiv=function(){return(vv=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},Sv=e._FusedBatchNorm=function(){return(Sv=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},Nv=e._FusedConv2D=function(){return(Nv=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},kv=e._FusedDepthwiseConv2D=function(){return(kv=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Tv=e._Gather=function(){return(Tv=e._Gather=e.asm.Gather).apply(null,arguments)},_v=e._GatherNd=function(){return(_v=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},Ev=e._Greater=function(){return(Ev=e._Greater=e.asm.Greater).apply(null,arguments)},Av=e._GreaterEqual=function(){return(Av=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},Dv=e._IsFinite=function(){return(Dv=e._IsFinite=e.asm.IsFinite).apply(null,arguments)},$v=e._IsInf=function(){return($v=e._IsInf=e.asm.IsInf).apply(null,arguments)},Rv=e._IsNan=function(){return(Rv=e._IsNan=e.asm.IsNan).apply(null,arguments)},Fv=e._LRN=function(){return(Fv=e._LRN=e.asm.LRN).apply(null,arguments)},Ov=e._LRNGrad=function(){return(Ov=e._LRNGrad=e.asm.LRNGrad).apply(null,arguments)},Mv=e._LeakyRelu=function(){return(Mv=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Pv=e._Less=function(){return(Pv=e._Less=e.asm.Less).apply(null,arguments)},Lv=e._LessEqual=function(){return(Lv=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},zv=e._LinSpace=function(){return(zv=e._LinSpace=e.asm.LinSpace).apply(null,arguments)},Bv=e._Log=function(){return(Bv=e._Log=e.asm.Log).apply(null,arguments)},Vv=e._Log1p=function(){return(Vv=e._Log1p=e.asm.Log1p).apply(null,arguments)},Gv=e._LogicalAnd=function(){return(Gv=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Wv=e._LogicalNot=function(){return(Wv=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Uv=e._LogicalOr=function(){return(Uv=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},Hv=e._LogicalXor=function(){return(Hv=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},qv=e._Max=function(){return(qv=e._Max=e.asm.Max).apply(null,arguments)},Kv=e._MaxPool=function(){return(Kv=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},jv=e._MaxPool3D=function(){return(jv=e._MaxPool3D=e.asm.MaxPool3D).apply(null,arguments)},Xv=e._MaxPool3DGrad=function(){return(Xv=e._MaxPool3DGrad=e.asm.MaxPool3DGrad).apply(null,arguments)},Yv=e._MaxPoolGrad=function(){return(Yv=e._MaxPoolGrad=e.asm.MaxPoolGrad).apply(null,arguments)},Zv=e._MaxPoolWithArgmax=function(){return(Zv=e._MaxPoolWithArgmax=e.asm.MaxPoolWithArgmax).apply(null,arguments)},Jv=e._Maximum=function(){return(Jv=e._Maximum=e.asm.Maximum).apply(null,arguments)},Qv=e._Mean=function(){return(Qv=e._Mean=e.asm.Mean).apply(null,arguments)},tS=e._Min=function(){return(tS=e._Min=e.asm.Min).apply(null,arguments)},eS=e._Minimum=function(){return(eS=e._Minimum=e.asm.Minimum).apply(null,arguments)},rS=e._MirrorPad=function(){return(rS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},nS=e._Mod=function(){return(nS=e._Mod=e.asm.Mod).apply(null,arguments)},oS=e._Multinomial=function(){return(oS=e._Multinomial=e.asm.Multinomial).apply(null,arguments)},sS=e._Multiply=function(){return(sS=e._Multiply=e.asm.Multiply).apply(null,arguments)},iS=e._Neg=function(){return(iS=e._Neg=e.asm.Neg).apply(null,arguments)},aS=e._NonMaxSuppressionV3=function(){return(aS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},lS=e._NonMaxSuppressionV4=function(){return(lS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},uS=e._NonMaxSuppressionV5=function(){return(uS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},cS=e._NotEqual=function(){return(cS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},pS=e._OneHot=function(){return(pS=e._OneHot=e.asm.OneHot).apply(null,arguments)},mS=e._PadV2=function(){return(mS=e._PadV2=e.asm.PadV2).apply(null,arguments)},fS=e._Pow=function(){return(fS=e._Pow=e.asm.Pow).apply(null,arguments)},dS=e._Prelu=function(){return(dS=e._Prelu=e.asm.Prelu).apply(null,arguments)},hS=e._Prod=function(){return(hS=e._Prod=e.asm.Prod).apply(null,arguments)},gS=e._RealDiv=function(){return(gS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},xS=e._Reciprocal=function(){return(xS=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},yS=e._Relu=function(){return(yS=e._Relu=e.asm.Relu).apply(null,arguments)},bS=e._Relu6=function(){return(bS=e._Relu6=e.asm.Relu6).apply(null,arguments)},wS=e._ResizeBilinear=function(){return(wS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},IS=e._ResizeBilinearGrad=function(){return(IS=e._ResizeBilinearGrad=e.asm.ResizeBilinearGrad).apply(null,arguments)},CS=e._ResizeNearestNeighbor=function(){return(CS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},vS=e._ResizeNearestNeighborGrad=function(){return(vS=e._ResizeNearestNeighborGrad=e.asm.ResizeNearestNeighborGrad).apply(null,arguments)},SS=e._Reverse=function(){return(SS=e._Reverse=e.asm.Reverse).apply(null,arguments)},NS=e._RotateWithOffset=function(){return(NS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},kS=e._Round=function(){return(kS=e._Round=e.asm.Round).apply(null,arguments)},TS=e._Rsqrt=function(){return(TS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},_S=e._ScatterNd=function(){return(_S=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},ES=e._SearchSorted=function(){return(ES=e._SearchSorted=e.asm.SearchSorted).apply(null,arguments)},AS=e._SelectV2=function(){return(AS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},DS=e._Selu=function(){return(DS=e._Selu=e.asm.Selu).apply(null,arguments)},$S=e._Sigmoid=function(){return($S=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},RS=e._Sign=function(){return(RS=e._Sign=e.asm.Sign).apply(null,arguments)},FS=e._Sin=function(){return(FS=e._Sin=e.asm.Sin).apply(null,arguments)},OS=e._Sinh=function(){return(OS=e._Sinh=e.asm.Sinh).apply(null,arguments)},MS=e._Softmax=function(){return(MS=e._Softmax=e.asm.Softmax).apply(null,arguments)},PS=e._Softplus=function(){return(PS=e._Softplus=e.asm.Softplus).apply(null,arguments)},LS=e._SparseFillEmptyRows=function(){return(LS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},zS=e._SparseReshape=function(){return(zS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},BS=e._SparseSegmentReduction=function(){return(BS=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},VS=e._SparseToDense=function(){return(VS=e._SparseToDense=e.asm.SparseToDense).apply(null,arguments)},GS=e._Sqrt=function(){return(GS=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},WS=e._Square=function(){return(WS=e._Square=e.asm.Square).apply(null,arguments)},US=e._SquaredDifference=function(){return(US=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},HS=e._Step=function(){return(HS=e._Step=e.asm.Step).apply(null,arguments)},qS=e._StridedSlice=function(){return(qS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},KS=e._Sub=function(){return(KS=e._Sub=e.asm.Sub).apply(null,arguments)},jS=e._Sum=function(){return(jS=e._Sum=e.asm.Sum).apply(null,arguments)},XS=e._Tan=function(){return(XS=e._Tan=e.asm.Tan).apply(null,arguments)},YS=e._Tanh=function(){return(YS=e._Tanh=e.asm.Tanh).apply(null,arguments)},ZS=e._TensorScatterUpdate=function(){return(ZS=e._TensorScatterUpdate=e.asm.TensorScatterUpdate).apply(null,arguments)},JS=e._Tile=function(){return(JS=e._Tile=e.asm.Tile).apply(null,arguments)},QS=e._TopK=function(){return(QS=e._TopK=e.asm.TopK).apply(null,arguments)},t0=e._Transform=function(){return(t0=e._Transform=e.asm.Transform).apply(null,arguments)},e0=e._Transpose=function(){return(e0=e._Transpose=e.asm.Transpose).apply(null,arguments)},r0=e.__FusedMatMul=function(){return(r0=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},n0=e._malloc=function(){return(n0=e._malloc=e.asm.malloc).apply(null,arguments)},o0=e._free=function(){return(o0=e._free=e.asm.free).apply(null,arguments)},s0=e.___errno_location=function(){return(s0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Pg=e.stackSave=function(){return(Pg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Lg=e.stackRestore=function(){return(Lg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},jd=e.stackAlloc=function(){return(jd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},i0=e.dynCall_iijjiiii=function(){return(i0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},a0=e.dynCall_jiji=function(){return(a0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=VC;var Cp;Gr=function X(){Cp||zg(),Cp||(Gr=X)};function zg(X){if(X=X||a,Xe>0||(Ee(),Xe>0))return;function ct(){Cp||(Cp=!0,e.calledRun=!0,!G&&(Ae(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),On()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),ct()},1)):ct()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();zg();var vp;s&&(vp={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!s.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!s.unhandledRejection.indexOf(X)>-1})});var Sp;if(typeof t!="undefined")Sp=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Sp=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(vp){var l0=Sp._dispose;Sp._dispose=function(){l0(),vp.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),vp.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return t.ready}})();typeof FC=="object"&&typeof s_=="object"?s_.exports=o_:typeof define=="function"&&define.amd?define([],function(){return o_}):typeof FC=="object"&&(FC.WasmBackendModule=o_)});var Ta=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},Bo=class{refCount(t){return Pn("refCount")}incRef(t){return Pn("incRef")}timerAvailable(){return!0}time(t){return Pn("time")}read(t){return Pn("read")}readSync(t){return Pn("readSync")}readToGPU(t,e){return Pn("readToGPU")}numDataIds(){return Pn("numDataIds")}disposeData(t,e){return Pn("disposeData")}write(t,e,n){return Pn("write")}move(t,e,n,o,s){return Pn("move")}createTensorFromGPUData(t,e,n){return Pn("createTensorFromGPUData")}memory(){return Pn("memory")}floatPrecision(){return Pn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Pn("dispose")}};function Pn(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 C_(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,jg(r,t,e)}function Hq(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,jg(r,e,n),jg(t,e,n)}function kp(r,t,e){return Math.max(r,Math.min(t,e))}function qq(r){return r%2===0?r:r+1}function jg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function Kq(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function ro(r){_(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function jt(r){if(r.length===0)return 1;let t=r[0];for(let e=1;e0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function eK(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function fr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),_(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),_(r.every(n=>_a(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function h0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:fr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function g0(r,t){return Xg(r,t)}function Xg(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else if(r==="string")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function x0(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r=="string"||r instanceof String}function v_(r){return typeof r=="boolean"}function S_(r){return typeof r=="number"}function Wl(r){return Array.isArray(r)?Wl(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":S_(r)?"float32":Vo(r)?"string":v_(r)?"bool":"float32"}function _i(r){return!!(r&&r.constructor&&r.call&&r.apply)}function _p(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function N_(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?" for a complex tensor":""}.`);return N_(0,r,t,e)}function nK(r,t){if(Array.isArray(r))return r;if(t==="float32")return r instanceof Float32Array?r:new Float32Array(r);if(t==="int32")return r instanceof Int32Array?r:new Int32Array(r);if(t==="bool"||t==="string")return Uint8Array.from(new Int32Array(r));throw new Error(`Unknown dtype ${t}`)}function Yd(r,t){let e=Ep(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Ju(r,new Float32Array(e));if(t==="int32")return Ju(r,new Int32Array(e));if(t==="bool")return Ju(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Le(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function sK(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(":");this.urlFlags[o]=cK(o,s)})}};function lK(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(uK(t,n[0],n[1]),n.join("="))),t}function uK(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function cK(r,t){let e=t.toLowerCase();return e==="true"||e==="false"?e==="true":`${+e}`===e?+e:t}function L(){return w0}var w0=null;function T_(r){w0=r}var I0;function C0(){if(I0==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");I0=r}return I0}function pK(){let r=C0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Jd(r,t){let e=pK();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var Ai="Abs",Go="Acos",Wo="Acosh",no="Add",Uo="AddN",Ea="All",Aa="Any",Di="ArgMax",$i="ArgMin",Ho="Asin",qo="Asinh",Ko="Atan",jo="Atanh",Xo="Atan2",Yo="AvgPool",Ul="AvgPoolGrad",Ri="AvgPool3D",Hl="AvgPool3DGrad",Zo="BatchMatMul",Fi="BatchToSpaceND",Da="Bincount",$a="BitwiseAnd",__="BroadcastTo",ql="BroadcastArgs",fo="Cast",Jo="Ceil",ho="ClipByValue",Ap="Complex",Kl="ComplexAbs",Oi="Concat",Qo="Conv2D",Dp="Conv2DBackpropFilter",ts="Conv2DBackpropInput",es="Conv3D",Ra="Conv3DBackpropFilterV2",Fa="Conv3DBackpropInputV2",rs="Cos",ns="Cosh",Oa="Cumprod",os="Cumsum",Ma="CropAndResize",jl="DenseBincount",Pa="DepthToSpace",ss="DepthwiseConv2dNative",$p="DepthwiseConv2dNativeBackpropFilter",Rp="DepthwiseConv2dNativeBackpropInput",Xl="Diag",is="Dilation2D",Yl="Dilation2DBackpropInput",Zl="Dilation2DBackpropFilter",Qd="Draw",as="RealDiv",Fp="Einsum",ls="Elu",La="EluGrad",us="Erf",za="Equal",cs="Exp",Mi="ExpandDims",ps="Expm1",Op="FFT",Jl="Fill",Ba="FlipLeftRight",ms="Floor",fs="FloorDiv",ds="FusedBatchNorm",Pi="GatherV2",Va="GatherNd",Ga="Greater",hs="GreaterEqual",go="Identity",Mp="IFFT",Pp="Imag",gs="IsFinite",xs="IsInf",ys="IsNan",bs="LeakyRelu",Wa="Less",Ua="LessEqual",Ha="LinSpace",ws="Log",Is="Log1p",qa="LogicalAnd",Ka="LogicalNot",ja="LogicalOr",E_="LogicalXor",A_="LogSoftmax",nft="LowerBound",Cs="LRN",Xa="LRNGrad",oft="MatrixBandPart",vs="Max",Ss="Maximum",Ns="MaxPool",Ql="MaxPoolGrad",Li="MaxPool3D",tu="MaxPool3DGrad",eu="MaxPoolWithArgmax",ks="Mean",Ts="Min",_s="Minimum",Es="MirrorPad",As="Mod",Ya="Multinomial",Ds="Multiply",zi="Neg",Za="NotEqual",Ja="NonMaxSuppressionV3",Qa="NonMaxSuppressionV4",tl="NonMaxSuppressionV5",Bi="OnesLike",$s="OneHot",Vi="Pack",Rs="PadV2",sft="Pool",Fs="Pow",Os="Prelu",Ms="Prod",Lp="RaggedGather",zp="RaggedRange",Bp="RaggedTensorToTensor",ru="Range",Vp="Real",Ps="Reciprocal",Ls="Relu",Gi="Reshape",zs="ResizeNearestNeighbor",el="ResizeNearestNeighborGrad",Bs="ResizeBilinear",rl="ResizeBilinearGrad",Vs="Relu6",Gs="Reverse",Ws="Round",Us="Rsqrt",nl="ScatterNd",ol="TensorScatterUpdate",sl="SearchSorted",Wi="Select",Hs="Selu",Ui="Slice",qs="Sin",Ks="Sinh",js="Sign",Xs="Sigmoid",Ys="Softplus",Zs="Sqrt",Js="Sum",Hi="SpaceToBatchND",qi="SplitV",Qs="Softmax",nu="SparseFillEmptyRows",il="SparseReshape",ou="SparseSegmentMean",su="SparseSegmentSum",al="SparseToDense",ti="SquaredDifference",iu="Square",ec="StaticRegexReplace",ll="StridedSlice",au="StringNGrams",lu="StringSplit",uu="StringToHashBucketFast",ei="Sub",ri="Tan",ni="Tanh",oo="Tile",ul="TopK",cl="Transform",so="Transpose",cu="Unique",Ki="Unpack",pu="UnsortedSegmentSum",ift="UpperBound",ji="ZerosLike",xo="Step",th="FromPixels",pl="RotateWithOffset",Xi="_FusedMatMul",Yi="FusedConv2D",Zi="FusedDepthwiseConv2D";function Ji(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.warn(...r)}function mK(...r){L().getBool("IS_TEST")||L().getBool("PROD")||console.log(...r)}var Gp=Jd("kernelRegistry",()=>new Map),eh=Jd("gradRegistry",()=>new Map);function Wp(r,t){let e=S0(r,t);return Gp.get(e)}function v0(r){return eh.get(r)}function Yg(r){let t=Gp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split("_");a===r&&e.push(i)}return e}function rc(r){let{kernelName:t,backendName:e}=r,n=S0(t,e);Gp.has(n)&&Ji(`The kernel '${t}' for backend '${e}' is already registered`),Gp.set(n,r)}function $_(r){let{kernelName:t}=r;eh.has(t)&&L().getBool("DEBUG")&&Ji(`Overriding the gradient for '${t}'`),eh.set(t,r)}function pft(r,t){let e=S0(r,t);if(!Gp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Gp.delete(e)}function mft(r){if(!eh.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);eh.delete(r)}function fft(r,t){Yg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});rc(o)})}function S0(r,t){return`${t}_${r}`}var y={};Kt(y,{arraysEqual:()=>sn,arraysEqualWithNull:()=>d0,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Le,assertNonNull:()=>ro,assertShapesMatch:()=>$e,bytesFromStringArray:()=>b0,bytesPerElement:()=>Tp,checkConversionForErrors:()=>x0,clamp:()=>kp,computeStrides:()=>Ei,convertBackendValuesAndArrayBuffer:()=>nK,createScalarValue:()=>bK,createShuffledIndices:()=>Qq,decodeString:()=>Kp,distSquared:()=>Xq,encodeString:()=>fu,fetch:()=>IK,fingerPrint64:()=>yK,flatten:()=>si,getArrayFromDType:()=>Xg,getTypedArrayFromDType:()=>g0,hasEncodingLoss:()=>rK,hexToLong:()=>rh,indexToLoc:()=>iK,inferDtype:()=>Wl,inferFromImplicitShape:()=>eK,isBoolean:()=>v_,isFunction:()=>_i,isInt:()=>_a,isNumber:()=>S_,isPromise:()=>tc,isScalarShape:()=>Yq,isString:()=>Vo,isTypedArray:()=>sr,isValidDtype:()=>y0,locToIndex:()=>sK,makeOnesTypedArray:()=>Yd,makeZerosNestedTypedArray:()=>oK,makeZerosTypedArray:()=>Ep,nearestDivisor:()=>_p,nearestLargerEven:()=>qq,now:()=>ac,parseAxisParam:()=>fr,randUniform:()=>jq,repeatedTry:()=>tK,rightPad:()=>Qu,shuffle:()=>C_,shuffleCombo:()=>Hq,sizeFromShape:()=>jt,sizeToSquarishShape:()=>Jq,squeezeShape:()=>h0,sum:()=>Kq,swap:()=>jg,tanh:()=>Zq,toNestedArray:()=>Ju,toTypedArray:()=>qp});function Zg(r){return r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray}var _0=Gl(W_());var ic=_0.default||_0;function rh(r){return ic.fromString(r,!0,16)}var H_=rh("c3a5c85c97cb3127"),sc=rh("b492b66fbe98f273"),an=rh("9ae16a3b2f90404f");function T0(r){return r.xor(r.shru(47))}function q_(r,t,e){let n=r.slice(t,t+e);return ic.fromBytes(Array.from(n),!0,!0)}function ze(r,t){return q_(r,t,8)}function U_(r,t){return q_(r,t,4)}function Ar(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function mu(r,t,e=rh("9ddfea08eb382d69")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function dK(r,t,e,n,o,s){o=o.add(r),s=Ar(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(Ar(o,44)),[o.add(n),s.add(i)]}function Qg(r,t,e,n){return dK(ze(r,t),ze(r,t+8),ze(r,t+16),ze(r,t+24),e,n)}function hK(r,t=r.length){if(t>=8){let e=an.add(t*2),n=ze(r,0).add(an),o=ze(r,t-8),s=Ar(o,37).mul(e).add(n),i=Ar(n,25).add(o).mul(e);return mu(s,i,e)}if(t>=4){let e=an.add(t*2),n=U_(r,0);return mu(n.shl(3).add(t),U_(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return T0(an.mul(s).xor(H_.mul(i))).mul(an)}return an}function gK(r,t=r.length){let e=an.add(t*2),n=ze(r,0).mul(sc),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(an);return mu(Ar(n.add(o),43).add(Ar(s,30)).add(i),n.add(Ar(o.add(an),18)).add(s),e)}function xK(r,t=r.length){let e=an.add(t*2),n=ze(r,0).mul(an),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(an),a=Ar(n.add(o),43).add(Ar(s,30)).add(i),u=mu(a,n.add(Ar(o.add(an),18)).add(s),e),l=ze(r,16).mul(e),c=ze(r,24),p=a.add(ze(r,t-32)).mul(e),m=u.add(ze(r,t-24)).mul(e);return mu(Ar(l.add(c),43).add(Ar(p,30)).add(m),l.add(Ar(c.add(n),18)).add(p),e)}function yK(r,t=r.length){let e=ic.fromNumber(81,!0);if(t<=32)return t<=16?hK(r,t):gK(r,t);if(t<=64)return xK(r,t);let n=e,o=e.mul(sc).add(113),s=T0(o.mul(an).add(113)).mul(an),i=[ic.UZERO,ic.UZERO],a=[ic.UZERO,ic.UZERO];n=n.mul(an).add(ze(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(sc),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(sc),n=n.xor(a[1]),o=o.add(i[0]).add(ze(r,u+40)),s=Ar(s.add(a[0]),33).mul(sc),i=Qg(r,u,i[1].mul(sc),n.add(a[0])),a=Qg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=sc.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=Ar(n.add(o).add(i[0]).add(ze(r,u+8)),37).mul(p),o=Ar(o.add(i[1]).add(ze(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(ze(r,u+40))),s=Ar(s.add(a[0]),33).mul(p),i=Qg(r,u,i[1].mul(p),n.add(a[0])),a=Qg(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],mu(mu(i[0],a[0],p).add(T0(o).mul(H_)).add(s),mu(i[1],a[1],p).add(n),p)}function bK(r,t){return t==="string"?fu(r):qp([r],t)}function wK(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function qp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=si(r)),L().getBool("DEBUG")&&x0(r,t),wK(r,t))return r;if(t==null||t==="float32"||t==="complex64")return new Float32Array(r);if(t==="int32")return new Int32Array(r);if(t==="bool"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=ac();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:ac()-a})}if(L().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{CK(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function CK(r,t,e){if(t!=="float32")return!1;for(let n=0;n0?h:""} `}}console.log(`%c${u} %c${a} %c${l}D ${p} %c${c} %c${m} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function K_(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!sn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var X_=20,nh=3,A0=7;function Y_(r,t,e,n){let o=Ei(t),s=vK(r,t,e,o),i=t.length,a=ex(r,t,e,o,s),u=["Tensor"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(" values:")),u.push(a.map(l=>" "+l).join(` `)),u.join(` -`)}function wK(r,t,e,n){let o=jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e==="complex64"?oh(r):r;if(a>1)for(let l=0;lK_){let g=rh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-rh)*i,a*i));return e==="complex64"&&(x=oh(x),b=oh(b)),["["+x.map((w,I)=>nh(w,o[I],e)).join(", ")+", ..., "+b.map((w,I)=>nh(w,o[a-rh+I],e)).join(", ")+"]"]}return["["+(e==="complex64"?oh(r):Array.from(r)).map((g,x)=>nh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>K_){for(let h=0;h0?m[0]+f:"");for(let h=1;h1)for(let l=0;lX_){let g=nh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-nh)*i,a*i));return e==="complex64"&&(x=sh(x),b=sh(b)),["["+x.map((w,I)=>oh(w,o[I],e)).join(", ")+", ..., "+b.map((w,I)=>oh(w,o[a-nh+I],e)).join(", ")+"]"]}return["["+(e==="complex64"?sh(r):Array.from(r)).map((g,x)=>oh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>X_){for(let h=0;h0?m[0]+f:"");for(let h=1;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e==="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||jg(e,this.size),this.strides=_i(t)}set(t,...e){e.length===0&&(e=[0]),_(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oKp(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return t}dataToGPU(t){return this.throwIfDisposed(),ii().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ii().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Kp(e))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t}async bytes(){this.throwIfDisposed();let t=await ii().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),ii().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return jp.print(this,t)}clone(){return this.throwIfDisposed(),jp.clone(this)}toString(t=!1){let e=this.dataSync();return j_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),jp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ii().makeVariable(this,t,e,n)}};Object.defineProperty(Lt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Zd("Tensor",()=>Lt)}O();var ml=class extends Lt{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!on(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ii().disposeTensor(this),this.dataId=t.dataId,ii().incRef(this,null)}dispose(){ii().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ml,Symbol.hasInstance,{value:r=>r instanceof Lt&&r.assign!=null&&r.assign instanceof Function});var Io={};Kt(Io,{assertTypesMatch:()=>F0,getTensorsInContainer:()=>sh,isTensorInList:()=>vK,makeTypesMatch:()=>Xt});var E0;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(E0||(E0={}));var A0;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(A0||(A0={}));var D0;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(D0||(D0={}));var $0;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})($0||($0={}));var R0;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(R0||(R0={}));var CK={float32:$0,int32:A0,bool:D0,complex64:R0};function ur(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return CK[r][t]}function lc(r){return ur(r,"int32")}function ex(r){return r!=null&&typeof r=="object"&&"texture"in r&&r.texture instanceof WebGLTexture}function rx(r){return typeof GPUBuffer!="undefined"&&r!=null&&typeof r=="object"&&"buffer"in r&&r.buffer instanceof GPUBuffer}function Xt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function F0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function vK(r,t){return t.some(e=>e.id===r.id)}function sh(r){let t=[];return Q_(r,t,new Set),t}function Q_(r,t,e){if(r==null)return;if(r instanceof Lt){t.push(r);return}if(!SK(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),Q_(s,t,e))}}function SK(r){return Array.isArray(r)||typeof r=="object"}function O0(r){return r.kernelName!=null}var nx=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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ih=class r{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new nx}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){Xg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof Bo)&&typeof n.then=="function"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return r.nextTensorId++}nextVariableId(){return r.nextVariableId++}clone(t){let e=T.runKernel(go,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return T.runKernel(fo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Wp(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=O0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(O0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Wp(d,this.backendName);_(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}else{let{forwardFunc:d}=t,h=g=>{o&&(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=O0(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=I0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(_(Array.isArray(e),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",o=o||this.backend;let s=t;n==="string"&&Vo(t[0])&&(s=t.map(u=>fu(u)));let i=o.write(s,e,n),a=new Lt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=x0(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||"float32";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Lt(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new ml(t,e,n,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(t,e){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let n=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(n=t.size*Tp(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof ml||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let n=t.size*Tp(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=I0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Ep(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=sh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(_(e.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 s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));_(s instanceof Lt,()=>"The result y returned by f() must be a tensor.");let i=H_(this.state.activeTape,e,s);if(!o&&i.length===0&&e.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 a={};a[s.id]=n==null?NK(s.shape):n,q_(a,i,l=>this.tidy(l),kK);let u=e.map(l=>a[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:s,grads:u}})}customGrad(t){return _(Ti(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{_(e.every(a=>a instanceof Lt),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),_(n.value instanceof Lt,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),_(Ti(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];_(c.length===e.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(...)."),_(c.every(m=>m instanceof Lt),()=>"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:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=ac(),n=await this.backend.time(t);return n.wallMs=ac()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new nx;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ih.nextTensorId=0;ih.nextVariableId=0;function NK(r){let t=Xd(jt(r),"float32");return T.makeTensor(t,r,"float32")}function M0(){let r=w0();if(r._tfengine==null){let t=new Yd(r);r._tfengine=new ih(t)}return N_(r._tfengine.ENV),Y_(()=>r._tfengine),r._tfengine}var T=M0();function kK(r,t){let e={a:r,b:t};return T.runKernel(no,e)}var du={};Kt(du,{isBrowser:()=>L0,isMobile:()=>EK,mockIsMobile:()=>_K});function TK(){return typeof navigator!="undefined"&&navigator!=null}var P0;function _K(r){P0=r}function EK(r){if(P0!==void 0)return P0;if(r||TK()){if(r||(r=navigator),r.product==="ReactNative")return!0;let t=r.userAgent||r.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function L0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var vn=L();vn.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.")});vn.registerFlag("IS_BROWSER",()=>L0());vn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");vn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));vn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));vn.registerFlag("PROD",()=>!1);vn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>vn.getBool("DEBUG"));vn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);vn.registerFlag("IS_TEST",()=>!1);vn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>vn.getBool("DEBUG"));vn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);vn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);vn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Gr(r,t){let e=r;if(sr(r))return t==="string"?[]:[r.length];if(ex(r)){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}else if(rx(r))return[r.buffer.size/(t==null?4:Tp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||sr(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&eE(r,n,[]),n}function eE(r,t,e){if(e=e||[],!Array.isArray(r)&&!sr(r)){_(t.length===0,()=>`Element arr[${e.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}_(t.length>0,()=>`Element arr[${e.join("][")}] should be a primitive, but is an array of ${r.length} elements`),_(r.length===t[0],()=>`Element arr[${e.join("][")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),tE(n,o,t,e),r==null||!sr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let u=r==null?"null":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Gr(r,o);!sr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?qp(r,o):si(r,[],!0);return T.makeTensor(a,s,o)}function fl(r,t,e,n="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,i)=>C(s,`${t}[${i}]`,e,n))}var z0="__op";function k(r){let t=Object.keys(r);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 e=t[0],n=r[e];e.endsWith("_")&&(e=e.substring(0,e.length-1)),e=e+z0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return tc(i)&&console.error("Cannot return a Promise inside of tidy."),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function AK(r,t){let e=C(r,"real","complex"),n=C(t,"imag","complex");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return T.runKernel(Ap,o)}var Sn=k({complex_:AK});function an(r,t,e,n){if(n==null)n=Wl(r);else if(n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(rx(r)||ex(r)){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!sr(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(t!=null){Le(t);let o=jt(t),s=jt(e);_(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!sr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?qp(r,n):si(r,[],!0),T.makeTensor(r,t,n)}function ir(r,t,e){let n=Gr(r,e);return an(r,t,n,e)}var dl={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Wr=class r{static join(t){return new r(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(n=>sr(n)?n.buffer:n),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=DK(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function DK(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}function ydt(){L().set("PROD",!0)}function bdt(){L().set("DEBUG",!0)}function wdt(){L().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function B0(r){L().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}J_(B0);function Idt(){T.disposeVariables()}function Bn(){return T}function ah(){return T.memory()}function Cdt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){sh(r).forEach(e=>e.dispose())}function De(r){return T.keep(r)}function vdt(r){return T.time(r)}function $K(r){return T.setBackend(r)}function Sdt(){return T.ready()}function rE(){return T.backendName}function Ndt(r){T.removeBackend(r)}function kdt(r){return T.findBackend(r)}function Tdt(r){return T.findBackendFactory(r)}function Xp(r,t,e=1){return T.registerBackend(r,t,e)}function ox(){return T.backend}function _dt(r,t){L().setPlatform(r,t)}var hu=4;async function sE(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+hu*m.length,d=new Uint8Array(f),h=0;for(let g=0;ge.slice(o+a,o+u));n[s.name]=iE(s,e.slice(o,o+i)),o+=i}return n}function RK(r,t){let e=jt(r.shape),n;if("quantization"in r){let o=r.quantization;n=dl[o.dtype]}else if(r.dtype==="string"){let o=0;for(let s=0;s(o=await nE(n,o,c),o.slice(l,c)));o=await nE(n,o,i);let a=o.slice(0,i);o=o.slice(i);let u=iE(s,a);if(e[s.name]=u,rE()==="webgpu"){let l=ox();"uploadToGPU"in l&&jt(u.shape)>=L().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&l.uploadToGPU(u.dataId)}}return e}function OK(r){if(r===null)throw new Error(`Invalid input value: ${JSON.stringify(r)}`);let t=0,e=[];r.forEach(s=>{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var V0=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function oE(r){return V0?Buffer.byteLength(r,"utf8"):new Blob([r]).size}function aE(r){if(V0)return Buffer.from(r).toString("base64");let t=new Uint8Array(r),e="";for(let n=0,o=t.length;n{let n=e<<13,o=0;for(;!(n&8388608);)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function PK(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function LK(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function zK(){let r=MK(),t=PK(),e=LK();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Cr=class r{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return r.instance==null&&(r.instance=new r),r.instance}static registerSaveRouter(t){r.getInstance().saveRouters.push(t)}static registerLoadRouter(t){r.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return r.getHandlers(t,"save")}static getLoadHandlers(t,e){return r.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?r.getInstance().loadRouters:r.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},cE=r=>Cr.registerSaveRouter(r),pE=r=>Cr.registerLoadRouter(r),mE=r=>Cr.getSaveHandlers(r),fE=(r,t)=>Cr.getLoadHandlers(r,t);var U0="tensorflowjs",H0=1,uc="models_store",gu="model_info_store";function dE(){if(!L().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,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function q0(r){let t=r.result;t.createObjectStore(uc,{keyPath:"modelPath"}),t.createObjectStore(gu,{keyPath:"modelPath"})}var Qi=class{constructor(t){if(this.indexedDB=dE(),t==null||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open(U0,H0);s.onupgradeneeded=()=>q0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(uc,"readonly"),l=a.objectStore(uc).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{e.weightData=Wr.join(e.weightData);let a=Ji(e),u=i.transaction(gu,"readwrite"),l=u.objectStore(gu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(uc,"readwrite");let m=p.objectStore(uc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(gu);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Qi.URL_SCHEME="indexeddb://";var hE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Qi.URL_SCHEME)?BK(r.slice(Qi.URL_SCHEME.length)):null;Cr.registerSaveRouter(hE);Cr.registerLoadRouter(hE);function BK(r){return new Qi(r)}function VK(r){return r.startsWith(Qi.URL_SCHEME)?r.slice(Qi.URL_SCHEME.length):r}var lx=class{constructor(){this.indexedDB=dE()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(U0,H0);n.onupgradeneeded=()=>q0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(gu,"readonly"),a=s.objectStore(gu).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=VK(t),new Promise((e,n)=>{let o=this.indexedDB.open(U0,H0);o.onupgradeneeded=()=>q0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(gu,"readwrite"),a=i.objectStore(gu),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(uc,"readwrite");let f=l.objectStore(uc).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var hl="/",Zp="tensorflowjs_models",gE="info",GK="model_topology",WK="weight_specs",UK="weight_data",HK="model_metadata";function xE(r){return{info:[Zp,r,gE].join(hl),topology:[Zp,r,GK].join(hl),weightSpecs:[Zp,r,WK].join(hl),weightData:[Zp,r,UK].join(hl),modelMetadata:[Zp,r,HK].join(hl)}}function yE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function qK(r){let t=r.split(hl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(hl)}function KK(r){return r.startsWith(ta.URL_SCHEME)?r.slice(ta.URL_SCHEME.length):r}var ta=class{constructor(t){if(!L().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,t==null||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=xE(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ji(t),s=Wr.join(t.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,aE(s));let i={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(i)),{modelArtifactsInfo:o}}catch(i){throw yE(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let e={},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.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=lE(i),e}};ta.URL_SCHEME="localstorage://";var bE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ta.URL_SCHEME)?jK(r.slice(ta.URL_SCHEME.length)):null;Cr.registerSaveRouter(bE);Cr.registerLoadRouter(bE);function jK(r){return new ta(r)}var ux=class{constructor(){_(L().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 t={},e=Zp+hl,n=hl+gE;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(Jp)&&(t=t.slice(0,t.indexOf(Jp))),_(t.length>0,()=>"scheme must not be an empty string.");let n=r.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(r.getInstance().managers)}};function cx(r){if(r.indexOf(Jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${ai.getSchemes().join(",")}`);return{scheme:r.split(Jp)[0],path:r.split(Jp)[1]}}async function wE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Cr.getLoadHandlers(r);_(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),_(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Cr.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 (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=cx(r).scheme,u=cx(r).path,l=a===cx(r).scheme,c=await o.load();e&&l&&await ai.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await ai.getManager(a).removeModel(u),p.modelArtifactsInfo}async function IE(){let r=ai.getSchemes(),t={};for(let e of r){let n=await ai.getManager(e).listModels();for(let o in n){let s=e+Jp+o;t[s]=n[o]}}return t}async function CE(r){let t=cx(r);return ai.getManager(t.scheme).removeModel(t.path)}async function vE(r,t){return wE(r,t,!1)}async function SE(r,t){return wE(r,t,!0)}var K0=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window=="undefined"||!L().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(t){return Yg(t)}};if(L().get("IS_BROWSER")){L().setPlatform("browser",new K0);try{ai.registerManager(ta.URL_SCHEME,new ux)}catch(r){}try{ai.registerManager(Qi.URL_SCHEME,new lx)}catch(r){}}var XK={importFetch:()=>NE()},j0;var X0=class{constructor(){this.util=kE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(j0==null&&(j0=XK.importFetch()),j0(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?"":new this.util.TextDecoder(e).decode(t)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get("IS_NODE")&&!L().get("IS_BROWSER")&&L().setPlatform("node",new X0);function wt(r,t="float32",e){return t=t||"float32",Le(r),new le(r,t,e)}function YK(r,t){let e=C(r,"x","cast");if(!g0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&e.dtype!=="string"||t!=="string"&&e.dtype==="string")throw new Error("Only strings can be casted to strings");let n={x:e},o={dtype:t};return T.runKernel(fo,n,o)}var J=k({cast_:YK});function ZK(r){let e={x:C(r,"x","clone","string_or_numeric")};return T.runKernel(go,e)}var ln=k({clone_:ZK});function px(r,t=!1){console.log(r.toString(t))}M0();var JK={buffer:wt,cast:J,clone:ln,print:px};Z_(JK);function QK(r,t){let e=C(r,"a","add"),n=C(t,"b","add");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(no,o)}var X=k({add_:QK});function tj(r,t){let e=C(r,"a","floorDiv"),n=C(t,"b","floorDiv");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(fs,o)}var Qp=k({floorDiv_:tj});function ej(r,t){let e=C(r,"a","div"),n=C(t,"b","div");if([e,n]=Xt(e,n),e.dtype==="int32"&&n.dtype==="int32")return Qp(e,n);let o={a:e,b:n},s={};return T.runKernel(as,o,s)}var ct=k({div_:ej});function rj(r,t){let e=C(r,"a","mul"),n=C(t,"b","mul");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Ds,o)}var $=k({mul_:rj});function nj(r){let t=C(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return T.runKernel(Kl,e)}else{let e={x:t};return T.runKernel(Ei,e)}}var _e=k({abs_:nj});function oj(r){let e={x:C(r,"x","acos")};return T.runKernel(Go,e)}var mx=k({acos_:oj});function sj(r){let e={x:C(r,"x","acosh")};return T.runKernel(Wo,e)}var fx=k({acosh_:sj});function ij(r){_(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),_(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>C(o,`tensors${s}`,"addN")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(o=>{if(!on(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return T.runKernel(Uo,n)}var TE=k({addN_:ij});function aj(r,t=null,e=!1){let o={x:C(r,"x","all","bool")},s={axis:t,keepDims:e};return T.runKernel(Ea,o,s)}var tm=k({all_:aj});function lj(r,t=null,e=!1){let o={x:C(r,"x","any","bool")},s={axis:t,keepDims:e};return T.runKernel(Aa,o,s)}var cc=k({any_:lj});function uj(r,t=0){let n={x:C(r,"x","argMax")},o={axis:t};return T.runKernel(Ai,n,o)}var ea=k({argMax_:uj});function cj(r,t=0){let n={x:C(r,"x","argMin")},o={axis:t};return T.runKernel(Di,n,o)}var dx=k({argMin_:cj});function pj(r){let e={x:C(r,"x","asin")};return T.runKernel(Ho,e)}var hx=k({asin_:pj});function mj(r){let e={x:C(r,"x","asinh")};return T.runKernel(qo,e)}var gx=k({asinh_:mj});function fj(r){let e={x:C(r,"x","atan")};return T.runKernel(Ko,e)}var xx=k({atan_:fj});function dj(r,t){let e=C(r,"a","atan2"),n=C(t,"b","atan2");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Xo,o)}var yx=k({atan2_:dj});function hj(r){let e={x:C(r,"x","atanh")};return T.runKernel(jo,e)}var bx=k({atanh_:hj});function gj(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=EE(o);return pc(r,a,e,s,n,null,null,u)}function Z0(r,t,e,n,o,s,i="channelsLast"){let[a,u]=uh(t),l;if(i==="channelsLast")l=[a,u,r[3],r[3]];else if(i==="channelsFirst")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return pc(r,l,e,n,o,s,!1,i)}function xj(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=Y0(t),c,p;if(i==="NDHWC")p="channelsLast",c=[a,u,l,r[4],r[4]];else if(i==="NCDHW")p="channelsFirst",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return _E(r,c,e,n,o,!1,p,s)}function pc(r,t,e,n,o,s,i=!1,a="channelsLast"){let[u,l,c,p]=[-1,-1,-1,-1];if(a==="channelsLast")[u,l,c,p]=r;else if(a==="channelsFirst")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=uh(e),[x,b]=uh(n),w=em(m,x),I=em(f,b),{padInfo:N,outHeight:E,outWidth:A}=wj(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a==="channelsFirst"?F=[u,D,E,A]:a==="channelsLast"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function _E(r,t,e,n,o,s=!1,i="channelsLast",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[u,l,c,p,m]=r;else if(i==="channelsFirst")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=Y0(e),[I,N,E]=Y0(n),A=em(f,I),D=em(d,N),F=em(h,E),{padInfo:M,outDepth:V,outHeight:G,outWidth:W}=Ij(o,l,c,p,x,b,w,A,D,F,a),q=s?g*m:g,H;return i==="channelsFirst"?H=[u,q,V,G,W]:i==="channelsLast"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:M,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function yj(r,t,e,n,o){n==null&&(n=J0(r,t,e));let s=r[0],i=r[1],a=ch((s-t+2*n)/e+1,o),u=ch((i-t+2*n)/e+1,o);return[a,u]}function bj(r,t,e,n,o,s){o==null&&(o=J0(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=ch((r[a]-t[a]+2*o)/n[a]+1,s));return i}function J0(r,t,e,n=1){let o=em(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function uh(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function Y0(r){return typeof r=="number"?[r,r,r]:r}function em(r,t){return t<=1?r:r+(r-1)*(t-1)}function wj(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r=="number"){l={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=yj([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")l={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r=="object"){let m=u==="channelsLast"?r[1][0]:r[2][0],f=u==="channelsLast"?r[1][1]:r[2][1],d=u==="channelsLast"?r[2][0]:r[3][0],h=u==="channelsLast"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=ch((t-s+m+f)/n+1,a),p=ch((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function Ij(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r==="valid"&&(r=0),typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=bj([t,e,n,1],[a,u,l],1,[o,s,i],r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:"SAME"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function ch(r,t){if(!t)return Math.trunc(r);switch(t){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function io(r){let[t,e,n]=uh(r);return t===1&&e===1&&n===1}function Dr(r,t){return io(r)||io(t)}function ra(r){return uh(r).every(t=>t>0)}function EE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function ve(r,t,e){if(e!=null){if(typeof t=="string")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t=="number")_(_a(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t=="object")t.forEach(n=>{n.forEach(o=>{_(_a(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function Cj(r,t){let n={x:C(r,"x","reshape","string_or_numeric")},o={shape:t};return T.runKernel(Vi,n,o)}var R=k({reshape_:Cj});function vj(r,t,e,n,o){let s=C(r,"x","avgPool","float32"),i=1;_(Dr(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),ve("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Yo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var xu=k({avgPool_:vj});function Sj(r,t,e,n,o,s="NDHWC"){let i=C(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),_(typeof e=="number"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),ve("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel($i,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var wx=k({avgPool3d_:Sj});function Nj(r,t=0){_(r.length>=1,()=>"Pass at least one tensor to concat");let e=fl(r,"tensors","concat","string_or_numeric");if(e[0].dtype==="complex64"&&e.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),e.length===1)return ln(e[0]);let n=e,o={axis:t};return T.runKernel(Fi,n,o)}var ie=k({concat_:Nj});function kj(r,t,e=!1,n=!1){let o=C(r,"a","matMul"),s=C(t,"b","matMul");[o,s]=Xt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(Zo,i,a)}var Bt=k({matMul_:kj});function Tj(r){let e={x:C(r,"x","sigmoid","float32")};return T.runKernel(Xs,e)}var Qr=k({sigmoid_:Tj});function _j(r,t,e){let n=C(r,"x","slice","string_or_numeric");if(n.rank===0)throw new Error("Slicing scalar is not possible");let o={x:n},s={begin:t,size:e};return T.runKernel(Wi,o,s)}var Ot=k({slice_:_j});function Ej(r){let e={x:C(r,"x","tanh","float32")};return T.runKernel(ni,e)}var na=k({tanh_:Ej});function Aj(r,t,e,n,o,s){let i=C(r,"forgetBias","basicLSTMCell"),a=C(t,"lstmKernel","basicLSTMCell"),u=C(e,"lstmBias","basicLSTMCell"),l=C(n,"data","basicLSTMCell"),c=C(o,"c","basicLSTMCell"),p=C(s,"h","basicLSTMCell"),m=ie([l,p],1),f=Bt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),I=Ot(d,[0,g*2],x),N=Ot(d,[0,g*3],x),E=X($(Qr(b),na(w)),$(c,Qr(X(i,I)))),A=$(na(E),Qr(N));return[E,A]}var AE=k({basicLSTMCell_:Aj});function Dj(r,t,e){let n=C(r,"x","batchToSpaceND"),o=t.reduce((a,u)=>a*u);_(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),_(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),_(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return T.runKernel(Ri,s,i)}var yu=k({batchToSpaceND_:Dj});function DE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function $j(r,t,e,n,o,s){s==null&&(s=.001);let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;n!=null&&(c=C(n,"offset","batchNorm")),_(a.rank===u.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),_(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),_(l==null||a.rank===l.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:DE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ds,m,f);return R(d,i.shape)}var oa=k({batchNorm_:$j});function Rj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(n,"offset","batchNorm")),_(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),_(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),_(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Ix=k({batchNorm2d_:Rj});function Fj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(n,"offset","batchNorm")),_(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),_(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),_(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Cx=k({batchNorm3d_:Fj});function Oj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(n,"offset","batchNorm")),_(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),_(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),_(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var vx=k({batchNorm4d_:Oj});function Mj(r,t,e){let n=C(r,"x","bincount"),o=C(t,"weights","bincount");_(n.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return T.runKernel(Da,s,i)}var Sx=k({bincount_:Mj});function Pj(r,t){let e=C(r,"x","bitwiseAnd"),n=C(t,"y","bitwiseAnd");if(!on(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!=="int32"||n.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel($a,o)}var $E=k({bitwiseAnd_:Pj});function Lj(r,t){let e=C(r,"s0","broadcastArgs","int32"),n=C(t,"s1","broadcastArgs","int32");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return T.runKernel(ql,o)}var RE=k({broadcastArgs_:Lj});function zj(r,t){let e=C(r,"broadcastTo","x"),n=e.shape;if(Le(t),t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return ln(e);let a={x:e},u={reps:s};return T.runKernel(oo,a,u)}var sa=k({broadcastTo_:zj});function Bj(r){let e={x:C(r,"x","ceil","float32")};return T.runKernel(Jo,e)}var Nx=k({ceil_:Bj});function Co(r,t,e){Le(r),e=e||Wl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(Jl,{},n)}function Vj(r,t,e){let n=C(r,"x","clipByValue");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return Co(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(ho,o,s)}var vr=k({clipByValue_:Vj});function Gj(r){return ie(r,0)}var kx=k({concat1d_:Gj});function Wj(r,t){return ie(r,t)}var Tx=k({concat2d_:Wj});function Uj(r,t){return ie(r,t)}var _x=k({concat3d_:Uj});function Hj(r,t){return ie(r,t)}var Ex=k({concat4d_:Hj});function qj(r,t,e,n,o="NHWC",s=[1,1],i){let a=C(r,"x","conv2d","float32"),u=C(t,"filter","conv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),ve("conv2d",n,i);let p=o==="NHWC"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(ra(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),_(ra(e),()=>"Error in conv2D: Strides should be larger than 0.");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(Qo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Nn=k({conv2d_:qj});function Kj(r,t,e,n,o="NWC",s=1,i){let a=C(r,"x","conv1d"),u=C(t,"filter","conv1d"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),_(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),_(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),ve("conv1d",n,i),_(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),_(Dr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(ra(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),_(ra(e),()=>"Error in conv1D: Stride should be larger than 0."),_(o==="NWC",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Nn(m,p,[1,e],n,"NHWC",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var rm=k({conv1d_:Kj});function jj(r,t,e,n,o,s="NHWC",i){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),_(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),_(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),_(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s==="NHWC"?a[3]:a[1],p=s==="NHWC"?u.shape[3]:u.shape[1];_(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),_(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),ve("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(ts,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var nm=k({conv2DBackpropInput_:jj});function Xj(r,t,e,n,o,s){let i=C(r,"x","conv2dTranspose"),a=C(t,"filter","conv2dTranspose");return nm(e,i,a,n,o,"NHWC",s)}var om=k({conv2dTranspose_:Xj});function Yj(r,t,e,n,o="NDHWC",s=[1,1,1]){let i=C(r,"x","conv3d"),a=C(t,"filter","conv3d"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),_(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),_(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),_(Dr(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(o==="NDHWC",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`),_(ra(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),_(ra(e),()=>"Error in conv3D: Strides should be larger than 0.");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(es,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Ax=k({conv3d_:Yj});function Zj(r,t,e,n,o){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=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}`),_(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),_(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),_(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=T.runKernel(Fa,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Dx=k({conv3DBackpropInput_:Zj});function Jj(r,t,e,n,o){let s=C(r,"x","conv3dTranspose"),i=C(t,"filter","conv3dTranspose");return Dx(e,s,i,n,o)}var $x=k({conv3dTranspose_:Jj});function Qj(r){let e={x:C(r,"x","cos","float32")};return T.runKernel(rs,e)}var bu=k({cos_:Qj});function t6(r){let e={x:C(r,"x","cosh","float32")};return T.runKernel(ns,e)}var sm=k({cosh_:t6});function e6(r,t=0,e=!1,n=!1){let s={x:C(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Oa,s,i)}var mc=k({cumprod_:e6});function r6(r,t=0,e=!1,n=!1){let s={x:C(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(os,s,i)}var im=k({cumsum_:r6});function n6(r,t,e,n=!1){let o=C(r,"x","denseBincount"),s=C(t,"weights","denseBincount");_(o.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),_(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return T.runKernel(jl,i,a)}var ph=k({denseBincount_:n6});function o6(r,t,e="NHWC"){let n=C(r,"x","depthToSpace","float32"),o=e==="NHWC"?n.shape[1]:n.shape[2],s=e==="NHWC"?n.shape[2]:n.shape[3],i=e==="NHWC"?n.shape[3]:n.shape[1];_(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),_(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying +`;return m[m.length-1]=" "+m[m.length-1]+"]"+(s?"":d),m}function sh(r){let t=[];for(let e=0;e`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e==="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||Xg(e,this.size),this.strides=Ei(t)}set(t,...e){e.length===0&&(e=[0]),_(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oKp(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return t}dataToGPU(t){return this.throwIfDisposed(),ii().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=ii().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Kp(e))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t}async bytes(){this.throwIfDisposed();let t=await ii().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),ii().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return jp.print(this,t)}clone(){return this.throwIfDisposed(),jp.clone(this)}toString(t=!1){let e=this.dataSync();return Y_(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),jp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),ii().makeVariable(this,t,e,n)}};Object.defineProperty(Lt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Jd("Tensor",()=>Lt)}O();var ml=class extends Lt{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!sn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);ii().disposeTensor(this),this.dataId=t.dataId,ii().incRef(this,null)}dispose(){ii().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ml,Symbol.hasInstance,{value:r=>r instanceof Lt&&r.assign!=null&&r.assign instanceof Function});var Io={};Kt(Io,{assertTypesMatch:()=>M0,getTensorsInContainer:()=>ih,isTensorInList:()=>kK,makeTypesMatch:()=>Xt});var D0;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(D0||(D0={}));var $0;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})($0||($0={}));var R0;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(R0||(R0={}));var F0;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(F0||(F0={}));var O0;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(O0||(O0={}));var NK={float32:F0,int32:$0,bool:R0,complex64:O0};function ur(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return NK[r][t]}function lc(r){return ur(r,"int32")}function rx(r){return r!=null&&typeof r=="object"&&"texture"in r&&r.texture instanceof WebGLTexture}function nx(r){return typeof GPUBuffer!="undefined"&&r!=null&&typeof r=="object"&&"buffer"in r&&r.buffer instanceof GPUBuffer}function Xt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ur(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function M0(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function kK(r,t){return t.some(e=>e.id===r.id)}function ih(r){let t=[];return eE(r,t,new Set),t}function eE(r,t,e){if(r==null)return;if(r instanceof Lt){t.push(r);return}if(!TK(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),eE(s,t,e))}}function TK(r){return Array.isArray(r)||typeof r=="object"}function P0(r){return r.kernelName!=null}var ox=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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ah=class r{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ox}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){Yg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof Bo)&&typeof n.then=="function"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return r.nextTensorId++}nextVariableId(){return r.nextVariableId++}clone(t){let e=T.runKernel(go,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return T.runKernel(fo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Wp(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=P0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(P0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Wp(d,this.backendName);_(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let I=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,I);n=this.saveTensorsForBackwardMode(N)}return I}}else{let{forwardFunc:d}=t,h=g=>{o&&(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=P0(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=v0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(_(Array.isArray(e),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",o=o||this.backend;let s=t;n==="string"&&Vo(t[0])&&(s=t.map(u=>fu(u)));let i=o.write(s,e,n),a=new Lt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=b0(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||"float32";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Lt(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new ml(t,e,n,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(t,e){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let n=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(n=t.size*Tp(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof ml||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let n=t.size*Tp(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=v0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Ep(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=ih(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(_(e.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 s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));_(s instanceof Lt,()=>"The result y returned by f() must be a tensor.");let i=K_(this.state.activeTape,e,s);if(!o&&i.length===0&&e.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 a={};a[s.id]=n==null?_K(s.shape):n,j_(a,i,l=>this.tidy(l),EK);let u=e.map(l=>a[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:s,grads:u}})}customGrad(t){return _(_i(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{_(e.every(a=>a instanceof Lt),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),_(n.value instanceof Lt,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),_(_i(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];_(c.length===e.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(...)."),_(c.every(m=>m instanceof Lt),()=>"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:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=ac(),n=await this.backend.time(t);return n.wallMs=ac()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new ox;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ah.nextTensorId=0;ah.nextVariableId=0;function _K(r){let t=Yd(jt(r),"float32");return T.makeTensor(t,r,"float32")}function L0(){let r=C0();if(r._tfengine==null){let t=new Zd(r);r._tfengine=new ah(t)}return T_(r._tfengine.ENV),J_(()=>r._tfengine),r._tfengine}var T=L0();function EK(r,t){let e={a:r,b:t};return T.runKernel(no,e)}var du={};Kt(du,{isBrowser:()=>B0,isMobile:()=>$K,mockIsMobile:()=>DK});function AK(){return typeof navigator!="undefined"&&navigator!=null}var z0;function DK(r){z0=r}function $K(r){if(z0!==void 0)return z0;if(r||AK()){if(r||(r=navigator),r.product==="ReactNative")return!0;let t=r.userAgent||r.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function B0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var vn=L();vn.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.")});vn.registerFlag("IS_BROWSER",()=>B0());vn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");vn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));vn.registerFlag("IS_SAFARI",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));vn.registerFlag("PROD",()=>!1);vn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>vn.getBool("DEBUG"));vn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);vn.registerFlag("IS_TEST",()=>!1);vn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>vn.getBool("DEBUG"));vn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);vn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);vn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Wr(r,t){let e=r;if(sr(r))return t==="string"?[]:[r.length];if(rx(r)){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}else if(nx(r))return[r.buffer.size/(t==null?4:Tp(t))];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||sr(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&L().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&nE(r,n,[]),n}function nE(r,t,e){if(e=e||[],!Array.isArray(r)&&!sr(r)){_(t.length===0,()=>`Element arr[${e.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}_(t.length>0,()=>`Element arr[${e.join("][")}] should be a primitive, but is an array of ${r.length} elements`),_(r.length===t[0],()=>`Element arr[${e.join("][")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),rE(n,o,t,e),r==null||!sr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let u=r==null?"null":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Wr(r,o);!sr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?qp(r,o):si(r,[],!0);return T.makeTensor(a,s,o)}function fl(r,t,e,n="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,i)=>C(s,`${t}[${i}]`,e,n))}var V0="__op";function k(r){let t=Object.keys(r);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 e=t[0],n=r[e];e.endsWith("_")&&(e=e.substring(0,e.length-1)),e=e+V0;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return tc(i)&&console.error("Cannot return a Promise inside of tidy."),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function RK(r,t){let e=C(r,"real","complex"),n=C(t,"imag","complex");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return T.runKernel(Ap,o)}var Sn=k({complex_:RK});function ln(r,t,e,n){if(n==null)n=Wl(r);else if(n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(nx(r)||rx(r)){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return T.backend.createTensorFromGPUData(r,t||e,n)}if(!sr(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(t!=null){Le(t);let o=jt(t),s=jt(e);_(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!sr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?qp(r,n):si(r,[],!0),T.makeTensor(r,t,n)}function ir(r,t,e){let n=Wr(r,e);return ln(r,t,n,e)}var dl={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Ur=class r{static join(t){return new r(t).slice()}constructor(t){if(this.shards=[],this.previousShardIndex=0,t==null||(t instanceof Array||(t=[t]),t=t.map(n=>sr(n)?n.buffer:n),t.length===0))return;this.bufferUniformSize=t[0].byteLength;let e=0;for(let n=0;n=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(t/this.bufferUniformSize),this.previousShardIndex;function e(o){return t=o.end?1:0}if(e(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;let n=FK(this.shards,e);return n===-1?-1:(this.previousShardIndex=n,this.previousShardIndex)}};function FK(r,t){let e=0,n=r.length;for(;e<=n;){let o=Math.floor((n-e)/2)+e,s=t(r[o]);if(s===0)return o;s<0?n=o:e=o+1}return-1}function Cdt(){L().set("PROD",!0)}function vdt(){L().set("DEBUG",!0)}function Sdt(){L().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function G0(r){L().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}tE(G0);function Ndt(){T.disposeVariables()}function Bn(){return T}function lh(){return T.memory()}function kdt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function Tt(r){ih(r).forEach(e=>e.dispose())}function De(r){return T.keep(r)}function Tdt(r){return T.time(r)}function OK(r){return T.setBackend(r)}function _dt(){return T.ready()}function oE(){return T.backendName}function Edt(r){T.removeBackend(r)}function Adt(r){return T.findBackend(r)}function Ddt(r){return T.findBackendFactory(r)}function Xp(r,t,e=1){return T.registerBackend(r,t,e)}function sx(){return T.backend}function $dt(r,t){L().setPlatform(r,t)}var hu=4;async function aE(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+hu*m.length,d=new Uint8Array(f),h=0;for(let g=0;ge.slice(o+a,o+u));n[s.name]=lE(s,e.slice(o,o+i)),o+=i}return n}function MK(r,t){let e=jt(r.shape),n;if("quantization"in r){let o=r.quantization;n=dl[o.dtype]}else if(r.dtype==="string"){let o=0;for(let s=0;s(o=await sE(n,o,c),o.slice(l,c)));o=await sE(n,o,i);let a=o.slice(0,i);o=o.slice(i);let u=lE(s,a);if(e[s.name]=u,oE()==="webgpu"){let l=sx();"uploadToGPU"in l&&jt(u.shape)>=L().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&l.uploadToGPU(u.dataId)}}return e}function LK(r){if(r===null)throw new Error(`Invalid input value: ${JSON.stringify(r)}`);let t=0,e=[];r.forEach(s=>{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var W0=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function iE(r){return W0?Buffer.byteLength(r,"utf8"):new Blob([r]).size}function uE(r){if(W0)return Buffer.from(r).toString("base64");let t=new Uint8Array(r),e="";for(let n=0,o=t.length;n{let n=e<<13,o=0;for(;!(n&8388608);)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function BK(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function VK(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function GK(){let r=zK(),t=BK(),e=VK();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Cr=class r{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return r.instance==null&&(r.instance=new r),r.instance}static registerSaveRouter(t){r.getInstance().saveRouters.push(t)}static registerLoadRouter(t){r.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return r.getHandlers(t,"save")}static getLoadHandlers(t,e){return r.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?r.getInstance().loadRouters:r.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},mE=r=>Cr.registerSaveRouter(r),fE=r=>Cr.registerLoadRouter(r),dE=r=>Cr.getSaveHandlers(r),hE=(r,t)=>Cr.getLoadHandlers(r,t);var q0="tensorflowjs",K0=1,uc="models_store",gu="model_info_store";function gE(){if(!L().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,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function j0(r){let t=r.result;t.createObjectStore(uc,{keyPath:"modelPath"}),t.createObjectStore(gu,{keyPath:"modelPath"})}var ta=class{constructor(t){if(this.indexedDB=gE(),t==null||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open(q0,K0);s.onupgradeneeded=()=>j0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(uc,"readonly"),l=a.objectStore(uc).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{e.weightData=Ur.join(e.weightData);let a=Qi(e),u=i.transaction(gu,"readwrite"),l=u.objectStore(gu),c;try{c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return o(m)}let p;c.onsuccess=()=>{p=i.transaction(uc,"readwrite");let m=p.objectStore(uc),f;try{f=m.put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a})}catch(d){return o(d)}f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(gu);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};ta.URL_SCHEME="indexeddb://";var xE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ta.URL_SCHEME)?WK(r.slice(ta.URL_SCHEME.length)):null;Cr.registerSaveRouter(xE);Cr.registerLoadRouter(xE);function WK(r){return new ta(r)}function UK(r){return r.startsWith(ta.URL_SCHEME)?r.slice(ta.URL_SCHEME.length):r}var ux=class{constructor(){this.indexedDB=gE()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(q0,K0);n.onupgradeneeded=()=>j0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(gu,"readonly"),a=s.objectStore(gu).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=UK(t),new Promise((e,n)=>{let o=this.indexedDB.open(q0,K0);o.onupgradeneeded=()=>j0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(gu,"readwrite"),a=i.objectStore(gu),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(uc,"readwrite");let f=l.objectStore(uc).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var hl="/",Zp="tensorflowjs_models",yE="info",HK="model_topology",qK="weight_specs",KK="weight_data",jK="model_metadata";function bE(r){return{info:[Zp,r,yE].join(hl),topology:[Zp,r,HK].join(hl),weightSpecs:[Zp,r,qK].join(hl),weightData:[Zp,r,KK].join(hl),modelMetadata:[Zp,r,jK].join(hl)}}function wE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function XK(r){let t=r.split(hl);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(hl)}function YK(r){return r.startsWith(ea.URL_SCHEME)?r.slice(ea.URL_SCHEME.length):r}var ea=class{constructor(t){if(!L().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,t==null||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=bE(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Qi(t),s=Ur.join(t.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,uE(s));let i={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(i)),{modelArtifactsInfo:o}}catch(i){throw wE(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let e={},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.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=cE(i),e}};ea.URL_SCHEME="localstorage://";var IE=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ea.URL_SCHEME)?ZK(r.slice(ea.URL_SCHEME.length)):null;Cr.registerSaveRouter(IE);Cr.registerLoadRouter(IE);function ZK(r){return new ea(r)}var cx=class{constructor(){_(L().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 t={},e=Zp+hl,n=hl+yE;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(Jp)&&(t=t.slice(0,t.indexOf(Jp))),_(t.length>0,()=>"scheme must not be an empty string.");let n=r.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(r.getInstance().managers)}};function px(r){if(r.indexOf(Jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${ai.getSchemes().join(",")}`);return{scheme:r.split(Jp)[0],path:r.split(Jp)[1]}}async function CE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Cr.getLoadHandlers(r);_(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),_(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Cr.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 (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=px(r).scheme,u=px(r).path,l=a===px(r).scheme,c=await o.load();e&&l&&await ai.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await ai.getManager(a).removeModel(u),p.modelArtifactsInfo}async function vE(){let r=ai.getSchemes(),t={};for(let e of r){let n=await ai.getManager(e).listModels();for(let o in n){let s=e+Jp+o;t[s]=n[o]}}return t}async function SE(r){let t=px(r);return ai.getManager(t.scheme).removeModel(t.path)}async function NE(r,t){return CE(r,t,!1)}async function kE(r,t){return CE(r,t,!0)}var X0=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window=="undefined"||!L().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(t){return Zg(t)}};if(L().get("IS_BROWSER")){L().setPlatform("browser",new X0);try{ai.registerManager(ea.URL_SCHEME,new cx)}catch(r){}try{ai.registerManager(ta.URL_SCHEME,new ux)}catch(r){}}var JK={importFetch:()=>TE()},Y0;var Z0=class{constructor(){this.util=_E(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return L().global.fetch!=null?L().global.fetch(t,e):(Y0==null&&(Y0=JK.importFetch()),Y0(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?"":new this.util.TextDecoder(e).decode(t)}isTypedArray(t){return this.util.types.isFloat32Array(t)||this.util.types.isInt32Array(t)||this.util.types.isUint8Array(t)||this.util.types.isUint8ClampedArray(t)}};L().get("IS_NODE")&&!L().get("IS_BROWSER")&&L().setPlatform("node",new Z0);function wt(r,t="float32",e){return t=t||"float32",Le(r),new le(r,t,e)}function QK(r,t){let e=C(r,"x","cast");if(!y0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&e.dtype!=="string"||t!=="string"&&e.dtype==="string")throw new Error("Only strings can be casted to strings");let n={x:e},o={dtype:t};return T.runKernel(fo,n,o)}var J=k({cast_:QK});function tj(r){let e={x:C(r,"x","clone","string_or_numeric")};return T.runKernel(go,e)}var un=k({clone_:tj});function mx(r,t=!1){console.log(r.toString(t))}L0();var ej={buffer:wt,cast:J,clone:un,print:mx};Q_(ej);function rj(r,t){let e=C(r,"a","add"),n=C(t,"b","add");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(no,o)}var K=k({add_:rj});function nj(r,t){let e=C(r,"a","floorDiv"),n=C(t,"b","floorDiv");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(fs,o)}var Qp=k({floorDiv_:nj});function oj(r,t){let e=C(r,"a","div"),n=C(t,"b","div");if([e,n]=Xt(e,n),e.dtype==="int32"&&n.dtype==="int32")return Qp(e,n);let o={a:e,b:n},s={};return T.runKernel(as,o,s)}var ut=k({div_:oj});function sj(r,t){let e=C(r,"a","mul"),n=C(t,"b","mul");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Ds,o)}var $=k({mul_:sj});function ij(r){let t=C(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return T.runKernel(Kl,e)}else{let e={x:t};return T.runKernel(Ai,e)}}var _e=k({abs_:ij});function aj(r){let e={x:C(r,"x","acos")};return T.runKernel(Go,e)}var fx=k({acos_:aj});function lj(r){let e={x:C(r,"x","acosh")};return T.runKernel(Wo,e)}var dx=k({acosh_:lj});function uj(r){_(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),_(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>C(o,`tensors${s}`,"addN")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(o=>{if(!sn(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return T.runKernel(Uo,n)}var EE=k({addN_:uj});function cj(r,t=null,e=!1){let o={x:C(r,"x","all","bool")},s={axis:t,keepDims:e};return T.runKernel(Ea,o,s)}var tm=k({all_:cj});function pj(r,t=null,e=!1){let o={x:C(r,"x","any","bool")},s={axis:t,keepDims:e};return T.runKernel(Aa,o,s)}var cc=k({any_:pj});function mj(r,t=0){let n={x:C(r,"x","argMax")},o={axis:t};return T.runKernel(Di,n,o)}var ra=k({argMax_:mj});function fj(r,t=0){let n={x:C(r,"x","argMin")},o={axis:t};return T.runKernel($i,n,o)}var hx=k({argMin_:fj});function dj(r){let e={x:C(r,"x","asin")};return T.runKernel(Ho,e)}var gx=k({asin_:dj});function hj(r){let e={x:C(r,"x","asinh")};return T.runKernel(qo,e)}var xx=k({asinh_:hj});function gj(r){let e={x:C(r,"x","atan")};return T.runKernel(Ko,e)}var yx=k({atan_:gj});function xj(r,t){let e=C(r,"a","atan2"),n=C(t,"b","atan2");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(Xo,o)}var bx=k({atan2_:xj});function yj(r){let e={x:C(r,"x","atanh")};return T.runKernel(jo,e)}var wx=k({atanh_:yj});function bj(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=DE(o);return pc(r,a,e,s,n,null,null,u)}function Q0(r,t,e,n,o,s,i="channelsLast"){let[a,u]=ch(t),l;if(i==="channelsLast")l=[a,u,r[3],r[3]];else if(i==="channelsFirst")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return pc(r,l,e,n,o,s,!1,i)}function wj(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=J0(t),c,p;if(i==="NDHWC")p="channelsLast",c=[a,u,l,r[4],r[4]];else if(i==="NCDHW")p="channelsFirst",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return AE(r,c,e,n,o,!1,p,s)}function pc(r,t,e,n,o,s,i=!1,a="channelsLast"){let[u,l,c,p]=[-1,-1,-1,-1];if(a==="channelsLast")[u,l,c,p]=r;else if(a==="channelsFirst")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=ch(e),[x,b]=ch(n),w=em(m,x),I=em(f,b),{padInfo:N,outHeight:E,outWidth:A}=vj(o,l,c,h,g,w,I,s,a),D=i?d*p:d,F;return a==="channelsFirst"?F=[u,D,E,A]:a==="channelsLast"&&(F=[u,E,A,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:D,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:I,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function AE(r,t,e,n,o,s=!1,i="channelsLast",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[u,l,c,p,m]=r;else if(i==="channelsFirst")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=J0(e),[I,N,E]=J0(n),A=em(f,I),D=em(d,N),F=em(h,E),{padInfo:M,outDepth:V,outHeight:G,outWidth:W}=Sj(o,l,c,p,x,b,w,A,D,F,a),q=s?g*m:g,H;return i==="channelsFirst"?H=[u,q,V,G,W]:i==="channelsLast"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:M,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function Ij(r,t,e,n,o){n==null&&(n=tN(r,t,e));let s=r[0],i=r[1],a=ph((s-t+2*n)/e+1,o),u=ph((i-t+2*n)/e+1,o);return[a,u]}function Cj(r,t,e,n,o,s){o==null&&(o=tN(r,t[0],n[0]));let i=[0,0,0,e];for(let a=0;a<3;a++)r[a]+2*o>=t[a]&&(i[a]=ph((r[a]-t[a]+2*o)/n[a]+1,s));return i}function tN(r,t,e,n=1){let o=em(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function ch(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function J0(r){return typeof r=="number"?[r,r,r]:r}function em(r,t){return t<=1?r:r+(r-1)*(t-1)}function vj(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r=="number"){l={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=Ij([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")l={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r=="object"){let m=u==="channelsLast"?r[1][0]:r[2][0],f=u==="channelsLast"?r[1][1]:r[2][1],d=u==="channelsLast"?r[2][0]:r[3][0],h=u==="channelsLast"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=ph((t-s+m+f)/n+1,a),p=ph((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function Sj(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(r==="valid"&&(r=0),typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=Cj([t,e,n,1],[a,u,l],1,[o,s,i],r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,I=Math.floor(g/2),N=g-I,E=Math.floor(x/2),A=x-E;p={top:I,bottom:N,left:E,right:A,front:b,back:w,type:"SAME"}}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function ph(r,t){if(!t)return Math.trunc(r);switch(t){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function io(r){let[t,e,n]=ch(r);return t===1&&e===1&&n===1}function Dr(r,t){return io(r)||io(t)}function na(r){return ch(r).every(t=>t>0)}function DE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Se(r,t,e){if(e!=null){if(typeof t=="string")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t=="number")_(_a(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t=="object")t.forEach(n=>{n.forEach(o=>{_(_a(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function Nj(r,t){let n={x:C(r,"x","reshape","string_or_numeric")},o={shape:t};return T.runKernel(Gi,n,o)}var R=k({reshape_:Nj});function kj(r,t,e,n,o){let s=C(r,"x","avgPool","float32"),i=1;_(Dr(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Se("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Yo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var xu=k({avgPool_:kj});function Tj(r,t,e,n,o,s="NDHWC"){let i=C(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),_(typeof e=="number"&&e>0||Array.isArray(e)&&e[0]>0&&e[1]>0&&e[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${e}'`),Se("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Ri,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Ix=k({avgPool3d_:Tj});function _j(r,t=0){_(r.length>=1,()=>"Pass at least one tensor to concat");let e=fl(r,"tensors","concat","string_or_numeric");if(e[0].dtype==="complex64"&&e.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),e.length===1)return un(e[0]);let n=e,o={axis:t};return T.runKernel(Oi,n,o)}var ie=k({concat_:_j});function Ej(r,t,e=!1,n=!1){let o=C(r,"a","matMul"),s=C(t,"b","matMul");[o,s]=Xt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(Zo,i,a)}var Bt=k({matMul_:Ej});function Aj(r){let e={x:C(r,"x","sigmoid","float32")};return T.runKernel(Xs,e)}var en=k({sigmoid_:Aj});function Dj(r,t,e){let n=C(r,"x","slice","string_or_numeric");if(n.rank===0)throw new Error("Slicing scalar is not possible");let o={x:n},s={begin:t,size:e};return T.runKernel(Ui,o,s)}var Ot=k({slice_:Dj});function $j(r){let e={x:C(r,"x","tanh","float32")};return T.runKernel(ni,e)}var li=k({tanh_:$j});function Rj(r,t,e,n,o,s){let i=C(r,"forgetBias","basicLSTMCell"),a=C(t,"lstmKernel","basicLSTMCell"),u=C(e,"lstmBias","basicLSTMCell"),l=C(n,"data","basicLSTMCell"),c=C(o,"c","basicLSTMCell"),p=C(s,"h","basicLSTMCell"),m=ie([l,p],1),f=Bt(m,a),d=K(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),I=Ot(d,[0,g*2],x),N=Ot(d,[0,g*3],x),E=K($(en(b),li(w)),$(c,en(K(i,I)))),A=$(li(E),en(N));return[E,A]}var $E=k({basicLSTMCell_:Rj});function Fj(r,t,e){let n=C(r,"x","batchToSpaceND"),o=t.reduce((a,u)=>a*u);_(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),_(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),_(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return T.runKernel(Fi,s,i)}var yu=k({batchToSpaceND_:Fj});function RE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function Oj(r,t,e,n,o,s){s==null&&(s=.001);let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;n!=null&&(c=C(n,"offset","batchNorm")),_(a.rank===u.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),_(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),_(l==null||a.rank===l.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:RE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ds,m,f);return R(d,i.shape)}var oa=k({batchNorm_:Oj});function Mj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(n,"offset","batchNorm")),_(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),_(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),_(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Cx=k({batchNorm2d_:Mj});function Pj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(n,"offset","batchNorm")),_(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),_(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),_(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var vx=k({batchNorm3d_:Pj});function Lj(r,t,e,n,o,s){let i=C(r,"x","batchNorm"),a=C(t,"mean","batchNorm"),u=C(e,"variance","batchNorm"),l;o!=null&&(l=C(o,"scale","batchNorm"));let c;return n!=null&&(c=C(n,"offset","batchNorm")),_(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),_(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),_(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.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}.`),oa(i,a,u,c,l,s)}var Sx=k({batchNorm4d_:Lj});function zj(r,t,e){let n=C(r,"x","bincount"),o=C(t,"weights","bincount");_(n.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return T.runKernel(Da,s,i)}var Nx=k({bincount_:zj});function Bj(r,t){let e=C(r,"x","bitwiseAnd"),n=C(t,"y","bitwiseAnd");if(!sn(e.shape,n.shape))throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${n.shape}`);if(e.dtype!=="int32"||n.dtype!=="int32")throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${n.dtype}`);let o={a:e,b:n};return T.runKernel($a,o)}var FE=k({bitwiseAnd_:Bj});function Vj(r,t){let e=C(r,"s0","broadcastArgs","int32"),n=C(t,"s1","broadcastArgs","int32");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return T.runKernel(ql,o)}var OE=k({broadcastArgs_:Vj});function Gj(r,t){let e=C(r,"broadcastTo","x"),n=e.shape;if(Le(t),t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return un(e);let a={x:e},u={reps:s};return T.runKernel(oo,a,u)}var sa=k({broadcastTo_:Gj});function Wj(r){let e={x:C(r,"x","ceil","float32")};return T.runKernel(Jo,e)}var kx=k({ceil_:Wj});function Co(r,t,e){Le(r),e=e||Wl(t);let n={shape:r,value:t,dtype:e};return T.runKernel(Jl,{},n)}function Uj(r,t,e){let n=C(r,"x","clipByValue");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return Co(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(ho,o,s)}var vr=k({clipByValue_:Uj});function Hj(r){return ie(r,0)}var Tx=k({concat1d_:Hj});function qj(r,t){return ie(r,t)}var _x=k({concat2d_:qj});function Kj(r,t){return ie(r,t)}var Ex=k({concat3d_:Kj});function jj(r,t){return ie(r,t)}var Ax=k({concat4d_:jj});function Xj(r,t,e,n,o="NHWC",s=[1,1],i){let a=C(r,"x","conv2d","float32"),u=C(t,"filter","conv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Se("conv2d",n,i);let p=o==="NHWC"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(na(s),()=>"Error in conv2D: Dilated rates should be larger than 0."),_(na(e),()=>"Error in conv2D: Strides should be larger than 0.");let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(Qo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Nn=k({conv2d_:Xj});function Yj(r,t,e,n,o="NWC",s=1,i){let a=C(r,"x","conv1d"),u=C(t,"filter","conv1d"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),_(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),_(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Se("conv1d",n,i),_(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),_(Dr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(na(s),()=>"Error in conv1D: Dilated rates should be larger than 0."),_(na(e),()=>"Error in conv1D: Stride should be larger than 0."),_(o==="NWC",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Nn(m,p,[1,e],n,"NHWC",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var rm=k({conv1d_:Yj});function Zj(r,t,e,n,o,s="NHWC",i){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),_(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),_(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),_(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s==="NHWC"?a[3]:a[1],p=s==="NHWC"?u.shape[3]:u.shape[1];_(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),_(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Se("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=T.runKernel(ts,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var nm=k({conv2DBackpropInput_:Zj});function Jj(r,t,e,n,o,s){let i=C(r,"x","conv2dTranspose"),a=C(t,"filter","conv2dTranspose");return nm(e,i,a,n,o,"NHWC",s)}var om=k({conv2dTranspose_:Jj});function Qj(r,t,e,n,o="NDHWC",s=[1,1,1]){let i=C(r,"x","conv3d"),a=C(t,"filter","conv3d"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),_(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),_(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),_(Dr(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(o==="NDHWC",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`),_(na(s),()=>"Error in conv3D: Dilated rates should be larger than 0."),_(na(e),()=>"Error in conv3D: Strides should be larger than 0.");let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=T.runKernel(es,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Dx=k({conv3d_:Qj});function t6(r,t,e,n,o){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=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}`),_(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),_(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),_(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=T.runKernel(Fa,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var $x=k({conv3DBackpropInput_:t6});function e6(r,t,e,n,o){let s=C(r,"x","conv3dTranspose"),i=C(t,"filter","conv3dTranspose");return $x(e,s,i,n,o)}var Rx=k({conv3dTranspose_:e6});function r6(r){let e={x:C(r,"x","cos","float32")};return T.runKernel(rs,e)}var bu=k({cos_:r6});function n6(r){let e={x:C(r,"x","cosh","float32")};return T.runKernel(ns,e)}var sm=k({cosh_:n6});function o6(r,t=0,e=!1,n=!1){let s={x:C(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Oa,s,i)}var mc=k({cumprod_:o6});function s6(r,t=0,e=!1,n=!1){let s={x:C(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(os,s,i)}var im=k({cumsum_:s6});function i6(r,t,e,n=!1){let o=C(r,"x","denseBincount"),s=C(t,"weights","denseBincount");_(o.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),_(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return T.runKernel(jl,i,a)}var mh=k({denseBincount_:i6});function a6(r,t,e="NHWC"){let n=C(r,"x","depthToSpace","float32"),o=e==="NHWC"?n.shape[1]:n.shape[2],s=e==="NHWC"?n.shape[2]:n.shape[3],i=e==="NHWC"?n.shape[3]:n.shape[1];_(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),_(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${o} and ${t} for depthToSpace with input shape ${n.shape}`),_(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${n.shape}`),_(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return T.runKernel(Pa,a,u)}var Rx=k({depthToSpace_:o6});function s6(r,t,e,n,o="NHWC",s=[1,1],i){let a=C(r,"x","depthwiseConv2d","float32"),u=C(t,"filter","depthwiseConv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o==="NHWC"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),ve("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ss,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ia=k({depthwiseConv2d_:s6});function i6(r){let e={x:C(r,"x","diag")};return T.runKernel(Xl,e)}var FE=k({diag_:i6});function a6(r,t,e,n,o=[1,1],s="NHWC"){let i=C(r,"x","dilation2d"),a=C(t,"filter","dilation2d");_(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),_(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),_(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(is,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Fx=k({dilation2d_:a6});var Ur={};Kt(Ur,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>OE,getReductionAxes:()=>be});function OE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function be(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(_(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Bt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var Mx=k({dot_:m6});function f6(r,...t){let e=t.map((o,s)=>C(o,`tensors${s}`,"einsum")),n={equation:r};return T.runKernel(Fp,e,n)}var wu=k({einsum_:f6});function d6(r){let e={x:C(r,"x","elu","float32")};return T.runKernel(ls,e)}var aa=k({elu_:d6});function h6(r,t){let e=C(r,"x","ensureShape","string_or_numeric");if(!m0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var ME=k({ensureShape_:h6});function g6(r){let t=C(r,"x","erf");_(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=J(t,"float32"));let e={x:t};return T.runKernel(us,e)}var Px=k({erf_:g6});function Q0(r,t){for(let e=0;er[s]);return[e,o]}function vo(r,t){let e=t.map(n=>1);return PE(r,e,t)}function x6(r,t,e){_(Q0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function eN(r,t){if(Q0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function mh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function y6(r,t){let e=[];for(let n=t-r;n"Axis must be <= rank of the tensor");let n={input:e},o={dim:t};return T.runKernel(Oi,n,o)}var je=k({expandDims_:_6});function E6(r){let e={x:C(r,"x","expm1")};return T.runKernel(ps,e)}var zx=k({expm1_:E6});function A6(r,t){let e=C(r,"x","tile","string_or_numeric");_(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return T.runKernel(oo,n,o)}var Rr=k({tile_:A6});function D6(r,t,e,n="float32"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),_(_a(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=T.runKernel(Cs,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Wx=k({localResponseNormalization_:W6});function U6(r){let e={x:C(r,"x","log","float32")};return T.runKernel(ws,e)}var Nr=k({log_:U6});function H6(r){let e={x:C(r,"x","log1p")};return T.runKernel(Is,e)}var vu=k({log1p_:H6});function q6(r){return _(Ti(r),()=>"The f passed in grad(f) must be a function"),(t,e)=>{let n=C(t,"x","tf.grad","string_or_numeric"),o=e!=null?C(e,"dy","tf.grad"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Hx(i),i[0]})}}function K6(r){return _(Ti(r),()=>"The f passed in grads(f) must be a function"),(t,e)=>{_(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=fl(t,"args","tf.grads","string_or_numeric"),o=e!=null?C(e,"dy","tf.grads"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Hx(i),i})}}function j6(r){return _(Ti(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{_(t instanceof Lt,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),_(e==null||e instanceof Lt,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return Hx(n),{grad:n[0],value:o}}}function X6(r){return _(Ti(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Lt),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),_(e==null||e instanceof Lt,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=T.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Hx(n.grads),n}}function Ux(r,t){_(Ti(r),()=>"The f passed in variableGrads(f) must be a function"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof ml),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),_(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=T.gradients(r,t,null,s);_(a.some(l=>l!=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 u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function pn(r){return T.customGrad(r)}function Hx(r){if(r.filter(e=>e==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 Y6(r){let e={x:C(r,"x","neg")};return T.runKernel(Li,e)}var Ut=k({neg_:Y6});function Z6(r){let e={x:C(r,"x","softplus")};return T.runKernel(Ys,e)}var li=k({softplus_:Z6});function J6(r){let t=C(r,"x","logSigmoid");return pn(n=>({value:Ut(li(Ut(n))),gradFunc:i=>$(i,Qr(Ut(n)))}))(t)}var qx=k({logSigmoid_:J6});function Q6(r,t){let e=C(r,"a","sub"),n=C(t,"b","sub");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(ei,o)}var at=k({sub_:Q6});function tX(r,t=-1){let e=C(r,"logits","logSoftmax");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return pn((o,s)=>{let a=Sr(o,t,!0),u=at(o,a),l=at(J(u,"float32"),Nr(mt(Ke(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Ke(f);return at(p,$(mt(p,t,d),h))}}})(e)}var am=k({logSoftmax_:tX});function eX(r,t=null,e=!1){let n=C(r,"x","logSumExp"),o=fr(t,n.shape),s=Sr(n,o,!0),i=at(n,s),a=Ke(i),u=mt(a,o),l=Nr(u),c=X(R(s,l.shape),l);if(e){let p=vo(c.shape,o);return R(c,p)}return c}var Su=k({logSumExp_:eX});function rX(r,t){let e=C(r,"a","logicalAnd","bool"),n=C(t,"b","logicalAnd","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(qa,o)}var Fr=k({logicalAnd_:rX});function nX(r){let e={x:C(r,"x","logicalNot","bool")};return T.runKernel(Ka,e)}var Nu=k({logicalNot_:nX});function oX(r,t){let e=C(r,"a","logicalOr","bool"),n=C(t,"b","logicalOr","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ja,o)}var lm=k({logicalOr_:oX});function sX(r,t){let e=C(r,"a","logicalXor","bool"),n=C(t,"b","logicalXor","bool");return Mt(e.shape,n.shape),Fr(lm(r,t),Nu(Fr(r,t)))}var Kx=k({logicalXor_:sX});var jx=2147483648;function iX(r,t,e="left"){let n=C(r,"sortedSequence","searchSorted"),o=C(t,"values","searchSorted"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(a.shape[0]!==u.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(jt(u.shape)>=jx)throw new Error(`values tensor size must less than ${jx}`);if(a.shape[1]>=jx)throw new Error(`trailing dim_size must less than ${jx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(sl,l,c)}var fh=k({searchSorted_:iX});function BE(r,t){return fh(r,t,"left")}function aX(r,t,e,n,o){let s=C(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),_(Dr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),ve("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Ns,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ku=k({maxPool_:aX});function lX(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=C(r,"x","maxPool3d"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),ve("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Pi,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Xx=k({maxPool3d_:lX});function uX(r,t,e,n,o=!1){let i={x:C(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(eu,i,a);return{result:u[0],indexes:u[1]}}var VE=k({maxPoolWithArgmax_:uX});function cX(r,t){let e=C(r,"a","maximum"),n=C(t,"b","maximum");[e,n]=Xt(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ss,o)}var kn=k({maximum_:cX});function pX(r,t=null,e=!1){let o={x:C(r,"x","mean")},s={axis:t,keepDims:e};return T.runKernel(ks,o,s)}var Ne=k({mean_:pX});function ke(r,t="float32"){if(Le(r),t==="complex64"){let n=ke(r,"float32"),o=ke(r,"float32");return Sn(n,o)}let e=Ep(jt(r),t);return T.makeTensor(e,r,t)}function ar(r,t="float32"){if(Le(r),t==="complex64"){let n=ar(r,"float32"),o=ke(r,"float32");return Sn(n,o)}let e=Xd(jt(r),t);return T.makeTensor(e,r,t)}function GE(r,t,{indexing:e="xy"}={}){if(e!=="xy"&&e!=="ij")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=C(r,"x","meshgrid",r instanceof Lt?r.dtype:"float32");if(t===void 0)return[n];let o=C(t,"y","meshgrid",t instanceof Lt?t.dtype:"float32"),s=jt(n.shape),i=jt(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(ar([i,1],n.dtype),n),Bt(o,ar([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,ar([1,i],n.dtype)),Bt(ar([s,1],o.dtype),o)])}function mX(r,t){let e=C(r,"a","minimum"),n=C(t,"b","minimum");[e,n]=Xt(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(_s,o)}var lo=k({minimum_:mX});function fX(r,t,e){_(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=C(r,"x","mirrorPad");if(n.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");_(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e==="reflect"?1:0;for(let a=0;a"Invalid number of paddings. Must be length of 2 each."),_(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return T.runKernel(Es,i,s)}var Yx=k({mirrorPad_:fX});function dX(r,t){let e=C(r,"a","mod"),n=C(t,"b","mod");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(As,o)}var Zx=k({mod_:dX});function hX(r,t=null,e=!1){r=C(r,"x","moments");let n=fr(t,r.shape),o=Ne(r,n,e),s=o.shape;e||(s=vo(o.shape,n));let i=Wt(at(J(r,"float32"),R(o,s))),a=Ne(i,n,e);return{mean:o,variance:a}}var dc=k({moments_:hX});function gX(r,t,e,n){let o=C(t,"data","multiRNNCell"),s=fl(e,"c","multiRNNCell"),i=fl(n,"h","multiRNNCell"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=T.runKernel(Ya,u,l);return i===1?R(c,[c.size]):c}var UE=k({multinomial_:xX});function yX(r,t){let e=C(r,"a","notEqual","string_or_numeric"),n=C(t,"b","notEqual","string_or_numeric");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Za,o)}var ui=k({notEqual_:yX});function bX(r,t,e=1,n=0,o="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:C(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return T.runKernel($s,i,a)}var ca=k({oneHot_:bX});function wX(r){let e={x:C(r,"x","onesLike")};return T.runKernel(zi,e)}var wr=k({onesLike_:wX});function IX(r,t){let e=C(r,"v1","outerProduct"),n=C(t,"v2","outerProduct");_(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Bt(o,s)}var HE=k({outerProduct_:IX});function CX(r,t,e=0){let n=C(r,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let o={paddings:t,constantValue:e},s={x:n};return T.runKernel(Rs,s,o)}var mn=k({pad_:CX});function vX(r,t,e=0){return _(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),mn(r,[t],e)}var qE=k({pad1d_:vX});function SX(r,t,e=0){return _(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),mn(r,t,e)}var KE=k({pad2d_:SX});function NX(r,t,e=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."),mn(r,t,e)}var jE=k({pad3d_:NX});function kX(r,t,e=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."),mn(r,t,e)}var XE=k({pad4d_:kX});function TX(r,t,e){let n=C(r,"x","spaceToBatchND");_(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),_(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),_(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return T.runKernel(Ui,o,s)}var Tu=k({spaceToBatchND_:TX});function _X(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=C(r,"x","maxPool"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(Dr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Z0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=AX([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=EX([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:Tu(u,p,d),w=(e==="avg"?()=>xu(x,t,s,g,i):()=>ku(x,t,s,g,i))(),I=f?w:yu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function EX(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function AX(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var Jx=k({pool_:_X});function DX(r,t){let e=C(r,"x","prelu"),n=C(t,"alpha","prelu"),o={x:e,alpha:n};return T.runKernel(Os,o)}var _u=k({prelu_:DX});function $X(r,t=null,e=!1){let n=C(r,"x","prod");n.dtype==="bool"&&(n=J(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Ms,o,s)}var Qx=k({prod_:$X});function RX(r,t,e,n){let o=r.map((c,p)=>C(c,`tensors${p}`,"raggedGather","int32")),s=C(t,"paramsDenseValues","raggedGather"),i=C(e,"indices","raggedGather","int32"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=T.runKernel(Lp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var YE=k({raggedGather_:RX});function FX(r,t,e){let n=C(r,"starts","raggedRange"),o=C(t,"limits","raggedRange",n.dtype),s=C(e,"deltas","raggedRange",n.dtype),i={starts:n,limits:o,deltas:s},a=T.runKernel(zp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var ZE=k({raggedRange_:FX});function OX(r,t,e,n,o){let s=C(r,"shape","raggedTensorToTensor","int32"),i=C(t,"values","raggedTensorToTensor"),a=C(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>C(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return T.runKernel(Bp,l,c)}var JE=k({raggedTensorToTensor_:OX});function MX(r,t,e){Le(r);let n=jt(r),o=null;if(e==null||e==="float32")o=new Float32Array(n);else if(e==="int32")o=new Int32Array(n);else if(e==="bool")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;sgA,createVideoElement:()=>XX,encodeStrings:()=>yA,expectArrayBuffersEqual:()=>jX,expectArraysClose:()=>UX,expectArraysEqual:()=>qX,expectNumbersClose:()=>xA,expectPromiseToFail:()=>HX,expectValuesInRange:()=>KX,play:()=>YX,testEpsilon:()=>ey});var WX=.001,gA=.1;function UX(r,t,e){return e==null&&(e=ey()),uN(r,t,(n,o)=>cN(n,o,e))}function ey(){return T.backend.floatPrecision()===32?WX:gA}function uN(r,t,e){let n=!0;if((sr(r)||sr(t))&&(n=!1),sr(r)&&sr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Gr(r),a=Gr(t);if(!on(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=sr(r)?r:si(r),s=sr(t)?t:si(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}. + ${n.shape}`),_(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return T.runKernel(Pa,a,u)}var Fx=k({depthToSpace_:a6});function l6(r,t,e,n,o="NHWC",s=[1,1],i){let a=C(r,"x","depthwiseConv2d","float32"),u=C(t,"filter","depthwiseConv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o==="NHWC"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Se("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=T.runKernel(ss,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ia=k({depthwiseConv2d_:l6});function u6(r){let e={x:C(r,"x","diag")};return T.runKernel(Xl,e)}var ME=k({diag_:u6});function c6(r,t,e,n,o=[1,1],s="NHWC"){let i=C(r,"x","dilation2d"),a=C(t,"filter","dilation2d");_(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),_(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),_(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0),_(u.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${u.shape[3]} vs ${a.shape[2]}`);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=T.runKernel(is,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ox=k({dilation2d_:c6});var Hr={};Kt(Hr,{assertAndGetBroadcastShape:()=>Mt,getBroadcastDims:()=>PE,getReductionAxes:()=>we});function PE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function we(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Mt(r,t){let e=Math.max(r.length,t.length),n=new Array(e);for(let o=0;o`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(_(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Bt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Bt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Bt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Bt(e,i)}}var Px=k({dot_:h6});function g6(r,...t){let e=t.map((o,s)=>C(o,`tensors${s}`,"einsum")),n={equation:r};return T.runKernel(Fp,e,n)}var wu=k({einsum_:g6});function x6(r){let e={x:C(r,"x","elu","float32")};return T.runKernel(ls,e)}var aa=k({elu_:x6});function y6(r,t){let e=C(r,"x","ensureShape","string_or_numeric");if(!d0(e.shape,t))throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t}`);return r}var LE=k({ensureShape_:y6});function b6(r){let t=C(r,"x","erf");_(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=J(t,"float32"));let e={x:t};return T.runKernel(us,e)}var am=k({erf_:b6});function eN(r,t){for(let e=0;er[s]);return[e,o]}function vo(r,t){let e=t.map(n=>1);return zE(r,e,t)}function w6(r,t,e){_(eN(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function nN(r,t){if(eN(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function fh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function I6(r,t){let e=[];for(let n=t-r;n"Axis must be <= rank of the tensor");let n={input:e},o={dim:t};return T.runKernel(Mi,n,o)}var je=k({expandDims_:D6});function $6(r){let e={x:C(r,"x","expm1")};return T.runKernel(ps,e)}var zx=k({expm1_:$6});function R6(r,t){let e=C(r,"x","tile","string_or_numeric");_(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return T.runKernel(oo,n,o)}var Rr=k({tile_:R6});function F6(r,t,e,n="float32"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),_(_a(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=T.runKernel(Cs,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Wx=k({localResponseNormalization_:q6});function K6(r){let e={x:C(r,"x","log","float32")};return T.runKernel(ws,e)}var Nr=k({log_:K6});function j6(r){let e={x:C(r,"x","log1p")};return T.runKernel(Is,e)}var vu=k({log1p_:j6});function X6(r){return _(_i(r),()=>"The f passed in grad(f) must be a function"),(t,e)=>{let n=C(t,"x","tf.grad","string_or_numeric"),o=e!=null?C(e,"dy","tf.grad"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Hx(i),i[0]})}}function Y6(r){return _(_i(r),()=>"The f passed in grads(f) must be a function"),(t,e)=>{_(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=fl(t,"args","tf.grads","string_or_numeric"),o=e!=null?C(e,"dy","tf.grads"):null;return T.tidy(()=>{let{value:s,grads:i}=T.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Hx(i),i})}}function Z6(r){return _(_i(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{_(t instanceof Lt,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),_(e==null||e instanceof Lt,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=T.gradients(()=>r(t),[t],e);return Hx(n),{grad:n[0],value:o}}}function J6(r){return _(_i(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Lt),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),_(e==null||e instanceof Lt,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=T.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Hx(n.grads),n}}function Ux(r,t){_(_i(r),()=>"The f passed in variableGrads(f) must be a function"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof ml),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),_(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=T.gradients(r,t,null,s);_(a.some(l=>l!=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 u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function pn(r){return T.customGrad(r)}function Hx(r){if(r.filter(e=>e==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 Q6(r){let e={x:C(r,"x","neg")};return T.runKernel(zi,e)}var Ut=k({neg_:Q6});function tX(r){let e={x:C(r,"x","softplus")};return T.runKernel(Ys,e)}var ui=k({softplus_:tX});function eX(r){let t=C(r,"x","logSigmoid");return pn(n=>({value:Ut(ui(Ut(n))),gradFunc:i=>$(i,en(Ut(n)))}))(t)}var qx=k({logSigmoid_:eX});function rX(r,t){let e=C(r,"a","sub"),n=C(t,"b","sub");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(ei,o)}var at=k({sub_:rX});function nX(r,t=-1){let e=C(r,"logits","logSoftmax");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return pn((o,s)=>{let a=Sr(o,t,!0),u=at(o,a),l=at(J(u,"float32"),Nr(mt(Ke(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Ke(f);return at(p,$(mt(p,t,d),h))}}})(e)}var lm=k({logSoftmax_:nX});function oX(r,t=null,e=!1){let n=C(r,"x","logSumExp"),o=fr(t,n.shape),s=Sr(n,o,!0),i=at(n,s),a=Ke(i),u=mt(a,o),l=Nr(u),c=K(R(s,l.shape),l);if(e){let p=vo(c.shape,o);return R(c,p)}return c}var Su=k({logSumExp_:oX});function sX(r,t){let e=C(r,"a","logicalAnd","bool"),n=C(t,"b","logicalAnd","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(qa,o)}var Fr=k({logicalAnd_:sX});function iX(r){let e={x:C(r,"x","logicalNot","bool")};return T.runKernel(Ka,e)}var Nu=k({logicalNot_:iX});function aX(r,t){let e=C(r,"a","logicalOr","bool"),n=C(t,"b","logicalOr","bool");Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ja,o)}var um=k({logicalOr_:aX});function lX(r,t){let e=C(r,"a","logicalXor","bool"),n=C(t,"b","logicalXor","bool");return Mt(e.shape,n.shape),Fr(um(r,t),Nu(Fr(r,t)))}var Kx=k({logicalXor_:lX});var jx=2147483648;function uX(r,t,e="left"){let n=C(r,"sortedSequence","searchSorted"),o=C(t,"values","searchSorted"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(a.shape[0]!==u.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(jt(u.shape)>=jx)throw new Error(`values tensor size must less than ${jx}`);if(a.shape[1]>=jx)throw new Error(`trailing dim_size must less than ${jx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(sl,l,c)}var dh=k({searchSorted_:uX});function GE(r,t){return dh(r,t,"left")}function cX(r,t,e,n,o){let s=C(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),_(Dr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Se("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=T.runKernel(Ns,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ku=k({maxPool_:cX});function pX(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=C(r,"x","maxPool3d"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Se("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=T.runKernel(Li,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Xx=k({maxPool3d_:pX});function mX(r,t,e,n,o=!1){let i={x:C(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(eu,i,a);return{result:u[0],indexes:u[1]}}var WE=k({maxPoolWithArgmax_:mX});function fX(r,t){let e=C(r,"a","maximum"),n=C(t,"b","maximum");[e,n]=Xt(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Ss,o)}var kn=k({maximum_:fX});function dX(r,t=null,e=!1){let o={x:C(r,"x","mean")},s={axis:t,keepDims:e};return T.runKernel(ks,o,s)}var Ne=k({mean_:dX});function ke(r,t="float32"){if(Le(r),t==="complex64"){let n=ke(r,"float32"),o=ke(r,"float32");return Sn(n,o)}let e=Ep(jt(r),t);return T.makeTensor(e,r,t)}function ar(r,t="float32"){if(Le(r),t==="complex64"){let n=ar(r,"float32"),o=ke(r,"float32");return Sn(n,o)}let e=Yd(jt(r),t);return T.makeTensor(e,r,t)}function UE(r,t,{indexing:e="xy"}={}){if(e!=="xy"&&e!=="ij")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=C(r,"x","meshgrid",r instanceof Lt?r.dtype:"float32");if(t===void 0)return[n];let o=C(t,"y","meshgrid",t instanceof Lt?t.dtype:"float32"),s=jt(n.shape),i=jt(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Bt(ar([i,1],n.dtype),n),Bt(o,ar([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Bt(n,ar([1,i],n.dtype)),Bt(ar([s,1],o.dtype),o)])}function hX(r,t){let e=C(r,"a","minimum"),n=C(t,"b","minimum");[e,n]=Xt(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(_s,o)}var lo=k({minimum_:hX});function gX(r,t,e){_(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=C(r,"x","mirrorPad");if(n.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");_(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e==="reflect"?1:0;for(let a=0;a"Invalid number of paddings. Must be length of 2 each."),_(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return T.runKernel(Es,i,s)}var Yx=k({mirrorPad_:gX});function xX(r,t){let e=C(r,"a","mod"),n=C(t,"b","mod");[e,n]=Xt(e,n);let o={a:e,b:n};return T.runKernel(As,o)}var Zx=k({mod_:xX});function yX(r,t=null,e=!1){r=C(r,"x","moments");let n=fr(t,r.shape),o=Ne(r,n,e),s=o.shape;e||(s=vo(o.shape,n));let i=Wt(at(J(r,"float32"),R(o,s))),a=Ne(i,n,e);return{mean:o,variance:a}}var dc=k({moments_:yX});function bX(r,t,e,n){let o=C(t,"data","multiRNNCell"),s=fl(e,"c","multiRNNCell"),i=fl(n,"h","multiRNNCell"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=T.runKernel(Ya,u,l);return i===1?R(c,[c.size]):c}var qE=k({multinomial_:wX});function IX(r,t){let e=C(r,"a","notEqual","string_or_numeric"),n=C(t,"b","notEqual","string_or_numeric");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Za,o)}var ci=k({notEqual_:IX});function CX(r,t,e=1,n=0,o="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:C(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return T.runKernel($s,i,a)}var ca=k({oneHot_:CX});function vX(r){let e={x:C(r,"x","onesLike")};return T.runKernel(Bi,e)}var wr=k({onesLike_:vX});function SX(r,t){let e=C(r,"v1","outerProduct"),n=C(t,"v2","outerProduct");_(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Bt(o,s)}var KE=k({outerProduct_:SX});function NX(r,t,e=0){let n=C(r,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let o={paddings:t,constantValue:e},s={x:n};return T.runKernel(Rs,s,o)}var mn=k({pad_:NX});function kX(r,t,e=0){return _(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),mn(r,[t],e)}var jE=k({pad1d_:kX});function TX(r,t,e=0){return _(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),mn(r,t,e)}var XE=k({pad2d_:TX});function _X(r,t,e=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."),mn(r,t,e)}var YE=k({pad3d_:_X});function EX(r,t,e=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."),mn(r,t,e)}var ZE=k({pad4d_:EX});function AX(r,t,e){let n=C(r,"x","spaceToBatchND");_(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),_(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),_(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return T.runKernel(Hi,o,s)}var Tu=k({spaceToBatchND_:AX});function DX(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=C(r,"x","maxPool"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(Dr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Q0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=RX([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=$X([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:Tu(u,p,d),w=(e==="avg"?()=>xu(x,t,s,g,i):()=>ku(x,t,s,g,i))(),I=f?w:yu(w,p,h);return l?R(I,[I.shape[1],I.shape[2],I.shape[3]]):I}function $X(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function RX(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var Jx=k({pool_:DX});function FX(r,t){let e=C(r,"x","prelu"),n=C(t,"alpha","prelu"),o={x:e,alpha:n};return T.runKernel(Os,o)}var _u=k({prelu_:FX});function OX(r,t=null,e=!1){let n=C(r,"x","prod");n.dtype==="bool"&&(n=J(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return T.runKernel(Ms,o,s)}var Qx=k({prod_:OX});function MX(r,t,e,n){let o=r.map((c,p)=>C(c,`tensors${p}`,"raggedGather","int32")),s=C(t,"paramsDenseValues","raggedGather"),i=C(e,"indices","raggedGather","int32"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=T.runKernel(Lp,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var JE=k({raggedGather_:MX});function PX(r,t,e){let n=C(r,"starts","raggedRange"),o=C(t,"limits","raggedRange",n.dtype),s=C(e,"deltas","raggedRange",n.dtype),i={starts:n,limits:o,deltas:s},a=T.runKernel(zp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var QE=k({raggedRange_:PX});function LX(r,t,e,n,o){let s=C(r,"shape","raggedTensorToTensor","int32"),i=C(t,"values","raggedTensorToTensor"),a=C(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>C(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return T.runKernel(Bp,l,c)}var tA=k({raggedTensorToTensor_:LX});function zX(r,t,e){Le(r);let n=jt(r),o=null;if(e==null||e==="float32")o=new Float32Array(n);else if(e==="int32")o=new Int32Array(n);else if(e==="bool")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;syA,createVideoElement:()=>JX,encodeStrings:()=>wA,expectArrayBuffersEqual:()=>ZX,expectArraysClose:()=>KX,expectArraysEqual:()=>XX,expectNumbersClose:()=>bA,expectPromiseToFail:()=>jX,expectValuesInRange:()=>YX,play:()=>QX,testEpsilon:()=>ey});var qX=.001,yA=.1;function KX(r,t,e){return e==null&&(e=ey()),pN(r,t,(n,o)=>mN(n,o,e))}function ey(){return T.backend.floatPrecision()===32?qX:yA}function pN(r,t,e){let n=!0;if((sr(r)||sr(t))&&(n=!1),sr(r)&&sr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Wr(r),a=Wr(t);if(!sn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=sr(r)?r:si(r),s=sr(t)?t:si(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}. Actual: ${o}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function qX(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?uN(r,e,(n,o)=>n==o):uN(r,t,(n,o)=>cN(n,o,0))}function xA(r,t,e){if(e==null&&(e=ey()),!cN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function cN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function KX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function jX(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener("loadeddata",n=>e(t)),t.load()})}async function YX(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var gc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=oy.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype==="float32"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},ry=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=oy.alea(s.toString()),this.randn=new gc(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o=="number"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=oy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ZX(r,t,e=1,n="float32",o){if(Le(r),e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new ry(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),dr(t,0)}var vA=k({reverse1d_:a5});function l5(r,t){let e=C(r,"x","reverse");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),dr(e,t)}var SA=k({reverse2d_:l5});function u5(r,t){let e=C(r,"x","reverse");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),dr(e,t)}var NA=k({reverse3d_:u5});function c5(r,t){let e=C(r,"x","reverse");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),dr(e,t)}var kA=k({reverse4d_:c5});function p5(r){let e={x:C(r,"x","round")};return T.runKernel(Ws,e)}var cm=k({round_:p5});function m5(r){let e={x:C(r,"x","rsqrt","float32")};return T.runKernel(Us,e)}var pm=k({rsqrt_:m5});function f5(r){let e={x:C(r,"x","selu")};return T.runKernel(Hs,e)}var mm=k({selu_:f5});function d5(r,t,e,n,o,s=[1,1],i="NHWC"){let a=C(r,"x","separableConv2d"),u=C(t,"depthwiseFilter","separableConv2d"),l=C(e,"pointwiseFilter","separableConv2d"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.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}.`),_(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),_(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),_(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];_(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=ia(c,u,n,o,i,s),g=Nn(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var fm=k({separableConv2d_:d5});async function h5(r,t){let e=C(r,"x","setdiff1d"),n=C(t,"y","setdiff1d");_(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),_(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),_(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Ot(n,[t],[e])}var gm=k({slice1d_:b5});function w5(r,t,e){let n=C(r,"x","slice2d");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var hh=k({slice2d_:w5});function I5(r,t,e){let n=C(r,"x","slice3d");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var xm=k({slice3d_:I5});function C5(r,t,e){let n=C(r,"x","slice4d");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var yc=k({slice4d_:C5});function v5(r,t=-1){let e=C(r,"logits","softmax","float32");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return T.runKernel(Qs,n,o)}var Eu=k({softmax_:v5});function S5(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Op,t)}var Au=k({fft_:S5});function N5(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Mp,t)}var wl=k({ifft_:N5});function k5(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=wl(o)}else{let o=[e,2*(t-1)],s=R(bl(r),[e,t]),i=R(Iu(r),[e,t]),a=dr(Ot(s,[0,1],[e,t-2]),1),u=$(dr(Ot(i,[0,1],[e,t-2]),1),pt(-1)),l=ie([s,a],1),c=ie([i,u],1),p=R(Sn(l,c),[o[0],o[1]]);n=wl(p)}if(n=bl(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var ym=k({irfft_:k5});function T5(r,t,e=0){let o={x:C(r,"x","split")},s={numOrSizeSplits:t,axis:e};return T.runKernel(Hi,o,s)}var hr=k({split_:T5});function _5(r,t){_(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Ot(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ie([r,ke(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(Sn(o,s),[n,e]),a=Au(i),u=Math.floor(e/2)+1,l=bl(a),c=Iu(a),p=hr(l,[u,e-u],l.shape.length-1),m=hr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(Sn(p[0],m[0]),f)}var Du=k({rfft_:_5});function E5(r,t){let e=C(r,"a","squaredDifference"),n=C(t,"b","squaredDifference");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(ti,o,s)}var bm=k({squaredDifference_:E5});function A5(r,t){let e=C(r,"x","squeeze","string_or_numeric");return R(e,f0(e.shape,t).newShape)}var Wn=k({squeeze_:A5});function D5(r,t=0){let e=fl(r,"tensors","stack","string_or_numeric");_(e.length>=1,()=>"Pass at least one tensor to tf.stack"),e.length>0&&_(t<=e[0].rank,()=>"Axis must be <= rank of the tensor");let n=e,o={axis:t};return T.runKernel(Bi,n,o)}var Fe=k({stack_:D5});function $5(r,t=0){let n={x:C(r,"x","step")},o={alpha:t};return T.runKernel(xo,n,o)}var So=k({step_:$5});function R5(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:C(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return T.runKernel(ll,c,p)}var ay=k({stridedSlice_:R5});function F5(r){let e={x:C(r,"x","tan","float32")};return T.runKernel(ri,e)}var ly=k({tan_:F5});function Oe(r,t){ro(r);let e=Gr(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return an(r,null,e,t)}function ci(r,t,e){if(ro(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Gr(r,e);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return an(r,t,n,e)}function uy(r,t,e){if(ro(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Gr(r,e);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return an(r,t,n,e)}function _A(r,t,e){if(ro(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Gr(r,e);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return an(r,t,n,e)}function EA(r,t,e){if(ro(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Gr(r,e);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return an(r,t,n,e)}function AA(r,t,e){if(ro(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Gr(r,e);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,an(r,t,n,e)}var $u={};Kt($u,{calculateShapes:()=>DA,validateInput:()=>wm,validateUpdateShape:()=>pN});function pN(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;p= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=T.runKernel(ul,s,i);return{values:a,indices:u}}var cy=k({topk_:M5});function P5(r,t=0,e=1,n,o){if(Le(r),n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new gc(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=T.runKernel(cu,n,o);return{values:s,indices:i}}var py=k({unique_:L5});function z5(r,t,e){let n=C(r,"x","unsortedSegmentSum"),o=C(t,"segmentIds","unsortedSegmentSum","int32");_(_a(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(pu,s,i)}var Cm=k({unsortedSegmentSum_:z5});function B5(r,t=0){let e=C(r,"x","unstack","string_or_numeric");_(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return T.runKernel(qi,n,o)}var gr=k({unstack_:B5});function RA(r,t){return fh(r,t,"right")}function my(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function fy(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),$e(a.slice(s,s+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,");let u=1;for(let h=s;ha).reverse()),_(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{_(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype==="complex64"?B(()=>{let i=bl(n),a=Iu(n);return i=T.runKernel(so,{x:i},s),a=T.runKernel(so,{x:a},s),e&&(a=Ut(a)),Sn(i,a)}):T.runKernel(so,o,s)}var Vt=k({transpose_:U5});function H5(r,t,e,n,o=!0){let s=C(r,"v","movingAverage"),i=C(t,"x","movingAverage"),a=C(e,"decay","movingAverage");F0(s,i),_(on(s.shape,i.shape),()=>"Shape mismatch in v and x");let u=pt(1),l=at(u,a),c=$(at(i,s),l);if(o){_(n!=null,()=>"When using zeroDebias: true, step is required.");let p=C(n,"step","movingAverage");c=ct(c,at(u,un(a,p)))}return X(s,c)}var q5=k({movingAverage_:H5});function K5(r,t,e){Le(e);let n=C(r,"indices","scatterND","int32"),o=C(t,"updates","scatterND");wm(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(nl,s,i)}var j5=k({scatterND_:K5});function FA(r,t,e,n){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 o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function Y5(r,t,e,n=0){Le(e);let o=C(r,"sparseIndices","sparseToDense","int32"),s=C(t,"sparseValues","sparseToDense","string_or_numeric"),i=C(n,"defaultValue","sparseToDense",s.dtype);FA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(al,a,u)}var Z5=k({sparseToDense_:Y5});function J5(r,t){let e=C(t,"indices","gatherND","int32"),o={params:C(r,"x","gatherND","string_or_numeric"),indices:e};return T.runKernel(Va,o)}var Q5=k({gatherND_:J5});function OA(r,t){if(t==null)return r.shape.slice();if(on(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),_(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Lt?o.clone():o;let s=OA(o,e),i=1-t,a=ct(la(X(Gn(s,0,1,"float32",n),i)),i);return $(o,a)}var mN=k({dropout_:t8});function fN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function gh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),_(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=n.shape[n.shape.length-1];_(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=d0("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hMA,depthwiseConv2d:()=>PA,matMul:()=>LA});function n8(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),_(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),_(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),_(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s==="NHWC"?a.shape[3]:a.shape[1],c=s==="NHWC"?u.shape[3]:u.shape[1];_(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),_(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),ve("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Dp,p,m)}var vm=k({conv2DBackpropFilter_:n8});function bc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return $(r,So(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function wc(r,t){let e=t,n=be(r.shape,t.shape);return n.length>0&&(e=mt(e,n)),R(e,r.shape)}function Ic(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Or(r);if(t==="elu")return aa(r);if(t==="relu6")return um(r);if(t==="prelu")return _u(r,e);if(t==="leakyrelu")return Cu(r,n);if(t==="sigmoid")return Qr(r);throw new Error(`Unknown fused activation ${t}.`)}var Cc=(r,t)=>!(r>0)||t==="linear";function o8({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||"linear",Cc(T.state.gradientDepth,u)===!1){_(o==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let E=Nn(r,t,e,n,o,s,i);return a!=null&&(E=X(E,a)),Ic(E,u,l,c)}let p=C(r,"x","conv2d","float32"),m=C(t,"filter","conv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),ve("fused conv2d",n,i);let h=o==="NHWC"?f.shape[3]:f.shape[1];_(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=pc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=C(a,"bias","fused conv2d"),[x]=Xt(x,p),o==="NHWC"?Mt(g.outShape,x.shape):(_(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),_(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let E=l.shape;if(_(E.length<=1||E.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${E.length}.`),E.length===1)_(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=C(l,"prelu weights","fused conv2d")}let w=(E,A)=>{_(o==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[D,F,M,V]=A,G=bc(E,M,u);_(io(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=nm(F.shape,G,D,e,n),q=vm(F,G,D.shape,e,n),H=[W,q];if(V!=null){let K=wc(V,G);H.push(K)}return H},I={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((A,D,F)=>{let M=T.runKernel(Xi,I,N);return F([D,A,M]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m):pn((A,D,F,M)=>{let V=T.runKernel(Xi,I,N);return M([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var MA=k({fusedConv2d_:o8});function s8(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return T.runKernel($p,l,c)}var hy=k({depthwiseConv2dNativeBackpropFilter_:s8});function i8(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=T.runKernel(Rp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var gy=k({depthwiseConv2dNativeBackpropInput_:i8});function a8({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(Cc(T.state.gradientDepth,u)===!1){let N=ia(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),Ic(N,u,l,c)}let p=C(r,"x","depthwiseConv2d","float32"),m=C(t,"filter","depthwiseConv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),_(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]),_(Dr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),ve("fused depthwiseConv2d",n,i);let h=pc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=C(a,"bias","fused conv2d"),[g]=Xt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=C(l,"prelu weights","fused depthwiseConv2d"));let b=(N,E)=>{_(io(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,M]=E,V=bc(N,F,u),G=gy(D.shape,V,A,e,n,s,i),W=hy(D,V,A.shape,e,n,s,i);if(M!=null){let q=wc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((E,A,D)=>{let F=T.runKernel(Yi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):pn((E,A,D,F)=>{let M=T.runKernel(Yi,w,I);return F([A,E,M,D]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m,g)}var PA=k({fusedDepthwiseConv2d_:a8});function l8({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(Cc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=X(V,o)),Ic(V,s,i,a)}let u=C(r,"a","fused matMul"),l=C(t,"b","fused matMul");[u,l]=Xt(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=jt(d),x=jt(h);_(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),E;o!=null&&(E=C(o,"bias","fused matMul"),[E]=Xt(E,u),Mt(w,E.shape));let A;i!=null&&(A=C(i,"prelu weights","fused matMul"));let D=(V,G)=>{let[W,q,H,K]=G,Y=bc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(Y,q,!1,!0),et=Bt(W,Y,!0,!1)):!e&&n?(Z=Bt(Y,q,!1,!1),et=Bt(Y,W,!0,!1)):e&&!n?(Z=Bt(q,Y,!1,!0),et=Bt(W,Y,!1,!1)):(Z=Bt(q,Y,!0,!0),et=Bt(Y,W,!0,!0)),o!=null){let nt=wc(K,Y);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},M={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?pn((G,W,q)=>{let H=T.runKernel(ji,F,M);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):pn((G,W,q,H)=>{let K=T.runKernel(ji,F,M);return H([G,W,K,q]),{value:R(K,w),gradFunc:D}})(I,N,E)}var LA=k({fusedMatMul_:l8});function u8(r){return gh(r,.54,.46)}var zA=k({hammingWindow_:u8});function c8(r){return gh(r,.5,.5)}var xy=k({hannWindow_:c8});function p8(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),_(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),_(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),_(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),_(o==="bilinear"||o==="nearest",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return T.runKernel(Ma,c,p)}var VA=k({cropAndResize_:f8});function d8(r){let t=C(r,"image","flipLeftRight","float32");_(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return T.runKernel(Ba,e,{})}var GA=k({flipLeftRight_:d8});function h8(r){let t=C(r,"image","grayscaleToRGB"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),_(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Rr(t,o)}var WA=k({grayscaleToRGB_:h8});function g8(r){let t=C(r,"image","RGBToGrayscale"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),_(n===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${n}.`);let o=t.dtype,s=J(t,"float32"),i=Oe([.2989,.587,.114]),a;switch(t.rank){case 2:a=wu("ij,j->i",s,i);break;case 3:a=wu("ijk,k->ij",s,i);break;case 4:a=wu("ijkl,l->ijk",s,i);break;case 5:a=wu("ijklm,m->ijkl",s,i);break;case 6:a=wu("ijklmn,n->ijklm",s,i);break;default:throw new Error("Not a valid tensor rank.")}return a=je(a,-1),J(a,o)}var UA=k({rgbToGrayscale_:g8});function x8(r,t,e=0,n=.5){let o=C(r,"image","rotateWithOffset","float32");_(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return T.runKernel(pl,s,i)}var HA=k({rotateWithOffset_:x8});function No(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),_(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),_(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),_(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.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:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function y8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,"boxes","nonMaxSuppression","float32"),i=C(t,"scores","nonMaxSuppression","float32"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(Ja,{boxes:s,scores:i},u)}var qA=k({nonMaxSuppression_:y8});function KA(r,t,e){let n=b8(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function b8(r,t,e){return I8(r,t,e||w8)}function w8(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function by(r,t,e,n,o){return dN(r,t,e,n,o,0)}function wy(r,t,e,n,o,s){return dN(r,t,e,n,o,0,!1,s,!0)}function Iy(r,t,e,n,o,s){return dN(r,t,e,n,o,s,!0)}function dN(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(jA);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let E=C8(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*v8(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&KA(l,g,jA))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function C8(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function v8(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function jA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function S8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,"boxes","nonMaxSuppressionAsync"),i=C(t,"scores","nonMaxSuppressionAsync"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=by(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Oe(p,"int32")}var XA=S8;function N8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,"boxes","nonMaxSuppression"),a=C(t,"scores","nonMaxSuppression"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=T.runKernel(tl,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var YA=k({nonMaxSuppressionWithScore_:N8});async function k8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,"boxes","nonMaxSuppressionAsync"),a=C(t,"scores","nonMaxSuppressionAsync"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=Iy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(m,"int32"),selectedScores:Oe(f)}}var ZA=k8;function T8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,"boxes","nonMaxSuppression"),a=C(t,"scores","nonMaxSuppression"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=T.runKernel(Qa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var JA=k({nonMaxSuppressionPadded_:T8});async function _8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,"boxes","nonMaxSuppressionAsync"),a=C(t,"scores","nonMaxSuppressionAsync"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=wy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(d,"int32"),validOutputs:pt(h,"int32")}}var QA=_8;function E8(r,t,e=!1,n=!1){let o=C(r,"images","resizeBilinear");_(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),_(n===!1||e===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Bs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Cy=k({resizeBilinear_:E8});function A8(r,t,e=!1,n=!1){let o=C(r,"images","resizeNearestNeighbor");_(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),_(o.dtype==="float32"||o.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),_(n===!1||e===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(zs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var vy=k({resizeNearestNeighbor_:A8});function D8(r,t="binary",e=!1,n=.5){let o=C(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=$(Oe([n]),255),c,p,m,f;if(_(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),_(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),_(o.dtype==="int32"||o.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),_(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=hr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=X(X(g,x),b)}else f=r;if(t==="otsu"){let g=Sx(J(cm(f),"int32"),ir([]),256);l=$8(g,u)}let d=e?Vn(f,l):Re(f,l);return J($(d,255),"int32")}function $8(r,t){let e=Oe([-1]),n=Oe([0]),o=Oe([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.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 u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return T.runKernel(cl,u,l)}var e2=k({transform_:R8});function F8(r,t,e){let n=C(r,"a","bandPart");_(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2),a,u;typeof t=="number"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=C(t<0?s:t,"numLower","bandPart")):(_(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),a=we(yl(t,0),s,lo(t,s))),typeof e=="number"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=C(e<0?i:e,"numUpper","bandPart")):(_(e.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),u=we(yl(e,0),i,lo(e,i)));let l=R(pa(0,s,1,"int32"),[-1,1]),c=pa(0,i,1,"int32"),p=at(l,c),m=Fr(Vn(p,a),cn(p,Ut(u))),f=ke([s,i],n.dtype);return R(Fe(gr(R(n,[-1,s,i])).map(d=>we(m,d,f))),o)}var r2=k({bandPart_:F8});function O8(r){let t;if(Array.isArray(r)){t=!1,_(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=hr(r,r.shape[0],0).map(o=>Wn(o,[0]));_(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return o2(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=gr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=o2(u,t);o.push(l),s.push(c)});let i=R(Fe(o,0),r.shape),a=R(Fe(s,0),r.shape);return[i,a]}}function o2(r,t=!1){return T.tidy(()=>{_(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=fc(e),s=ln(r),i=ci([[1]],[1,1]),a=ln(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=xl(f),h=Ot(s,[l,l],[1,1]),g=we(Re(h,0),ci([[-1]]),ci([[1]])),x=at(h,$(g,d)),b=ct(f,x);b.shape[0]===1?a=ln(i):a=ie([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ct(Bt(g,x),d)),I=Ot(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=at(I,Bt(N,Bt(E,I)));else{let F=at(I,Bt(N,Bt(E,I)));s=ie([Ot(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=at(D,Bt(Bt(D,a),A));else{let F=at(D,Bt(Bt(D,a),A));o=ie([Ot(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var s2=k({qr_:M8});var Je;(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"})(Je||(Je={}));function P8(r,t,e=Je.SUM_BY_NONZERO_WEIGHTS){let n=C(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=C(t,"weights","computeWeightedLoss"));let s=o==null?n:$(n,o);if(e===Je.NONE)return s;if(e===Je.SUM)return mt(s);if(e===Je.MEAN){if(o==null)return Ne(s);{let i=n.size/o.size,a=ct(mt(s),mt(o));return i>1?ct(a,pt(i)):a}}if(e===Je.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(mt(s),pt(n.size));{let i=$(o,ar(n.shape)),a=J(mt(ui(i,pt(0))),"float32");return ct(mt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Hr=k({computeWeightedLoss_:P8});function L8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","absoluteDifference"),s=C(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=C(e,"weights","absoluteDifference")),$e(o.shape,s.shape,"Error in absoluteDifference: ");let a=_e(at(o,s));return Hr(a,i,n)}var i2=k({absoluteDifference_:L8});function z8(r,t,e,n,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","cosineDistance"),i=C(t,"predictions","cosineDistance"),a=null;n!=null&&(a=C(n,"weights","cosineDistance")),$e(s.shape,i.shape,"Error in cosineDistance: ");let u=pt(1),l=at(u,mt($(s,i),e,!0));return Hr(l,a,o)}var a2=k({cosineDistance_:z8});function B8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","hingeLoss"),s=C(t,"predictions","hingeLoss"),i=null;e!=null&&(i=C(e,"weights","hingeLoss")),$e(o.shape,s.shape,"Error in hingeLoss: ");let a=pt(1);o=at($(pt(2),o),a);let u=Or(at(a,$(o,s)));return Hr(u,i,n)}var l2=k({hingeLoss_:B8});function V8(r,t,e,n=1,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","huberLoss"),i=C(t,"predictions","huberLoss"),a=null;e!=null&&(a=C(e,"weights","huberLoss")),$e(s.shape,i.shape,"Error in huberLoss: ");let u=pt(n),l=_e(at(i,s)),c=lo(l,u),p=at(l,c),m=X($(pt(.5),Wt(c)),$(u,p));return Hr(m,a,o)}var u2=k({huberLoss_:V8});function G8(r,t,e,n=1e-7,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","logLoss"),i=C(t,"predictions","logLoss"),a=null;e!=null&&(a=C(e,"weights","logLoss")),$e(s.shape,i.shape,"Error in logLoss: ");let u=pt(1),l=pt(n),c=Ut($(s,Nr(X(i,l)))),p=$(at(u,s),Nr(X(at(u,i),l))),m=at(c,p);return Hr(m,a,o)}var c2=k({logLoss_:G8});function W8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","meanSquaredError"),s=C(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=C(e,"weights","meanSquaredError")),$e(o.shape,s.shape,"Error in meanSquaredError: ");let a=bm(o,s);return Hr(a,i,n)}var p2=k({meanSquaredError_:W8});function U8(r,t){let e=C(r,"labels","sigmoidCrossEntropyWithLogits"),n=C(t,"logits","sigmoidCrossEntropyWithLogits");$e(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Or(n),s=$(n,e),i=vu(Ke(Ut(_e(n))));return X(at(o,s),i)}function H8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"multiClassLabels","sigmoidCrossEntropy"),i=C(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=C(e,"weights","sigmoidCrossEntropy")),$e(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=pt(n),c=pt(1),p=pt(.5);s=X($(s,at(c,l)),$(p,l))}let u=U8(s,i);return Hr(u,a,o)}var m2=k({sigmoidCrossEntropy_:H8});function q8(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return pn((o,s,i)=>{let u=Su(s,[e],!0),l=at(J(s,"float32"),u);i([o,l]);let c=Ut($(l,o));return{value:mt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=vo(f.shape,[e]);return[$(R(f,x),at(J(h,"float32"),Ke(g))),$(R(f,x),at(Ke(g),J(h,"float32")))]}}})(r,t)}function K8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"onehotLabels","softmaxCrossEntropy"),i=C(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=C(e,"weights","softmaxCrossEntropy")),$e(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=pt(n),c=pt(1),p=pt(s.shape[1]);s=X($(s,at(c,l)),ct(l,p))}let u=q8(s,i);return Hr(u,a,o)}var f2=k({softmaxCrossEntropy_:K8});function j8(r,t,e,n){let o=C(r,"indices","sparseFillEmptyRows","int32"),s=C(t,"values","sparseFillEmptyRows"),i=C(e,"denseShape","sparseFillEmptyRows","int32"),a=C(n,"defaultValue","sparseFillEmptyRows",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape - ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=T.runKernel(nu,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var d2=k({sparseFillEmptyRows_:j8});function X8(r,t,e){let n=C(r,"inputIndices","sparseReshape","int32"),o=C(t,"inputShape","sparseReshape","int32"),s=C(e,"newShape","sparseReshape","int32");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape - ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=T.runKernel(il,i);return{outputIndices:a[0],outputShape:a[1]}}var h2=k({sparseReshape_:X8});function Y8(r,t,e){let n=C(r,"data","sparseSegmentMean"),o=C(t,"indices","sparseSegmentMean","int32"),s=C(e,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function jX(r,t){r().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function XX(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?pN(r,e,(n,o)=>n==o):pN(r,t,(n,o)=>mN(n,o,0))}function bA(r,t,e){if(e==null&&(e=ey()),!mN(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function mN(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function YX(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function ZX(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener("loadeddata",n=>e(t)),t.load()})}async function QX(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var gc=class{constructor(t,e,n,o,s){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=o,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let i=s||Math.random();this.random=oy.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){let o=this.nextVal;return this.nextVal=NaN,o}let t,e,n=!1;for(;!n;){let o,s,i;do o=2*this.random()-1,s=2*this.random()-1,i=o*o+s*s;while(i>=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype==="float32"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},ry=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=oy.alea(s.toString()),this.randn=new gc(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o=="number"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=oy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function t5(r,t,e=1,n="float32",o){if(Le(r),e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new ry(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),dr(t,0)}var NA=k({reverse1d_:c5});function p5(r,t){let e=C(r,"x","reverse");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),dr(e,t)}var kA=k({reverse2d_:p5});function m5(r,t){let e=C(r,"x","reverse");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),dr(e,t)}var TA=k({reverse3d_:m5});function f5(r,t){let e=C(r,"x","reverse");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),dr(e,t)}var _A=k({reverse4d_:f5});function d5(r){let e={x:C(r,"x","round")};return T.runKernel(Ws,e)}var pm=k({round_:d5});function h5(r){let e={x:C(r,"x","rsqrt","float32")};return T.runKernel(Us,e)}var mm=k({rsqrt_:h5});function g5(r){let e={x:C(r,"x","selu")};return T.runKernel(Hs,e)}var fm=k({selu_:g5});function x5(r,t,e,n,o,s=[1,1],i="NHWC"){let a=C(r,"x","separableConv2d"),u=C(t,"depthwiseFilter","separableConv2d"),l=C(e,"pointwiseFilter","separableConv2d"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.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}.`),_(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),_(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),_(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];_(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=ia(c,u,n,o,i,s),g=Nn(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var dm=k({separableConv2d_:x5});async function y5(r,t){let e=C(r,"x","setdiff1d"),n=C(t,"y","setdiff1d");_(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),_(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),_(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Ot(n,[t],[e])}var xm=k({slice1d_:C5});function v5(r,t,e){let n=C(r,"x","slice2d");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var gh=k({slice2d_:v5});function S5(r,t,e){let n=C(r,"x","slice3d");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var ym=k({slice3d_:S5});function N5(r,t,e){let n=C(r,"x","slice4d");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var yc=k({slice4d_:N5});function k5(r,t=-1){let e=C(r,"logits","softmax","float32");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return T.runKernel(Qs,n,o)}var Eu=k({softmax_:k5});function T5(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Op,t)}var Au=k({fft_:T5});function _5(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Mp,t)}var wl=k({ifft_:_5});function E5(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=wl(o)}else{let o=[e,2*(t-1)],s=R(bl(r),[e,t]),i=R(Iu(r),[e,t]),a=dr(Ot(s,[0,1],[e,t-2]),1),u=$(dr(Ot(i,[0,1],[e,t-2]),1),pt(-1)),l=ie([s,a],1),c=ie([i,u],1),p=R(Sn(l,c),[o[0],o[1]]);n=wl(p)}if(n=bl(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var bm=k({irfft_:E5});function A5(r,t,e=0){let o={x:C(r,"x","split")},s={numOrSizeSplits:t,axis:e};return T.runKernel(qi,o,s)}var hr=k({split_:A5});function D5(r,t){_(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Ot(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ie([r,ke(d)],r.shape.length-1),e=t}else o=r;let s=vt(o),i=R(Sn(o,s),[n,e]),a=Au(i),u=Math.floor(e/2)+1,l=bl(a),c=Iu(a),p=hr(l,[u,e-u],l.shape.length-1),m=hr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(Sn(p[0],m[0]),f)}var Du=k({rfft_:D5});function $5(r,t){let e=C(r,"a","squaredDifference"),n=C(t,"b","squaredDifference");[e,n]=Xt(e,n),Mt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(ti,o,s)}var wm=k({squaredDifference_:$5});function R5(r,t){let e=C(r,"x","squeeze","string_or_numeric");return R(e,h0(e.shape,t).newShape)}var Wn=k({squeeze_:R5});function F5(r,t=0){let e=fl(r,"tensors","stack","string_or_numeric");_(e.length>=1,()=>"Pass at least one tensor to tf.stack"),e.length>0&&_(t<=e[0].rank,()=>"Axis must be <= rank of the tensor");let n=e,o={axis:t};return T.runKernel(Vi,n,o)}var Fe=k({stack_:F5});function O5(r,t=0){let n={x:C(r,"x","step")},o={alpha:t};return T.runKernel(xo,n,o)}var So=k({step_:O5});function M5(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:C(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return T.runKernel(ll,c,p)}var ay=k({stridedSlice_:M5});function P5(r){let e={x:C(r,"x","tan","float32")};return T.runKernel(ri,e)}var ly=k({tan_:P5});function Oe(r,t){ro(r);let e=Wr(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return ln(r,null,e,t)}function pi(r,t,e){if(ro(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Wr(r,e);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return ln(r,t,n,e)}function uy(r,t,e){if(ro(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Wr(r,e);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return ln(r,t,n,e)}function AA(r,t,e){if(ro(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Wr(r,e);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return ln(r,t,n,e)}function DA(r,t,e){if(ro(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Wr(r,e);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return ln(r,t,n,e)}function $A(r,t,e){if(ro(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Wr(r,e);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,ln(r,t,n,e)}var $u={};Kt($u,{calculateShapes:()=>RA,validateInput:()=>Im,validateUpdateShape:()=>fN});function fN(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;p= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=T.runKernel(ul,s,i);return{values:a,indices:u}}var cy=k({topk_:z5});function B5(r,t=0,e=1,n,o){if(Le(r),n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new gc(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=T.runKernel(cu,n,o);return{values:s,indices:i}}var py=k({unique_:V5});function G5(r,t,e){let n=C(r,"x","unsortedSegmentSum"),o=C(t,"segmentIds","unsortedSegmentSum","int32");_(_a(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(pu,s,i)}var vm=k({unsortedSegmentSum_:G5});function W5(r,t=0){let e=C(r,"x","unstack","string_or_numeric");_(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return T.runKernel(Ki,n,o)}var gr=k({unstack_:W5});function OA(r,t){return dh(r,t,"right")}function my(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function fy(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),$e(a.slice(s,s+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,");let u=1;for(let h=s;ha).reverse()),_(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{_(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype==="complex64"?B(()=>{let i=bl(n),a=Iu(n);return i=T.runKernel(so,{x:i},s),a=T.runKernel(so,{x:a},s),e&&(a=Ut(a)),Sn(i,a)}):T.runKernel(so,o,s)}var Vt=k({transpose_:K5});function j5(r,t,e,n,o=!0){let s=C(r,"v","movingAverage"),i=C(t,"x","movingAverage"),a=C(e,"decay","movingAverage");M0(s,i),_(sn(s.shape,i.shape),()=>"Shape mismatch in v and x");let u=pt(1),l=at(u,a),c=$(at(i,s),l);if(o){_(n!=null,()=>"When using zeroDebias: true, step is required.");let p=C(n,"step","movingAverage");c=ut(c,at(u,qr(a,p)))}return K(s,c)}var X5=k({movingAverage_:j5});function Y5(r,t,e){Le(e);let n=C(r,"indices","scatterND","int32"),o=C(t,"updates","scatterND");Im(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(nl,s,i)}var Z5=k({scatterND_:Y5});function MA(r,t,e,n){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 o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function Q5(r,t,e,n=0){Le(e);let o=C(r,"sparseIndices","sparseToDense","int32"),s=C(t,"sparseValues","sparseToDense","string_or_numeric"),i=C(n,"defaultValue","sparseToDense",s.dtype);MA(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(al,a,u)}var t8=k({sparseToDense_:Q5});function e8(r,t){let e=C(t,"indices","gatherND","int32"),o={params:C(r,"x","gatherND","string_or_numeric"),indices:e};return T.runKernel(Va,o)}var r8=k({gatherND_:e8});function PA(r,t){if(t==null)return r.shape.slice();if(sn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),_(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Lt?o.clone():o;let s=PA(o,e),i=1-t,a=ut(la(K(Gn(s,0,1,"float32",n),i)),i);return $(o,a)}var dN=k({dropout_:n8});function hN(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function xh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),_(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=n.shape[n.shape.length-1];_(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=g0("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hLA,depthwiseConv2d:()=>zA,matMul:()=>BA});function i8(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),_(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),_(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),_(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s==="NHWC"?a.shape[3]:a.shape[1],c=s==="NHWC"?u.shape[3]:u.shape[1];_(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),_(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Se("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return T.runKernel(Dp,p,m)}var Sm=k({conv2DBackpropFilter_:i8});function bc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return $(r,So(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function wc(r,t){let e=t,n=we(r.shape,t.shape);return n.length>0&&(e=mt(e,n)),R(e,r.shape)}function Ic(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Or(r);if(t==="elu")return aa(r);if(t==="relu6")return cm(r);if(t==="prelu")return _u(r,e);if(t==="leakyrelu")return Cu(r,n);if(t==="sigmoid")return en(r);throw new Error(`Unknown fused activation ${t}.`)}var Cc=(r,t)=>!(r>0)||t==="linear";function a8({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||"linear",Cc(T.state.gradientDepth,u)===!1){_(o==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let E=Nn(r,t,e,n,o,s,i);return a!=null&&(E=K(E,a)),Ic(E,u,l,c)}let p=C(r,"x","conv2d","float32"),m=C(t,"filter","conv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Se("fused conv2d",n,i);let h=o==="NHWC"?f.shape[3]:f.shape[1];_(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=pc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=C(a,"bias","fused conv2d"),[x]=Xt(x,p),o==="NHWC"?Mt(g.outShape,x.shape):(_(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),_(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let E=l.shape;if(_(E.length<=1||E.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${E.length}.`),E.length===1)_(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{Mt(E,g.outShape)}catch(A){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=C(l,"prelu weights","fused conv2d")}let w=(E,A)=>{_(o==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[D,F,M,V]=A,G=bc(E,M,u);_(io(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=nm(F.shape,G,D,e,n),q=Sm(F,G,D.shape,e,n),H=[W,q];if(V!=null){let j=wc(V,G);H.push(j)}return H},I={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((A,D,F)=>{let M=T.runKernel(Yi,I,N);return F([D,A,M]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m):pn((A,D,F,M)=>{let V=T.runKernel(Yi,I,N);return M([D,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var LA=k({fusedConv2d_:a8});function l8(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return T.runKernel($p,l,c)}var hy=k({depthwiseConv2dNativeBackpropFilter_:l8});function u8(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=T.runKernel(Rp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var gy=k({depthwiseConv2dNativeBackpropInput_:u8});function c8({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(Cc(T.state.gradientDepth,u)===!1){let N=ia(r,t,e,n,o,s,i);return a!=null&&(N=K(N,a)),Ic(N,u,l,c)}let p=C(r,"x","depthwiseConv2d","float32"),m=C(t,"filter","depthwiseConv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),_(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]),_(Dr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Se("fused depthwiseConv2d",n,i);let h=pc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=C(a,"bias","fused conv2d"),[g]=Xt(g,p),Mt(h.outShape,g.shape));let x;l!=null&&(x=C(l,"prelu weights","fused depthwiseConv2d"));let b=(N,E)=>{_(io(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,D,F,M]=E,V=bc(N,F,u),G=gy(D.shape,V,A,e,n,s,i),W=hy(D,V,A.shape,e,n,s,i);if(M!=null){let q=wc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},I={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?pn((E,A,D)=>{let F=T.runKernel(Zi,w,I);return D([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):pn((E,A,D,F)=>{let M=T.runKernel(Zi,w,I);return F([A,E,M,D]),d&&(M=R(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m,g)}var zA=k({fusedDepthwiseConv2d_:c8});function p8({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(Cc(T.state.gradientDepth,s)===!1){let V=Bt(r,t,e,n);return o!=null&&(V=K(V,o)),Ic(V,s,i,a)}let u=C(r,"a","fused matMul"),l=C(t,"b","fused matMul");[u,l]=Xt(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=jt(d),x=jt(h);_(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Mt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),I=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),E;o!=null&&(E=C(o,"bias","fused matMul"),[E]=Xt(E,u),Mt(w,E.shape));let A;i!=null&&(A=C(i,"prelu weights","fused matMul"));let D=(V,G)=>{let[W,q,H,j]=G,Y=bc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Bt(Y,q,!1,!0),et=Bt(W,Y,!0,!1)):!e&&n?(Z=Bt(Y,q,!1,!1),et=Bt(Y,W,!0,!1)):e&&!n?(Z=Bt(q,Y,!1,!0),et=Bt(W,Y,!1,!1)):(Z=Bt(q,Y,!0,!0),et=Bt(Y,W,!0,!0)),o!=null){let nt=wc(j,Y);return[Z,et,nt]}else return[Z,et]},F={a:I,b:N,bias:E,preluActivationWeights:A},M={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?pn((G,W,q)=>{let H=T.runKernel(Xi,F,M);return q([G,W,H]),{value:R(H,w),gradFunc:D}})(I,N):pn((G,W,q,H)=>{let j=T.runKernel(Xi,F,M);return H([G,W,j,q]),{value:R(j,w),gradFunc:D}})(I,N,E)}var BA=k({fusedMatMul_:p8});function m8(r){return xh(r,.54,.46)}var VA=k({hammingWindow_:m8});function f8(r){return xh(r,.5,.5)}var xy=k({hannWindow_:f8});function d8(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),_(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),_(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),_(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),_(o==="bilinear"||o==="nearest",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return T.runKernel(Ma,c,p)}var WA=k({cropAndResize_:g8});function x8(r){let t=C(r,"image","flipLeftRight","float32");_(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return T.runKernel(Ba,e,{})}var UA=k({flipLeftRight_:x8});function y8(r){let t=C(r,"image","grayscaleToRGB"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),_(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Rr(t,o)}var HA=k({grayscaleToRGB_:y8});function b8(r){let t=C(r,"image","RGBToGrayscale"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t.rank}.`),_(n===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${n}.`);let o=t.dtype,s=J(t,"float32"),i=Oe([.2989,.587,.114]),a;switch(t.rank){case 2:a=wu("ij,j->i",s,i);break;case 3:a=wu("ijk,k->ij",s,i);break;case 4:a=wu("ijkl,l->ijk",s,i);break;case 5:a=wu("ijklm,m->ijkl",s,i);break;case 6:a=wu("ijklmn,n->ijklm",s,i);break;default:throw new Error("Not a valid tensor rank.")}return a=je(a,-1),J(a,o)}var qA=k({rgbToGrayscale_:b8});function w8(r,t,e=0,n=.5){let o=C(r,"image","rotateWithOffset","float32");_(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return T.runKernel(pl,s,i)}var KA=k({rotateWithOffset_:w8});function No(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),_(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),_(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),_(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.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:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function I8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,"boxes","nonMaxSuppression","float32"),i=C(t,"scores","nonMaxSuppression","float32"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel(Ja,{boxes:s,scores:i},u)}var jA=k({nonMaxSuppression_:I8});function XA(r,t,e){let n=C8(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function C8(r,t,e){return S8(r,t,e||v8)}function v8(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function by(r,t,e,n,o){return gN(r,t,e,n,o,0)}function wy(r,t,e,n,o,s){return gN(r,t,e,n,o,0,!1,s,!0)}function Iy(r,t,e,n,o,s){return gN(r,t,e,n,o,s,!0)}function gN(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(YA);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let E=N8(r,b,p[N]);if(E>=n){I=!0;break}if(g.score=g.score*k8(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,I||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&XA(l,g,YA))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function N8(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function k8(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function YA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function T8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=C(r,"boxes","nonMaxSuppressionAsync"),i=C(t,"scores","nonMaxSuppressionAsync"),a=No(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=by(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Oe(p,"int32")}var ZA=T8;function _8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,"boxes","nonMaxSuppression"),a=C(t,"scores","nonMaxSuppression"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=T.runKernel(tl,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var JA=k({nonMaxSuppressionWithScore_:_8});async function E8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=C(r,"boxes","nonMaxSuppressionAsync"),a=C(t,"scores","nonMaxSuppressionAsync"),u=No(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=Iy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(m,"int32"),selectedScores:Oe(f)}}var QA=E8;function A8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,"boxes","nonMaxSuppression"),a=C(t,"scores","nonMaxSuppression"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=T.runKernel(Qa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var t2=k({nonMaxSuppressionPadded_:A8});async function D8(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=C(r,"boxes","nonMaxSuppressionAsync"),a=C(t,"scores","nonMaxSuppressionAsync"),u=No(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=wy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Oe(d,"int32"),validOutputs:pt(h,"int32")}}var e2=D8;function $8(r,t,e=!1,n=!1){let o=C(r,"images","resizeBilinear");_(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),_(n===!1||e===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Bs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Cy=k({resizeBilinear_:$8});function R8(r,t,e=!1,n=!1){let o=C(r,"images","resizeNearestNeighbor");_(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),_(o.dtype==="float32"||o.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),_(n===!1||e===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(zs,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var vy=k({resizeNearestNeighbor_:R8});function F8(r,t="binary",e=!1,n=.5){let o=C(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=$(Oe([n]),255),c,p,m,f;if(_(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),_(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),_(o.dtype==="int32"||o.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),_(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=hr(o,[1,1,1],-1);let g=$(c,s),x=$(p,i),b=$(m,a);f=K(K(g,x),b)}else f=r;if(t==="otsu"){let g=Nx(J(pm(f),"int32"),ir([]),256);l=O8(g,u)}let d=e?Vn(f,l):Re(f,l);return J($(d,255),"int32")}function O8(r,t){let e=Oe([-1]),n=Oe([0]),o=Oe([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.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 u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return T.runKernel(cl,u,l)}var n2=k({transform_:M8});function P8(r,t,e){let n=C(r,"a","bandPart");_(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2),a,u;typeof t=="number"?(_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(t<=s,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`),a=C(t<0?s:t,"numLower","bandPart")):(_(t.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),a=Ie(yl(t,0),s,lo(t,s))),typeof e=="number"?(_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`),_(e<=i,()=>`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`),u=C(e<0?i:e,"numUpper","bandPart")):(_(e.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),u=Ie(yl(e,0),i,lo(e,i)));let l=R(pa(0,s,1,"int32"),[-1,1]),c=pa(0,i,1,"int32"),p=at(l,c),m=Fr(Vn(p,a),cn(p,Ut(u))),f=ke([s,i],n.dtype);return R(Fe(gr(R(n,[-1,s,i])).map(d=>Ie(m,d,f))),o)}var o2=k({bandPart_:P8});function L8(r){let t;if(Array.isArray(r)){t=!1,_(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=hr(r,r.shape[0],0).map(o=>Wn(o,[0]));_(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return i2(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=gr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=i2(u,t);o.push(l),s.push(c)});let i=R(Fe(o,0),r.shape),a=R(Fe(s,0),r.shape);return[i,a]}}function i2(r,t=!1){return T.tidy(()=>{_(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=fc(e),s=un(r),i=pi([[1]],[1,1]),a=un(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=xl(f),h=Ot(s,[l,l],[1,1]),g=Ie(Re(h,0),pi([[-1]]),pi([[1]])),x=at(h,$(g,d)),b=ut(f,x);b.shape[0]===1?a=un(i):a=ie([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(ut(Bt(g,x),d)),I=Ot(s,[l,0],[e-l,n]),N=$(w,a),E=Vt(a);if(l===0)s=at(I,Bt(N,Bt(E,I)));else{let F=at(I,Bt(N,Bt(E,I)));s=ie([Ot(s,[0,0],[l,n]),F],0)}let A=Vt(N),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=at(D,Bt(Bt(D,a),A));else{let F=at(D,Bt(Bt(D,a),A));o=ie([Ot(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Tt([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var a2=k({qr_:z8});var Je;(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"})(Je||(Je={}));function B8(r,t,e=Je.SUM_BY_NONZERO_WEIGHTS){let n=C(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=C(t,"weights","computeWeightedLoss"));let s=o==null?n:$(n,o);if(e===Je.NONE)return s;if(e===Je.SUM)return mt(s);if(e===Je.MEAN){if(o==null)return Ne(s);{let i=n.size/o.size,a=ut(mt(s),mt(o));return i>1?ut(a,pt(i)):a}}if(e===Je.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ut(mt(s),pt(n.size));{let i=$(o,ar(n.shape)),a=J(mt(ci(i,pt(0))),"float32");return ut(mt(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Kr=k({computeWeightedLoss_:B8});function V8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","absoluteDifference"),s=C(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=C(e,"weights","absoluteDifference")),$e(o.shape,s.shape,"Error in absoluteDifference: ");let a=_e(at(o,s));return Kr(a,i,n)}var l2=k({absoluteDifference_:V8});function G8(r,t,e,n,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","cosineDistance"),i=C(t,"predictions","cosineDistance"),a=null;n!=null&&(a=C(n,"weights","cosineDistance")),$e(s.shape,i.shape,"Error in cosineDistance: ");let u=pt(1),l=at(u,mt($(s,i),e,!0));return Kr(l,a,o)}var u2=k({cosineDistance_:G8});function W8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","hingeLoss"),s=C(t,"predictions","hingeLoss"),i=null;e!=null&&(i=C(e,"weights","hingeLoss")),$e(o.shape,s.shape,"Error in hingeLoss: ");let a=pt(1);o=at($(pt(2),o),a);let u=Or(at(a,$(o,s)));return Kr(u,i,n)}var c2=k({hingeLoss_:W8});function U8(r,t,e,n=1,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","huberLoss"),i=C(t,"predictions","huberLoss"),a=null;e!=null&&(a=C(e,"weights","huberLoss")),$e(s.shape,i.shape,"Error in huberLoss: ");let u=pt(n),l=_e(at(i,s)),c=lo(l,u),p=at(l,c),m=K($(pt(.5),Wt(c)),$(u,p));return Kr(m,a,o)}var p2=k({huberLoss_:U8});function H8(r,t,e,n=1e-7,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"labels","logLoss"),i=C(t,"predictions","logLoss"),a=null;e!=null&&(a=C(e,"weights","logLoss")),$e(s.shape,i.shape,"Error in logLoss: ");let u=pt(1),l=pt(n),c=Ut($(s,Nr(K(i,l)))),p=$(at(u,s),Nr(K(at(u,i),l))),m=at(c,p);return Kr(m,a,o)}var m2=k({logLoss_:H8});function q8(r,t,e,n=Je.SUM_BY_NONZERO_WEIGHTS){let o=C(r,"labels","meanSquaredError"),s=C(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=C(e,"weights","meanSquaredError")),$e(o.shape,s.shape,"Error in meanSquaredError: ");let a=wm(o,s);return Kr(a,i,n)}var f2=k({meanSquaredError_:q8});function K8(r,t){let e=C(r,"labels","sigmoidCrossEntropyWithLogits"),n=C(t,"logits","sigmoidCrossEntropyWithLogits");$e(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Or(n),s=$(n,e),i=vu(Ke(Ut(_e(n))));return K(at(o,s),i)}function j8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"multiClassLabels","sigmoidCrossEntropy"),i=C(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=C(e,"weights","sigmoidCrossEntropy")),$e(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=pt(n),c=pt(1),p=pt(.5);s=K($(s,at(c,l)),$(p,l))}let u=K8(s,i);return Kr(u,a,o)}var d2=k({sigmoidCrossEntropy_:j8});function X8(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return pn((o,s,i)=>{let u=Su(s,[e],!0),l=at(J(s,"float32"),u);i([o,l]);let c=Ut($(l,o));return{value:mt(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=vo(f.shape,[e]);return[$(R(f,x),at(J(h,"float32"),Ke(g))),$(R(f,x),at(Ke(g),J(h,"float32")))]}}})(r,t)}function Y8(r,t,e,n=0,o=Je.SUM_BY_NONZERO_WEIGHTS){let s=C(r,"onehotLabels","softmaxCrossEntropy"),i=C(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=C(e,"weights","softmaxCrossEntropy")),$e(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=pt(n),c=pt(1),p=pt(s.shape[1]);s=K($(s,at(c,l)),ut(l,p))}let u=X8(s,i);return Kr(u,a,o)}var h2=k({softmaxCrossEntropy_:Y8});function Z8(r,t,e,n){let o=C(r,"indices","sparseFillEmptyRows","int32"),s=C(t,"values","sparseFillEmptyRows"),i=C(e,"denseShape","sparseFillEmptyRows","int32"),a=C(n,"defaultValue","sparseFillEmptyRows",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=T.runKernel(nu,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var g2=k({sparseFillEmptyRows_:Z8});function J8(r,t,e){let n=C(r,"inputIndices","sparseReshape","int32"),o=C(t,"inputShape","sparseReshape","int32"),s=C(e,"newShape","sparseReshape","int32");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape + ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=T.runKernel(il,i);return{outputIndices:a[0],outputShape:a[1]}}var x2=k({sparseReshape_:J8});function Q8(r,t,e){let n=C(r,"data","sparseSegmentMean"),o=C(t,"indices","sparseSegmentMean","int32"),s=C(e,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(ou,i)}var g2=k({sparseSegmentMean_:Y8});function Z8(r,t,e){let n=C(r,"data","sparseSegmentSum"),o=C(t,"indices","sparseSegmentSum","int32"),s=C(e,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(ou,i)}var y2=k({sparseSegmentMean_:Q8});function tY(r,t,e){let n=C(r,"data","sparseSegmentSum"),o=C(t,"indices","sparseSegmentSum","int32"),s=C(e,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(su,i)}var x2=k({sparseSegmentSum_:Z8});function J8(r,t,e,n,o,s,i,a){let u=C(r,"data","stringNGrams","string");if(u.dtype!=="string")throw new Error("Data must be of datatype string");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=C(t,"dataSplits","stringNGrams");if(l.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=T.runKernel(au,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var y2=k({stringNGrams_:J8});function Q8(r,t,e=!0){let n=C(r,"input","stringSplit","string"),o=C(t,"delimiter","stringSplit","string");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=T.runKernel(lu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var b2=k({stringSplit_:Q8});function tY(r,t){let e=C(r,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let o={input:e};return T.runKernel(uu,o,n)}var w2=k({stringToHashBucketFast_:tY});function eY(r,t,e,n=!0){let o=C(r,"input","staticRegexReplace","string"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(ec,{x:o},s)}var I2=k({staticRegexReplace_:eY});var rY={fft:Au,ifft:wl,rfft:Du,irfft:ym},nY={hammingWindow:zA,hannWindow:xy,frame:yy,stft:BA},fn={flipLeftRight:GA,grayscaleToRGB:WA,resizeNearestNeighbor:vy,resizeBilinear:Cy,rgbToGrayscale:UA,rotateWithOffset:HA,cropAndResize:VA,nonMaxSuppression:qA,nonMaxSuppressionAsync:XA,nonMaxSuppressionWithScore:YA,nonMaxSuppressionWithScoreAsync:ZA,nonMaxSuppressionPadded:JA,nonMaxSuppressionPaddedAsync:QA,threshold:t2,transform:e2},hN={bandPart:r2,gramSchmidt:n2,qr:s2},oY={absoluteDifference:i2,computeWeightedLoss:Hr,cosineDistance:a2,hingeLoss:l2,huberLoss:u2,logLoss:c2,meanSquaredError:p2,sigmoidCrossEntropy:m2,softmaxCrossEntropy:f2},sY={sparseFillEmptyRows:d2,sparseReshape:h2,sparseSegmentMean:g2,sparseSegmentSum:x2},iY={stringNGrams:y2,stringSplit:b2,stringToHashBucketFast:w2,staticRegexReplace:I2};var Q={};Kt(Q,{Serializable:()=>xh,SerializationMap:()=>Sy,getRegisteredName:()=>lY,registerClass:()=>xN});var aY=new Map,gN=new Map,xh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Sy=class r{constructor(){this.classNameMap={}}static getMap(){return r.instance==null&&(r.instance=new r),r.instance}static register(t){r.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function xN(r,t,e){_(r.className!=null,()=>"Class being registered does not have the static className property defined."),_(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),_(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof t=="undefined"&&(t="Custom"),typeof e=="undefined"&&(e=r.className);let n=e,o=t+">"+n;return Sy.register(r),aY.set(o,r),gN.set(r,o),r}function lY(r){return gN.has(r)?gN.get(r):r.className}var qr=class extends xh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return Tt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Ux(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:pt(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(qr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var vc=class extends qr{static get className(){return"Adadelta"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ct(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=X($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};var Sc=class extends qr{static get className(){return"Adagrad"}constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>Co(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Wt(i));a.assign(u);let l=X($(ct(i,Se(X(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};var Nc=class extends qr{static get className(){return"Adam"}constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=pt(e).variable(),this.accBeta2=pt(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=at(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X($(c,this.beta1),$(l,1-this.beta1)),f=X($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=X($(ct(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(un(this.beta1,this.iterations_+1)),this.accBeta2.assign(un(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};var kc=class extends qr{static get className(){return"Adamax"}constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=pt(0).variable(),this.accBeta1=pt(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=ct(-this.learningRate,X($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=_e(l),h=kn(f,d);c.assign(m),p.assign(h);let g=X($(ct(o,n),ct(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};var Il=class extends qr{static get className(){return"SGD"}constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=T.registeredVariables[n];B(()=>{let a=X($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(pt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};var Tc=class extends Il{static get className(){return"Momentum"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=pt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X($(this.m,i),a);this.useNesterov?u=X($(this.c,X(a,$(l,this.m))),s):u=X($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};var _c=class extends qr{static get className(){return"RMSProp"}constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=T.backend.epsilon()),t==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X($(p,this.decay),$(a,1-this.decay)),f=ct($(a,this.learningRate),Se(at(c,X(Wt(m),this.epsilon)))),d=X($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=at(s,d);s.assign(h)}else{let p=X($(u,this.decay),$(Wt(a),1-this.decay)),m=X($(l,this.momentum),ct($(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=at(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};var uY=[vc,Sc,Nc,kc,Tc,_c,Il];function C2(){for(let r of uY)xN(r)}var Mr={};Kt(Mr,{CompositeArrayBuffer:()=>Wr,browserFiles:()=>S2,browserHTTPRequest:()=>_2,concatenateArrayBuffers:()=>uE,copyModel:()=>vE,decodeWeights:()=>sx,decodeWeightsStream:()=>ix,encodeWeights:()=>sE,fromMemory:()=>E2,fromMemorySync:()=>vN,getLoadHandlers:()=>fE,getModelArtifactsForJSON:()=>Yp,getModelArtifactsForJSONSync:()=>W0,getModelArtifactsInfoForJSON:()=>Ji,getSaveHandlers:()=>mE,getWeightSpecs:()=>lh,http:()=>ky,isHTTPScheme:()=>Ny,listModels:()=>IE,loadWeights:()=>k2,moveModel:()=>SE,registerLoadRouter:()=>pE,registerSaveRouter:()=>cE,removeModel:()=>CE,weightsLoaderFactory:()=>IN,withSaveHandler:()=>A2,withSaveHandlerSync:()=>D2});var cY="model",pY=".json",mY=".weights.bin";function v2(r){return new Promise(t=>setTimeout(t)).then(r)}var Sm=class r{constructor(t){if(!L().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(r.URL_SCHEME)&&(t=t.slice(r.URL_SCHEME.length)),(t==null||t.length===0)&&(t=cY),this.modelJsonFileName=t+pY,this.weightDataFileName=t+mY}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let e=Wr.join(t.weightData),n=window.URL.createObjectURL(new Blob([e],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let o=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],s=ax(t,o),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),a=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=i,await v2(()=>a.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let u=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;u.download=this.weightDataFileName,u.href=n,await v2(()=>u.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ji(t)}}}};Sm.URL_SCHEME="downloads://";var yN=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=Yp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,i])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>G0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=G0(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},fY=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Sm.URL_SCHEME)?dY(r.slice(Sm.URL_SCHEME.length)):null;Cr.registerSaveRouter(fY);function dY(r="model"){return new Sm(r)}function S2(r){return new yN(r)}function bN(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){_(u!=null&&Array.isArray(u)&&u.length>0,()=>"promises must be a none empty array")}function a(u,l){_(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),_(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),_(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function wN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),a=(t.onProgress==null?await Promise.all(n):await bN(n,t.onProgress,0,.5)).map(p=>p.arrayBuffer());return t.onProgress==null?await Promise.all(a):await bN(a,t.onProgress,.5,1)}function N2(r,t){var e;let n=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,o=0,s;return(e=t.onProgress)===null||e===void 0||e.call(t,0),new ReadableStream({pull:async i=>{for(var a;owN(i,{requestInit:n}))(r,t,e)}function IN(r){return async(t,e="",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=dl[x]*jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. -Manifest JSON has weights with names: ${a.join(", ")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith("/")?"":"/")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=new Wr(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=sx(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var hY="application/octet-stream",gY="application/json",yh=class{constructor(t,e){if(this.DEFAULT_METHOD="POST",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(_(typeof e.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=e.fetchFunc):this.fetch=L().platform.fetch,_(t!=null&&t.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(t)&&_(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{},this.loadOptions=e}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],o=ax(t,n);if(e.body.append("model.json",new Blob([JSON.stringify(o)],{type:gY}),"model.json"),t.weightData!=null){let i=Wr.join(t.weightData);e.body.append("model.weights.bin",new Blob([i],{type:hY}),"model.weights.bin")}let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ji(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?i+=" 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.":i+=" Please make sure the server is serving valid JSON for this request.",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let t=await this.loadModelJSON();return Yp(t,e=>this.loadWeights(e))}async loadStream(){let t=await this.loadModelJSON(),e=await this.getWeightUrls(t.weightsManifest),n=lh(t.weightsManifest),o=()=>N2(e,this.loadOptions);return Object.assign(Object.assign({},t),{weightSpecs:n,getWeightStream:o})}async getWeightUrls(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=xY(e),s=this.weightPathPrefix||n,i=[],a=[];for(let u of t)for(let l of u.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(l)):i.push(s+l+o);return this.weightUrlConverter&&i.push(...await Promise.all(a)),i}async loadWeights(t){let e=await this.getWeightUrls(t),n=lh(t),o=await wN(e,this.loadOptions);return[n,o]}};yh.URL_SCHEME_REGEX=/^https?:\/\//;function xY(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function Ny(r){return r.match(yh.URL_SCHEME_REGEX)!=null}var T2=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ny(n)):e=Ny(r),e)return ky(r,t)}return null};Cr.registerSaveRouter(T2);Cr.registerLoadRouter(T2);function ky(r,t){return new yh(r,t)}function _2(r,t){return ky(r,t)}var bh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ty=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},CN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function E2(r,t,e,n){let o=arguments;return new CN(vN(...o))}function vN(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new bh(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 bh({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 bh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function A2(r){return new Ty(r)}function D2(r){return new Ty(r)}var R2={};Kt(R2,{confusionMatrix:()=>$2});function yY(r,t,e){let n=C(r,"labels","confusionMatrix"),o=C(t,"predictions","confusionMatrix");_(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),_(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),_(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),_(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),_(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=ca(J(n,"int32"),e),i=ca(J(o,"int32"),e),a=Vt(s),u=Bt(a,i);return J(u,"int32")}var $2=k({confusionMatrix_:yY});var _y={};Kt(_y,{draw:()=>kY,fromPixels:()=>TY,fromPixelsAsync:()=>vY,toPixels:()=>NY});var Ec,F2=!1;function O2(r,t=3){if(t>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 e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)a=!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(Wp(Qd,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(Qd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext("2d").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Ec==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ec=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ec=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ec.canvas.width=l,Ec.canvas.height=c,Ec.drawImage(r,0,0,l,c),p=Ec.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(r.dtype!=="float32"&&r.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${r.dtype}. Please use float32 or int32 tensors.`)}function SY(r){let t=(r==null?void 0:r.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function NY(r,t){let e=C(r,"img","toPixels");if(!(r instanceof Lt)){let l=e;e=J(l,"int32"),l.dispose()}M2(e);let[n,o]=e.shape.slice(0,2),s=e.rank===2?1:e.shape[2],i=await e.data(),a=e.dtype==="float32"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.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*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){F2||Wp(Jd,T.backendName)!=null&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),F2=!0),t.width=o,t.height=n;let l=t.getContext("2d"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}function kY(r,t,e){let n=C(r,"img","draw");if(!(r instanceof Lt)){let i=n;n=J(i,"int32"),i.dispose()}M2(n),SY(e==null?void 0:e.imageOptions);let o={image:n},s={canvas:t,options:e};T.runKernel(Jd,o,s)}var TY=k({fromPixels_:O2});var Ey={};Kt(Ey,{prepareAndValidate:()=>P2});function P2(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);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[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var Be={};Kt(Be,{assertParamsValid:()=>EY,computeFlatOffset:()=>FY,computeOutShape:()=>DY,getNormalizedAxes:()=>$Y,isSliceContinous:()=>RY,maskToAxes:()=>AY,parseSliceParams:()=>NN,sliceInfo:()=>OY,startForAxis:()=>H2,startIndicesWithElidedDims:()=>G2,stopForAxis:()=>q2,stopIndicesWithElidedDims:()=>W2,stridesForAxis:()=>U2,stridesWithElidedDims:()=>z2});var SN=-2,_Y=-1;function EY(r,t,e){let n=r.shape.length;_(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),_(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function AY(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function DY(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=G2(i,f,d,n,r),p=W2(a,f,d,o,r),m=z2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=B2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=B2(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=kp(0,i,u-1),i}function q2(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=kp(0,i,u):i=kp(-1,i,u-1),i}function RY(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function FY(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{_(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return e==null?s=new Array(o).fill(-1):typeof e=="number"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(_(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function OY(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&i&i-1)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(I&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=L2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=L2(m.end[w],1,m.strides[w],N,E,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&D,d=d&&(w===0&&m.strides[w]===1||D);let F,M=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],M=!0):I?(F=1,M=!0):D&&N>=0&&(m.strides[w]<0?F=-N:F=N,M=!0),M){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[I]):I===SN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==SN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function MY(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var K2="4.16.0";var wh=class{static sgd(t){return new Il(t)}static momentum(t,e,n=!1){return new Tc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new _c(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Nc(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new vc(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new kc(t,e,n,o,s)}static adagrad(t,e=.1){return new Sc(t,e)}};var Ac=wh;var PY=typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r();function Ih(){return new Promise(r=>PY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>JY,ERF_A2:()=>QY,ERF_A3:()=>tZ,ERF_A4:()=>eZ,ERF_A5:()=>rZ,ERF_P:()=>ZY,PARALLELIZE_THRESHOLD:()=>Ay,RowPartitionType:()=>ma,SELU_SCALE:()=>TN,SELU_SCALEALPHA:()=>kN,applyActivation:()=>Ic,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>x6,assertParamsConsistent:()=>LY,assignToTypedArray:()=>lZ,axesAreInnerMostDims:()=>Q0,calculateShapes:()=>DA,checkEinsumDimSizes:()=>dZ,checkPadOnDimRoundingMode:()=>ve,combineLocations:()=>PE,combineRaggedTensorToTensorShapes:()=>BY,complexWithEvenIndex:()=>sZ,complexWithOddIndex:()=>iZ,computeConv2DInfo:()=>pc,computeConv3DInfo:()=>_E,computeDefaultPad:()=>J0,computeDilation2DInfo:()=>gj,computeOptimalWindowSize:()=>UY,computeOutAndReduceShapes:()=>tN,computeOutShape:()=>zY,computePool2DInfo:()=>Z0,computePool3DInfo:()=>xj,convertConv2DDataFormat:()=>EE,decodeEinsumEquation:()=>mZ,eitherStridesOrDilationsAreOne:()=>Dr,expandShapeToKeepDim:()=>vo,exponent:()=>cZ,exponents:()=>uZ,fromStringArrayToUint8:()=>OZ,fromUint8ToStringArray:()=>FZ,getAxesPermutation:()=>eN,getBroadcastDims:()=>OE,getComplexWithIndex:()=>aZ,getEinsumComputePath:()=>hZ,getEinsumPermutation:()=>fZ,getFusedBiasGradient:()=>wc,getFusedDyActivation:()=>bc,getImageCenter:()=>HY,getInnerMostAxes:()=>y6,getPermuted:()=>KY,getRaggedRank:()=>GY,getReductionAxes:()=>be,getReshaped:()=>qY,getReshapedPermuted:()=>jY,getRowPartitionTypesHelper:()=>VY,getSliceBeginCoords:()=>XY,getSliceSize:()=>YY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>bZ,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>wZ,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>IZ,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>SZ,getSparseReshapeInputOutputMismatchErrorMessage:()=>kZ,getSparseReshapeInputOutputMultipleErrorMessage:()=>NZ,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>CZ,getSparseReshapeNegativeOutputDimErrorMessage:()=>vZ,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>AZ,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>TZ,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>_Z,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>EZ,getUndoAxesPermutation:()=>mh,isIdentityPermutation:()=>gZ,log:()=>uK,mergeRealAndImagArrays:()=>nZ,prepareAndValidate:()=>P2,prepareSplitSize:()=>yZ,segment_util:()=>EN,shouldFuse:()=>Cc,slice_util:()=>Be,splitRealAndImagArrays:()=>oZ,stridesOrDilationsArePositive:()=>ra,tupleValuesAreOne:()=>io,upcastType:()=>ur,validateDefaultValueShape:()=>WY,validateInput:()=>wm,validateUpdateShape:()=>pN,warn:()=>Zi});function LY(r,t){let e=r[0].length;r.forEach((o,s)=>{_(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),_(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function zY(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function VY(r){let t={FIRST_DIM_SIZE:ma.FIRST_DIM_SIZE,VALUE_ROWIDS:ma.VALUE_ROWIDS,ROW_LENGTHS:ma.ROW_LENGTHS,ROW_SPLITS:ma.ROW_SPLITS,ROW_LIMITS:ma.ROW_LIMITS,ROW_STARTS:ma.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function GY(r){return r.length===0?0:r[0]===ma.FIRST_DIM_SIZE?r.length-1:r.length}function WY(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var Ay=30;function UY(r){return r<=Ay?r:_p(r,Math.floor(Math.sqrt(r)))}function HY(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function qY(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function jY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,j2=",",X2="...";function mZ(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(pZ,"").length)/_N.length;if(e<1)throw new Error("Equations without an arrow are not supported.");if(e>1)throw new Error(`Equation must contain exactly one arrow ("${_N}").`);let[n,o]=r.split(_N);_(n.indexOf(X2)===-1,()=>`The ellipsis notation ("${X2}") is not supported yet.`);let s=n.split(j2),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function dZ(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function hZ(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function xZ(r,t){let e=[];for(let n=0;n"Number of splits must evenly divide the axis."),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);_(o<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}_(r.shape[e]===t.reduce((i,a)=>i+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function bZ(r){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${r}`}function wZ(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function IZ(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function CZ(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function vZ(r,t){return`size ${r} must be non-negative, not ${t}`}function SZ(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function NZ(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a SparseTensor with ${e} - dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function kZ(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function TZ(){return"segment ids must be >= 0"}function _Z(){return"segment ids are not increasing"}function EZ(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function AZ(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var EN={};Kt(EN,{collectGatherOpShapeInfo:()=>RZ,computeOutShape:()=>$Z,segOpComputeOptimalWindowSize:()=>DZ});function DZ(r,t){let e=!1,n;for(r<=Ay?(n=r,e=!0):n=_p(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=_p(r,n+1);return n}function $Z(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) ( - ${s}).`);if(eKp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function OZ(r){return r.map(t=>fu(t))}var Kr={};Kt(Kr,{nonMaxSuppressionV3Impl:()=>by,nonMaxSuppressionV4Impl:()=>wy,nonMaxSuppressionV5Impl:()=>Iy,whereImpl:()=>fy});C2();var Dy={kernelName:Ei,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,So(J(e,"float32"),-1))}}};var Y2={kernelName:Go,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(J(e,"float32")),o=Se(at(pt(1),n));return Ut(ct(r,o))}}}};var Z2={kernelName:Wo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(at(Wt(J(e,"float32")),1));return ct(r,n)}}}};var J2={kernelName:no,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=be(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=be(n.shape,o);return u.length>0&&(a=mt(a,u)),R(a,n.shape)}}}};var Q2={kernelName:Uo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var tD={kernelName:Ai,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var eD={kernelName:Di,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var rD={kernelName:Ho,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Se(at(pt(1),Wt(J(e,"float32")))))}}};var nD={kernelName:qo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(pt(1),Wt(J(e,"float32"))));return ct(r,n)}}}};var oD={kernelName:Xo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=X(Wt(e),Wt(n)),u=$(r,ct(n,a)),l=be(e.shape,o);return l.length>0&&(u=mt(u,l)),R(u,e.shape)},b:()=>{let a=X(Wt(e),Wt(n)),u=Ut($(r,ct(e,a))),l=be(n.shape,o);return l.length>0&&(u=mt(u,l)),R(u,n.shape)}}}};var sD={kernelName:Ko,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,X(Wt(J(e,"float32")),1))}}};var iD={kernelName:jo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,at(pt(1),Wt(J(e,"float32"))))}}};function MZ(r,t,e,n,o,s){let i=C(r,"dy","avgPool3dGrad"),a=C(t,"input","avgPool3dGrad"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),_(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),_(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),ve("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Hl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var aD=k({avgPool3dGrad_:MZ});var lD={kernelName:$i,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>aD(r,n,o,s,i,a)}}};function PZ(r,t,e,n,o){let s=C(r,"dy","avgPoolGrad"),i=C(t,"input","avgPoolGrad");_(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),_(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=T.runKernel(Ul,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var uD=k({avgPoolGrad_:PZ});var cD={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>uD(r,n,o,s,i)}}};var pD={kernelName:Zo,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var mD={kernelName:Ri,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>Tu(r,n,o)}}};var fD={kernelName:k_,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>mt(r,a,!0)}}};var dD={kernelName:fo,gradFunc:r=>({x:()=>r.clone()})};var hD={kernelName:Jo,gradFunc:r=>({x:()=>vt(r)})};var gD={kernelName:ho,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>we(Fr(cn(n,o),Vn(n,s)),r,vt(r))}}};var xD={kernelName:Kl,inputsToSave:["x"],gradFunc:Dy.gradFunc};var yD={kernelName:Fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return hr(r,i,s).map(u=>()=>u)}};var bD={kernelName:Qo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(io(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>nm(n.shape,r,o,i,a,u),filter:()=>vm(n,r,o.shape,i,a,u)}}};var wD={kernelName:ts,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Nn(r,o,s,i,a,1,u),filter:()=>vm(r,n,o.shape,s,i,a,u)}}};function LZ(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(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}.`),_(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),_(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),_(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return T.runKernel(Ra,a,u)}var ID=k({conv3DBackpropFilter_:LZ});var CD={kernelName:es,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(io(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>Dx(i.shape,r,a,o,s),filter:()=>ID(i,r,a.shape,o,s)}}};var vD={kernelName:rs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(dm(J(e,"float32"))),r)}}};var SD={kernelName:ns,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(hm(J(e,"float32")),r)}}};var ND={kernelName:os,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=eN([o],n.rank),u=im(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var kD={kernelName:ss,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(io(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return _(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),_(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),_(Dr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),ve("depthwiseConv2d",s,i),{x:()=>gy(u.shape,r,l,o,s,a,i),filter:()=>hy(u,r,l.shape,o,s,a,i)}}};var TD={kernelName:is,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>T.runKernel(Yl,s,e),filter:()=>T.runKernel(Zl,i,e)}}};var _D={kernelName:ls,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(La,n)}}};var ED={kernelName:us,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(Ke(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var AD={kernelName:cs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var DD={kernelName:Oi,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var $D={kernelName:ps,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Ke(e))}}};var RD={kernelName:ms,gradFunc:r=>({x:()=>vt(r)})};var FD={kernelName:fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,J(n,"float32")),u=be(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,"float32")),u=be(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,J(l,"float32")))}}}};var OD={kernelName:ds,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?pt(1):a,l=be(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Rr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,pt(-1)),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=mt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=mt(I,l)),R(I,s.shape)}}}};var LD={kernelName:Mi,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s,batchDims:i}=e,a=fr(s,n.shape)[0],u=(l,c,p)=>()=>{let m=l.shape,f=c.size,d=m.slice(0,a),h=d.length,g=m.slice(s,m.length).slice(1),x=g.length,b=MD(0,h),w=MD(h+1,h+1+x),I=PD([d,[f],g]),N=R(p,I),E=R(c,[f]),A=PD([[h],b,w]),D=Vt(N,A),F=Cm(D,E,l.shape[a]),M=mh(A);return F=Vt(F,M),F};if(i===1){let l=n.shape[0],c=n.split(l,0);return{x:()=>Fe(c.map((f,d)=>u(f,o.slice(d,1),r.slice(d,1))())).reshape(n.shape),indices:()=>o}}else return{x:u(n,o,r),indices:()=>o}}};function MD(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var BD={kernelName:go,gradFunc:r=>({x:()=>J(r,"float32")})};var VD={kernelName:gs,gradFunc:r=>({x:()=>vt(r)})};var GD={kernelName:xs,gradFunc:r=>({x:()=>vt(r)})};var WD={kernelName:ys,gradFunc:r=>({x:()=>vt(r)})};var UD={kernelName:bs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>we(s,r,$(r,o))}}};var HD={kernelName:Is,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,X(e,1))}}};var qD={kernelName:ws,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,J(e,"float32"))}}};var KD={kernelName:__,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=Ke(n);return at(r,$(mt(r,o,!0),i))}}}};function zZ(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return T.runKernel(Xa,a,u)}var jD=k({localResponseNormalizationBackprop_:zZ});var XD={kernelName:Cs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>jD(n,o,r,s,i,a,u)}}};function $y(r,t,e,n){return t.rank$(r,J($r(e,t),r.dtype))}}var AN={kernelName:vs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var YD={kernelName:Ss,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(cn(e,n),"float32")),b:()=>$(r,J(yl(e,n),"float32"))}}};function BZ(r,t,e,n,o,s,i){let a=C(r,"dy","maxPool3dGrad"),u=C(t,"input","maxPool3dGrad"),l=C(e,"output","maxPool3dGrad"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.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}.`),_(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),ve("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(tu,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var ZD=k({maxPool3dGrad_:BZ});var JD={kernelName:Pi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>ZD(r,n,o,s,i,a,u)}}};function VZ(r,t,e,n,o,s,i){let a=C(r,"dy","maxPoolGrad"),u=C(t,"input","maxPoolGrad"),l=C(e,"output","maxPoolGrad");_(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),_(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),_(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),ve("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(Ql,c,p)}var QD=k({maxPoolGrad_:VZ});var t$={kernelName:Ns,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>QD(r,n,o,s,i,a)}}};var e$={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=tN(n.shape,s)[1],u=jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ct($(p,ar(n.shape,"float32")),u)}}}};var r$={kernelName:Ts,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var n$={kernelName:_s,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(Vn(e,n),"float32")),b:()=>$(r,J(Re(e,n),"float32"))}}};var o$={kernelName:Es,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var s$={kernelName:As,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=be(e.shape,o);return a.length>0?R(mt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(la(ct(e,n)))),u=be(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var i$={kernelName:Ds,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,J(n,"float32")),u=be(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,"float32")),u=be(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var a$={kernelName:Li,gradFunc:r=>({x:()=>Ut(r)})};var l$={kernelName:$s,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>ke(e.shape,"float32")}}};var u$={kernelName:zi,gradFunc:r=>({x:()=>vt(r)})};var c$={kernelName:Bi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return gr(r,n).map(s=>()=>s)}};var DN={kernelName:Rs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var p$={kernelName:Fs,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=J(i,"float32"),p=$(r,$(c,un(s,at(c,pt(1))))),m=be(s.shape,a);return m.length>0&&(p=mt(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=we(c,Nr(s),vt(s)),m=$(r,$(o,p)),f=be(i.shape,a);return f.length>0&&(m=mt(m,f)),R(m,i.shape)}}}};var m$={kernelName:Os,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>we(o,r,$(r,n)),alpha:()=>{let s=we(o,vt(r),$(r,e)),i=be(n.shape,r.shape);return i.length>0&&(s=mt(s,i)),R(s,n.shape)}}}};function GZ(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=mc(r,e,!0,!1),i=mc(r,e,!0,!0),a=$(s,i);return $(o,a)}function WZ(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=GZ(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var f$={kernelName:Ms,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o=="number"?s=[o]:s=o,{x:()=>WZ(n,r,s)}}};var d$={kernelName:as,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ct(r,J(n,"float32")),u=be(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,"float32")),u=be(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ct(a,J(l,"float32")))}}}};var h$={kernelName:Ps,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ut(Wt(e)))}}};var g$={kernelName:Vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(Vn(e,6),So(e));return{x:()=>$(r,J(n,"float32"))}}};var x$={kernelName:Ls,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,J(So(e),"float32"))}}};var y$={kernelName:Vi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var b$={kernelName:Bs,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(rl,o,e)}}};var w$={kernelName:zs,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(el,o,e)}}};var I$={kernelName:Gs,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>dr(r,o)}}};var C$={kernelName:Ws,gradFunc:r=>({x:()=>vt(r)})};var v$={kernelName:Us,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ct(r,$(un(e,1.5),2)))}}};var S$={kernelName:Gi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(vt(e),"float32"),t:()=>$(r,J(e,r.dtype)),e:()=>$(r,J(Nu(e),r.dtype))}}};var N$={kernelName:Hs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,pt(0)),o=pt(kN),s=pt(TN),i=$(r,s),a=$($(r,o),Ke(J(e,"float32")));return we(n,i,a)}}}};var k$={kernelName:Xs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,at(pt(1),e)))}}};var T$={kernelName:js,gradFunc:r=>({x:()=>vt(r)})};var _$={kernelName:qs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(bu(J(e,"float32")),r)}}};var E$={kernelName:Ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(sm(J(e,"float32")),r)}}};var A$={kernelName:Wi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=NN(n,o,s),l=[];for(let c=0;cmn(r,l)}}};var D$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>at(i,$(mt(i,[o],s),n))}}};var $$={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Qr(e))}}};var $N={kernelName:Ui,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>yu(r,n,o)}}};var RN={kernelName:Hi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ie(r,n)}}};var R$={kernelName:Zs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,$(Se(J(e,"float32")),2))}}};var F$={kernelName:iu,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(J(e,"float32"),2))}}};var O$={kernelName:ti,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=pt(2);return{a:()=>$(r,$(o,at(e,n))),b:()=>$(r,$(o,at(n,e)))}}};var M$={kernelName:xo,gradFunc:r=>({x:()=>vt(r)})};var P$={kernelName:ei,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=be(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=be(n.shape,o);return u.length>0&&(a=mt(a,u)),R(Ut(a),n.shape)}}}};var L$={kernelName:Js,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,ar(n.shape,"float32"));return{x:()=>u}}};var z$={kernelName:ri,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Wt(bu(e)))}}};var B$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(at(pt(1),Wt(e)),r)}}};var V$={kernelName:oo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=mh(o);return{x:()=>Vt(r,s)}}};var W$={kernelName:qi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>Fe(r,o)}}};var U$={kernelName:pu,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>UZ(r,e)}}};function UZ(r,t){let e=kn(t,vt(t)),n=ua(r,e),o=cn(t,pt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var HZ=[Dy,Y2,Z2,J2,Q2,tD,eD,rD,nD,oD,sD,iD,lD,cD,pD,mD,fD,dD,hD,gD,xD,yD,wD,bD,CD,vD,SD,ND,kD,TD,d$,_D,ED,AD,DD,$D,FD,RD,OD,LD,zD,BD,VD,GD,WD,UD,HD,qD,KD,XD,AN,AN,YD,JD,t$,e$,r$,n$,o$,s$,i$,a$,l$,u$,c$,DN,DN,p$,m$,f$,h$,g$,x$,y$,b$,w$,I$,C$,v$,S$,N$,k$,T$,_$,E$,A$,D$,$$,$N,$N,RN,RN,R$,O$,F$,M$,P$,L$,z$,B$,V$,G$,W$,U$,H$];for(let r of HZ)A_(r);O().prototype.abs=function(){return this.throwIfDisposed(),_e(this)};O().prototype.acos=function(){return this.throwIfDisposed(),mx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),fx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),tm(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),cc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),ea(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),dx(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),_(this.size===1,()=>"The array must have only 1 element."),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),hx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),gx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),xx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),yx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),bx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),xu(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),yu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),oa(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),sa(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Nx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),vr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Lt&&(r=[r]),ie([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),rm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),om(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Nn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),bu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),sm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),mc(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),im(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Rx(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),ia(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Fx(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Ox(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Mx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),aa(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Px(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Lx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),Ke(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),je(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),zx(this)};O().prototype.fft=function(){return this.throwIfDisposed(),Au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),la(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Qp(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),ua(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),cn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),wl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),ym(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Bx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Vx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Cu(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Vn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),yl(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Wx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),qx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),Su(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),vu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Nu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),lm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ku(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),kn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Ne(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),gl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),lo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Yx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Zx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),xl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),ui(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ca(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),wr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),mn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),un(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Qx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),sy(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Or(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),um(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),Cy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),vy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),dr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Du(this)};O().prototype.round=function(){return this.throwIfDisposed(),cm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),pm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),mm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),fm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Qr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),iy(this)};O().prototype.sin=function(){return this.throwIfDisposed(),dm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),hm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Eu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),li(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),Tu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),hr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),bm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Wn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Lt?[this,r]:[this,...r];return Fe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),So(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ay(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),at(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),mt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ly(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),na(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),cy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),py(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Cm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),gr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),we(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var uo=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},dn=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},z=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},_t=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},Ry=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}};var Ch=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var ko={};function Nm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function FN(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>FN(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?r[e]=n.value:FN(n))}}}function fa(r,t={},e={},n="object",o=!1){if(typeof r=="string"){let s=r,i;if(s in e)i=e[s];else if(s in ko)i=ko[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(su,i)}var b2=k({sparseSegmentSum_:tY});function eY(r,t,e,n,o,s,i,a){let u=C(r,"data","stringNGrams","string");if(u.dtype!=="string")throw new Error("Data must be of datatype string");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=C(t,"dataSplits","stringNGrams");if(l.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=T.runKernel(au,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var w2=k({stringNGrams_:eY});function rY(r,t,e=!0){let n=C(r,"input","stringSplit","string"),o=C(t,"delimiter","stringSplit","string");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=T.runKernel(lu,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var I2=k({stringSplit_:rY});function nY(r,t){let e=C(r,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let o={input:e};return T.runKernel(uu,o,n)}var C2=k({stringToHashBucketFast_:nY});function oY(r,t,e,n=!0){let o=C(r,"input","staticRegexReplace","string"),s={pattern:t,rewrite:e,replaceGlobal:n};return T.runKernel(ec,{x:o},s)}var v2=k({staticRegexReplace_:oY});var sY={fft:Au,ifft:wl,rfft:Du,irfft:bm},iY={hammingWindow:VA,hannWindow:xy,frame:yy,stft:GA},fn={flipLeftRight:UA,grayscaleToRGB:HA,resizeNearestNeighbor:vy,resizeBilinear:Cy,rgbToGrayscale:qA,rotateWithOffset:KA,cropAndResize:WA,nonMaxSuppression:jA,nonMaxSuppressionAsync:ZA,nonMaxSuppressionWithScore:JA,nonMaxSuppressionWithScoreAsync:QA,nonMaxSuppressionPadded:t2,nonMaxSuppressionPaddedAsync:e2,threshold:r2,transform:n2},xN={bandPart:o2,gramSchmidt:s2,qr:a2},aY={absoluteDifference:l2,computeWeightedLoss:Kr,cosineDistance:u2,hingeLoss:c2,huberLoss:p2,logLoss:m2,meanSquaredError:f2,sigmoidCrossEntropy:d2,softmaxCrossEntropy:h2},lY={sparseFillEmptyRows:g2,sparseReshape:x2,sparseSegmentMean:y2,sparseSegmentSum:b2},uY={stringNGrams:w2,stringSplit:I2,stringToHashBucketFast:C2,staticRegexReplace:v2};var Q={};Kt(Q,{Serializable:()=>yh,SerializationMap:()=>Sy,getRegisteredName:()=>pY,registerClass:()=>bN});var cY=new Map,yN=new Map,yh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Sy=class r{constructor(){this.classNameMap={}}static getMap(){return r.instance==null&&(r.instance=new r),r.instance}static register(t){r.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function bN(r,t,e){_(r.className!=null,()=>"Class being registered does not have the static className property defined."),_(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),_(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof t=="undefined"&&(t="Custom"),typeof e=="undefined"&&(e=r.className);let n=e,o=t+">"+n;return Sy.register(r),cY.set(o,r),yN.set(r,o),r}function pY(r){return yN.has(r)?yN.get(r):r.className}var jr=class extends yh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return Tt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Ux(t,e)}dispose(){this.iterations_!=null&&Tt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:pt(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(jr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var vc=class extends jr{static get className(){return"Adadelta"}constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>vt(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=K($(u,this.rho),$(Wt(a),1-this.rho)),p=$(ut(ge(K(l,this.epsilon)),ge(K(u,this.epsilon))),a),m=K($(l,this.rho),$(Wt(p),1-this.rho));u.assign(c),l.assign(m);let f=K($(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Tt(this.accumulatedGrads.map(t=>t.variable)),Tt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};var Sc=class extends jr{static get className(){return"Adagrad"}constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>Co(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=K(a,Wt(i));a.assign(u);let l=K($(ut(i,ge(K(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Tt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};var Nc=class extends jr{static get className(){return"Adam"}constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=pt(e).variable(),this.accBeta2=pt(n).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=at(1,this.accBeta2);e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>vt(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>vt(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=K($(c,this.beta1),$(l,1-this.beta1)),f=K($(p,this.beta2),$(Wt(l),1-this.beta2)),d=ut(m,n),h=ut(f,o);c.assign(m),p.assign(f);let g=K($(ut(d,K(ge(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign($(this.accBeta1,this.beta1)),this.accBeta2.assign($(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Tt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(qr(this.beta1,this.iterations_+1)),this.accBeta2.assign(qr(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};var kc=class extends jr{static get className(){return"Adamax"}constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=pt(0).variable(),this.accBeta1=pt(e).variable()}),o==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=at(1,this.accBeta1),o=ut(-this.learningRate,K($(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:vt(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:vt(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=K($(c,this.beta1),$(l,1-this.beta1)),f=$(p,this.beta2),d=_e(l),h=kn(f,d);c.assign(m),p.assign(h);let g=K($(ut(o,n),ut(m,K(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(K(this.iteration,1)),this.accBeta1.assign($(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Tt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Tt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};var Il=class extends jr{static get className(){return"SGD"}constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=T.registeredVariables[n];B(()=>{let a=K($(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(pt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};var Tc=class extends Il{static get className(){return"Momentum"}constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=pt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=K($(this.m,i),a);this.useNesterov?u=K($(this.c,K(a,$(l,this.m))),s):u=K($(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Tt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};var _c=class extends jr{static get className(){return"RMSProp"}constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=T.backend.epsilon()),t==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>vt(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>vt(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=K($(u,this.decay),$(Wt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=K($(p,this.decay),$(a,1-this.decay)),f=ut($(a,this.learningRate),ge(at(c,K(Wt(m),this.epsilon)))),d=K($(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=at(s,d);s.assign(h)}else{let p=K($(u,this.decay),$(Wt(a),1-this.decay)),m=K($(l,this.momentum),ut($(a,this.learningRate),ge(K(p,this.epsilon))));u.assign(p),l.assign(m);let f=at(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Tt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Tt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Tt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};var mY=[vc,Sc,Nc,kc,Tc,_c,Il];function S2(){for(let r of mY)bN(r)}var Mr={};Kt(Mr,{CompositeArrayBuffer:()=>Ur,browserFiles:()=>k2,browserHTTPRequest:()=>A2,concatenateArrayBuffers:()=>pE,copyModel:()=>NE,decodeWeights:()=>ix,decodeWeightsStream:()=>ax,encodeWeights:()=>aE,fromMemory:()=>D2,fromMemorySync:()=>NN,getLoadHandlers:()=>hE,getModelArtifactsForJSON:()=>Yp,getModelArtifactsForJSONSync:()=>H0,getModelArtifactsInfoForJSON:()=>Qi,getSaveHandlers:()=>dE,getWeightSpecs:()=>uh,http:()=>ky,isHTTPScheme:()=>Ny,listModels:()=>vE,loadWeights:()=>_2,moveModel:()=>kE,registerLoadRouter:()=>fE,registerSaveRouter:()=>mE,removeModel:()=>SE,weightsLoaderFactory:()=>vN,withSaveHandler:()=>$2,withSaveHandlerSync:()=>R2});var fY="model",dY=".json",hY=".weights.bin";function N2(r){return new Promise(t=>setTimeout(t)).then(r)}var Nm=class r{constructor(t){if(!L().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(r.URL_SCHEME)&&(t=t.slice(r.URL_SCHEME.length)),(t==null||t.length===0)&&(t=fY),this.modelJsonFileName=t+dY,this.weightDataFileName=t+hY}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let e=Ur.join(t.weightData),n=window.URL.createObjectURL(new Blob([e],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let o=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],s=lx(t,o),i=window.URL.createObjectURL(new Blob([JSON.stringify(s)],{type:"application/json"})),a=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=i,await N2(()=>a.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let u=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;u.download=this.weightDataFileName,u.href=n,await N2(()=>u.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Qi(t)}}}};Nm.URL_SCHEME="downloads://";var wN=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=Yp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,i])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>U0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=U0(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},gY=r=>L().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Nm.URL_SCHEME)?xY(r.slice(Nm.URL_SCHEME.length)):null;Cr.registerSaveRouter(gY);function xY(r="model"){return new Nm(r)}function k2(r){return new wN(r)}function IN(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){_(u!=null&&Array.isArray(u)&&u.length>0,()=>"promises must be a none empty array")}function a(u,l){_(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),_(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),_(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function CN(r,t){t==null&&(t={});let e=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),a=(t.onProgress==null?await Promise.all(n):await IN(n,t.onProgress,0,.5)).map(p=>p.arrayBuffer());return t.onProgress==null?await Promise.all(a):await IN(a,t.onProgress,.5,1)}function T2(r,t){var e;let n=t.fetchFunc==null?L().platform.fetch:t.fetchFunc,o=0,s;return(e=t.onProgress)===null||e===void 0||e.call(t,0),new ReadableStream({pull:async i=>{for(var a;oCN(i,{requestInit:n}))(r,t,e)}function vN(r){return async(t,e="",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=dl[x]*jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((I,N)=>{I===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. +Manifest JSON has weights with names: ${a.join(", ")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith("/")?"":"/")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=new Ur(c.slice(m,m+d));s[f].forEach(x=>{let b=h.slice(x.groupOffset,x.groupOffset+x.sizeBytes),w=ix(b,[x.manifestEntry]);for(let I in w)p[I]=w[I]}),m+=d}),p}}var yY="application/octet-stream",bY="application/json",bh=class{constructor(t,e){if(this.DEFAULT_METHOD="POST",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(_(typeof e.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=e.fetchFunc):this.fetch=L().platform.fetch,_(t!=null&&t.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(t)&&_(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{},this.loadOptions=e}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],o=lx(t,n);if(e.body.append("model.json",new Blob([JSON.stringify(o)],{type:bY}),"model.json"),t.weightData!=null){let i=Ur.join(t.weightData);e.body.append("model.weights.bin",new Blob([i],{type:yY}),"model.weights.bin")}let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Qi(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?i+=" 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.":i+=" Please make sure the server is serving valid JSON for this request.",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let t=await this.loadModelJSON();return Yp(t,e=>this.loadWeights(e))}async loadStream(){let t=await this.loadModelJSON(),e=await this.getWeightUrls(t.weightsManifest),n=uh(t.weightsManifest),o=()=>T2(e,this.loadOptions);return Object.assign(Object.assign({},t),{weightSpecs:n,getWeightStream:o})}async getWeightUrls(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=wY(e),s=this.weightPathPrefix||n,i=[],a=[];for(let u of t)for(let l of u.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(l)):i.push(s+l+o);return this.weightUrlConverter&&i.push(...await Promise.all(a)),i}async loadWeights(t){let e=await this.getWeightUrls(t),n=uh(t),o=await CN(e,this.loadOptions);return[n,o]}};bh.URL_SCHEME_REGEX=/^https?:\/\//;function wY(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function Ny(r){return r.match(bh.URL_SCHEME_REGEX)!=null}var E2=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Ny(n)):e=Ny(r),e)return ky(r,t)}return null};Cr.registerSaveRouter(E2);Cr.registerLoadRouter(E2);function ky(r,t){return new bh(r,t)}function A2(r,t){return ky(r,t)}var wh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Ty=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},SN=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function D2(r,t,e,n){let o=arguments;return new SN(NN(...o))}function NN(r,t,e,n){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:t,weightData:e,trainingConfig:n}))}function $2(r){return new Ty(r)}function R2(r){return new Ty(r)}var O2={};Kt(O2,{confusionMatrix:()=>F2});function IY(r,t,e){let n=C(r,"labels","confusionMatrix"),o=C(t,"predictions","confusionMatrix");_(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),_(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),_(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),_(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),_(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=ca(J(n,"int32"),e),i=ca(J(o,"int32"),e),a=Vt(s),u=Bt(a,i);return J(u,"int32")}var F2=k({confusionMatrix_:IY});var _y={};Kt(_y,{draw:()=>EY,fromPixels:()=>AY,fromPixelsAsync:()=>kY,toPixels:()=>_Y});var Ec,M2=!1;function P2(r,t=3){if(t>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 e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)a=!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(Wp(th,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(th,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext("2d").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Ec==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ec=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ec=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ec.canvas.width=l,Ec.canvas.height=c,Ec.drawImage(r,0,0,l,c),p=Ec.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||t===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if(r.dtype!=="float32"&&r.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${r.dtype}. Please use float32 or int32 tensors.`)}function TY(r){let t=(r==null?void 0:r.alpha)||1;if(t>1||t<0)throw new Error(`Alpha value ${t} is suppoed to be in range [0 - 1].`)}async function _Y(r,t){let e=C(r,"img","toPixels");if(!(r instanceof Lt)){let l=e;e=J(l,"int32"),l.dispose()}L2(e);let[n,o]=e.shape.slice(0,2),s=e.rank===2?1:e.shape[2],i=await e.data(),a=e.dtype==="float32"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.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*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){M2||Wp(Qd,T.backendName)!=null&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),M2=!0),t.width=o,t.height=n;let l=t.getContext("2d"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}function EY(r,t,e){let n=C(r,"img","draw");if(!(r instanceof Lt)){let i=n;n=J(i,"int32"),i.dispose()}L2(n),TY(e==null?void 0:e.imageOptions);let o={image:n},s={canvas:t,options:e};T.runKernel(Qd,o,s)}var AY=k({fromPixels_:P2});var Ey={};Kt(Ey,{prepareAndValidate:()=>z2});function z2(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);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[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var Be={};Kt(Be,{assertParamsValid:()=>$Y,computeFlatOffset:()=>PY,computeOutShape:()=>FY,getNormalizedAxes:()=>OY,isSliceContinous:()=>MY,maskToAxes:()=>RY,parseSliceParams:()=>TN,sliceInfo:()=>LY,startForAxis:()=>K2,startIndicesWithElidedDims:()=>U2,stopForAxis:()=>j2,stopIndicesWithElidedDims:()=>H2,stridesForAxis:()=>q2,stridesWithElidedDims:()=>V2});var kN=-2,DY=-1;function $Y(r,t,e){let n=r.shape.length;_(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),_(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function RY(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function FY(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=U2(i,f,d,n,r),p=H2(a,f,d,o,r),m=V2(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=G2(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=G2(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=kp(0,i,u-1),i}function j2(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=kp(0,i,u):i=kp(-1,i,u-1),i}function MY(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function PY(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{_(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return e==null?s=new Array(o).fill(-1):typeof e=="number"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(_(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function LY(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&i&i-1)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(I&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=B2(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=B2(m.end[w],1,m.strides[w],N,E,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&D,d=d&&(w===0&&m.strides[w]===1||D);let F,M=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],M=!0):I?(F=1,M=!0):D&&N>=0&&(m.strides[w]<0?F=-N:F=N,M=!0),M){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[I]):I===kN&&x.push(1)}return{finalShapeSparse:x.filter((w,I)=>m.finalShapeGatherIndices[I]!==kN),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function zY(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var X2="4.21.0";var Ih=class{static sgd(t){return new Il(t)}static momentum(t,e,n=!1){return new Tc(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new _c(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new Nc(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new vc(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new kc(t,e,n,o,s)}static adagrad(t,e=.1){return new Sc(t,e)}};var Ac=Ih;var BY=typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r();function Ch(){return new Promise(r=>BY(()=>r()))}var S={};Kt(S,{ERF_A1:()=>eZ,ERF_A2:()=>rZ,ERF_A3:()=>nZ,ERF_A4:()=>oZ,ERF_A5:()=>sZ,ERF_P:()=>tZ,PARALLELIZE_THRESHOLD:()=>Ay,RowPartitionType:()=>ma,SELU_SCALE:()=>EN,SELU_SCALEALPHA:()=>_N,applyActivation:()=>Ic,assertAndGetBroadcastShape:()=>Mt,assertAxesAreInnerMostDims:()=>w6,assertParamsConsistent:()=>VY,assignToTypedArray:()=>pZ,axesAreInnerMostDims:()=>eN,calculateShapes:()=>RA,checkEinsumDimSizes:()=>xZ,checkPadOnDimRoundingMode:()=>Se,combineLocations:()=>zE,combineRaggedTensorToTensorShapes:()=>WY,complexWithEvenIndex:()=>lZ,complexWithOddIndex:()=>uZ,computeConv2DInfo:()=>pc,computeConv3DInfo:()=>AE,computeDefaultPad:()=>tN,computeDilation2DInfo:()=>bj,computeOptimalWindowSize:()=>KY,computeOutAndReduceShapes:()=>rN,computeOutShape:()=>GY,computePool2DInfo:()=>Q0,computePool3DInfo:()=>wj,convertConv2DDataFormat:()=>DE,decodeEinsumEquation:()=>hZ,eitherStridesOrDilationsAreOne:()=>Dr,expandShapeToKeepDim:()=>vo,exponent:()=>fZ,exponents:()=>mZ,fromStringArrayToUint8:()=>LZ,fromUint8ToStringArray:()=>PZ,getAxesPermutation:()=>nN,getBroadcastDims:()=>PE,getComplexWithIndex:()=>cZ,getEinsumComputePath:()=>yZ,getEinsumPermutation:()=>gZ,getFusedBiasGradient:()=>wc,getFusedDyActivation:()=>bc,getImageCenter:()=>jY,getInnerMostAxes:()=>I6,getPermuted:()=>YY,getRaggedRank:()=>HY,getReductionAxes:()=>we,getReshaped:()=>XY,getReshapedPermuted:()=>ZY,getRowPartitionTypesHelper:()=>UY,getSliceBeginCoords:()=>JY,getSliceSize:()=>QY,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>CZ,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>vZ,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>SZ,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>TZ,getSparseReshapeInputOutputMismatchErrorMessage:()=>EZ,getSparseReshapeInputOutputMultipleErrorMessage:()=>_Z,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>NZ,getSparseReshapeNegativeOutputDimErrorMessage:()=>kZ,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>RZ,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>AZ,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>DZ,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>$Z,getUndoAxesPermutation:()=>fh,isIdentityPermutation:()=>bZ,log:()=>mK,mergeRealAndImagArrays:()=>iZ,prepareAndValidate:()=>z2,prepareSplitSize:()=>IZ,segment_util:()=>DN,shouldFuse:()=>Cc,slice_util:()=>Be,splitRealAndImagArrays:()=>aZ,stridesOrDilationsArePositive:()=>na,tupleValuesAreOne:()=>io,upcastType:()=>ur,validateDefaultValueShape:()=>qY,validateInput:()=>Im,validateUpdateShape:()=>fN,warn:()=>Ji});function VY(r,t){let e=r[0].length;r.forEach((o,s)=>{_(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),_(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function GY(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function UY(r){let t={FIRST_DIM_SIZE:ma.FIRST_DIM_SIZE,VALUE_ROWIDS:ma.VALUE_ROWIDS,ROW_LENGTHS:ma.ROW_LENGTHS,ROW_SPLITS:ma.ROW_SPLITS,ROW_LIMITS:ma.ROW_LIMITS,ROW_STARTS:ma.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function HY(r){return r.length===0?0:r[0]===ma.FIRST_DIM_SIZE?r.length-1:r.length}function qY(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var Ay=30;function KY(r){return r<=Ay?r:_p(r,Math.floor(Math.sqrt(r)))}function jY(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function XY(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function ZY(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,Y2=",",Z2="...";function hZ(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(dZ,"").length)/AN.length;if(e<1)throw new Error("Equations without an arrow are not supported.");if(e>1)throw new Error(`Equation must contain exactly one arrow ("${AN}").`);let[n,o]=r.split(AN);_(n.indexOf(Z2)===-1,()=>`The ellipsis notation ("${Z2}") is not supported yet.`);let s=n.split(Y2),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function xZ(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function yZ(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function wZ(r,t){let e=[];for(let n=0;n"Number of splits must evenly divide the axis."),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);_(o<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}_(r.shape[e]===t.reduce((i,a)=>i+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function CZ(r){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${r}`}function vZ(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function SZ(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function NZ(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function kZ(r,t){return`size ${r} must be non-negative, not ${t}`}function TZ(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function _Z(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a SparseTensor with ${e} + dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function EZ(r,t){let e=jt(r),n=jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function AZ(){return"segment ids must be >= 0"}function DZ(){return"segment ids are not increasing"}function $Z(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function RZ(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var DN={};Kt(DN,{collectGatherOpShapeInfo:()=>MZ,computeOutShape:()=>OZ,segOpComputeOptimalWindowSize:()=>FZ});function FZ(r,t){let e=!1,n;for(r<=Ay?(n=r,e=!0):n=_p(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=_p(r,n+1);return n}function OZ(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) ( + ${s}).`);if(eKp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function LZ(r){return r.map(t=>fu(t))}var Xr={};Kt(Xr,{nonMaxSuppressionV3Impl:()=>by,nonMaxSuppressionV4Impl:()=>wy,nonMaxSuppressionV5Impl:()=>Iy,whereImpl:()=>fy});S2();var Dy={kernelName:Ai,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,So(J(e,"float32"),-1))}}};var J2={kernelName:Go,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Wt(J(e,"float32")),o=ge(at(pt(1),n));return Ut(ut(r,o))}}}};var Q2={kernelName:Wo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ge(at(Wt(J(e,"float32")),1));return ut(r,n)}}}};var tD={kernelName:no,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=we(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=we(n.shape,o);return u.length>0&&(a=mt(a,u)),R(a,n.shape)}}}};var eD={kernelName:Uo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var rD={kernelName:Di,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var nD={kernelName:$i,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>vt(e)}}};var oD={kernelName:Ho,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,ge(at(pt(1),Wt(J(e,"float32")))))}}};var sD={kernelName:qo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ge(K(pt(1),Wt(J(e,"float32"))));return ut(r,n)}}}};var iD={kernelName:Xo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=K(Wt(e),Wt(n)),u=$(r,ut(n,a)),l=we(e.shape,o);return l.length>0&&(u=mt(u,l)),R(u,e.shape)},b:()=>{let a=K(Wt(e),Wt(n)),u=Ut($(r,ut(e,a))),l=we(n.shape,o);return l.length>0&&(u=mt(u,l)),R(u,n.shape)}}}};var aD={kernelName:Ko,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,K(Wt(J(e,"float32")),1))}}};var lD={kernelName:jo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,at(pt(1),Wt(J(e,"float32"))))}}};function zZ(r,t,e,n,o,s){let i=C(r,"dy","avgPool3dGrad"),a=C(t,"input","avgPool3dGrad"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),_(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),_(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Se("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=T.runKernel(Hl,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var uD=k({avgPool3dGrad_:zZ});var cD={kernelName:Ri,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>uD(r,n,o,s,i,a)}}};function BZ(r,t,e,n,o){let s=C(r,"dy","avgPoolGrad"),i=C(t,"input","avgPoolGrad");_(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),_(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=T.runKernel(Ul,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var pD=k({avgPoolGrad_:BZ});var mD={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>pD(r,n,o,s,i)}}};var fD={kernelName:Zo,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Bt(r,o,!1,!0),b:()=>Bt(n,r,!0,!1)}:!s&&i?{a:()=>Bt(r,o,!1,!1),b:()=>Bt(r,n,!0,!1)}:s&&!i?{a:()=>Bt(o,r,!1,!0),b:()=>Bt(n,r,!1,!1)}:{a:()=>Bt(o,r,!0,!0),b:()=>Bt(r,n,!0,!0)}}};var dD={kernelName:Fi,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>Tu(r,n,o)}}};var hD={kernelName:__,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>mt(r,a,!0)}}};var gD={kernelName:fo,gradFunc:r=>({x:()=>r.clone()})};var xD={kernelName:Jo,gradFunc:r=>({x:()=>vt(r)})};var yD={kernelName:ho,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>Ie(Fr(cn(n,o),Vn(n,s)),r,vt(r))}}};var bD={kernelName:Kl,inputsToSave:["x"],gradFunc:Dy.gradFunc};var wD={kernelName:Oi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=fr(o,t[0].shape)[0],i=n.map(u=>u[s]);return hr(r,i,s).map(u=>()=>u)}};var ID={kernelName:Qo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(io(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>nm(n.shape,r,o,i,a,u),filter:()=>Sm(n,r,o.shape,i,a,u)}}};var CD={kernelName:ts,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Nn(r,o,s,i,a,1,u),filter:()=>Sm(r,n,o.shape,s,i,a,u)}}};function VZ(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(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}.`),_(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),_(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),_(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return T.runKernel(Ra,a,u)}var vD=k({conv3DBackpropFilter_:VZ});var SD={kernelName:es,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(io(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>$x(i.shape,r,a,o,s),filter:()=>vD(i,r,a.shape,o,s)}}};var ND={kernelName:rs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(Ut(hm(J(e,"float32"))),r)}}};var kD={kernelName:ns,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(gm(J(e,"float32")),r)}}};var TD={kernelName:os,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=nN([o],n.rank),u=im(r,o,s,!i);return a!=null&&(u=Vt(u,a)),u}}}};var _D={kernelName:ss,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(io(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return _(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),_(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),_(Dr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Se("depthwiseConv2d",s,i),{x:()=>gy(u.shape,r,l,o,s,a,i),filter:()=>hy(u,r,l.shape,o,s,a,i)}}};var ED={kernelName:is,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>T.runKernel(Yl,s,e),filter:()=>T.runKernel(Zl,i,e)}}};var AD={kernelName:ls,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(La,n)}}};var DD={kernelName:us,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(Ke(Ut(Wt(e))),2/Math.sqrt(Math.PI));return{x:()=>$(r,n)}}};var $D={kernelName:cs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,e)}}};var RD={kernelName:Mi,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var FD={kernelName:ps,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,Ke(e))}}};var OD={kernelName:ms,gradFunc:r=>({x:()=>vt(r)})};var MD={kernelName:fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ut(r,J(n,"float32")),u=we(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,"float32")),u=we(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ut(a,J(l,"float32")))}}}};var PD={kernelName:ds,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?pt(1):a,l=we(s.shape,o.shape),c=[];if(s.rank===1){for(let I=0;Is.rank===1?R($($(r,Rr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R($($(r,f),u),o.shape),mean:()=>{let I=$($(f,pt(-1)),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},variance:()=>{let I=$($(d,p),m);return s.rank===1&&(I=mt(I,l)),R(I,s.shape)},scale:()=>{let I=$(p,f),N=$(r,I);return s.rank===1&&(N=mt(N,l)),R(N,s.shape)},offset:()=>{let I=r;return s.rank===1&&(I=mt(I,l)),R(I,s.shape)}}}};var BD={kernelName:Pi,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s,batchDims:i}=e,a=fr(s,n.shape)[0],u=(l,c,p)=>()=>{let m=l.shape,f=c.size,d=m.slice(0,a),h=d.length,g=m.slice(s,m.length).slice(1),x=g.length,b=LD(0,h),w=LD(h+1,h+1+x),I=zD([d,[f],g]),N=R(p,I),E=R(c,[f]),A=zD([[h],b,w]),D=Vt(N,A),F=vm(D,E,l.shape[a]),M=fh(A);return F=Vt(F,M),F};if(i===1){let l=n.shape[0],c=n.split(l,0);return{x:()=>Fe(c.map((f,d)=>u(f,o.slice(d,1),r.slice(d,1))())).reshape(n.shape),indices:()=>o}}else return{x:u(n,o,r),indices:()=>o}}};function LD(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>vt(e),b:()=>vt(n)}}};var GD={kernelName:go,gradFunc:r=>({x:()=>J(r,"float32")})};var WD={kernelName:gs,gradFunc:r=>({x:()=>vt(r)})};var UD={kernelName:xs,gradFunc:r=>({x:()=>vt(r)})};var HD={kernelName:ys,gradFunc:r=>({x:()=>vt(r)})};var qD={kernelName:bs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>Ie(s,r,$(r,o))}}};var KD={kernelName:Is,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,K(e,1))}}};var jD={kernelName:ws,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,J(e,"float32"))}}};var XD={kernelName:A_,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=Ke(n);return at(r,$(mt(r,o,!0),i))}}}};function GZ(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return T.runKernel(Xa,a,u)}var YD=k({localResponseNormalizationBackprop_:GZ});var ZD={kernelName:Cs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>YD(n,o,r,s,i,a,u)}}};function $y(r,t,e,n){return t.rank$(r,J($r(e,t),r.dtype))}}var $N={kernelName:vs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var JD={kernelName:Ss,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(cn(e,n),"float32")),b:()=>$(r,J(yl(e,n),"float32"))}}};function WZ(r,t,e,n,o,s,i){let a=C(r,"dy","maxPool3dGrad"),u=C(t,"input","maxPool3dGrad"),l=C(e,"output","maxPool3dGrad"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.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}.`),_(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Se("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=T.runKernel(tu,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var QD=k({maxPool3dGrad_:WZ});var t$={kernelName:Li,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>QD(r,n,o,s,i,a,u)}}};function UZ(r,t,e,n,o,s,i){let a=C(r,"dy","maxPoolGrad"),u=C(t,"input","maxPoolGrad"),l=C(e,"output","maxPoolGrad");_(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),_(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),_(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Se("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return T.runKernel(Ql,c,p)}var e$=k({maxPoolGrad_:UZ});var r$={kernelName:Ns,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>e$(r,n,o,s,i,a)}}};var n$={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=fr(o,n.shape),a=rN(n.shape,s)[1],u=jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return ut($(p,ar(n.shape,"float32")),u)}}}};var o$={kernelName:Ts,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=fr(o,s.shape),u=$y(r,i,s,a);return{x:()=>u.x()}}};var s$={kernelName:_s,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>$(r,J(Vn(e,n),"float32")),b:()=>$(r,J(Re(e,n),"float32"))}}};var i$={kernelName:Es,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var a$={kernelName:As,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=we(e.shape,o);return a.length>0?R(mt(r,a),e.shape):r},b:()=>{let a=$(r,Ut(la(ut(e,n)))),u=we(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var l$={kernelName:Ds,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=$(r,J(n,"float32")),u=we(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,"float32")),u=we(n.shape,o);return u.length>0?R(mt(a,u),n.shape):a}}}};var u$={kernelName:zi,gradFunc:r=>({x:()=>Ut(r)})};var c$={kernelName:$s,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>ke(e.shape,"float32")}}};var p$={kernelName:Bi,gradFunc:r=>({x:()=>vt(r)})};var m$={kernelName:Vi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return gr(r,n).map(s=>()=>s)}};var RN={kernelName:Rs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var f$={kernelName:Fs,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Mt(s.shape,i.shape);return{a:()=>{let c=J(i,"float32"),p=$(r,$(c,qr(s,at(c,pt(1))))),m=we(s.shape,a);return m.length>0&&(p=mt(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=Ie(c,Nr(s),vt(s)),m=$(r,$(o,p)),f=we(i.shape,a);return f.length>0&&(m=mt(m,f)),R(m,i.shape)}}}};var d$={kernelName:Os,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>Ie(o,r,$(r,n)),alpha:()=>{let s=Ie(o,vt(r),$(r,e)),i=we(n.shape,r.shape);return i.length>0&&(s=mt(s,i)),R(s,n.shape)}}}};function HZ(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=mc(r,e,!0,!1),i=mc(r,e,!0,!0),a=$(s,i);return $(o,a)}function qZ(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Vt(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=HZ(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Vt(p,m)}return p}var h$={kernelName:Ms,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o=="number"?s=[o]:s=o,{x:()=>qZ(n,r,s)}}};var g$={kernelName:as,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=ut(r,J(n,"float32")),u=we(e.shape,o);return u.length>0?R(mt(a,u),e.shape):a},b:()=>{let a=$(r,J(e,"float32")),u=we(n.shape,o);u.length>0&&(a=R(mt(a,u),n.shape));let l=Wt(n);return Ut(ut(a,J(l,"float32")))}}}};var x$={kernelName:Ps,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,Ut(Wt(e)))}}};var y$={kernelName:Vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=$(Vn(e,6),So(e));return{x:()=>$(r,J(n,"float32"))}}};var b$={kernelName:Ls,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,J(So(e),"float32"))}}};var w$={kernelName:Gi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var I$={kernelName:Bs,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(rl,o,e)}}};var C$={kernelName:zs,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(el,o,e)}}};var v$={kernelName:Gs,gradFunc:(r,t,e)=>{let{dims:n}=e,o=fr(n,r.shape);return{x:()=>dr(r,o)}}};var S$={kernelName:Ws,gradFunc:r=>({x:()=>vt(r)})};var N$={kernelName:Us,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(ut(r,$(qr(e,1.5),2)))}}};var k$={kernelName:Wi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(vt(e),"float32"),t:()=>$(r,J(e,r.dtype)),e:()=>$(r,J(Nu(e),r.dtype))}}};var T$={kernelName:Hs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,pt(0)),o=pt(_N),s=pt(EN),i=$(r,s),a=$($(r,o),Ke(J(e,"float32")));return Ie(n,i,a)}}}};var _$={kernelName:Xs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(e,at(pt(1),e)))}}};var E$={kernelName:js,gradFunc:r=>({x:()=>vt(r)})};var A$={kernelName:qs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(bu(J(e,"float32")),r)}}};var D$={kernelName:Ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(sm(J(e,"float32")),r)}}};var $$={kernelName:Ui,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=TN(n,o,s),l=[];for(let c=0;cmn(r,l)}}};var R$={kernelName:Qs,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=$(r,n);return{logits:()=>at(i,$(mt(i,[o],s),n))}}};var F$={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,en(e))}}};var FN={kernelName:Hi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>yu(r,n,o)}}};var ON={kernelName:qi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ie(r,n)}}};var O$={kernelName:Zs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,$(ge(J(e,"float32")),2))}}};var M$={kernelName:iu,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(r,$(J(e,"float32"),2))}}};var P$={kernelName:ti,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=pt(2);return{a:()=>$(r,$(o,at(e,n))),b:()=>$(r,$(o,at(n,e)))}}};var L$={kernelName:xo,gradFunc:r=>({x:()=>vt(r)})};var z$={kernelName:ei,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Mt(e.shape,n.shape);return{a:()=>{let a=r,u=we(e.shape,o);return u.length>0&&(a=mt(a,u)),R(a,e.shape)},b:()=>{let a=r,u=we(n.shape,o);return u.length>0&&(a=mt(a,u)),R(Ut(a),n.shape)}}}};var B$={kernelName:Js,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;fr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=$(a,ar(n.shape,"float32"));return{x:()=>u}}};var V$={kernelName:ri,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ut(r,Wt(bu(e)))}}};var G$={kernelName:ni,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>$(at(pt(1),Wt(e)),r)}}};var W$={kernelName:oo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=vt(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=fh(o);return{x:()=>Vt(r,s)}}};var H$={kernelName:Ki,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>Fe(r,o)}}};var q$={kernelName:pu,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>KZ(r,e)}}};function KZ(r,t){let e=kn(t,vt(t)),n=ua(r,e),o=cn(t,pt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>vt(r)})};var jZ=[Dy,J2,Q2,tD,eD,rD,nD,oD,sD,iD,aD,lD,cD,mD,fD,dD,hD,gD,xD,yD,bD,wD,CD,ID,SD,ND,kD,TD,_D,ED,g$,AD,DD,$D,RD,FD,MD,OD,PD,BD,VD,GD,WD,UD,HD,qD,KD,jD,XD,ZD,$N,$N,JD,t$,r$,n$,o$,s$,i$,a$,l$,u$,c$,p$,m$,RN,RN,f$,d$,h$,x$,y$,b$,w$,I$,C$,v$,S$,N$,k$,T$,_$,E$,A$,D$,$$,R$,F$,FN,FN,ON,ON,O$,P$,M$,L$,z$,B$,V$,G$,W$,U$,H$,q$,K$];for(let r of jZ)$_(r);O().prototype.abs=function(){return this.throwIfDisposed(),_e(this)};O().prototype.acos=function(){return this.throwIfDisposed(),fx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),K(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),tm(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),cc(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),ra(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),hx(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),_(this.size===1,()=>"The array must have only 1 element."),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),gx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),xx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),yx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),bx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),wx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),xu(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),yu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),oa(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),sa(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),kx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),vr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Lt&&(r=[r]),ie([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),rm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),om(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Nn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),bu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),sm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),mc(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),im(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),ia(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ox(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Mx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),ut(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Px(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),aa(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),am(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Lx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),Ke(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),je(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),zx(this)};O().prototype.fft=function(){return this.throwIfDisposed(),Au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),la(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Qp(this,r)};O().prototype.gather=function(r,t,e){return this.throwIfDisposed(),ua(this,r,t,e)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),cn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),wl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),bm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Bx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Vx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Cu(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Vn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),yl(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Wx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),qx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),lm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),Su(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),vu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Nu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),um(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Bt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ku(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),kn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Ne(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),gl(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),lo(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Yx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Zx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),$(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),xl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),ci(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ca(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),wr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),mn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),qr(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),_u(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Qx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),sy(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Or(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),cm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),Cy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),vy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),dr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),Du(this)};O().prototype.round=function(){return this.throwIfDisposed(),pm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),mm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),fm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),dm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),en(this)};O().prototype.sign=function(){return this.throwIfDisposed(),iy(this)};O().prototype.sin=function(){return this.throwIfDisposed(),hm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),gm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),Eu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),ui(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),Tu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),hr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),ge(this)};O().prototype.square=function(){return this.throwIfDisposed(),Wt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),wm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Wn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Lt?[this,r]:[this,...r];return Fe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),So(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ay(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),at(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),mt(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ly(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),li(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),cy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Vt(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),py(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),vm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),gr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),Ie(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),vt(this)};var uo=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},dn=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},z=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},_t=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}},Ry=class r extends Error{constructor(t){super(t),Object.setPrototypeOf(this,r.prototype)}};var vh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var ko={};function km(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function MN(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>MN(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?r[e]=n.value:MN(n))}}}function fa(r,t={},e={},n="object",o=!1){if(typeof r=="string"){let s=r,i;if(s in e)i=e[s];else if(s in ko)i=ko[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new z(`${n}: Improper config format: ${JSON.stringify(s)}. 'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in ko?[a,u]=ko.className:i in t&&([a,u]=t[i]),a==null)throw new z(`Unknown ${n}: ${i}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(ko))l[f]=ko[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},ko);for(let f of Object.keys(e))ko[f]=e[f];FN(s.config);let m=u(a,s.config,e,o);return ko=Object.assign({},p),m}else{let l=Object.assign({},ko);for(let p of Object.keys(e))ko[p]=e[p];let c=new a(s.config);return ko=Object.assign({},l),c}}}function qZ(r,t){return rt?1:0}function vh(r,t){return-1*qZ(r,t)}function Eo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function q$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function da(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Fy(r,t,e=0,n=1/0){return co(e>=0),co(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function tr(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>tr(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${K$(r)}.`)}function K$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>K$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function j$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return km.set(e,1),e}else return r}var XZ=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function rR(r){return!!r.match(XZ)}function nR(r){return r===parseInt(r.toString(),10)}function Ao(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function gn(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=Sl(r,1);return Vy(e,[1,t,1])})}function sR(r){let t=[Ao(r.shape)];return R(r,t)}function iR(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Ao(r.shape,1)];return R(r,t)}function vl(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[t,0],[e,r.shape[1]]);case 3:return xm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return yc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(r,[t,0,0,0,0,0],[e,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 LN(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[0,t],[r.shape[0],e]);case 3:return xm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return yc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:switch(n){case 1:return vl(r,t,e);case 2:return LN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return vl(r,t,e);case 2:return xm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return LN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return vl(r,t,e);case 2:return yc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return yc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return LN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Tm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ie(r,t)}function BN(r,t){switch(r.rank){case 1:return kx([r,t]);case 2:return Tx([r,t],0);case 3:return _x([r,t],0);case 4:return Ex([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Vy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Rr(r,t)}function _m(r,t=0,e=1,n,o){return xc(r,t,e,n,o)}function Do(r,t,e,n){if(r.rank<2||t.rank<2)throw new _t(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new _t(`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 = ${t.shape}`)}if(r.rank===2&&t.rank===2)return Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?zN(r.rank,n,xn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Vt(t,c),[u,-1]);let p=[...o,...l];return R(Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?zN(r.rank,n,xn()):null,activation:e}),p)}}function Gy(r,t,e){return B(()=>(Array.isArray(t)?t=Oe(t,"int32"):t=J(t,"int32"),ua(r,t,e)))}function $c(r){return $(r,r)}function zN(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function yn(r,t,e){return B(()=>(e==null&&(e=xn()),Me(e),X(r,zN(r.rank,t,e))))}function aR(r,t=1){if(t!==1)throw new _t(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return aa(r)}function lR(r){return B(()=>ct(r,X(_e(r),1)))}function Wy(r,t,e,n){return B(()=>mN(r,t,e,n))}function uR(r){return B(()=>{let t=X(.5,$(.2,r));return vr(t,0,1)})}function Ou(r,t,e=!1){return e?r():t()}var cR=["fanIn","fanOut","fanAvg"],pR=["normal","uniform","truncatedNormal"];function YZ(r){da(cR,"FanMode",r)}function ZZ(r){da(pR,"Distribution",r)}var bn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Em=class extends bn{apply(t,e){return ke(t,e)}};Em.className="Zeros";Q.registerClass(Em);var Mu=class extends bn{apply(t,e){return ar(t,e)}};Mu.className="Ones";Q.registerClass(Mu);var Am=class extends bn{constructor(t){if(super(),typeof t!="object")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>$(pt(this.value),ar(t,e)))}getConfig(){return{value:this.value}}};Am.className="Constant";Q.registerClass(Am);var Dm=class extends bn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return Gn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Dm.className="RandomUniform";Q.registerClass(Dm);var $m=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new _t(`randomNormal does not support dType ${e}.`);return _m(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className="RandomNormal";Q.registerClass($m);var Rm=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new _t(`truncatedNormal does not support dType ${e}.`);return Im(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Rm.className="TruncatedNormal";Q.registerClass(Rm);var Fm=class extends bn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return $(this.gain,fc(t[0]))})}getConfig(){return{gain:this.gain}}};Fm.className="Identity";Q.registerClass(Fm);function JZ(r,t="channelsLast"){let e,n;if(Me(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=Ao(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=Ao(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Ao(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var jr=class extends bn{constructor(t){if(super(),t.scale<0)throw new z(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?"fanIn":t.mode,YZ(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,ZZ(this.distribution),this.seed=t.seed}apply(t,e){let n=JZ(t),o=n[0],s=n[1],i=this.scale;if(this.mode==="fanIn"?i/=Math.max(1,o):this.mode==="fanOut"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution==="normal"){let a=Math.sqrt(i);if(e=e||"float32",e!=="float32"&&e!=="int32")throw new _t(`${this.getClassName()} does not support dType ${e}.`);return Im(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Gn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};jr.className="VarianceScaling";Q.registerClass(jr);var Rc=class extends jr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Rc.className="GlorotUniform";Q.registerClass(Rc);var Fc=class extends jr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Fc.className="GlorotNormal";Q.registerClass(Fc);var Oc=class extends jr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Oc.className="HeNormal";Q.registerClass(Oc);var Mc=class extends jr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Mc.className="HeUniform";Q.registerClass(Mc);var Pc=class extends jr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Pc.className="LeCunNormal";Q.registerClass(Pc);var Lc=class extends jr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return jr.className}};Lc.className="LeCunUniform";Q.registerClass(Lc);var Om=class extends bn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new _t("Shape must be at least 2D.");if(e!=="int32"&&e!=="float32"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=_m(i,0,1,e,this.seed),u=hN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var hR="Variable",kh=class{constructor(t,e="float32",n=hR,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=Py(),n=n==null?hR:n,this.originalName=Ly(n),this.name=zy(this.originalName),this.trainable_=o,this.constraint=s,this.val=my(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),t7(this.val,t),this.val.id!==t.id&&(this.val.assign(t),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(t){this.trainable_=t,this.val.trainable=t}};function t7(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function Th(r){return r.map(t=>t.read())}function Lm(r){r.forEach(t=>{t[0].write(t[1])})}var Ie=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},en=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=Py(),i!=null&&(this.originalName=Ly(i),this.name=zy(this.originalName)),this.rank=e.length}},e7=0,Nl=class{constructor(t,e){this.callArgs=e,this.id=e7++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},r7=0,Et=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=r7++,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 e=t.name;if(!e){let n=this.getClassName();e=_o(n)+"_"+Fu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o="float32"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+"_ib-"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new dn(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return kr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return kr(this.getNodeAtIndex(t,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new uo(`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 uo(`Layer ${this.name} is not connected, no input to return.`);return kr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new uo(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new uo(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return kr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){let e=ue(t);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=ue(this.inputSpec);if(e.length!==n.length)throw new z(`Layer ${this.name} expects ${n.length} inputs, but it received ${e.length} input tensors. Input received: ${t}`);for(let o=0;oi.maxNDim)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${a}`);if(i.minNDim!=null&&a=0?u[c]:u[u.length+c];if(p!=null&&[p,null].indexOf(m)===-1)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected axis ${c} of input shape to have value ${p} but got shape ${u}.`)}}if(i.shape!=null)for(let u=0;u{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of ue(t))i.push(a.shape);this.build(kr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e);this.supportsMasking&&this.setMaskMetadata(t,i);let a=ue(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=kr(u),this.activityRegularizer!=null)throw new _t("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=n7(t),a=this.computeOutputShape(i),u,l=o7(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new en(l,c,this,ue(t),e,this.name,p)):u=new en(l,a,this,ue(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new _t("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) 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 uo(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new uo(`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 dn(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Pm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Th(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Th(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=ue(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.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 e}setMaskMetadata(t,e,n){if(!this.supportsMasking)return;let o=this.computeMask(t,n),s=ue(e),i=ue(o);if(s.length!==i.length)throw new Error(`${this.name} outputs ${s.length} tensors but ${s.length} masks for those tensors`);for(let a=0;at.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 t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function n7(r){r=ue(r);let t=[];for(let e of r)t.push(e.shape);return kr(t)}function o7(r){return"float32"}function VN(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(",")+"|"+t.names().sort().join(","),p=qy.get(c),m;if(p==null){let d=l7(i,t);p=d.sorted,m=d.recipientCounts,qy.put(c,p),Ky.put(c,m)}m={},o||Object.assign(m,Ky.get(c));let f=new ha(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let e=[],n={};if(r.length===1){let o=gR(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=gR(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:u7(n)}}function u7(r){let t={};for(let e in r)t[e]=r[e].size;return t}function gR(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function c7(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,xR);var wR={};Kt(wR,{maxNorm:()=>m7,minMaxNorm:()=>h7,nonNeg:()=>d7,unitNorm:()=>f7});function GN(r,t){return B(()=>Se(mt($(r,r),t,!0)))}var Bc=class extends Q.Serializable{getConfig(){return{}}},zm=class extends Bc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=GN(t,this.axis),n=vr(e,0,this.maxValue);return $(t,ct(n,X(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};zm.className="MaxNorm";Q.registerClass(zm);var Bm=class extends Bc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ct(t,X(cr(),GN(t,this.axis))))}getConfig(){return{axis:this.axis}}};Bm.className="UnitNorm";Q.registerClass(Bm);var Vm=class extends Bc{apply(t){return Or(t)}};Vm.className="NonNeg";Q.registerClass(Vm);var Gm=class extends Bc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=GN(t,this.axis),n=X($(this.rate,vr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ct(n,X(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Gm.className="MinMaxNorm";Q.registerClass(Gm);var yR={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Ve(r){return Nm(r)}function bR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"constraint")}function Ge(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in yR?yR[r]:r,config:{}};return bR(e)}else return r instanceof Bc?r:bR(r)}function m7(r){return new zm(r)}function f7(r){return new Bm(r)}function d7(){return new Vm}function h7(r){return new Gm(r)}var IR={};Kt(IR,{constant:()=>y7,glorotNormal:()=>N7,glorotUniform:()=>S7,heNormal:()=>k7,heUniform:()=>T7,identity:()=>C7,leCunNormal:()=>_7,leCunUniform:()=>E7,ones:()=>x7,orthogonal:()=>A7,randomNormal:()=>w7,randomUniform:()=>b7,truncatedNormal:()=>I7,varianceScaling:()=>v7,zeros:()=>g7});function g7(){return new Em}function x7(){return new Mu}function y7(r){return new Am(r)}function b7(r){return new Dm(r)}function w7(r){return new $m(r)}function I7(r){return new Rm(r)}function C7(r){return new Fm(r)}function v7(r){return new jr(r)}function S7(r){return new Rc(r)}function N7(r){return new Fc(r)}function k7(r){return new Oc(r)}function T7(r){return new Mc(r)}function _7(r){return new Pc(r)}function E7(r){return new Lc(r)}function A7(r){return new Om(r)}var eF={};Kt(eF,{Layer:()=>Et,RNN:()=>po,RNNCell:()=>Tl,activation:()=>XJ,add:()=>o9,alphaDropout:()=>V9,average:()=>s9,averagePooling1d:()=>rk,averagePooling2d:()=>nk,averagePooling3d:()=>ok,avgPool1d:()=>d9,avgPool2d:()=>g9,avgPool3d:()=>y9,avgPooling1d:()=>h9,avgPooling2d:()=>x9,avgPooling3d:()=>b9,batchNormalization:()=>p9,bidirectional:()=>R9,categoryEncoding:()=>q9,centerCrop:()=>U9,concatenate:()=>i9,conv1d:()=>BJ,conv2d:()=>VJ,conv2dTranspose:()=>GJ,conv3d:()=>WJ,conv3dTranspose:()=>UJ,convLstm2d:()=>E9,convLstm2dCell:()=>A9,cropping2D:()=>qJ,dense:()=>YJ,depthwiseConv2d:()=>jJ,dot:()=>c9,dropout:()=>ZJ,elu:()=>FJ,embedding:()=>n9,flatten:()=>QJ,gaussianDropout:()=>B9,gaussianNoise:()=>z9,globalAveragePooling1d:()=>w9,globalAveragePooling2d:()=>I9,globalMaxPool1d:()=>O9,globalMaxPool2d:()=>M9,globalMaxPooling1d:()=>ZR,globalMaxPooling2d:()=>JR,gru:()=>v9,gruCell:()=>S9,input:()=>YN,inputLayer:()=>RJ,layerNormalization:()=>m9,leakyReLU:()=>MJ,lstm:()=>N9,lstmCell:()=>k9,masking:()=>G9,maxPool1d:()=>P9,maxPool2d:()=>L9,maxPooling1d:()=>QR,maxPooling2d:()=>tF,maxPooling3d:()=>C9,maximum:()=>a9,minimum:()=>l9,multiply:()=>u9,permute:()=>r9,prelu:()=>PJ,randomWidth:()=>K9,reLU:()=>OJ,repeatVector:()=>t9,rescaling:()=>W9,reshape:()=>e9,resizing:()=>H9,rnn:()=>D9,separableConv2d:()=>HJ,simpleRNN:()=>T9,simpleRNNCell:()=>_9,softmax:()=>LJ,spatialDropout1d:()=>JJ,stackedRNNCells:()=>$9,thresholdedReLU:()=>zJ,timeDistributed:()=>F9,upSampling2d:()=>KJ,zeroPadding2d:()=>f9});async function ga(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!="number"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],$(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?e[n]=this.totals[n]/this.seen:B(()=>{let o=$(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Yy=class extends kl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew Zy(n,t))}var Wm=class r{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),r.checkForDuplicate(e),r.constructors[t]==null&&(r.constructors[t]=[]),r.constructors[t].push(e)}static checkForDuplicate(t){for(let e in r.constructors)r.constructors[+e].forEach(o=>{if(o===t)throw new z("Duplicate callback constructor.")})}static clear(){r.constructors={}}static createCallbacks(t){let e=[];for(let n in r.constructors){let o=+n;t>=o&&e.push(...r.constructors[o])}return e.map(n=>new n)}};Wm.constructors={};function Qy(r,t,e,n,o,s,i,a,u){let l=new Yy,c=[new WN,...Wm.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Xy(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function wn(r,t={},e=!1){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"layer",e)}function _h(r,t){return B(()=>{r.dtype!=="float32"&&(r=J(r,"float32"));let e=mt($c(r),t,!0),n=Co(e.shape,cr()),o=Se(kn(e,n));return ct(r,o)})}function xa(r,t){return B(()=>Ne($c(at(t,r)),-1))}function Um(r,t){return B(()=>Ne(_e(at(t,r)),-1))}function Pu(r,t){return B(()=>{let e=at(r,t),n=vr(_e(r),cr(),Number.MAX_VALUE),o=_e(ct(e,n));return $(100,Ne(o,-1))})}function $7(r,t){return B(()=>{let e=vr(t,cr(),Number.MAX_VALUE),n=Nr(X(1,e)),o=vr(r,cr(),Number.MAX_VALUE),s=Nr(X(1,o));return Ne($c(at(n,s)),-1)})}function R7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne($c(e),-1)})}function F7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne(e,-1)})}function O7(r,t){return B(()=>{let e=mt($(r,t),-1),n=Sr($(at(1,r),t),-1);return kn(0,X(1,at(n,e)))})}function M7(r,t){return B(()=>{let e=Math.log(2),n=at(t,r),o=at(X(n,li($(-2,n))),e);return Ne(o,-1)})}function Vc(r,t,e=!1){return B(()=>{if(e)t=Eu(t);else{let n=mt(t,t.shape.length-1,!0);t=ct(t,n)}return t=vr(t,cr(),1-cr()),Ut(mt($(J(r,"float32"),Nr(t)),t.shape.length-1))})}function Hm(r,t,e=!1){return B(()=>{let n=J(la(sR(r)),"int32");t=vr(t,cr(),1-cr());let o=t.shape,s=R(ca(n,o[o.length-1]),o);return Vc(s,t,e)})}function P7(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Or(t),n=Ut(_e(t));return X(at(e,$(t,r)),vu(Ke(n)))})}function qm(r,t){return B(()=>{let e;return e=vr(t,cr(),1-cr()),e=Nr(ct(e,at(1,e))),Ne(P7(r,e),-1)})}function L7(r,t){return B(()=>{let e=vr(r,cr(),1),n=vr(t,cr(),1);return mt($(r,Nr(ct(e,n))),-1)})}function z7(r,t){return B(()=>{let e=Nr(X(cr(),t));return Ne(at(t,$(r,e)),-1)})}function Ah(r,t){return B(()=>{let e=_h(r,-1),n=_h(t,-1),o=$(e,n);return Ut(mt(o,-1))})}var Eh={meanSquaredError:xa,meanAbsoluteError:Um,meanAbsolutePercentageError:Pu,meanSquaredLogarithmicError:$7,squaredHinge:R7,hinge:F7,categoricalHinge:O7,logcosh:M7,categoricalCrossentropy:Vc,sparseCategoricalCrossentropy:Hm,binaryCrossentropy:qm,kullbackLeiblerDivergence:L7,poisson:z7,cosineProximity:Ah};function tb(r){if(typeof r=="string"){if(r in Eh)return Eh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return r}function Dh(r,t){return B(()=>{let e=$(.5,wr(t)),n=tn(Re(t,e),r.dtype);return Ne($r(r,n),-1)})}function $h(r,t){return B(()=>tn($r(ea(r,-1),ea(t,-1)),"float32"))}function SR(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,1))),"float32"))}function B7(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,0))),"float32"))}function V7(r,t){return B(()=>J(mt(Fr($r(r,0),$r(t,1))),"float32"))}function UN(r,t){return B(()=>{let e=SR(r,t),n=V7(r,t),o=X(e,n);return J(we(Re(o,0),ct(e,o),0),"float32")})}function NR(r,t){return B(()=>{let e=SR(r,t),n=B7(r,t),o=X(e,n);return J(we(Re(o,0),ct(e,o),0),"float32")})}function rb(r,t){return qm(r,t)}function nb(r,t){return r.rank===t.rank&&(r=Wn(r,[r.rank-1])),t=ea(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),"float32")}var G7=xa,W7=xa,U7=Um,H7=Um,q7=Pu,K7=Pu,Rh=Vc,j7=Ah,HN=Hm,eb={binaryAccuracy:Dh,categoricalAccuracy:$h,precision:UN,categoricalCrossentropy:Rh,sparseCategoricalCrossentropy:HN,mse:G7,MSE:W7,mae:U7,MAE:H7,mape:q7,MAPE:K7,cosine:j7};function kR(r){if(typeof r=="string"&&r in eb)return eb[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Fh(r){if(co(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(Eh))if(Eh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(eb))if(eb[e]===r){t=e;break}return t!==void 0?t:r.name}}function _R(r){let t={Adagrad:()=>Ac.adagrad(.01),Adadelta:()=>Ac.adadelta(1,.95,cr()),Adam:()=>Ac.adam(.001,.9,.999,cr()),Adamax:()=>Ac.adamax(.002,.9,.999,cr(),0),RMSProp:()=>Ac.rmsprop(.001,.9,0,cr()),SGD:()=>Ac.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,r in t)return t[r]();throw new z(`Unknown Optimizer ${r}`)}function KN(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!qN(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function qN(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!="string"||!qN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!qN(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function ER(r,t,e,n=console.log){let o=Z7(r),s=["Layer (type)","Input Shape","Output shape","Param #"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push("Receives inputs"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n("_".repeat(t)),ob(s,e,n),n("=".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function ob(r,t,e=console.log){let n="";for(let o=0;o0&&(n=n.slice(0,n.length-1)+" "),n+=r[o],n=n.slice(0,t[o]),n+=" ".repeat(t[o]-n.length);e(n)}function J7(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(",")}catch(u){o="multiple"}try{n=JSON.stringify(r.outputShape)}catch(u){n="multiple"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];ob(a,t,e)}function Q7(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(",")}catch(p){s="multiple"}try{o=JSON.stringify(r.outputShape)}catch(p){o="multiple"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;m{let t=Object.keys(r);if(t.length===0)return!1;let e=t[0].split("/");return!isNaN(parseInt(e[e.length-1],10))},ib=class r extends Et{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let b=this.getClassName().toLowerCase();this.name=Fu(b)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],Eo(this.inputs).length!==this.inputs.length)throw new z(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(b=>b.name)}`);Eo(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;co(I===0,"input layer has >1 nodes"),co(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),this.inputLayersTensorIndices.push(N)}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 e={},n={},o={},s={},i={},a=[],u=(b,w,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new dn(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(r.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let M=0;M=0;)I.splice(I.indexOf(D),1);a.push(D)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(vh);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof r&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(vh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new dn(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${I.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new dn(`The name "${b}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new Nl({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0,s=tJ(t);s&&this.parseWeights(t);for(let a of this.layers)for(let[u,l]of a.weights.entries()){let c=s?`${l.name.split("/").slice(0,-1).join("/")+"/"}${u}`:l.originalName;if(n[c]!=null)throw new z(`Duplicate weight name: ${c}`);n[c]=l,o++}let i=[];for(let a in t){let u=a;if(n[a]==null){let l=a.split("/");u=l.slice(0,-2).concat([l[l.length-1]]).join("/")}if(n[u]!=null)i.push([n[u],t[a]]);else if(e)throw new z(`Provided weight data has no target variable: ${a}`);delete n[u]}if(e){let a=[];for(let u in n)a.push(u);if(a.length>0)throw new z(`${a.length} of ${o} weights are not set: ${a}`)}Lm(i)}parseWeights(t){for(let e in Object.keys(t)){let n=e.split("/"),o=["vars","layer_checkpoint_dependencies"],s=n.map(i=>i.startsWith("_")?i.slice(1):i).filter(i=>!o.includes(i)).join("/");s!==e&&(t[s]=t[e],delete t[e])}}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Km}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=sb(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=ue(t);let n=new ha;for(let o=0;o{t=ue(t);let n;return e==null?n=To(null,t.length):n=ue(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Mm(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(vh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(vh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[I,N]=d[0];h.mask==null&&(h.mask=N),b=ue(p.call(I,h)),w=ue(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=ue(p.call(g,h)),w=ue(p.computeMask(g,x));if(p.activityRegularizer)throw new _t("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let I=0;I{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(kr(b),w)}function l(g){let x=g.name,b=wn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!q$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function eJ(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} 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 o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function ab(r,t){return eJ(r,t,"classWeight")}async function lb(r,t,e,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(e!=null){let o=B(()=>{if(r.shape.length===1)return ln(r);if(r.shape.length===2){if(r.shape[1]>1)return ea(r,1);if(r.shape[1]===1)return R(r,[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 o.data());Tt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Oe(i,"float32")}else return null}function DR(r,t){return $(r,t)}var rJ=32;function FR(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=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=$R("input",r.inputNames,e),i=$R("output",r.outputNames,n),a=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(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function $R(r,t,e){if(e instanceof Lt)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function nJ(r){if(r.length===3)throw new _t("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function OR(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(e!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.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 o=e.validationData!=null,s,i;if(o)if(RR(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=nJ(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>"val_"+g)):l=u.slice();let c=Jy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Qy(c,p,e.epochs,null,null,oJ(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let I;RR(e.validationData)?I=ue(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=ue(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?rJ:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new _t("Verbose mode is not implemented yet.");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=sJ(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=FR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hX(s[h],$(d,g))),u>0&&Tt(x)}Tt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function jm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>vl(n,t,e-t)):vl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Gy(r,t.dtype==="int32"?t:J(t,"int32")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function jN(r){let t=[];r instanceof Lt&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Lt)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function iJ(r){return r instanceof Lt}function XN(r){return Array.isArray(r)}function PR(r){return!iJ(r)&&!XN(r)}function LR(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(XN(r)&&r.length>0)i=!0;else if(PR(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(PR(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(XN(r)){if(r=r,r.length!==t.length)throw new z(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=jN(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function aJ(r,t,e){let n=Eo(r.map(s=>s.shape[0]));n.sort();let o=Eo(t.map(s=>s.shape[0]));if(o.sort(),n.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(o.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(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function lJ(r,t,e){let n=[xa,qm,Vc];for(let o=0;o1)throw new z(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r=="string"||typeof r=="function")e=[r];else if(Array.isArray(r)||typeof r=="object")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var cJ="layers-model",Un=class extends ib{constructor(t){super(t),this.isTraining=!1}summary(t,e,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).");ER(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=_R(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof qr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!="string"&&typeof t.loss!="function"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new z(`Unknown entry in loss dictionary: "${i}". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output "${i}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(tb(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.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=${t.loss}.`);e=t.loss.map(a=>tb(a))}else{let i=tb(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let o=uJ(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+"_"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};mi("metric",()=>{for(let i=0;i{let c="",p,m,f;for(let d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===qm?["accuracy","acc"].indexOf(d)!==-1?m=Dh:["crossentropy","ce"].indexOf(d)!==-1&&(m=rb):this.lossFunctions[i]===Hm?["accuracy","acc"].indexOf(d)!==-1?m=nb:["crossentropy","ce"].indexOf(d)!==-1&&(m=HN):["accuracy","acc"].indexOf(d)!==-1?m=$h:["crossentropy","ce"].indexOf(d)!==-1&&(m=Rh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=kR(d),p=c+Fh(d);let h;mi(p,()=>{h=f}),s(i,p,h)}})(a)}}),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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;ub(o);let i=this.standardizeUserDataXY(t,e,!0,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return kr(l)}finally{$o(i[0],t),$o(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),MR(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new z(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new z(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ha;if(t instanceof Lt&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new _t("Verbose predictLoop() is not implemented yet.");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=jm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return kr(i.map(a=>ie(a,0)))})}predict(t,e={}){let n=jN(t);zR(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{$o(n,t)}}predictOnBatch(t){zR(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new dn("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==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 ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(o!=null){let c=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new _t("Verbose mode is not implemented yet.");if(s!=null)throw new _t("steps mode in testLoop() is not implemented yet");{let u=pb(i,n),l=Oe(gn(0,i));for(let c=0;c1){let i=ON(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read());return[this.optimizer_.minimize(a,!0,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;l0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new _t("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; ${n.validationData} is invalid.`);let M=await this.standardizeUserData(u,l,null,null,!0,f);c=M[0],p=M[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),M=o[0].shape[0];c=jm(o,F,M),i=o,o=jm(o,0,F),p=jm(s,F,M),a=s,s=jm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);this.checkTrainableWeightsConsistency();let w=this.makeTrainFunction(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>"val_"+F))):(N=null,x=[],E=I.slice());let A=Jy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,$o(o,t),$o(s,e),$o(i,t),$o(a,e),$o(c,u),$o(p,l),m!=null&&Tt(m)}}async fitLoop(t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=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=this.checkNumSamples(e,o,f,"steps_per_epoch"),x;g!=null&&(x=gn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Qy(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let M=A[D][0],V=A[D][1],G=vl(E,M,V-M);F.batch=D,F.size=V-M;let W=cb(e,G),q=t(W);for(let H=0;H_o(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]=="string")t[o]=_o(n[o]);else throw new Error("Serialization of non-string loss is not supported.")}return t}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[_o(Fh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>_o(Fh(t)));{let t={};for(let e in this.metrics)t[e]=_o(Fh(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(t.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(t.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let e=Gc(t.optimizer_config),n=wn(e),o;if(typeof t.loss=="string")o=Cl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Cl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Cl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Cl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Cl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=Mr.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Mr.encodeWeights(this.getNamedWeights(e)),a={modelTopology:this.toJSON(null,!1),format:cJ,generatedBy:`TensorFlow.js tfjs-layers v${Km}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await Mr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Mr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(KN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){KN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Un.className="Model";Q.registerClass(Un);var mb=class extends Un{};mb.className="Functional";Q.registerClass(mb);async function BR(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Gc(e),o=wn(n,t);if(r.weightsManifest!=null){let s=await Mr.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),Tt(s)}return o}async function VR(r,t){if(t==null&&(t={}),typeof r=="string"){let e=Mr.getLoadHandlers(r,t);if(e.length===0)e.push(Mr.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return pJ(r,void 0,t)}async function pJ(r,t,e){if(e==null&&(e={}),r.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=wn(Gc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=mJ(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function mJ(r,t){let e=Mr.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group==="optimizer"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var Wc=class r extends Un{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:Fu("sequential_"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof r||t instanceof Un,n;if(e){if(n=t,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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=Hy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=VN(this.outputs[0])}this.inboundNodes=[],new Nl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:To(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Gt(t),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 Un({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");s=e}else y.assert(e.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=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof r))throw new _t(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=wn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}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 t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};Wc.className="Sequential";Q.registerClass(Wc);function fJ(r){return new Un(r)}function dJ(r){return new Wc(r)}function YN(r){return Hy(r)}function hJ(r,t){Wm.registerCallbackConstructor(r,t)}var rn=class extends Q.Serializable{getConfig(){return{}}},fb=class extends rn{apply(t,e=1){return aR(t,e)}};fb.className="elu";Q.registerClass(fb);var db=class extends rn{apply(t){return mm(t)}};db.className="selu";Q.registerClass(db);var hb=class extends rn{apply(t){return Or(t)}};hb.className="relu";Q.registerClass(hb);var gb=class extends rn{apply(t){return B(()=>lo(6,Or(t)))}};gb.className="relu6";Q.registerClass(gb);var xb=class extends rn{apply(t){return t}};xb.className="linear";Q.registerClass(xb);var yb=class extends rn{apply(t){return Qr(t)}};yb.className="sigmoid";Q.registerClass(yb);var bb=class extends rn{apply(t){return uR(t)}};bb.className="hardSigmoid";Q.registerClass(bb);var wb=class extends rn{apply(t){return li(t)}};wb.className="softplus";Q.registerClass(wb);var Ib=class extends rn{apply(t){return lR(t)}};Ib.className="softsign";Q.registerClass(Ib);var Cb=class extends rn{apply(t){return na(t)}};Cb.className="tanh";Q.registerClass(Cb);var Xm=class extends rn{apply(t,e=-1){return Eu(t,e)}};Xm.className="softmax";Q.registerClass(Xm);var vb=class extends rn{apply(t,e=-1){return am(t,e)}};vb.className="logSoftmax";Q.registerClass(vb);var Sb=class extends rn{apply(t,e=1){return B(()=>$(Qr($(t,e)),t))}};Sb.className="swish";Q.registerClass(Sb);var Nb=class extends rn{apply(t){return B(()=>$(t,na(li(t))))}};Nb.className="mish";Q.registerClass(Nb);function hi(r){return r.getClassName()}function ZN(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"activation")}function gi(r){if(r==null){let t={};return t.className="linear",t.config={},ZN(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},ZN(t)}else return r instanceof rn?r:ZN(r)}function JN(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 kb=class extends Q.Serializable{},Lu=class extends kb{constructor(t){super(),JN(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=ke([1]);return this.hasL1&&(e=X(e,mt($(this.l1,_e(t))))),this.hasL2&&(e=X(e,mt($(this.l2,$c(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Lu.className="L1L2";Q.registerClass(Lu);function UR(r){return JN(r),new Lu({l1:r!=null?r.l1:null,l2:0})}function HR(r){return JN(r),new Lu({l2:r!=null?r.l2:null,l1:0})}var GR={l1l2:"L1L2"};function fe(r){return Nm(r)}function WR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ce(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in GR?GR[r]:r,config:{}};return WR(e)}else return r instanceof kb?r:WR(r)}var Ym=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Or(t);return this.maxValue!=null&&(n=vr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Ym.className="ReLU";Q.registerClass(Ym);var Zm=class extends Et{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=St(t);return Cu(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Zm.className="LeakyReLU";Q.registerClass(Zm);var Jm=class extends Et{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=ge(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=Ge(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes=="number")this.sharedAxes=[t.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Gt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight("alpha",e,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o{let n=St(t),o=e.mask;if(o!=null){let s=$(at(ar(n.shape),J(o,n.dtype)),pt(-1e9));n=X(n,s)}return this.axis instanceof Array?this.axis.length>1?Ke(at(n,Su(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(t){return t}getConfig(){let t={axis:this.axis},e=super.getConfig();return Object.assign(t,e),t}};ef.className="Softmax";Q.registerClass(ef);function zu(r,t,e){if(typeof r=="number")return To(r,t);if(r.length!==t)throw new z(`The ${e} argument must be an integer or tuple of ${t} integers. Received: ${r.length} elements.`);for(let n=0;n(Me(t),t==="channelsFirst"?Vt(r,[0,2,3,1]):r))}function QN(r,t){return B(()=>(Me(t),t==="channelsFirst"?Vt(r,[0,2,3,4,1]):r))}function xJ(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=xn()),Me(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.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(e!=null&&e.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(r=Vt(r,[0,2,1])),o==="causal")throw new _t("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=rm(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=yn(a,e)),a})}function qR(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Mh(r,s);if(o==="causal")throw new _t("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=Ru.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Vt(u,[0,3,1,2])),u})}function yJ(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=QN(r,s);if(o==="causal")throw new _t("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Ax(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=yn(a,e)),s==="channelsFirst"&&(a=Vt(a,[0,4,1,2,3])),a})}var Oh=class r extends Et{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",r.verifyArgs(e),this.rank=t,tr(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new _t(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=zu(e.kernelSize,t,"kernelSize"),this.strides=zu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,hn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Me(this.dataFormat),this.activation=gi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=ge(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ge(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(e.activityRegularizer),this.dilationRate=zu(e.dilationRate==null?1:e.dilationRate,t,"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(t){if(co("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Fy(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:hi(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},rf=class r extends Oh{constructor(t,e){super(t,e),this.kernel=null,r.verifyArgs(e),this.filters=e.filters,tr(this.filters,"filters"),this.kernelInitializer=ge(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ge(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=St(t);let n,o=this.bias==null?null:this.bias.read(),s=Oy(this.activation.getClassName());if(s!=null&&this.rank===2)n=qR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=xJ(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=qR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=yJ(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new _t("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(t);let e=[],n=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},Uc=class r extends rf{constructor(t){super(2,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Fy(t.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(t.kernelSize)}.`)}};Uc.className="Conv2D";Q.registerClass(Uc);var Hc=class r extends rf{constructor(t){super(3,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Hc.className="Conv3D";Q.registerClass(Hc);var nf=class extends Uc{constructor(t){if(super(t),this.inputSpec=[new Ie({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(t){if(t=Gt(t),t.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 Ie({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);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 o=n.shape,s=o[0],i,a;this.dataFormat==="channelsFirst"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=xi(u,m,c,this.padding),h=xi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,1]));let x=om(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=yn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=xi(e[o],u,i,this.padding),e[s]=xi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};nf.className="Conv2DTranspose";Q.registerClass(nf);var of=class extends Hc{constructor(t){if(super(t),this.inputSpec=[new Ie({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Gt(t),t.length!==5)throw new z("Input should have rank 5; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 Ie({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==5)throw new z(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat==="channelsFirst"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=xi(l,h,m,this.padding),w=xi(c,g,f,this.padding),I=xi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,4,1]));let E=$x(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=yn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s,i;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=xi(e[o],c,a,this.padding),e[s]=xi(e[s],p,u,this.padding),e[i]=xi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};of.className="Conv3DTranspose";Q.registerClass(of);var Tb=class extends rf{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(e.padding!=null&&e.padding!=="same"&&e.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=ge(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=Ge(e.depthwiseConstraint),this.pointwiseInitializer=ge(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=Ge(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new _t("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Vt(t,[0,2,3,1])),n=fm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Vt(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.pointwiseRegularizer=fe(this.pointwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseConstraint),t.pointwiseConstraint=Ve(this.pointwiseConstraint),t}};Tb.className="SeparableConv";var sf=class extends Tb{constructor(t){super(2,t)}};sf.className="SeparableConv2D";Q.registerClass(sf);var af=class r extends rf{constructor(t){super(1,t),r.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Fy(t.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};af.className="Conv1D";Q.registerClass(af);var lf=class extends Et{constructor(t){super(t),typeof t.cropping=="number"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]=="number"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?"channelsLast":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat==="channelsFirst"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=St(t),this.dataFormat==="channelsLast"){let n=Nh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Nh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Nh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Nh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};lf.className="Cropping2D";Q.registerClass(lf);var uf=class extends Et{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,eR(this.interpolation)}computeOutputShape(t){if(this.dataFormat==="channelsFirst"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=St(t),o=n.shape;if(this.dataFormat==="channelsFirst"){n=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};uf.className="UpSampling2D";Q.registerClass(uf);function bJ(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=xn()),Me(o);let i=Mh(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ia(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}var cf=class extends Oh{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=ge(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ge(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=Gt(t),t.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat==="channelsFirst"?1:3;if(t[e]==null||t[e]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",o,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(t,e){return B(()=>{t=St(t);let n=bJ(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Tn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Tn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseRegularizer),t}};cf.className="DepthwiseConv2D";Q.registerClass(cf);function tk(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function ek(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(gn(2,u));if(t=Vt(t,l),s!=null)throw new _t("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."),o!=null&&(o=J(J(o,"bool"),"float32"),o.rank===u-1&&(o=je(o,-1)),o=Vt(o,l)),n&&(t=dr(t,0),o!=null&&(o=dr(o,0)));let c=[],p,m=e,f=t.shape[0],d=gr(t),h;o!=null&&(h=gr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=at(wr(N),N),A=X($(w[0],N),$(m[0],E)),D=m.map((F,M)=>X($(w[1][M],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=Fe(c,1)),[p,g,m]})}var po=class r extends Et{constructor(t){super(t);let e;if(t.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?e=new jc({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new Ie({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return gn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Uy(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))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=i.map(a=>new Ie({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo("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(o=>ke([n,o])):this.states_=[ke([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>ke([n,o])):this.states_[0]=ke([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=tk(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new Ie({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof en){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=St(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new z(`RNN Layer has ${i} 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 a={training:o},l=ek((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=ke(t.shape);return e=mt(e,[1,2]),e=Sl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Vy(e,[1,n]):e):this.cell.stateSize>1?[Vy(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===r.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=wn(o,n);return new t(Object.assign(e,{cell:s}))}};po.className="RNN";Q.registerClass(po);var Tl=class extends Et{},qc=class extends Tl{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,tr(this.units,"units"),this.activation=gi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,fi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,fi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t),this.kernel=this.addWeight("kernel",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0wr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0wr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Do($(t,i),this.kernel.read()):s=Do(t,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=X(s,Do(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:hi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),recurrentRegularizer:fe(this.recurrentRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),recurrentConstraint:Ve(this.recurrentConstraint),biasConstraint:Ve(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};qc.className="SimpleRNNCell";Q.registerClass(qc);var pf=class extends po{constructor(t){t.cell=new qc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};pf.className="SimpleRNN";Q.registerClass(pf);var Kc=class extends Tl{constructor(t){if(super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=t.units,tr(this.units,"units"),this.activation=gi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=gi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,fi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,fi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t);let e=t[t.length-1];this.kernel=this.addWeight("kernel",[e,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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0wr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};mf.className="GRU";Q.registerClass(mf);var _l=class extends Tl{constructor(t){super(t),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=t.units,tr(this.units,"units"),this.activation=gi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=gi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,fi([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,fi([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Gt(t);let n=t[t.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 o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends bn{apply(u,l){let c=s.apply([i]),p=new Mu().apply([i]),m=s.apply([i*2]);return BN(BN(c,p),m)}},e.className="CustomInit",e)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0wr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};ff.className="LSTM";Q.registerClass(ff);var jc=class extends Tl{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{mi(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(wn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Th(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Wy(t(),e),a=()=>Ou(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var wJ=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z("ConvRNN2D cell does not support constants");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=ke(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.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(()=>ke(s)):this.states_=[ke(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ke(s)):this.states_[0]=ke(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e==="channelsFirst",l=t[u?3:2],c=t[u?4:3],p=Tn(l,o[0],s,i[0],a[0]),m=Tn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className="ConvRNN2D";var Xc=class extends _l{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,tr(this.filters,"filters"),this.kernelSize=zu(n,2,"kernelSize"),this.kernelSize.forEach(u=>tr(u,"kernelSize")),this.strides=zu(o||1,2,"strides"),this.strides.forEach(u=>tr(u,"strides")),this.padding=s||"valid",hn(this.padding),this.dataFormat=i||"channelsLast",Me(this.dataFormat),this.dilationRate=zu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>tr(u,"dilationRate"))}build(t){var e;t=Gt(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends bn{apply(m,f){let d=l.apply([c]),h=ar([c]),g=l.apply([c*2]);return Tm([d,h,g])}},e.className="CustomInit",e)}else u=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0wr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,lt)=>!st||!st[lt]?nt:$(st[lt],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0wr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[I,N,E,A]=hr(this.kernel.read(),a,w),[D,F,M,V]=this.useBias?hr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,E,M,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=hr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let K=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X($(Y,i),$(K,this.activation.apply(X(m,x)))),et=$(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=wJ(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=Nn(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?yn(s,n,this.dataFormat):s}recurrentConv(t,e){return Nn(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Xc.className="ConvLSTM2DCell";Q.registerClass(Xc);var df=class extends _b{constructor(t){let e=new Xc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};df.className="ConvLSTM2D";Q.registerClass(df);var Yc=class extends Et{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);if(0Wy(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};Yc.className="Dropout";Q.registerClass(Yc);var hf=class extends Yc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};hf.className="SpatialDropout1D";Q.registerClass(hf);var gf=class extends Et{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,tr(this.units,"units"),this.activation=gi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ge(t.kernelConstraint),this.biasConstraint=Ge(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Gt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=Oy(this.activation.getClassName()),s;return o!=null?s=Do(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Do(n,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:hi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};gf.className="Dense";Q.registerClass(gf);var xf=class extends Et{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(t);for(let e of t.slice(1))if(e==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[t[0],Ao(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=St(t);return this.activation.apply(n)})}getConfig(){let t={activation:hi(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};yf.className="Activation";Q.registerClass(yf);var bf=class extends Et{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=St(t),oR(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};bf.className="RepeatVector";Q.registerClass(bf);var wf=class extends Et{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=St(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};wf.className="Reshape";Q.registerClass(wf);var If=class extends Et{constructor(t){if(super(t),t.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${t.dims} instead.`);let e=gn(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error("Invalid permutation `dims`: "+JSON.stringify(t.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Ie({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};If.className="Permute";Q.registerClass(If);var Cf=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=St(t);return cc(ui(n,this.maskValue),-1)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),i=cc(ui(n,this.maskValue),-1,!0);return $(n,J(i,n.dtype))})}};Cf.className="Masking";Q.registerClass(Cf);var vf=class extends Et{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(ue(t.inputLength))}this.inputDim=t.inputDim,tr(this.inputDim,"inputDim"),this.outputDim=t.outputDim,tr(this.outputDim,"outputDim"),this.embeddingsInitializer=ge(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=Ge(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=St(t),ui(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=ue(this.inputLength);if(e.length!==t.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);n.dtype!=="int32"&&(n=tn(n,"int32"));let o=Gy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:fe(this.embeddingsRegularizer),activityRegularizer:fe(this.activityRegularizer),embeddingsConstraint:Ve(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};vf.className="Embedding";Q.registerClass(vf);var Al=class extends Et{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new _t}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&Eo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=fi(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=gn(1,l).concat([0]);n.push(Vt(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(gn(0,a-1));i=Vt(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new z("`mask` should be an Array");if(!Array.isArray(t))throw new z("`inputs` should be an Array");if(e.length!==t.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:je(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[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(t))}mergeFunction(t){return B(()=>Tm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new z("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new _t("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 ${t.shape.length}`),typeof e=="number"&&(e=[e,e]),r.dtype==="complex64"||t.dtype==="complex64")throw new _t("batchDot is not implemented for complex64-type Tensors yet.");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new _t("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>Ph(s,t[i].shape.length)):o=[Ph(this.axes,e.shape.length),Ph(this.axes,n.shape.length)],this.normalize&&(e=_h(e,o[0]),n=_h(n,o[1])),IJ(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Ph(this.axes,t.length),Ph(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new _t("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Af.className="Dot";Q.registerClass(Af);var Df=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return Ou(()=>X(_m(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Df.className="GaussianNoise";Q.registerClass(Df);var $f=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return this.rate>0&&this.rate<1?Ou(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,_m(n.shape,1,s))},()=>n,e.training||!1):n})}};$f.className="GaussianDropout";Q.registerClass($f);var Rf=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||St(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return Ou(()=>{let s=St(t),u=-1.6732632423543772*1.0507009873554805,l=cn(Gn(n),this.rate);l=tn(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X($(s,l),$(X(l,-1),u));return X($(m,c),p)},()=>St(t),e.training||!1)}return t})}};Rf.className="AlphaDropout";Q.registerClass(Rf);function Lh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=Ix(r,t,e,n,o,s);else if(r.rank===3)i=Cx(r,t,e,n,o,s);else if(r.rank===4)i=vx(r,t,e,n,o,s);else throw new _t(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function CJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance;return[Lh(r,i,a,e,t,o),i,a]})}function vJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance,u=[];for(let d of gn(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Lh(r,l,c,m,p,o),i,a]})}function SJ(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),gn(0,r.rank-1))?CJ(r,t,e,n,o):vJ(r,t,e,n,o)}var Ff=class extends Et{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=ge(t.betaInitializer||"zeros"),this.gammaInitializer=ge(t.gammaInitializer||"ones"),this.movingMeanInitializer=ge(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=ge(t.movingVarianceInitializer||"ones"),this.betaConstraint=Ge(t.betaConstraint),this.gammaConstraint=Ge(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=Gt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new Ie({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight("gamma",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=St(t),s=o.shape,i=s.length,a=gn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=To(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,gn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Lh(o,b,w,I,N,this.epsilon)}else return Lh(o,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 m();let[f,d,h]=SJ(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(at(E,w),N);b.write(at(E,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:fe(this.betaRegularizer),gammaRegularizer:fe(this.gammaRegularizer),betaConstraint:Ve(this.betaConstraint),gammaConstraint:Ve(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Ff.className="BatchNormalization";Q.registerClass(Ff);var Of=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.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 e of this.axis)if(!Number.isInteger(e))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=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=ge(t.betaInitializer||"zeros"),this.gammaInitializer=ge(t.gammaInitializer||"ones"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(t);let e=t.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==Eo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=St(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=dc(n,this.axis,!0),l=To(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,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(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(e==null&&(e=xn()),e!=="channelsLast"&&e!=="channelsFirst")throw new z(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],mn(r,n)})}var Mf=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?xn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding=="number")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]=="number")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e,n;return this.dataFormat==="channelsFirst"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>NJ(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Mf.className="ZeroPadding2D";Q.registerClass(Mf);function Fb(r,t,e,n,o,s){return B(()=>{Me(o),MN(s),hn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=xn()),s==null&&(s="max"),r=Mh(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=ku(r,t,e,a):i=xu(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}function KR(r,t,e,n,o,s){return B(()=>{Me(o),MN(s),hn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=xn()),s==null&&(s="max"),r=QN(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Xx(r,t,e,a):i=wx(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,4,1,2,3])),i})}var Eb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize=="number")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]=="number")this.poolSize=t.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(t.poolSize)}`);if(tr(this.poolSize,"poolSize"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides=="number")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]=="number")this.strides=t.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(t.strides)}`);tr(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,hn(this.padding),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=Tn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=Sl(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Wn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,"max")}};Pf.className="MaxPooling1D";Q.registerClass(Pf);var Lf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,"avg")}};Lf.className="AveragePooling1D";Q.registerClass(Lf);var Ab=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];tr(this.poolSize,"poolSize"),tr(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},zf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,"max")}};zf.className="MaxPooling2D";Q.registerClass(zf);var Bf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Fb(t,e,n,o,s,"avg")}};Bf.className="AveragePooling2D";Q.registerClass(Bf);var Db=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];tr(this.poolSize,"poolSize"),tr(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ie({ndim:5})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[4]:t[3];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),o=Tn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Vf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),KR(t,e,n,o,s,"max")}};Vf.className="MaxPooling3D";Q.registerClass(Vf);var Gf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),KR(t,e,n,o,s,"avg")}};Gf.className="AveragePooling3D";Q.registerClass(Gf);var $b=class extends Et{constructor(t){super(t),this.inputSpec=[new Ie({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new _t}},Wf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Ne(n,1)})}};Wf.className="GlobalAveragePooling1D";Q.registerClass(Wf);var Uf=class extends $b{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Uf.className="GlobalMaxPooling1D";Q.registerClass(Uf);var Rb=class extends Et{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),this.inputSpec=[new Ie({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new _t}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Hf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Ne(n,[1,2]):Ne(n,[2,3])})}};Hf.className="GlobalAveragePooling2D";Q.registerClass(Hf);var qf=class extends Rb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Sr(n,[1,2]):Sr(n,[2,3])})}};qf.className="GlobalMaxPooling2D";Q.registerClass(qf);var Ob=class extends Et{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=wn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Kf=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(t),t.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Gt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=St(t),ek((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Kf.className="TimeDistributed";Q.registerClass(Kf);function kJ(r){da(Q$,"BidirectionalMergeMode",r)}var TJ="concat",jf=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=wn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=wn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?TJ:t.mergeMode,kJ(this.mergeMode),t.weights)throw new _t("weights support is not implemented for Bidirectional layer yet.");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):kr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=tk(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];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.");e.initialState=n,i.push(...n);let c=n.map(p=>new Ie({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new _t("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof en;for(let l of i)if(l instanceof en!==u)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=dr(s,1));let a;return this.mergeMode==="concat"?a=Tm([o,s]):this.mergeMode==="sum"?a=X(o,s):this.mergeMode==="ave"?a=$(.5,X(o,s)):this.mergeMode==="mul"?a=$(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){mi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),mi(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=wn(e.layer);if(delete e.layer,e.numConstants!=null)throw new _t("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};jf.className="Bidirectional";Q.registerClass(jf);var Xf=class extends Et{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=St(t),t.dtype!=="float32"&&(t=tn(t,"float32")),X($(t,this.scale),this.offset)))}};Xf.className="Rescaling";Q.registerClass(Xf);var{resizeBilinear:_J,cropAndResize:EJ}=fn,Yf=class extends Et{constructor(t){super(t),this.height=t.height,this.width=t.width}centerCrop(t,e,n,o,s,i,a,u){return B(()=>{let l,c=!1,p=e/i,m=n/a,f=(o+e)/i,d=(s+n)/a,h=[p,m,f,d],g=[];t.rank===3?(c=!0,l=Fe([t])):l=t;for(let N=0;N{let s=_J(t,[e,n]);return tn(s,o)})}call(t,e){return B(()=>{let n=St(t),o=n.dtype,s=n.shape,i=s[s.length-3],a=s[s.length-2],u=0;i!==this.height&&(u=Math.floor((i-this.height)/2));let l=0;return a!==this.width&&(l=Math.floor((a-this.width)/2),l===0&&(l=1)),u>=0&&l>=0?this.centerCrop(n,u,l,this.height,this.width,i,a,o):this.upsize(t,this.height,this.width,o)})}getConfig(){let t={height:this.height,width:this.width},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};Yf.className="CenterCrop";Q.registerClass(Yf);function jR(r,t,e,n){let o=St(r);if(o.dtype!=="int32"&&(o=tn(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=je(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=je(o,-1)),o.rank>2)throw new z(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=["multiHot","oneHot"].includes(t),a=o,u;if(typeof n!="undefined"&&t==="count"?u=ph(a,n,e,i):u=ph(a,[],e,i),t!=="tfIdf")return u;if(n)return $(u,n);throw new z("When outputMode is 'tfIdf', weights must be provided.")}var Zf=class extends Et{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode="multiHot"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Gt(t),t==null?[this.numTokens]:this.outputMode==="oneHot"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=St(t),t.dtype!=="int32"&&(t=tn(t,"int32"));let n;if(typeof e.countWeights!="undefined"){if(this.outputMode!=="count")throw new z(`countWeights is not used when outputMode !== count. - Received countWeights=${e.countWeights}`);n=St(e.countWeights)}let o=Sr(t),s=gl(t),i=Re(this.numTokens,o).bufferSync().get(0),a=cn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return jR(t,this.outputMode,this.numTokens,n)})}};Zf.className="CategoryEncoding";Q.registerClass(Zf);var DJ=["bilinear","nearest"],XR=new Set(DJ),Jf=class extends Et{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(XR.has(t.interpolation))this.interpolation=t.interpolation;else throw new z(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return fn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return fn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...XR]} are supported`)})}};Jf.className="Resizing";Q.registerClass(Jf);var zh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};zh.className="RandomSeed";var Bh=class extends Et{constructor(t){super(t),this.randomGenerator=new zh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Bh.className="BaseRandomLayer";var $J=["bilinear","nearest"],YR=new Set($J),Qf=class extends Bh{constructor(t){super(t);let{factor:e,interpolation:n="bilinear"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUppert?1:0}function Sh(r,t){return-1*XZ(r,t)}function Eo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function j$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function da(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Fy(r,t,e=0,n=1/0){return co(e>=0),co(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function tr(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>tr(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${X$(r)}.`)}function X$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>X$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function Y$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return Tm.set(e,1),e}else return r}var JZ=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function oR(r){return!!r.match(JZ)}function sR(r){return r===parseInt(r.toString(),10)}function Ao(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function gn(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=Sl(r,1);return Vy(e,[1,t,1])})}function aR(r){let t=[Ao(r.shape)];return R(r,t)}function lR(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],Ao(r.shape,1)];return R(r,t)}function vl(r,t,e){return B(()=>{switch(r.rank){case 1:return xm(r,t,e);case 2:return gh(r,[t,0],[e,r.shape[1]]);case 3:return ym(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return yc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(r,[t,0,0,0,0,0],[e,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 BN(r,t,e){return B(()=>{switch(r.rank){case 1:return xm(r,t,e);case 2:return gh(r,[0,t],[r.shape[0],e]);case 3:return ym(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return yc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function kh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return xm(r,t,e);case 2:switch(n){case 1:return vl(r,t,e);case 2:return BN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return vl(r,t,e);case 2:return ym(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return BN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return vl(r,t,e);case 2:return yc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return yc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return BN(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function _m(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ie(r,t)}function GN(r,t){switch(r.rank){case 1:return Tx([r,t]);case 2:return _x([r,t],0);case 3:return Ex([r,t],0);case 4:return Ax([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Vy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Rr(r,t)}function Em(r,t=0,e=1,n,o){return xc(r,t,e,n,o)}function Do(r,t,e,n){if(r.rank<2||t.rank<2)throw new _t(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new _t(`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 = ${t.shape}`)}if(r.rank===2&&t.rank===2)return Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?VN(r.rank,n,xn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Vt(t,c),[u,-1]);let p=[...o,...l];return R(Ru.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?VN(r.rank,n,xn()):null,activation:e}),p)}}function Gy(r,t,e){return B(()=>(Array.isArray(t)?t=Oe(t,"int32"):t=J(t,"int32"),ua(r,t,e)))}function $c(r){return $(r,r)}function VN(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function yn(r,t,e){return B(()=>(e==null&&(e=xn()),Me(e),K(r,VN(r.rank,t,e))))}function uR(r,t=1){if(t!==1)throw new _t(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return aa(r)}function cR(r){return B(()=>ut(r,K(_e(r),1)))}function Wy(r,t,e,n){return B(()=>dN(r,t,e,n))}function pR(r){return B(()=>{let t=K(.5,$(.2,r));return vr(t,0,1)})}function Ou(r,t,e=!1){return e?r():t()}var mR=["fanIn","fanOut","fanAvg"],fR=["normal","uniform","truncatedNormal"];function QZ(r){da(mR,"FanMode",r)}function t7(r){da(fR,"Distribution",r)}var bn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Am=class extends bn{apply(t,e){return ke(t,e)}};Am.className="Zeros";Q.registerClass(Am);var Mu=class extends bn{apply(t,e){return ar(t,e)}};Mu.className="Ones";Q.registerClass(Mu);var Dm=class extends bn{constructor(t){if(super(),typeof t!="object")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>$(pt(this.value),ar(t,e)))}getConfig(){return{value:this.value}}};Dm.className="Constant";Q.registerClass(Dm);var $m=class extends bn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return Gn(t,this.minval,this.maxval,e,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};$m.className="RandomUniform";Q.registerClass($m);var Rm=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new _t(`randomNormal does not support dType ${e}.`);return Em(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Rm.className="RandomNormal";Q.registerClass(Rm);var Fm=class extends bn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new _t(`truncatedNormal does not support dType ${e}.`);return Cm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Fm.className="TruncatedNormal";Q.registerClass(Fm);var Om=class extends bn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return $(this.gain,fc(t[0]))})}getConfig(){return{gain:this.gain}}};Om.className="Identity";Q.registerClass(Om);function e7(r,t="channelsLast"){let e,n;if(Me(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=Ao(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=Ao(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=Ao(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Yr=class extends bn{constructor(t){if(super(),t.scale<0)throw new z(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?"fanIn":t.mode,QZ(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,t7(this.distribution),this.seed=t.seed}apply(t,e){let n=e7(t),o=n[0],s=n[1],i=this.scale;if(this.mode==="fanIn"?i/=Math.max(1,o):this.mode==="fanOut"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution==="normal"){let a=Math.sqrt(i);if(e=e||"float32",e!=="float32"&&e!=="int32")throw new _t(`${this.getClassName()} does not support dType ${e}.`);return Cm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Gn(t,-a,a,e,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Yr.className="VarianceScaling";Q.registerClass(Yr);var Rc=class extends Yr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Rc.className="GlorotUniform";Q.registerClass(Rc);var Fc=class extends Yr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Fc.className="GlorotNormal";Q.registerClass(Fc);var Oc=class extends Yr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Oc.className="HeNormal";Q.registerClass(Oc);var Mc=class extends Yr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Mc.className="HeUniform";Q.registerClass(Mc);var Pc=class extends Yr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Pc.className="LeCunNormal";Q.registerClass(Pc);var Lc=class extends Yr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Yr.className}};Lc.className="LeCunUniform";Q.registerClass(Lc);var Mm=class extends bn{constructor(t){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed}apply(t,e){return B(()=>{if(t.length<2)throw new _t("Shape must be at least 2D.");if(e!=="int32"&&e!=="float32"&&e!==void 0)throw new TypeError(`Unsupported data type ${e}.`);e=e;let n=y.sizeFromShape(t.slice(0,-1)),o=t[t.length-1],s=n*o;s>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${s}) elements: Slowness may result.`);let i=[Math.max(o,n),Math.min(o,n)],a=Em(i,0,1,e,this.seed),u=xN.qr(a,!1),l=u[0],p=u[1].flatten().stridedSlice([0],[Math.min(o,n)*Math.min(o,n)],[Math.min(o,n)+1]);return l=$(l,p.sign()),nn*o);return t}var xR="Variable",Th=class{constructor(t,e="float32",n=xR,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=Py(),n=n==null?xR:n,this.originalName=Ly(n),this.name=zy(this.originalName),this.trainable_=o,this.constraint=s,this.val=my(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),n7(this.val,t),this.val.id!==t.id&&(this.val.assign(t),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(t){this.trainable_=t,this.val.trainable=t}};function n7(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function _h(r){return r.map(t=>t.read())}function zm(r){r.forEach(t=>{t[0].write(t[1])})}var Ce=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},nn=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=Py(),i!=null&&(this.originalName=Ly(i),this.name=zy(this.originalName)),this.rank=e.length}},o7=0,Nl=class{constructor(t,e){this.callArgs=e,this.id=o7++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},s7=0,Et=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=s7++,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 e=t.name;if(!e){let n=this.getClassName();e=_o(n)+"_"+Fu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o="float32"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+"_ib-"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new dn(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return kr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return kr(this.getNodeAtIndex(t,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new uo(`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 uo(`Layer ${this.name} is not connected, no input to return.`);return kr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new uo(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new uo(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return kr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){let e=ue(t);if(this.inputSpec==null||this.inputSpec.length===0)return;let n=ue(this.inputSpec);if(e.length!==n.length)throw new z(`Layer ${this.name} expects ${n.length} inputs, but it received ${e.length} input tensors. Input received: ${t}`);for(let o=0;oi.maxNDim)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${a}`);if(i.minNDim!=null&&a=0?u[c]:u[u.length+c];if(p!=null&&[p,null].indexOf(m)===-1)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected axis ${c} of input shape to have value ${p} but got shape ${u}.`)}}if(i.shape!=null)for(let u=0;u{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of ue(t))i.push(a.shape);this.build(kr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e);this.supportsMasking&&this.setMaskMetadata(t,i);let a=ue(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=kr(u),this.activityRegularizer!=null)throw new _t("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=i7(t),a=this.computeOutputShape(i),u,l=a7(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new nn(l,c,this,ue(t),e,this.name,p)):u=new nn(l,a,this,ue(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new _t("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) 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 uo(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new uo(`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 dn(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Lm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return _h(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=_h(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=ue(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.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 e}setMaskMetadata(t,e,n){if(!this.supportsMasking)return;let o=this.computeMask(t,n),s=ue(e),i=ue(o);if(s.length!==i.length)throw new Error(`${this.name} outputs ${s.length} tensors but ${s.length} masks for those tensors`);for(let a=0;at.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 t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function i7(r){r=ue(r);let t=[];for(let e of r)t.push(e.shape);return kr(t)}function a7(r){return"float32"}function WN(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(",")+"|"+t.names().sort().join(","),p=qy.get(c),m;if(p==null){let d=p7(i,t);p=d.sorted,m=d.recipientCounts,qy.put(c,p),Ky.put(c,m)}m={},o||Object.assign(m,Ky.get(c));let f=new ha(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let e=[],n={};if(r.length===1){let o=yR(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=yR(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:m7(n)}}function m7(r){let t={};for(let e in r)t[e]=r[e].size;return t}function yR(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function f7(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,bR);var CR={};Kt(CR,{maxNorm:()=>h7,minMaxNorm:()=>y7,nonNeg:()=>x7,unitNorm:()=>g7});function UN(r,t){return B(()=>ge(mt($(r,r),t,!0)))}var Bc=class extends Q.Serializable{getConfig(){return{}}},Bm=class extends Bc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=UN(t,this.axis),n=vr(e,0,this.maxValue);return $(t,ut(n,K(cr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Bm.className="MaxNorm";Q.registerClass(Bm);var Vm=class extends Bc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>ut(t,K(cr(),UN(t,this.axis))))}getConfig(){return{axis:this.axis}}};Vm.className="UnitNorm";Q.registerClass(Vm);var Gm=class extends Bc{apply(t){return Or(t)}};Gm.className="NonNeg";Q.registerClass(Gm);var Wm=class extends Bc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=UN(t,this.axis),n=K($(this.rate,vr(e,this.minValue,this.maxValue)),$(1-this.rate,e));return $(t,ut(n,K(cr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Wm.className="MinMaxNorm";Q.registerClass(Wm);var wR={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Ve(r){return km(r)}function IR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"constraint")}function Ge(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in wR?wR[r]:r,config:{}};return IR(e)}else return r instanceof Bc?r:IR(r)}function h7(r){return new Bm(r)}function g7(r){return new Vm(r)}function x7(){return new Gm}function y7(r){return new Wm(r)}var vR={};Kt(vR,{constant:()=>I7,glorotNormal:()=>_7,glorotUniform:()=>T7,heNormal:()=>E7,heUniform:()=>A7,identity:()=>N7,leCunNormal:()=>D7,leCunUniform:()=>$7,ones:()=>w7,orthogonal:()=>R7,randomNormal:()=>v7,randomUniform:()=>C7,truncatedNormal:()=>S7,varianceScaling:()=>k7,zeros:()=>b7});function b7(){return new Am}function w7(){return new Mu}function I7(r){return new Dm(r)}function C7(r){return new $m(r)}function v7(r){return new Rm(r)}function S7(r){return new Fm(r)}function N7(r){return new Om(r)}function k7(r){return new Yr(r)}function T7(r){return new Rc(r)}function _7(r){return new Fc(r)}function E7(r){return new Oc(r)}function A7(r){return new Mc(r)}function D7(r){return new Pc(r)}function $7(r){return new Lc(r)}function R7(r){return new Mm(r)}var oF={};Kt(oF,{Layer:()=>Et,RNN:()=>po,RNNCell:()=>Tl,activation:()=>JJ,add:()=>a9,alphaDropout:()=>U9,average:()=>l9,averagePooling1d:()=>ok,averagePooling2d:()=>sk,averagePooling3d:()=>ik,avgPool1d:()=>x9,avgPool2d:()=>b9,avgPool3d:()=>I9,avgPooling1d:()=>y9,avgPooling2d:()=>w9,avgPooling3d:()=>C9,batchNormalization:()=>d9,bidirectional:()=>M9,categoryEncoding:()=>X9,centerCrop:()=>K9,concatenate:()=>u9,conv1d:()=>WJ,conv2d:()=>UJ,conv2dTranspose:()=>HJ,conv3d:()=>qJ,conv3dTranspose:()=>KJ,convLstm2d:()=>$9,convLstm2dCell:()=>R9,cropping2D:()=>XJ,dense:()=>QJ,depthwiseConv2d:()=>ZJ,dot:()=>f9,dropout:()=>t9,elu:()=>PJ,embedding:()=>i9,flatten:()=>r9,gaussianDropout:()=>W9,gaussianNoise:()=>G9,globalAveragePooling1d:()=>v9,globalAveragePooling2d:()=>S9,globalMaxPool1d:()=>L9,globalMaxPool2d:()=>z9,globalMaxPooling1d:()=>tF,globalMaxPooling2d:()=>eF,gru:()=>k9,gruCell:()=>T9,input:()=>JN,inputLayer:()=>MJ,layerNormalization:()=>h9,leakyReLU:()=>zJ,lstm:()=>_9,lstmCell:()=>E9,masking:()=>H9,maxPool1d:()=>B9,maxPool2d:()=>V9,maxPooling1d:()=>rF,maxPooling2d:()=>nF,maxPooling3d:()=>N9,maximum:()=>c9,minimum:()=>p9,multiply:()=>m9,permute:()=>s9,prelu:()=>BJ,randomWidth:()=>Y9,reLU:()=>LJ,repeatVector:()=>n9,rescaling:()=>q9,reshape:()=>o9,resizing:()=>j9,rnn:()=>F9,separableConv2d:()=>jJ,simpleRNN:()=>A9,simpleRNNCell:()=>D9,softmax:()=>VJ,spatialDropout1d:()=>e9,stackedRNNCells:()=>O9,thresholdedReLU:()=>GJ,timeDistributed:()=>P9,upSampling2d:()=>YJ,zeroPadding2d:()=>g9});async function ga(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!="number"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sK(this.totals[o],$(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?e[n]=this.totals[n]/this.seen:B(()=>{let o=$(ut(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Yy=class extends kl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew Zy(n,t))}var Um=class r{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),r.checkForDuplicate(e),r.constructors[t]==null&&(r.constructors[t]=[]),r.constructors[t].push(e)}static checkForDuplicate(t){for(let e in r.constructors)r.constructors[+e].forEach(o=>{if(o===t)throw new z("Duplicate callback constructor.")})}static clear(){r.constructors={}}static createCallbacks(t){let e=[];for(let n in r.constructors){let o=+n;t>=o&&e.push(...r.constructors[o])}return e.map(n=>new n)}};Um.constructors={};function Qy(r,t,e,n,o,s,i,a,u){let l=new Yy,c=[new HN,...Um.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Xy(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function wn(r,t={},e=!1){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"layer",e)}function Eh(r,t){return B(()=>{r.dtype!=="float32"&&(r=J(r,"float32"));let e=mt($c(r),t,!0),n=Co(e.shape,cr()),o=ge(kn(e,n));return ut(r,o)})}function xa(r,t){return B(()=>Ne($c(at(t,r)),-1))}function Hm(r,t){return B(()=>Ne(_e(at(t,r)),-1))}function Pu(r,t){return B(()=>{let e=at(r,t),n=vr(_e(r),cr(),Number.MAX_VALUE),o=_e(ut(e,n));return $(100,Ne(o,-1))})}function O7(r,t){return B(()=>{let e=vr(t,cr(),Number.MAX_VALUE),n=Nr(K(1,e)),o=vr(r,cr(),Number.MAX_VALUE),s=Nr(K(1,o));return Ne($c(at(n,s)),-1)})}function M7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne($c(e),-1)})}function P7(r,t){return B(()=>{let e=kn(0,at(1,$(r,t)));return Ne(e,-1)})}function L7(r,t){return B(()=>{let e=mt($(r,t),-1),n=Sr($(at(1,r),t),-1);return kn(0,K(1,at(n,e)))})}function z7(r,t){return B(()=>{let e=Math.log(2),n=at(t,r),o=at(K(n,ui($(-2,n))),e);return Ne(o,-1)})}function Vc(r,t,e=!1){return B(()=>{if(e)t=Eu(t);else{let n=mt(t,t.shape.length-1,!0);t=ut(t,n)}return t=vr(t,cr(),1-cr()),Ut(mt($(J(r,"float32"),Nr(t)),t.shape.length-1))})}function qm(r,t,e=!1){return B(()=>{let n=J(la(aR(r)),"int32");t=vr(t,cr(),1-cr());let o=t.shape,s=R(ca(n,o[o.length-1]),o);return Vc(s,t,e)})}function B7(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Or(t),n=Ut(_e(t));return K(at(e,$(t,r)),vu(Ke(n)))})}function Km(r,t){return B(()=>{let e;return e=vr(t,cr(),1-cr()),e=Nr(ut(e,at(1,e))),Ne(B7(r,e),-1)})}function V7(r,t){return B(()=>{let e=vr(r,cr(),1),n=vr(t,cr(),1);return mt($(r,Nr(ut(e,n))),-1)})}function G7(r,t){return B(()=>{let e=Nr(K(cr(),t));return Ne(at(t,$(r,e)),-1)})}function Dh(r,t){return B(()=>{let e=Eh(r,-1),n=Eh(t,-1),o=$(e,n);return Ut(mt(o,-1))})}var Ah={meanSquaredError:xa,meanAbsoluteError:Hm,meanAbsolutePercentageError:Pu,meanSquaredLogarithmicError:O7,squaredHinge:M7,hinge:P7,categoricalHinge:L7,logcosh:z7,categoricalCrossentropy:Vc,sparseCategoricalCrossentropy:qm,binaryCrossentropy:Km,kullbackLeiblerDivergence:V7,poisson:G7,cosineProximity:Dh};function tb(r){if(typeof r=="string"){if(r in Ah)return Ah[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return r}function $h(r,t){return B(()=>{let e=$(.5,wr(t)),n=rn(Re(t,e),r.dtype);return Ne($r(r,n),-1)})}function Rh(r,t){return B(()=>rn($r(ra(r,-1),ra(t,-1)),"float32"))}function kR(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,1))),"float32"))}function W7(r,t){return B(()=>J(mt(Fr($r(r,1),$r(t,0))),"float32"))}function U7(r,t){return B(()=>J(mt(Fr($r(r,0),$r(t,1))),"float32"))}function qN(r,t){return B(()=>{let e=kR(r,t),n=U7(r,t),o=K(e,n);return J(Ie(Re(o,0),ut(e,o),0),"float32")})}function TR(r,t){return B(()=>{let e=kR(r,t),n=W7(r,t),o=K(e,n);return J(Ie(Re(o,0),ut(e,o),0),"float32")})}function rb(r,t){return Km(r,t)}function nb(r,t){return r.rank===t.rank&&(r=Wn(r,[r.rank-1])),t=ra(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),"float32")}function _R(r,t){return B(()=>{let e=r.sub(t).square().sum(),n=r.sub(r.mean()).square().sum();return pt(1).sub(e.div(n))})}var H7=xa,q7=xa,K7=Hm,j7=Hm,X7=Pu,Y7=Pu,Fh=Vc,Z7=Dh,KN=qm,eb={binaryAccuracy:$h,categoricalAccuracy:Rh,precision:qN,categoricalCrossentropy:Fh,sparseCategoricalCrossentropy:KN,mse:H7,MSE:q7,mae:K7,MAE:j7,mape:X7,MAPE:Y7,cosine:Z7};function ER(r){if(typeof r=="string"&&r in eb)return eb[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Oh(r){if(co(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(Ah))if(Ah[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(eb))if(eb[e]===r){t=e;break}return t!==void 0?t:r.name}}function DR(r){let t={Adagrad:()=>Ac.adagrad(.01),Adadelta:()=>Ac.adadelta(1,.95,cr()),Adam:()=>Ac.adam(.001,.9,.999,cr()),Adamax:()=>Ac.adamax(.002,.9,.999,cr(),0),RMSProp:()=>Ac.rmsprop(.001,.9,0,cr()),SGD:()=>Ac.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,r in t)return t[r]();throw new z(`Unknown Optimizer ${r}`)}function XN(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!jN(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function jN(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!="string"||!jN(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!jN(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function $R(r,t,e,n=console.log){let o=tJ(r),s=["Layer (type)","Input Shape","Output shape","Param #"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push("Receives inputs"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n("_".repeat(t)),ob(s,e,n),n("=".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function ob(r,t,e=console.log){let n="";for(let o=0;o0&&(n=n.slice(0,n.length-1)+" "),n+=r[o],n=n.slice(0,t[o]),n+=" ".repeat(t[o]-n.length);e(n)}function eJ(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(",")}catch(u){o="multiple"}try{n=JSON.stringify(r.outputShape)}catch(u){n="multiple"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];ob(a,t,e)}function rJ(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(",")}catch(p){s="multiple"}try{o=JSON.stringify(r.outputShape)}catch(p){o="multiple"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;m{let t=Object.keys(r);if(t.length===0)return!1;let e=t[0].split("/");return!isNaN(parseInt(e[e.length-1],10))},ib=class r extends Et{constructor(t){if(super({}),this.containerNodes=new Set,this.name=t.name,this.name==null){let b=this.getClassName().toLowerCase();this.name=Fu(b)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(t.inputs)?this.inputs=t.inputs.slice():this.inputs=[t.inputs],Array.isArray(t.outputs)?this.outputs=t.outputs.slice():this.outputs=[t.outputs],Eo(this.inputs).length!==this.inputs.length)throw new z(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(b=>b.name)}`);Eo(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,I=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(I),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex;co(I===0,"input layer has >1 nodes"),co(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(I),this.inputLayersTensorIndices.push(N)}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 e={},n={},o={},s={},i={},a=[],u=(b,w,I,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let D=N.inboundNodes[E];if(I.indexOf(D)!==-1)throw new dn(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(r.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),I.indexOf(D)===-1&&I.push(D);let F=D.inboundLayers.length;for(let M=0;M=0;)I.splice(I.indexOf(D),1);a.push(D)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],I=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,I),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(Sh);this.layers=[];for(let b of d){let w=f[b];w.sort((I,N)=>{let E=i[I.id],A=i[N.id];return EA?1:0});for(let I of w)I instanceof r&&this.internalContainerRefs.push(I),this.layers.push(I)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(Sh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let I=w.outboundLayer;if(I!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new dn(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${I.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(I.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(I=>I===b).length;if(w!==1)throw new dn(`The name "${b}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new Nl({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 t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0,s=nJ(t);s&&this.parseWeights(t);for(let a of this.layers)for(let[u,l]of a.weights.entries()){let c=s?`${l.name.split("/").slice(0,-1).join("/")+"/"}${u}`:l.originalName;if(n[c]!=null)throw new z(`Duplicate weight name: ${c}`);n[c]=l,o++}let i=[];for(let a in t){let u=a;if(n[a]==null){let l=a.split("/");u=l.slice(0,-2).concat([l[l.length-1]]).join("/")}if(n[u]!=null)i.push([n[u],t[a]]);else if(e)throw new z(`Provided weight data has no target variable: ${a}`);delete n[u]}if(e){let a=[];for(let u in n)a.push(u);if(a.length>0)throw new z(`${a.length} of ${o} weights are not set: ${a}`)}zm(i)}parseWeights(t){for(let e in Object.keys(t)){let n=e.split("/"),o=["vars","layer_checkpoint_dependencies"],s=n.map(i=>i.startsWith("_")?i.slice(1):i).filter(i=>!o.includes(i)).join("/");s!==e&&(t[s]=t[e],delete t[e])}}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${jm}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=sb(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=ue(t);let n=new ha;for(let o=0;o{t=ue(t);let n;return e==null?n=To(null,t.length):n=ue(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Pm(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(Sh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(Sh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[I,N]=d[0];h.mask==null&&(h.mask=N),b=ue(p.call(I,h)),w=ue(p.computeMask(I,N)),g=[I],x=[N]}else g=d.map(I=>I[0]),x=d.map(I=>I[1]),h.mask==null&&(h.mask=x),b=ue(p.call(g,h)),w=ue(p.computeMask(g,x));if(p.activityRegularizer)throw new _t("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let I=0;I{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(kr(b),w)}function l(g){let x=g.name,b=wn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(I=>{if(!(I instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${I}`);a(b,I)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!j$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];co(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({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 t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function oJ(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} 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 o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function ab(r,t){return oJ(r,t,"classWeight")}async function lb(r,t,e,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(e!=null){let o=B(()=>{if(r.shape.length===1)return un(r);if(r.shape.length===2){if(r.shape[1]>1)return ra(r,1);if(r.shape[1]===1)return R(r,[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 o.data());Tt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Oe(i,"float32")}else return null}function FR(r,t){return $(r,t)}var sJ=32;function PR(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=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=OR("input",r.inputNames,e),i=OR("output",r.outputNames,n),a=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(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function OR(r,t,e){if(e instanceof Lt)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function iJ(r){if(r.length===3)throw new _t("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function LR(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(e!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.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 o=e.validationData!=null,s,i;if(o)if(MR(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=iJ(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>"val_"+g)):l=u.slice();let c=Jy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Qy(c,p,e.epochs,null,null,aJ(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let I;MR(e.validationData)?I=ue(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):I=ue(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?sJ:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new _t("Verbose mode is not implemented yet.");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=lJ(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=PR(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Tt(m),u===0)for(let h=0;hK(s[h],$(d,g))),u>0&&Tt(x)}Tt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Xm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>vl(n,t,e-t)):vl(r,t,e-t)}function cb(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Gy(r,t.dtype==="int32"?t:J(t,"int32")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function YN(r){let t=[];r instanceof Lt&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Lt)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function uJ(r){return r instanceof Lt}function ZN(r){return Array.isArray(r)}function BR(r){return!uJ(r)&&!ZN(r)}function VR(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(ZN(r)&&r.length>0)i=!0;else if(BR(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(BR(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(ZN(r)){if(r=r,r.length!==t.length)throw new z(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=YN(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function cJ(r,t,e){let n=Eo(r.map(s=>s.shape[0]));n.sort();let o=Eo(t.map(s=>s.shape[0]));if(o.sort(),n.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(o.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(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function pJ(r,t,e){let n=[xa,Km,Vc];for(let o=0;o1)throw new z(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r=="string"||typeof r=="function")e=[r];else if(Array.isArray(r)||typeof r=="object")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var fJ="layers-model",Un=class extends ib{constructor(t){super(t),this.isTraining=!1}summary(t,e,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).");$R(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=DR(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof jr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!="string"&&typeof t.loss!="function"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new z(`Unknown entry in loss dictionary: "${i}". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output "${i}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(tb(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.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=${t.loss}.`);e=t.loss.map(a=>tb(a))}else{let i=tb(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let o=mJ(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+"_"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};fi("metric",()=>{for(let i=0;i{let c="",p,m,f;for(let d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Km?["accuracy","acc"].indexOf(d)!==-1?m=$h:["crossentropy","ce"].indexOf(d)!==-1&&(m=rb):this.lossFunctions[i]===qm?["accuracy","acc"].indexOf(d)!==-1?m=nb:["crossentropy","ce"].indexOf(d)!==-1&&(m=KN):["accuracy","acc"].indexOf(d)!==-1?m=Rh:["crossentropy","ce"].indexOf(d)!==-1&&(m=Fh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=ER(d),p=c+Oh(d);let h;fi(p,()=>{h=f}),s(i,p,h)}})(a)}}),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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;ub(o);let i=this.standardizeUserDataXY(t,e,!0,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return kr(l)}finally{$o(i[0],t),$o(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),zR(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new z(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new z(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ha;if(t instanceof Lt&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new _t("Verbose predictLoop() is not implemented yet.");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Xm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return kr(i.map(a=>ie(a,0)))})}predict(t,e={}){let n=YN(t);GR(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{$o(n,t)}}predictOnBatch(t){GR(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new dn("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==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 ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(o!=null){let c=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new _t("Verbose mode is not implemented yet.");if(s!=null)throw new _t("steps mode in testLoop() is not implemented yet");{let u=pb(i,n),l=Oe(gn(0,i));for(let c=0;c1){let i=PN(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=K(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read());return[this.optimizer_.minimize(a,!0,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;l0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new _t("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; ${n.validationData} is invalid.`);let M=await this.standardizeUserData(u,l,null,null,!0,f);c=M[0],p=M[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),M=o[0].shape[0];c=Xm(o,F,M),i=o,o=Xm(o,0,F),p=Xm(s,F,M),a=s,s=Xm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);this.checkTrainableWeightsConsistency();let w=this.makeTrainFunction(),I=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=I.slice().concat(I.map(F=>"val_"+F))):(N=null,x=[],E=I.slice());let A=Jy(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,I,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,$o(o,t),$o(s,e),$o(i,t),$o(a,e),$o(c,u),$o(p,l),m!=null&&Tt(m)}}async fitLoop(t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=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=this.checkNumSamples(e,o,f,"steps_per_epoch"),x;g!=null&&(x=gn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Qy(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let I=m;I{let M=A[D][0],V=A[D][1],G=vl(E,M,V-M);F.batch=D,F.size=V-M;let W=cb(e,G),q=t(W);for(let H=0;H_o(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]=="string")t[o]=_o(n[o]);else throw new Error("Serialization of non-string loss is not supported.")}return t}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[_o(Oh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>_o(Oh(t)));{let t={};for(let e in this.metrics)t[e]=_o(Oh(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(t.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(t.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let e=Gc(t.optimizer_config),n=wn(e),o;if(typeof t.loss=="string")o=Cl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Cl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Cl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Cl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Cl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=Mr.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Mr.encodeWeights(this.getNamedWeights(e)),a={modelTopology:this.toJSON(null,!1),format:fJ,generatedBy:`TensorFlow.js tfjs-layers v${jm}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await Mr.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Mr.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(XN(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){XN(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Un.className="Model";Q.registerClass(Un);var mb=class extends Un{};mb.className="Functional";Q.registerClass(mb);async function WR(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Gc(e),o=wn(n,t);if(r.weightsManifest!=null){let s=await Mr.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),Tt(s)}return o}async function UR(r,t){if(t==null&&(t={}),typeof r=="string"){let e=Mr.getLoadHandlers(r,t);if(e.length===0)e.push(Mr.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return dJ(r,void 0,t)}async function dJ(r,t,e){if(e==null&&(e={}),r.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=wn(Gc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=hJ(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Tt(l),Tt(c.map(p=>p.tensor))}return a}function hJ(r,t){let e=Mr.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group==="optimizer"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var Wc=class r extends Un{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:Fu("sequential_"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof r||t instanceof Un,n;if(e){if(n=t,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(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=Hy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.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(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=WN(this.outputs[0])}this.inboundNodes=[],new Nl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:To(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),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 t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Gt(t),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 Un({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new dn("The model needs to be compiled before being used.");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");s=e}else y.assert(e.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=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof r))throw new _t(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=wn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}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 t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};Wc.className="Sequential";Q.registerClass(Wc);function gJ(r){return new Un(r)}function xJ(r){return new Wc(r)}function JN(r){return Hy(r)}function yJ(r,t){Um.registerCallbackConstructor(r,t)}var Pr=class extends Q.Serializable{getConfig(){return{}}},fb=class extends Pr{apply(t,e=1){return uR(t,e)}};fb.className="elu";Q.registerClass(fb);var db=class extends Pr{apply(t){return fm(t)}};db.className="selu";Q.registerClass(db);var hb=class extends Pr{apply(t){return Or(t)}};hb.className="relu";Q.registerClass(hb);var gb=class extends Pr{apply(t){return B(()=>lo(6,Or(t)))}};gb.className="relu6";Q.registerClass(gb);var xb=class extends Pr{apply(t){return t}};xb.className="linear";Q.registerClass(xb);var yb=class extends Pr{apply(t){return en(t)}};yb.className="sigmoid";Q.registerClass(yb);var bb=class extends Pr{apply(t){return pR(t)}};bb.className="hardSigmoid";Q.registerClass(bb);var wb=class extends Pr{apply(t){return ui(t)}};wb.className="softplus";Q.registerClass(wb);var Ib=class extends Pr{apply(t){return cR(t)}};Ib.className="softsign";Q.registerClass(Ib);var Cb=class extends Pr{apply(t){return li(t)}};Cb.className="tanh";Q.registerClass(Cb);var Ym=class extends Pr{apply(t,e=-1){return Eu(t,e)}};Ym.className="softmax";Q.registerClass(Ym);var vb=class extends Pr{apply(t,e=-1){return lm(t,e)}};vb.className="logSoftmax";Q.registerClass(vb);var Sb=class extends Pr{apply(t){return B(()=>B(()=>{let e=Math.sqrt(2),n=$(.5,K(1,am(ut(t,e))));return $(t,n)}))}};Sb.className="gelu";Q.registerClass(Sb);var Nb=class extends Pr{apply(t){return B(()=>$(.5,$(t,K(1,li($(ge(ut(2,Math.PI)),K(t,$(.044715,qr(t,3)))))))))}};Nb.className="gelu_new";Q.registerClass(Nb);var kb=class extends Pr{apply(t){return B(()=>$(t,li(ui(t))))}};kb.className="mish";Q.registerClass(kb);var Tb=class extends Pr{apply(t,e=1){return B(()=>$(en($(t,e)),t))}};Tb.className="swish";Q.registerClass(Tb);function gi(r){return r.getClassName()}function QN(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"activation")}function xi(r){if(r==null){let t={};return t.className="linear",t.config={},QN(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},QN(t)}else return r instanceof Pr?r:QN(r)}function tk(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 _b=class extends Q.Serializable{},Lu=class extends _b{constructor(t){super(),tk(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=ke([1]);return this.hasL1&&(e=K(e,mt($(this.l1,_e(t))))),this.hasL2&&(e=K(e,mt($(this.l2,$c(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Lu.className="L1L2";Q.registerClass(Lu);function KR(r){return tk(r),new Lu({l1:r!=null?r.l1:null,l2:0})}function jR(r){return tk(r),new Lu({l2:r!=null?r.l2:null,l1:0})}var HR={l1l2:"L1L2"};function fe(r){return km(r)}function qR(r,t={}){return fa(r,Q.SerializationMap.getMap().classNameMap,t,"regularizer")}function ve(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in HR?HR[r]:r,config:{}};return qR(e)}else return r instanceof _b?r:qR(r)}var Zm=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Or(t);return this.maxValue!=null&&(n=vr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Zm.className="ReLU";Q.registerClass(Zm);var Jm=class extends Et{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=St(t);return Cu(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Jm.className="LeakyReLU";Q.registerClass(Jm);var Qm=class extends Et{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=xe(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=ve(t.alphaRegularizer),this.alphaConstraint=Ge(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes=="number")this.sharedAxes=[t.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Gt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight("alpha",e,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o{let n=St(t),o=e.mask;if(o!=null){let s=$(at(ar(n.shape),J(o,n.dtype)),pt(-1e9));n=K(n,s)}return this.axis instanceof Array?this.axis.length>1?Ke(at(n,Su(n,this.axis,!0))):this.softmax(n,this.axis[0]):this.softmax(n,this.axis)})}computeOutputShape(t){return t}getConfig(){let t={axis:this.axis},e=super.getConfig();return Object.assign(t,e),t}};rf.className="Softmax";Q.registerClass(rf);function zu(r,t,e){if(typeof r=="number")return To(r,t);if(r.length!==t)throw new z(`The ${e} argument must be an integer or tuple of ${t} integers. Received: ${r.length} elements.`);for(let n=0;n(Me(t),t==="channelsFirst"?Vt(r,[0,2,3,1]):r))}function ek(r,t){return B(()=>(Me(t),t==="channelsFirst"?Vt(r,[0,2,3,4,1]):r))}function wJ(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=xn()),Me(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.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(e!=null&&e.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=Vt(r,[0,2,1])),o==="causal")throw new _t("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=rm(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=yn(a,e)),a})}function XR(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ph(r,s);if(o==="causal")throw new _t("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=Ru.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Vt(u,[0,3,1,2])),u})}function IJ(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=xn()),Me(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(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=ek(r,s);if(o==="causal")throw new _t("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Dx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=yn(a,e)),s==="channelsFirst"&&(a=Vt(a,[0,4,1,2,3])),a})}var Mh=class r extends Et{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",r.verifyArgs(e),this.rank=t,tr(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new _t(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=zu(e.kernelSize,t,"kernelSize"),this.strides=zu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,hn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Me(this.dataFormat),this.activation=xi(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=xe(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Ge(e.biasConstraint),this.biasRegularizer=ve(e.biasRegularizer),this.activityRegularizer=ve(e.activityRegularizer),this.dilationRate=zu(e.dilationRate==null?1:e.dilationRate,t,"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(t){if(co("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Fy(t.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(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:gi(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},nf=class r extends Mh{constructor(t,e){super(t,e),this.kernel=null,r.verifyArgs(e),this.filters=e.filters,tr(this.filters,"filters"),this.kernelInitializer=xe(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Ge(e.kernelConstraint),this.kernelRegularizer=ve(e.kernelRegularizer)}build(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=St(t);let n,o=this.bias==null?null:this.bias.read(),s=Oy(this.activation.getClassName());if(s!=null&&this.rank===2)n=XR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=wJ(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=XR(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=IJ(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new _t("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Gt(t);let e=[],n=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},Uc=class r extends nf{constructor(t){super(2,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Fy(t.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(t.kernelSize)}.`)}};Uc.className="Conv2D";Q.registerClass(Uc);var Hc=class r extends nf{constructor(t){super(3,t),r.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};Hc.className="Conv3D";Q.registerClass(Hc);var of=class extends Uc{constructor(t){if(super(t),this.inputSpec=[new Ce({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(t){if(t=Gt(t),t.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 Ce({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);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 o=n.shape,s=o[0],i,a;this.dataFormat==="channelsFirst"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=yi(u,m,c,this.padding),h=yi(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,1]));let x=om(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Vt(x,[0,3,1,2])),this.bias!=null&&(x=yn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=yi(e[o],u,i,this.padding),e[s]=yi(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};of.className="Conv2DTranspose";Q.registerClass(of);var sf=class extends Hc{constructor(t){if(super(t),this.inputSpec=[new Ce({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Gt(t),t.length!==5)throw new z("Input should have rank 5; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 Ce({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==5)throw new z(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat==="channelsFirst"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=yi(l,h,m,this.padding),w=yi(c,g,f,this.padding),I=yi(p,x,d,this.padding),N=[s,b,w,I,this.filters];this.dataFormat!=="channelsLast"&&(n=Vt(n,[0,2,3,4,1]));let E=Rx(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(E=Vt(E,[0,4,1,2,3])),this.bias!==null&&(E=yn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=Gt(t);let e=t.slice(),n,o,s,i;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=yi(e[o],c,a,this.padding),e[s]=yi(e[s],p,u,this.padding),e[i]=yi(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};sf.className="Conv3DTranspose";Q.registerClass(sf);var Eb=class extends nf{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(e.padding!=null&&e.padding!=="same"&&e.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=xe(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=ve(e.depthwiseRegularizer),this.depthwiseConstraint=Ge(e.depthwiseConstraint),this.pointwiseInitializer=xe(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=ve(e.pointwiseRegularizer),this.pointwiseConstraint=Ge(e.pointwiseConstraint)}build(t){if(t=Gt(t),t.length{t=St(t);let n;if(this.rank===1)throw new _t("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Vt(t,[0,2,3,1])),n=dm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Vt(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.pointwiseRegularizer=fe(this.pointwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseConstraint),t.pointwiseConstraint=Ve(this.pointwiseConstraint),t}};Eb.className="SeparableConv";var af=class extends Eb{constructor(t){super(2,t)}};af.className="SeparableConv2D";Q.registerClass(af);var lf=class r extends nf{constructor(t){super(1,t),r.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Fy(t.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};lf.className="Conv1D";Q.registerClass(lf);var uf=class extends Et{constructor(t){super(t),typeof t.cropping=="number"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]=="number"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?"channelsLast":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat==="channelsFirst"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=St(t),this.dataFormat==="channelsLast"){let n=kh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return kh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=kh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return kh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};uf.className="Cropping2D";Q.registerClass(uf);var cf=class extends Et{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,nR(this.interpolation)}computeOutputShape(t){if(this.dataFormat==="channelsFirst"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=St(t),o=n.shape;if(this.dataFormat==="channelsFirst"){n=Vt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i]);return Vt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?fn.resizeNearestNeighbor(n,[s,i]):fn.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};cf.className="UpSampling2D";Q.registerClass(cf);function CJ(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=xn()),Me(o);let i=Ph(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ia(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}var pf=class extends Mh{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=xe(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Ge(t.depthwiseConstraint),this.depthwiseRegularizer=ve(t.depthwiseRegularizer)}build(t){if(t=Gt(t),t.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat==="channelsFirst"?1:3;if(t[e]==null||t[e]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",o,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(t,e){return B(()=>{t=St(t);let n=CJ(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=yn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Tn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Tn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=fe(this.depthwiseRegularizer),t.depthwiseConstraint=Ve(this.depthwiseRegularizer),t}};pf.className="DepthwiseConv2D";Q.registerClass(pf);function rk(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function nk(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(gn(2,u));if(t=Vt(t,l),s!=null)throw new _t("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."),o!=null&&(o=J(J(o,"bool"),"float32"),o.rank===u-1&&(o=je(o,-1)),o=Vt(o,l)),n&&(t=dr(t,0),o!=null&&(o=dr(o,0)));let c=[],p,m=e,f=t.shape[0],d=gr(t),h;o!=null&&(h=gr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let I=B(()=>{let N=h[x],E=at(wr(N),N),A=K($(w[0],N),$(m[0],E)),D=m.map((F,M)=>K($(w[1][M],N),$(F,E)));return{output:A,newStates:D}});p=I.output,m=I.newStates}a&&c.push(p)}let g;return a&&(g=Fe(c,1)),[p,g,m]})}var po=class r extends Et{constructor(t){super(t);let e;if(t.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?e=new jc({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new Ce({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return gn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Uy(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))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=i.map(a=>new Ce({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo("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(o=>ke([n,o])):this.states_=[ke([n,this.cell.stateSize])];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>ke([n,o])):this.states_[0]=ke([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=rk(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new Ce({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof nn){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=St(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new z(`RNN Layer has ${i} 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 a={training:o},l=nk((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=ke(t.shape);return e=mt(e,[1,2]),e=Sl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Vy(e,[1,n]):e):this.cell.stateSize>1?[Vy(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===r.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=wn(o,n);return new t(Object.assign(e,{cell:s}))}};po.className="RNN";Q.registerClass(po);var Tl=class extends Et{},qc=class extends Tl{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,tr(this.units,"units"),this.activation=xi(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=xe(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=ve(t.kernelRegularizer),this.recurrentRegularizer=ve(t.recurrentRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,di([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,di([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t),this.kernel=this.addWeight("kernel",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0wr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0wr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Do($(t,i),this.kernel.read()):s=Do(t,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),a!=null&&(n=$(n,a));let u=K(s,Do(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:gi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),recurrentRegularizer:fe(this.recurrentRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),recurrentConstraint:Ve(this.recurrentConstraint),biasConstraint:Ve(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};qc.className="SimpleRNNCell";Q.registerClass(qc);var mf=class extends po{constructor(t){t.cell=new qc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};mf.className="SimpleRNN";Q.registerClass(mf);var Kc=class extends Tl{constructor(t){if(super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=t.units,tr(this.units,"units"),this.activation=xi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=xi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=xe(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=ve(t.kernelRegularizer),this.recurrentRegularizer=ve(t.recurrentRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,di([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,di([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Gt(t);let e=t[t.length-1];this.kernel=this.addWeight("kernel",[e,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(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0wr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};ff.className="GRU";Q.registerClass(ff);var _l=class extends Tl{constructor(t){super(t),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=t.units,tr(this.units,"units"),this.activation=xi(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=xi(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=xe(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=ve(t.kernelRegularizer),this.recurrentRegularizer=ve(t.recurrentRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.kernelConstraint=Ge(t.kernelConstraint),this.recurrentConstraint=Ge(t.recurrentConstraint),this.biasConstraint=Ge(t.biasConstraint),this.dropout=Dc([1,di([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=Dc([1,di([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Gt(t);let n=t[t.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 o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends bn{apply(u,l){let c=s.apply([i]),p=new Mu().apply([i]),m=s.apply([i*2]);return GN(GN(c,p),m)}},e.className="CustomInit",e)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0wr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};df.className="LSTM";Q.registerClass(df);var jc=class extends Tl{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{fi(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(wn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return _h(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Wy(t(),e),a=()=>Ou(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var vJ=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(Tt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Tt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z("ConvRNN2D cell does not support constants");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=ke(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new uo("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.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(()=>ke(s)):this.states_=[ke(s)];else if(t==null)Tt(this.states_),this.keptStates!=null&&(Tt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ke(s)):this.states_[0]=ke(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):Tt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e==="channelsFirst",l=t[u?3:2],c=t[u?4:3],p=Tn(l,o[0],s,i[0],a[0]),m=Tn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};Ab.className="ConvRNN2D";var Xc=class extends _l{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,tr(this.filters,"filters"),this.kernelSize=zu(n,2,"kernelSize"),this.kernelSize.forEach(u=>tr(u,"kernelSize")),this.strides=zu(o||1,2,"strides"),this.strides.forEach(u=>tr(u,"strides")),this.padding=s||"valid",hn(this.padding),this.dataFormat=i||"channelsLast",Me(this.dataFormat),this.dilationRate=zu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>tr(u,"dilationRate"))}build(t){var e;t=Gt(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends bn{apply(m,f){let d=l.apply([c]),h=ar([c]),g=l.apply([c*2]);return _m([d,h,g])}},e.className="CustomInit",e)}else u=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0wr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(nt,st,lt)=>!st||!st[lt]?nt:$(st[lt],nt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0wr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[I,N,E,A]=hr(this.kernel.read(),a,w),[D,F,M,V]=this.useBias?hr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,I,D,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,E,M,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=hr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(K(c,h)),Y=this.recurrentActivation.apply(K(p,g)),Z=K($(Y,i),$(j,this.activation.apply(K(m,x)))),et=$(this.recurrentActivation.apply(K(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=vJ(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=Nn(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?yn(s,n,this.dataFormat):s}recurrentConv(t,e){return Nn(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Xc.className="ConvLSTM2DCell";Q.registerClass(Xc);var hf=class extends Ab{constructor(t){let e=new Xc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};hf.className="ConvLSTM2D";Q.registerClass(hf);var Yc=class extends Et{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);if(0Wy(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};Yc.className="Dropout";Q.registerClass(Yc);var gf=class extends Yc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};gf.className="SpatialDropout1D";Q.registerClass(gf);var xf=class extends Et{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,tr(this.units,"units"),this.activation=xi(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=xe(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=xe(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Ge(t.kernelConstraint),this.biasConstraint=Ge(t.biasConstraint),this.kernelRegularizer=ve(t.kernelRegularizer),this.biasRegularizer=ve(t.biasRegularizer),this.activityRegularizer=ve(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Gt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Gt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=Oy(this.activation.getClassName()),s;return o!=null?s=Do(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Do(n,this.kernel.read()),this.bias!=null&&(s=yn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:gi(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:fe(this.kernelRegularizer),biasRegularizer:fe(this.biasRegularizer),activityRegularizer:fe(this.activityRegularizer),kernelConstraint:Ve(this.kernelConstraint),biasConstraint:Ve(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};xf.className="Dense";Q.registerClass(xf);var yf=class extends Et{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Gt(t);for(let e of t.slice(1))if(e==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[t[0],Ao(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=St(t);return this.activation.apply(n)})}getConfig(){let t={activation:gi(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};bf.className="Activation";Q.registerClass(bf);var wf=class extends Et{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=St(t),iR(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};wf.className="RepeatVector";Q.registerClass(wf);var If=class extends Et{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=St(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};If.className="Reshape";Q.registerClass(If);var Cf=class extends Et{constructor(t){if(super(t),t.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${t.dims} instead.`);let e=gn(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error("Invalid permutation `dims`: "+JSON.stringify(t.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Ce({ndim:this.dims.length+1})]}computeOutputShape(t){t=Gt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Vt(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};Cf.className="Permute";Q.registerClass(Cf);var vf=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=St(t);return cc(ci(n,this.maskValue),-1)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),i=cc(ci(n,this.maskValue),-1,!0);return $(n,J(i,n.dtype))})}};vf.className="Masking";Q.registerClass(vf);var Sf=class extends Et{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(ue(t.inputLength))}this.inputDim=t.inputDim,tr(this.inputDim,"inputDim"),this.outputDim=t.outputDim,tr(this.outputDim,"outputDim"),this.embeddingsInitializer=xe(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=ve(t.embeddingsRegularizer),this.activityRegularizer=ve(t.activityRegularizer),this.embeddingsConstraint=Ge(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=St(t),ci(t,vt(t))):null)}computeOutputShape(t){if(t=Gt(t),this.inputLength==null)return[...t,this.outputDim];let e=ue(this.inputLength);if(e.length!==t.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);n.dtype!=="int32"&&(n=rn(n,"int32"));let o=Gy(this.embeddings.read(),R(n,[n.size]));return R(o,Gt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:fe(this.embeddingsRegularizer),activityRegularizer:fe(this.activityRegularizer),embeddingsConstraint:Ve(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};Sf.className="Embedding";Q.registerClass(Sf);var Al=class extends Et{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new _t}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&Eo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=di(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=gn(1,l).concat([0]);n.push(Vt(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Vt(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(gn(0,a-1));i=Vt(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new z("`mask` should be an Array");if(!Array.isArray(t))throw new z("`inputs` should be an Array");if(e.length!==t.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:je(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[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(t))}mergeFunction(t){return B(()=>_m(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new z("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new _t("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 ${t.shape.length}`),typeof e=="number"&&(e=[e,e]),r.dtype==="complex64"||t.dtype==="complex64")throw new _t("batchDot is not implemented for complex64-type Tensors yet.");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new _t("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>Lh(s,t[i].shape.length)):o=[Lh(this.axes,e.shape.length),Lh(this.axes,n.shape.length)],this.normalize&&(e=Eh(e,o[0]),n=Eh(n,o[1])),SJ(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Lh(this.axes,t.length),Lh(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new _t("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Df.className="Dot";Q.registerClass(Df);var $f=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return Ou(()=>K(Em(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};$f.className="GaussianNoise";Q.registerClass($f);var Rf=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return this.rate>0&&this.rate<1?Ou(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return $(n,Em(n.shape,1,s))},()=>n,e.training||!1):n})}};Rf.className="GaussianDropout";Q.registerClass(Rf);var Ff=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||St(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return Ou(()=>{let s=St(t),u=-1.6732632423543772*1.0507009873554805,l=cn(Gn(n),this.rate);l=rn(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=K($(s,l),$(K(l,-1),u));return K($(m,c),p)},()=>St(t),e.training||!1)}return t})}};Ff.className="AlphaDropout";Q.registerClass(Ff);function zh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=Cx(r,t,e,n,o,s);else if(r.rank===3)i=vx(r,t,e,n,o,s);else if(r.rank===4)i=Sx(r,t,e,n,o,s);else throw new _t(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function NJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance;return[zh(r,i,a,e,t,o),i,a]})}function kJ(r,t,e,n,o=.001){return B(()=>{let s=dc(r,n),i=s.mean,a=s.variance,u=[];for(let d of gn(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[zh(r,l,c,m,p,o),i,a]})}function TJ(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),gn(0,r.rank-1))?NJ(r,t,e,n,o):kJ(r,t,e,n,o)}var Of=class extends Et{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=xe(t.betaInitializer||"zeros"),this.gammaInitializer=xe(t.gammaInitializer||"ones"),this.movingMeanInitializer=xe(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=xe(t.movingVarianceInitializer||"ones"),this.betaConstraint=Ge(t.betaConstraint),this.gammaConstraint=Ge(t.gammaConstraint),this.betaRegularizer=ve(t.betaRegularizer),this.gammaRegularizer=ve(t.gammaRegularizer)}build(t){t=Gt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new Ce({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight("gamma",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=St(t),s=o.shape,i=s.length,a=gn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=To(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,gn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),I=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return zh(o,b,w,I,N,this.epsilon)}else return zh(o,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 m();let[f,d,h]=TJ(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,I)=>{B(()=>{let N=1-I,E=b.read(),A=$(at(E,w),N);b.write(at(E,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:fe(this.betaRegularizer),gammaRegularizer:fe(this.gammaRegularizer),betaConstraint:Ve(this.betaConstraint),gammaConstraint:Ve(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Of.className="BatchNormalization";Q.registerClass(Of);var Mf=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.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 e of this.axis)if(!Number.isInteger(e))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=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=xe(t.betaInitializer||"zeros"),this.gammaInitializer=xe(t.gammaInitializer||"ones"),this.betaRegularizer=ve(t.betaRegularizer),this.gammaRegularizer=ve(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Gt(t);let e=t.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==Eo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=St(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=dc(n,this.axis,!0),l=To(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,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(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(e==null&&(e=xn()),e!=="channelsLast"&&e!=="channelsFirst")throw new z(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],mn(r,n)})}var Pf=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?xn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding=="number")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]=="number")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new Ce({ndim:4})]}computeOutputShape(t){t=Gt(t);let e,n;return this.dataFormat==="channelsFirst"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>_J(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Pf.className="ZeroPadding2D";Q.registerClass(Pf);function Mb(r,t,e,n,o,s){return B(()=>{Me(o),LN(s),hn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=xn()),s==null&&(s="max"),r=Ph(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=ku(r,t,e,a):i=xu(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,3,1,2])),i})}function YR(r,t,e,n,o,s){return B(()=>{Me(o),LN(s),hn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=xn()),s==null&&(s="max"),r=ek(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Xx(r,t,e,a):i=Ix(r,t,e,a),o==="channelsFirst"&&(i=Vt(i,[0,4,1,2,3])),i})}var Db=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize=="number")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]=="number")this.poolSize=t.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(t.poolSize)}`);if(tr(this.poolSize,"poolSize"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides=="number")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]=="number")this.strides=t.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(t.strides)}`);tr(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,hn(this.padding),this.inputSpec=[new Ce({ndim:3})]}computeOutputShape(t){t=Gt(t);let e=Tn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=Sl(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Wn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Lf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,"max")}};Lf.className="MaxPooling1D";Q.registerClass(Lf);var zf=class extends Db{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,"avg")}};zf.className="AveragePooling1D";Q.registerClass(zf);var $b=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];tr(this.poolSize,"poolSize"),tr(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ce({ndim:4})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,"max")}};Bf.className="MaxPooling2D";Q.registerClass(Bf);var Vf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),Mb(t,e,n,o,s,"avg")}};Vf.className="AveragePooling2D";Q.registerClass(Vf);var Rb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.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 ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];tr(this.poolSize,"poolSize"),tr(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),hn(this.padding),this.inputSpec=[new Ce({ndim:5})]}computeOutputShape(t){t=Gt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[4]:t[3];return e=Tn(e,this.poolSize[0],this.padding,this.strides[0]),n=Tn(n,this.poolSize[1],this.padding,this.strides[1]),o=Tn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Gf=class extends Rb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),YR(t,e,n,o,s,"max")}};Gf.className="MaxPooling3D";Q.registerClass(Gf);var Wf=class extends Rb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Me(s),hn(o),YR(t,e,n,o,s,"avg")}};Wf.className="AveragePooling3D";Q.registerClass(Wf);var Fb=class extends Et{constructor(t){super(t),this.inputSpec=[new Ce({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new _t}},Uf=class extends Fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Ne(n,1)})}};Uf.className="GlobalAveragePooling1D";Q.registerClass(Uf);var Hf=class extends Fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Hf.className="GlobalMaxPooling1D";Q.registerClass(Hf);var Ob=class extends Et{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Me(this.dataFormat),this.inputSpec=[new Ce({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new _t}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},qf=class extends Ob{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Ne(n,[1,2]):Ne(n,[2,3])})}};qf.className="GlobalAveragePooling2D";Q.registerClass(qf);var Kf=class extends Ob{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Sr(n,[1,2]):Sr(n,[2,3])})}};Kf.className="GlobalMaxPooling2D";Q.registerClass(Kf);var Pb=class extends Et{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=wn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},jf=class extends Pb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Gt(t),t.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Gt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=St(t),nk((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};jf.className="TimeDistributed";Q.registerClass(jf);function EJ(r){da(eR,"BidirectionalMergeMode",r)}var AJ="concat",Xf=class extends Pb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=wn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=wn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?AJ:t.mergeMode,EJ(this.mergeMode),t.weights)throw new _t("weights support is not implemented for Bidirectional layer yet.");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):kr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=rk(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];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.");e.initialState=n,i.push(...n);let c=n.map(p=>new Ce({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new _t("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof nn;for(let l of i)if(l instanceof nn!==u)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=dr(s,1));let a;return this.mergeMode==="concat"?a=_m([o,s]):this.mergeMode==="sum"?a=K(o,s):this.mergeMode==="ave"?a=$(.5,K(o,s)):this.mergeMode==="mul"?a=$(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){fi(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),fi(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=wn(e.layer);if(delete e.layer,e.numConstants!=null)throw new _t("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};Xf.className="Bidirectional";Q.registerClass(Xf);var Yf=class extends Et{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=St(t),t.dtype!=="float32"&&(t=rn(t,"float32")),K($(t,this.scale),this.offset)))}};Yf.className="Rescaling";Q.registerClass(Yf);var{resizeBilinear:DJ,cropAndResize:$J}=fn,Zf=class extends Et{constructor(t){super(t),this.height=t.height,this.width=t.width}centerCrop(t,e,n,o,s,i,a,u){return B(()=>{let l,c=!1,p=e/i,m=n/a,f=(o+e)/i,d=(s+n)/a,h=[p,m,f,d],g=[];t.rank===3?(c=!0,l=Fe([t])):l=t;for(let N=0;N{let s=DJ(t,[e,n]);return rn(s,o)})}call(t,e){return B(()=>{let n=St(t),o=n.dtype,s=n.shape,i=s[s.length-3],a=s[s.length-2],u=0;i!==this.height&&(u=Math.floor((i-this.height)/2));let l=0;return a!==this.width&&(l=Math.floor((a-this.width)/2),l===0&&(l=1)),u>=0&&l>=0?this.centerCrop(n,u,l,this.height,this.width,i,a,o):this.upsize(t,this.height,this.width,o)})}getConfig(){let t={height:this.height,width:this.width},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=Gt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};Zf.className="CenterCrop";Q.registerClass(Zf);function ZR(r,t,e,n){let o=St(r);if(o.dtype!=="int32"&&(o=rn(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=je(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=je(o,-1)),o.rank>2)throw new z(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=["multiHot","oneHot"].includes(t),a=o,u;if(typeof n!="undefined"&&t==="count"?u=mh(a,n,e,i):u=mh(a,[],e,i),t!=="tfIdf")return u;if(n)return $(u,n);throw new z("When outputMode is 'tfIdf', weights must be provided.")}var Jf=class extends Et{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode="multiHot"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Gt(t),t==null?[this.numTokens]:this.outputMode==="oneHot"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=St(t),t.dtype!=="int32"&&(t=rn(t,"int32"));let n;if(typeof e.countWeights!="undefined"){if(this.outputMode!=="count")throw new z(`countWeights is not used when outputMode !== count. + Received countWeights=${e.countWeights}`);n=St(e.countWeights)}let o=Sr(t),s=gl(t),i=Re(this.numTokens,o).bufferSync().get(0),a=cn(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return ZR(t,this.outputMode,this.numTokens,n)})}};Jf.className="CategoryEncoding";Q.registerClass(Jf);var FJ=["bilinear","nearest"],JR=new Set(FJ),Qf=class extends Et{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(JR.has(t.interpolation))this.interpolation=t.interpolation;else throw new z(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!t.cropToAspectRatio}computeOutputShape(t){t=Gt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return fn.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return fn.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...JR]} are supported`)})}};Qf.className="Resizing";Q.registerClass(Qf);var Bh=class{constructor(t){this.seed=t}next(){if(this.seed!==void 0)return this.seed++}};Bh.className="RandomSeed";var Vh=class extends Et{constructor(t){super(t),this.randomGenerator=new Bh(t.seed)}getConfig(){let t={seed:this.randomGenerator.seed},e=super.getConfig();return Object.assign(t,e),t}};Vh.className="BaseRandomLayer";var OJ=["bilinear","nearest"],QR=new Set(OJ),td=class extends Vh{constructor(t){super(t);let{factor:e,interpolation:n="bilinear"}=t;if(this.factor=e,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Gn([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case"bilinear":return fn.resizeBilinear(t,i);case"nearest":return fn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation} - but only ${[...YR]} are supported`)}})}};Qf.className="RandomWidth";Q.registerClass(Qf);function RJ(r){return new di(r)}function FJ(r){return new Qm(r)}function OJ(r){return new Ym(r)}function MJ(r){return new Zm(r)}function PJ(r){return new Jm(r)}function LJ(r){return new ef(r)}function zJ(r){return new tf(r)}function BJ(r){return new af(r)}function VJ(r){return new Uc(r)}function GJ(r){return new nf(r)}function WJ(r){return new Hc(r)}function UJ(r){return new of(r)}function HJ(r){return new sf(r)}function qJ(r){return new lf(r)}function KJ(r){return new uf(r)}function jJ(r){return new cf(r)}function XJ(r){return new yf(r)}function YJ(r){return new gf(r)}function ZJ(r){return new Yc(r)}function JJ(r){return new hf(r)}function QJ(r){return new xf(r)}function t9(r){return new bf(r)}function e9(r){return new wf(r)}function r9(r){return new If(r)}function n9(r){return new vf(r)}function o9(r){return new Sf(r)}function s9(r){return new kf(r)}function i9(r){return new Ef(r)}function a9(r){return new Tf(r)}function l9(r){return new _f(r)}function u9(r){return new Nf(r)}function c9(r){return new Af(r)}function p9(r){return new Ff(r)}function m9(r){return new Of(r)}function f9(r){return new Mf(r)}function rk(r){return new Lf(r)}function d9(r){return rk(r)}function h9(r){return rk(r)}function nk(r){return new Bf(r)}function g9(r){return nk(r)}function x9(r){return nk(r)}function ok(r){return new Gf(r)}function y9(r){return ok(r)}function b9(r){return ok(r)}function w9(r){return new Wf(r)}function I9(r){return new Hf(r)}function ZR(r){return new Uf(r)}function JR(r){return new qf(r)}function QR(r){return new Pf(r)}function tF(r){return new zf(r)}function C9(r){return new Vf(r)}function v9(r){return new mf(r)}function S9(r){return new Kc(r)}function N9(r){return new ff(r)}function k9(r){return new _l(r)}function T9(r){return new pf(r)}function _9(r){return new qc(r)}function E9(r){return new df(r)}function A9(r){return new Xc(r)}function D9(r){return new po(r)}function $9(r){return new jc(r)}function R9(r){return new jf(r)}function F9(r){return new Kf(r)}var O9=ZR,M9=JR,P9=QR,L9=tF;function z9(r){return new Df(r)}function B9(r){return new $f(r)}function V9(r){return new Rf(r)}function G9(r){return new Cf(r)}function W9(r){return new Xf(r)}function U9(r){return new Yf(r)}function H9(r){return new Jf(r)}function q9(r){return new Zf(r)}function K9(r){return new Qf(r)}var rF={};Kt(rF,{MAPE:()=>oQ,MSE:()=>aQ,binaryAccuracy:()=>j9,binaryCrossentropy:()=>X9,categoricalAccuracy:()=>Z9,categoricalCrossentropy:()=>J9,cosineProximity:()=>eQ,mape:()=>sQ,meanAbsoluteError:()=>rQ,meanAbsolutePercentageError:()=>nQ,meanSquaredError:()=>iQ,mse:()=>lQ,precision:()=>Q9,recall:()=>tQ,sparseCategoricalAccuracy:()=>Y9});function j9(r,t){return Dh(r,t)}function X9(r,t){return rb(r,t)}function Y9(r,t){return nb(r,t)}function Z9(r,t){return $h(r,t)}function J9(r,t){return Rh(r,t)}function Q9(r,t){return UN(r,t)}function tQ(r,t){return NR(r,t)}function eQ(r,t){return Ah(r,t)}function rQ(r,t){return Um(r,t)}function nQ(r,t){return Pu(r,t)}function oQ(r,t){return Pu(r,t)}function sQ(r,t){return Pu(r,t)}function iQ(r,t){return xa(r,t)}function aQ(r,t){return xa(r,t)}function lQ(r,t){return xa(r,t)}var nF={};Kt(nF,{modelFromJSON:()=>BR});var oF={};Kt(oF,{l1:()=>cQ,l1l2:()=>uQ,l2:()=>pQ});function uQ(r){return new Lu(r)}function cQ(r){return UR(r)}function pQ(r){return HR(r)}var Pb=class extends kl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Un))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function Mb(r,t){return rt}var Lb=class extends Pb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new _t("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=t.monitor||"val_loss",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||"auto",this.baseline=t.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=Mb:this.mode==="max"?this.monitorFunc=sF:this.monitor.indexOf("acc")!==-1?this.monitorFunc=sF:this.monitorFunc=Mb,this.monitorFunc===Mb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Mb?1/0:-1/0}async onEpochEnd(t,e){await ga(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function mQ(r){return new Lb(r)}var fQ={earlyStopping:mQ};var dQ=L();dQ.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,r=>{r&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var _n;(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_QINT16=15]="DT_QINT16",r[r.DT_QUINT16=16]="DT_QUINT16",r[r.DT_UINT16=17]="DT_UINT16",r[r.DT_COMPLEX128=18]="DT_COMPLEX128",r[r.DT_HALF=19]="DT_HALF",r[r.DT_RESOURCE=20]="DT_RESOURCE",r[r.DT_VARIANT=21]="DT_VARIANT",r[r.DT_UINT32=22]="DT_UINT32",r[r.DT_UINT64=23]="DT_UINT64",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",r[r.DT_QINT16_REF=115]="DT_QINT16_REF",r[r.DT_QUINT16_REF=116]="DT_QUINT16_REF",r[r.DT_UINT16_REF=117]="DT_UINT16_REF",r[r.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",r[r.DT_HALF_REF=119]="DT_HALF_REF",r[r.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",r[r.DT_VARIANT_REF=121]="DT_VARIANT_REF",r[r.DT_UINT32_REF=122]="DT_UINT32_REF",r[r.DT_UINT64_REF=123]="DT_UINT64_REF"})(_n||(_n={}));var iF;(function(r){let t;(function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(iF||(iF={}));var sk={};function gQ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};sk[r]=e}function zb(r){return sk[r]}function xQ(r){delete sk[r]}function v(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd,l=a<0?t.inputNames.length+a:a;if(s.type==="tensor")return pr(t.inputNames[l],e,n,o);if(s.type==="tensors"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!=="NoOp"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type==="number"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=In(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function ik(r,t,e){return t[Bb(r,e.currentContextId)]}function yi(r,t){let[e,n,o]=In(r,t);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function In(r,t){if(r==="")return["",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(":"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Vh(r,t,e){let n=v("pad",r,t,e);if(n==="explicit"){n=v("explicitPaddings",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function bi(r){return r.kept?r:ln(r)}var ak={};Kt(ak,{json:()=>yQ});var yQ=[{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 lk={};Kt(lk,{json:()=>bQ});var bQ=[{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:"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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var uk={};Kt(uk,{json:()=>wQ});var wQ=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}];var ck={};Kt(ck,{json:()=>IQ});var IQ=[{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",defaultValue:.2}]},{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 pk={};Kt(pk,{json:()=>CQ});var CQ=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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 mk={};Kt(mk,{json:()=>vQ});var vQ=[{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 fk={};Kt(fk,{json:()=>SQ});var SQ=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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 dk={};Kt(dk,{json:()=>NQ});var NQ=[{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 hk={};Kt(hk,{json:()=>kQ});var kQ=[{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"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}];var gk={};Kt(gk,{json:()=>TQ});var TQ=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}];var xk={};Kt(xk,{json:()=>_Q});var _Q=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}];var yk={};Kt(yk,{json:()=>EQ});var EQ=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}];var bk={};Kt(bk,{json:()=>AQ});var AQ=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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"}]}];var wk={};Kt(wk,{json:()=>DQ});var DQ=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",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"}]},{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 Ik={};Kt(Ik,{json:()=>$Q});var $Q=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}];var Ck={};Kt(Ck,{json:()=>RQ});var RQ=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}];var vk={};Kt(vk,{json:()=>FQ});var FQ=[{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 Sk={};Kt(Sk,{json:()=>OQ});var OQ=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}];var Nk={};Kt(Nk,{json:()=>MQ});var MQ=[{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:"EnsureShape",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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];var Gh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[ak,lk,uk,ck,pk,mk,fk,dk,hk,gk,xk,yk,bk,wk,Ik,Ck,vk,Sk,Nk],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?o.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,I]=yi(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);if(E!==-1){let A=`${w}:${E}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=yi(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=yi(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=zb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith("^")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case"string":a=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=aF(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=aF(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=yi(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:kk(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=yi(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=yi(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function PQ(r){let t=L().global;if(typeof t.atob!="undefined")return t.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 lF(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):PQ(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?lF(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o=="number"?o:parseInt(o,10)}function kk(r){switch(typeof r=="string"&&(r=_n[r]),r){case _n.DT_FLOAT:case _n.DT_HALF:return"float32";case _n.DT_INT32:case _n.DT_INT64:case _n.DT_INT8:case _n.DT_UINT8:return"int32";case _n.DT_BOOL:return"bool";case _n.DT_DOUBLE:return"float32";case _n.DT_STRING:return"string";case _n.DT_COMPLEX64:case _n.DT_COMPLEX128:return"complex64";default:return null}}function aF(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?kk(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>kk(o)):e}function uF(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?uF(n.shape):e}function Kb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o=="number"?o:parseInt(o,10)):e}function jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>lF(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>uF(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ae={};Kt(ae,{OP_SCOPE_SUFFIX:()=>z0,abs:()=>_e,acos:()=>mx,acosh:()=>fx,add:()=>X,addN:()=>TE,all:()=>tm,any:()=>cc,argMax:()=>ea,argMin:()=>dx,asin:()=>hx,asinh:()=>gx,atan:()=>xx,atan2:()=>yx,atanh:()=>bx,avgPool:()=>xu,avgPool3d:()=>wx,basicLSTMCell:()=>AE,batchNorm:()=>oa,batchNorm2d:()=>Ix,batchNorm3d:()=>Cx,batchNorm4d:()=>vx,batchToSpaceND:()=>yu,bincount:()=>Sx,bitwiseAnd:()=>$E,booleanMaskAsync:()=>W5,broadcastArgs:()=>RE,broadcastTo:()=>sa,buffer:()=>wt,cast:()=>J,ceil:()=>Nx,clipByValue:()=>vr,clone:()=>ln,complex:()=>Sn,concat:()=>ie,concat1d:()=>kx,concat2d:()=>Tx,concat3d:()=>_x,concat4d:()=>Ex,conv1d:()=>rm,conv2d:()=>Nn,conv2dTranspose:()=>om,conv3d:()=>Ax,conv3dTranspose:()=>$x,cos:()=>bu,cosh:()=>sm,cosineWindow:()=>gh,cumprod:()=>mc,cumsum:()=>im,denseBincount:()=>ph,depthToSpace:()=>Rx,depthwiseConv2d:()=>ia,diag:()=>FE,dilation2d:()=>Fx,div:()=>ct,divNoNan:()=>Ox,dot:()=>Mx,dropout:()=>mN,einsum:()=>wu,elu:()=>aa,enclosingPowerOfTwo:()=>fN,ensureShape:()=>ME,equal:()=>$r,erf:()=>Px,euclideanNorm:()=>Lx,exp:()=>Ke,expandDims:()=>je,expm1:()=>zx,eye:()=>fc,fft:()=>Au,fill:()=>Co,floor:()=>la,floorDiv:()=>Qp,fused:()=>Ru,gather:()=>ua,gatherND:()=>Q5,greater:()=>Re,greaterEqual:()=>cn,ifft:()=>wl,imag:()=>Iu,image:()=>fn,inTopKAsync:()=>r8,irfft:()=>ym,isFinite:()=>Bx,isInf:()=>Vx,isNaN:()=>Gx,leakyRelu:()=>Cu,less:()=>yl,lessEqual:()=>Vn,linalg:()=>hN,linspace:()=>zE,localResponseNormalization:()=>Wx,log:()=>Nr,log1p:()=>vu,logSigmoid:()=>qx,logSoftmax:()=>am,logSumExp:()=>Su,logicalAnd:()=>Fr,logicalNot:()=>Nu,logicalOr:()=>lm,logicalXor:()=>Kx,losses:()=>oY,lowerBound:()=>BE,matMul:()=>Bt,max:()=>Sr,maxPool:()=>ku,maxPool3d:()=>Xx,maxPoolWithArgmax:()=>VE,maximum:()=>kn,mean:()=>Ne,meshgrid:()=>GE,min:()=>gl,minimum:()=>lo,mirrorPad:()=>Yx,mod:()=>Zx,moments:()=>dc,movingAverage:()=>q5,mul:()=>$,multiRNNCell:()=>WE,multinomial:()=>UE,neg:()=>Ut,norm:()=>xl,notEqual:()=>ui,oneHot:()=>ca,ones:()=>ar,onesLike:()=>wr,op:()=>k,outerProduct:()=>HE,pad:()=>mn,pad1d:()=>qE,pad2d:()=>KE,pad3d:()=>jE,pad4d:()=>XE,pool:()=>Jx,pow:()=>un,prelu:()=>_u,print:()=>px,prod:()=>Qx,raggedGather:()=>YE,raggedRange:()=>ZE,raggedTensorToTensor:()=>JE,rand:()=>QE,randomGamma:()=>wA,randomNormal:()=>xc,randomStandardNormal:()=>IA,randomUniform:()=>Gn,randomUniformInt:()=>CA,range:()=>pa,real:()=>bl,reciprocal:()=>sy,relu:()=>Or,relu6:()=>um,reshape:()=>R,reverse:()=>dr,reverse1d:()=>vA,reverse2d:()=>SA,reverse3d:()=>NA,reverse4d:()=>kA,rfft:()=>Du,round:()=>cm,rsqrt:()=>pm,scalar:()=>pt,scatterND:()=>j5,searchSorted:()=>fh,selu:()=>mm,separableConv2d:()=>fm,setdiff1dAsync:()=>TA,sigmoid:()=>Qr,sign:()=>iy,signal:()=>nY,sin:()=>dm,sinh:()=>hm,slice:()=>Ot,slice1d:()=>gm,slice2d:()=>hh,slice3d:()=>xm,slice4d:()=>yc,softmax:()=>Eu,softplus:()=>li,spaceToBatchND:()=>Tu,sparse:()=>sY,sparseToDense:()=>Z5,spectral:()=>rY,split:()=>hr,sqrt:()=>Se,square:()=>Wt,squaredDifference:()=>bm,squeeze:()=>Wn,stack:()=>Fe,step:()=>So,stridedSlice:()=>ay,string:()=>iY,sub:()=>at,sum:()=>mt,tan:()=>ly,tanh:()=>na,tensor:()=>ir,tensor1d:()=>Oe,tensor2d:()=>ci,tensor3d:()=>uy,tensor4d:()=>_A,tensor5d:()=>EA,tensor6d:()=>AA,tensorScatterUpdate:()=>$A,tile:()=>Rr,topk:()=>cy,transpose:()=>Vt,truncatedNormal:()=>Im,unique:()=>py,unsortedSegmentSum:()=>Cm,unstack:()=>gr,upperBound:()=>RA,variable:()=>my,where:()=>we,whereAsync:()=>dy,zeros:()=>ke,zerosLike:()=>vt});var cF=(r,t,e,n=ae)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(v("a",r,t,e),v("b",r,t,e))];case"AddN":return[n.addN(v("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(v("a",r,t,e),v("b",r,t,e))];case"Mul":return[n.mul(v("a",r,t,e),v("b",r,t,e))];case"RealDiv":case"Div":return[n.div(v("a",r,t,e),v("b",r,t,e))];case"DivNoNan":return[n.divNoNan(v("a",r,t,e),v("b",r,t,e))];case"FloorDiv":return[n.floorDiv(v("a",r,t,e),v("b",r,t,e))];case"Sub":return[n.sub(v("a",r,t,e),v("b",r,t,e))];case"Minimum":return[n.minimum(v("a",r,t,e),v("b",r,t,e))];case"Maximum":return[n.maximum(v("a",r,t,e),v("b",r,t,e))];case"Pow":return[n.pow(v("a",r,t,e),v("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pF=(r,t,e,n=ae)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(v("x",r,t,e))];case"Acos":return[n.acos(v("x",r,t,e))];case"Acosh":return[n.acosh(v("x",r,t,e))];case"Asin":return[n.asin(v("x",r,t,e))];case"Asinh":return[n.asinh(v("x",r,t,e))];case"Atan":return[n.atan(v("x",r,t,e))];case"Atan2":return[n.atan2(v("x",r,t,e),v("y",r,t,e))];case"Atanh":return[n.atanh(v("x",r,t,e))];case"Ceil":return[n.ceil(v("x",r,t,e))];case"Complex":return[n.complex(v("real",r,t,e),v("imag",r,t,e))];case"Cos":return[n.cos(v("x",r,t,e))];case"Cosh":return[n.cosh(v("x",r,t,e))];case"Elu":return[n.elu(v("x",r,t,e))];case"Erf":return[n.erf(v("x",r,t,e))];case"Exp":return[n.exp(v("x",r,t,e))];case"Expm1":return[n.expm1(v("x",r,t,e))];case"Floor":return[n.floor(v("x",r,t,e))];case"Log":return[n.log(v("x",r,t,e))];case"Log1p":return[n.log1p(v("x",r,t,e))];case"Imag":return[n.imag(v("x",r,t,e))];case"Neg":return[n.neg(v("x",r,t,e))];case"Reciprocal":return[n.reciprocal(v("x",r,t,e))];case"Real":return[n.real(v("x",r,t,e))];case"Relu":return[n.relu(v("x",r,t,e))];case"Round":return[n.round(v("x",r,t,e))];case"Selu":return[n.selu(v("x",r,t,e))];case"Sigmoid":return[n.sigmoid(v("x",r,t,e))];case"Sin":return[n.sin(v("x",r,t,e))];case"Sign":return[n.sign(v("x",r,t,e))];case"Sinh":return[n.sinh(v("x",r,t,e))];case"Softplus":return[n.softplus(v("x",r,t,e))];case"Sqrt":return[n.sqrt(v("x",r,t,e))];case"Square":return[n.square(v("x",r,t,e))];case"Tanh":return[n.tanh(v("x",r,t,e))];case"Tan":return[n.tan(v("x",r,t,e))];case"ClipByValue":return[n.clipByValue(v("x",r,t,e),v("clipValueMin",r,t,e),v("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(v("x",r,t,e))];case"Rsqrt":return[n.rsqrt(pr(r.inputNames[0],t,e))];case"LeakyRelu":return[n.leakyRelu(v("x",r,t,e),v("alpha",r,t,e))];case"Prelu":return[n.prelu(v("x",r,t,e),v("alpha",r,t,e))];case"IsNan":return[n.isNaN(pr(r.inputNames[0],t,e))];case"IsInf":return[n.isInf(pr(r.inputNames[0],t,e))];case"IsFinite":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Hn(r,t,e=""){if(!(typeof r=="number"||typeof t=="number")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function mF(r){return!(typeof r=="number"||r.some(t=>t<0))}function td(r,t,e){let n=Jb(r,e),o=!mF(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Jb(s.shape,n)}),!mF(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(r,t){if(typeof r=="number")return t;if(typeof t=="number")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var Qb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=pt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, + `);if(n)if(QR.has(n))this.interpolation=n;else throw new z(`Invalid interpolation parameter: ${n} is not implemented`)}getConfig(){let t={factor:this.factor,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=Gt(t);let e=t[2];return[this.imgHeight,-1,e]}call(t,e){return B(()=>{let n=St(t);this.imgHeight=n.shape[n.shape.length-3];let o=n.shape[n.shape.length-2];this.widthFactor=Gn([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let s=this.widthFactor.dataSync()[0]*o;s=Math.round(s);let i=[this.imgHeight,s];switch(this.interpolation){case"bilinear":return fn.resizeBilinear(t,i);case"nearest":return fn.resizeNearestNeighbor(t,i);default:throw new Error(`Interpolation is ${this.interpolation} + but only ${[...QR]} are supported`)}})}};td.className="RandomWidth";Q.registerClass(td);function MJ(r){return new hi(r)}function PJ(r){return new tf(r)}function LJ(r){return new Zm(r)}function zJ(r){return new Jm(r)}function BJ(r){return new Qm(r)}function VJ(r){return new rf(r)}function GJ(r){return new ef(r)}function WJ(r){return new lf(r)}function UJ(r){return new Uc(r)}function HJ(r){return new of(r)}function qJ(r){return new Hc(r)}function KJ(r){return new sf(r)}function jJ(r){return new af(r)}function XJ(r){return new uf(r)}function YJ(r){return new cf(r)}function ZJ(r){return new pf(r)}function JJ(r){return new bf(r)}function QJ(r){return new xf(r)}function t9(r){return new Yc(r)}function e9(r){return new gf(r)}function r9(r){return new yf(r)}function n9(r){return new wf(r)}function o9(r){return new If(r)}function s9(r){return new Cf(r)}function i9(r){return new Sf(r)}function a9(r){return new Nf(r)}function l9(r){return new Tf(r)}function u9(r){return new Af(r)}function c9(r){return new _f(r)}function p9(r){return new Ef(r)}function m9(r){return new kf(r)}function f9(r){return new Df(r)}function d9(r){return new Of(r)}function h9(r){return new Mf(r)}function g9(r){return new Pf(r)}function ok(r){return new zf(r)}function x9(r){return ok(r)}function y9(r){return ok(r)}function sk(r){return new Vf(r)}function b9(r){return sk(r)}function w9(r){return sk(r)}function ik(r){return new Wf(r)}function I9(r){return ik(r)}function C9(r){return ik(r)}function v9(r){return new Uf(r)}function S9(r){return new qf(r)}function tF(r){return new Hf(r)}function eF(r){return new Kf(r)}function rF(r){return new Lf(r)}function nF(r){return new Bf(r)}function N9(r){return new Gf(r)}function k9(r){return new ff(r)}function T9(r){return new Kc(r)}function _9(r){return new df(r)}function E9(r){return new _l(r)}function A9(r){return new mf(r)}function D9(r){return new qc(r)}function $9(r){return new hf(r)}function R9(r){return new Xc(r)}function F9(r){return new po(r)}function O9(r){return new jc(r)}function M9(r){return new Xf(r)}function P9(r){return new jf(r)}var L9=tF,z9=eF,B9=rF,V9=nF;function G9(r){return new $f(r)}function W9(r){return new Rf(r)}function U9(r){return new Ff(r)}function H9(r){return new vf(r)}function q9(r){return new Yf(r)}function K9(r){return new Zf(r)}function j9(r){return new Qf(r)}function X9(r){return new Jf(r)}function Y9(r){return new td(r)}var sF={};Kt(sF,{MAPE:()=>aQ,MSE:()=>cQ,binaryAccuracy:()=>Z9,binaryCrossentropy:()=>J9,categoricalAccuracy:()=>tQ,categoricalCrossentropy:()=>eQ,cosineProximity:()=>oQ,mape:()=>lQ,meanAbsoluteError:()=>sQ,meanAbsolutePercentageError:()=>iQ,meanSquaredError:()=>uQ,mse:()=>pQ,precision:()=>rQ,r2Score:()=>mQ,recall:()=>nQ,sparseCategoricalAccuracy:()=>Q9});function Z9(r,t){return $h(r,t)}function J9(r,t){return rb(r,t)}function Q9(r,t){return nb(r,t)}function tQ(r,t){return Rh(r,t)}function eQ(r,t){return Fh(r,t)}function rQ(r,t){return qN(r,t)}function nQ(r,t){return TR(r,t)}function oQ(r,t){return Dh(r,t)}function sQ(r,t){return Hm(r,t)}function iQ(r,t){return Pu(r,t)}function aQ(r,t){return Pu(r,t)}function lQ(r,t){return Pu(r,t)}function uQ(r,t){return xa(r,t)}function cQ(r,t){return xa(r,t)}function pQ(r,t){return xa(r,t)}function mQ(r,t){return _R(r,t)}var iF={};Kt(iF,{modelFromJSON:()=>WR});var aF={};Kt(aF,{l1:()=>dQ,l1l2:()=>fQ,l2:()=>hQ});function fQ(r){return new Lu(r)}function dQ(r){return KR(r)}function hQ(r){return jR(r)}var zb=class extends kl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Un))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function Lb(r,t){return rt}var Bb=class extends zb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new _t("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=t.monitor||"val_loss",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||"auto",this.baseline=t.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=Lb:this.mode==="max"?this.monitorFunc=lF:this.monitor.indexOf("acc")!==-1?this.monitorFunc=lF:this.monitorFunc=Lb,this.monitorFunc===Lb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Lb?1/0:-1/0}async onEpochEnd(t,e){await ga(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function gQ(r){return new Bb(r)}var xQ={earlyStopping:gQ};var yQ=L();yQ.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,r=>{r&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var _n;(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_QINT16=15]="DT_QINT16",r[r.DT_QUINT16=16]="DT_QUINT16",r[r.DT_UINT16=17]="DT_UINT16",r[r.DT_COMPLEX128=18]="DT_COMPLEX128",r[r.DT_HALF=19]="DT_HALF",r[r.DT_RESOURCE=20]="DT_RESOURCE",r[r.DT_VARIANT=21]="DT_VARIANT",r[r.DT_UINT32=22]="DT_UINT32",r[r.DT_UINT64=23]="DT_UINT64",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",r[r.DT_QINT16_REF=115]="DT_QINT16_REF",r[r.DT_QUINT16_REF=116]="DT_QUINT16_REF",r[r.DT_UINT16_REF=117]="DT_UINT16_REF",r[r.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",r[r.DT_HALF_REF=119]="DT_HALF_REF",r[r.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",r[r.DT_VARIANT_REF=121]="DT_VARIANT_REF",r[r.DT_UINT32_REF=122]="DT_UINT32_REF",r[r.DT_UINT64_REF=123]="DT_UINT64_REF"})(_n||(_n={}));var uF;(function(r){let t;(function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(uF||(uF={}));var ak={};function wQ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};ak[r]=e}function Vb(r){return ak[r]}function IQ(r){delete ak[r]}function v(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd,l=a<0?t.inputNames.length+a:a;if(s.type==="tensor")return pr(t.inputNames[l],e,n,o);if(s.type==="tensors"){let m=t.inputs.slice(a,u);return t.inputNames.slice(a,u).filter((d,h)=>{var g;return((g=m[h])===null||g===void 0?void 0:g.op)!=="NoOp"}).map(d=>pr(d,e,n,o))}let c=pr(t.inputNames[l],e,n,o),p=c.dataSync();return s.type==="number"?p[0]:y.toNestedArray(c.shape,p)}let i=t.attrParams[r];return i&&i.value}function pr(r,t,e,n){let[o,s]=In(r,e);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Gb(o,a)]);return i!==void 0?t[Gb(o,i)][s]:void 0}function lk(r,t,e){return t[Gb(r,e.currentContextId)]}function bi(r,t){let[e,n,o]=In(r,t);return[Gb(e,t&&t.currentContextId),n,o]}function Gb(r,t){return t?`${r}-${t}`:r}function In(r,t){if(r==="")return["",0,void 0];let e=t!=null&&t.parseNodeNameCache!=null;if(e){let s=t.parseNodeNameCache.get(r);if(s!=null)return s}let n=r.split(":"),o;if(n.length===1)o=[r,0,void 0];else{let s=n[0],i=n.length===3?n[1]:void 0,a=Number(n[n.length-1]);o=[s,a,i]}return e&&t.parseNodeNameCache.set(r,o),o}function Gh(r,t,e){let n=v("pad",r,t,e);if(n==="explicit"){n=v("explicitPaddings",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function wi(r){return r.kept?r:un(r)}var uk={};Kt(uk,{json:()=>CQ});var CQ=[{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 ck={};Kt(ck,{json:()=>vQ});var vQ=[{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:"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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var pk={};Kt(pk,{json:()=>SQ});var SQ=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}];var mk={};Kt(mk,{json:()=>NQ});var NQ=[{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",defaultValue:.2}]},{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 fk={};Kt(fk,{json:()=>kQ});var kQ=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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 dk={};Kt(dk,{json:()=>TQ});var TQ=[{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 hk={};Kt(hk,{json:()=>_Q});var _Q=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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 gk={};Kt(gk,{json:()=>EQ});var EQ=[{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 xk={};Kt(xk,{json:()=>AQ});var AQ=[{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"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}];var yk={};Kt(yk,{json:()=>DQ});var DQ=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}];var bk={};Kt(bk,{json:()=>$Q});var $Q=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}];var wk={};Kt(wk,{json:()=>RQ});var RQ=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}];var Ik={};Kt(Ik,{json:()=>FQ});var FQ=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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"}]}];var Ck={};Kt(Ck,{json:()=>OQ});var OQ=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",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"}]},{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 vk={};Kt(vk,{json:()=>MQ});var MQ=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}];var Sk={};Kt(Sk,{json:()=>PQ});var PQ=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}];var Nk={};Kt(Nk,{json:()=>LQ});var LQ=[{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 kk={};Kt(kk,{json:()=>zQ});var zQ=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}];var Tk={};Kt(Tk,{json:()=>BQ});var BQ=[{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:"EnsureShape",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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];var Wh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[uk,ck,pk,mk,fk,dk,hk,gk,xk,yk,bk,wk,Ik,Ck,vk,Sk,Nk,kk,Tk],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?o.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,I]=bi(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(I);if(E!==-1){let A=`${w}:${E}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=bi(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=bi(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Vb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith("^")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case"string":a=Wb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=Hb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Zb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Zb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=cF(t.attr,s.tfName,s.defaultValue),a===void 0&&s.tfDeprecatedName&&(a=cF(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=bi(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:_k(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=bi(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=bi(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function VQ(r){let t=L().global;if(typeof t.atob!="undefined")return t.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 pF(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):VQ(r);return t?e:e.toLowerCase()}function Wb(r,t,e,n=!1){let o=r[t];return o!=null?pF(o.s,n):e}function Ub(r,t,e){let n=r[t];return n?n.b:e}function Hb(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o=="number"?o:parseInt(o,10)}function _k(r){switch(typeof r=="string"&&(r=_n[r]),r){case _n.DT_FLOAT:case _n.DT_HALF:return"float32";case _n.DT_INT32:case _n.DT_INT64:case _n.DT_INT8:case _n.DT_UINT8:return"int32";case _n.DT_BOOL:return"bool";case _n.DT_DOUBLE:return"float32";case _n.DT_STRING:return"string";case _n.DT_COMPLEX64:case _n.DT_COMPLEX128:return"complex64";default:return null}}function cF(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function qb(r,t,e){let n=r[t];return n&&n.type?_k(n.type):e}function Kb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>_k(o)):e}function mF(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function jb(r,t,e){let n=r[t];return n&&n.shape?mF(n.shape):e}function Xb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o=="number"?o:parseInt(o,10)):e}function Yb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>pF(s,n)):e}function Zb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>mF(o)):e}function Jb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Qb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return pr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return pr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Hb(this.node.rawAttrs,t,e);if(n.s!=null)return Wb(this.node.rawAttrs,t,e);if(n.b!=null)return Ub(this.node.rawAttrs,t,e);if(n.shape!=null)return jb(this.node.rawAttrs,t,e);if(n.type!=null)return qb(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Zb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Jb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Kb(this.node.rawAttrs,t,e)}return e}};var ae={};Kt(ae,{OP_SCOPE_SUFFIX:()=>V0,abs:()=>_e,acos:()=>fx,acosh:()=>dx,add:()=>K,addN:()=>EE,all:()=>tm,any:()=>cc,argMax:()=>ra,argMin:()=>hx,asin:()=>gx,asinh:()=>xx,atan:()=>yx,atan2:()=>bx,atanh:()=>wx,avgPool:()=>xu,avgPool3d:()=>Ix,basicLSTMCell:()=>$E,batchNorm:()=>oa,batchNorm2d:()=>Cx,batchNorm3d:()=>vx,batchNorm4d:()=>Sx,batchToSpaceND:()=>yu,bincount:()=>Nx,bitwiseAnd:()=>FE,booleanMaskAsync:()=>q5,broadcastArgs:()=>OE,broadcastTo:()=>sa,buffer:()=>wt,cast:()=>J,ceil:()=>kx,clipByValue:()=>vr,clone:()=>un,complex:()=>Sn,concat:()=>ie,concat1d:()=>Tx,concat2d:()=>_x,concat3d:()=>Ex,concat4d:()=>Ax,conv1d:()=>rm,conv2d:()=>Nn,conv2dTranspose:()=>om,conv3d:()=>Dx,conv3dTranspose:()=>Rx,cos:()=>bu,cosh:()=>sm,cosineWindow:()=>xh,cumprod:()=>mc,cumsum:()=>im,denseBincount:()=>mh,depthToSpace:()=>Fx,depthwiseConv2d:()=>ia,diag:()=>ME,dilation2d:()=>Ox,div:()=>ut,divNoNan:()=>Mx,dot:()=>Px,dropout:()=>dN,einsum:()=>wu,elu:()=>aa,enclosingPowerOfTwo:()=>hN,ensureShape:()=>LE,equal:()=>$r,erf:()=>am,euclideanNorm:()=>Lx,exp:()=>Ke,expandDims:()=>je,expm1:()=>zx,eye:()=>fc,fft:()=>Au,fill:()=>Co,floor:()=>la,floorDiv:()=>Qp,fused:()=>Ru,gather:()=>ua,gatherND:()=>r8,greater:()=>Re,greaterEqual:()=>cn,ifft:()=>wl,imag:()=>Iu,image:()=>fn,inTopKAsync:()=>s8,irfft:()=>bm,isFinite:()=>Bx,isInf:()=>Vx,isNaN:()=>Gx,leakyRelu:()=>Cu,less:()=>yl,lessEqual:()=>Vn,linalg:()=>xN,linspace:()=>VE,localResponseNormalization:()=>Wx,log:()=>Nr,log1p:()=>vu,logSigmoid:()=>qx,logSoftmax:()=>lm,logSumExp:()=>Su,logicalAnd:()=>Fr,logicalNot:()=>Nu,logicalOr:()=>um,logicalXor:()=>Kx,losses:()=>aY,lowerBound:()=>GE,matMul:()=>Bt,max:()=>Sr,maxPool:()=>ku,maxPool3d:()=>Xx,maxPoolWithArgmax:()=>WE,maximum:()=>kn,mean:()=>Ne,meshgrid:()=>UE,min:()=>gl,minimum:()=>lo,mirrorPad:()=>Yx,mod:()=>Zx,moments:()=>dc,movingAverage:()=>X5,mul:()=>$,multiRNNCell:()=>HE,multinomial:()=>qE,neg:()=>Ut,norm:()=>xl,notEqual:()=>ci,oneHot:()=>ca,ones:()=>ar,onesLike:()=>wr,op:()=>k,outerProduct:()=>KE,pad:()=>mn,pad1d:()=>jE,pad2d:()=>XE,pad3d:()=>YE,pad4d:()=>ZE,pool:()=>Jx,pow:()=>qr,prelu:()=>_u,print:()=>mx,prod:()=>Qx,raggedGather:()=>JE,raggedRange:()=>QE,raggedTensorToTensor:()=>tA,rand:()=>eA,randomGamma:()=>CA,randomNormal:()=>xc,randomStandardNormal:()=>vA,randomUniform:()=>Gn,randomUniformInt:()=>SA,range:()=>pa,real:()=>bl,reciprocal:()=>sy,relu:()=>Or,relu6:()=>cm,reshape:()=>R,reverse:()=>dr,reverse1d:()=>NA,reverse2d:()=>kA,reverse3d:()=>TA,reverse4d:()=>_A,rfft:()=>Du,round:()=>pm,rsqrt:()=>mm,scalar:()=>pt,scatterND:()=>Z5,searchSorted:()=>dh,selu:()=>fm,separableConv2d:()=>dm,setdiff1dAsync:()=>EA,sigmoid:()=>en,sign:()=>iy,signal:()=>iY,sin:()=>hm,sinh:()=>gm,slice:()=>Ot,slice1d:()=>xm,slice2d:()=>gh,slice3d:()=>ym,slice4d:()=>yc,softmax:()=>Eu,softplus:()=>ui,spaceToBatchND:()=>Tu,sparse:()=>lY,sparseToDense:()=>t8,spectral:()=>sY,split:()=>hr,sqrt:()=>ge,square:()=>Wt,squaredDifference:()=>wm,squeeze:()=>Wn,stack:()=>Fe,step:()=>So,stridedSlice:()=>ay,string:()=>uY,sub:()=>at,sum:()=>mt,tan:()=>ly,tanh:()=>li,tensor:()=>ir,tensor1d:()=>Oe,tensor2d:()=>pi,tensor3d:()=>uy,tensor4d:()=>AA,tensor5d:()=>DA,tensor6d:()=>$A,tensorScatterUpdate:()=>FA,tile:()=>Rr,topk:()=>cy,transpose:()=>Vt,truncatedNormal:()=>Cm,unique:()=>py,unsortedSegmentSum:()=>vm,unstack:()=>gr,upperBound:()=>OA,variable:()=>my,where:()=>Ie,whereAsync:()=>dy,zeros:()=>ke,zerosLike:()=>vt});var fF=(r,t,e,n=ae)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(v("a",r,t,e),v("b",r,t,e))];case"AddN":return[n.addN(v("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(v("a",r,t,e),v("b",r,t,e))];case"Mul":return[n.mul(v("a",r,t,e),v("b",r,t,e))];case"RealDiv":case"Div":return[n.div(v("a",r,t,e),v("b",r,t,e))];case"DivNoNan":return[n.divNoNan(v("a",r,t,e),v("b",r,t,e))];case"FloorDiv":return[n.floorDiv(v("a",r,t,e),v("b",r,t,e))];case"Sub":return[n.sub(v("a",r,t,e),v("b",r,t,e))];case"Minimum":return[n.minimum(v("a",r,t,e),v("b",r,t,e))];case"Maximum":return[n.maximum(v("a",r,t,e),v("b",r,t,e))];case"Pow":return[n.pow(v("a",r,t,e),v("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var dF=(r,t,e,n=ae)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(v("x",r,t,e))];case"Acos":return[n.acos(v("x",r,t,e))];case"Acosh":return[n.acosh(v("x",r,t,e))];case"Asin":return[n.asin(v("x",r,t,e))];case"Asinh":return[n.asinh(v("x",r,t,e))];case"Atan":return[n.atan(v("x",r,t,e))];case"Atan2":return[n.atan2(v("x",r,t,e),v("y",r,t,e))];case"Atanh":return[n.atanh(v("x",r,t,e))];case"Ceil":return[n.ceil(v("x",r,t,e))];case"Complex":return[n.complex(v("real",r,t,e),v("imag",r,t,e))];case"Cos":return[n.cos(v("x",r,t,e))];case"Cosh":return[n.cosh(v("x",r,t,e))];case"Elu":return[n.elu(v("x",r,t,e))];case"Erf":return[n.erf(v("x",r,t,e))];case"Exp":return[n.exp(v("x",r,t,e))];case"Expm1":return[n.expm1(v("x",r,t,e))];case"Floor":return[n.floor(v("x",r,t,e))];case"Log":return[n.log(v("x",r,t,e))];case"Log1p":return[n.log1p(v("x",r,t,e))];case"Imag":return[n.imag(v("x",r,t,e))];case"Neg":return[n.neg(v("x",r,t,e))];case"Reciprocal":return[n.reciprocal(v("x",r,t,e))];case"Real":return[n.real(v("x",r,t,e))];case"Relu":return[n.relu(v("x",r,t,e))];case"Round":return[n.round(v("x",r,t,e))];case"Selu":return[n.selu(v("x",r,t,e))];case"Sigmoid":return[n.sigmoid(v("x",r,t,e))];case"Sin":return[n.sin(v("x",r,t,e))];case"Sign":return[n.sign(v("x",r,t,e))];case"Sinh":return[n.sinh(v("x",r,t,e))];case"Softplus":return[n.softplus(v("x",r,t,e))];case"Sqrt":return[n.sqrt(v("x",r,t,e))];case"Square":return[n.square(v("x",r,t,e))];case"Tanh":return[n.tanh(v("x",r,t,e))];case"Tan":return[n.tan(v("x",r,t,e))];case"ClipByValue":return[n.clipByValue(v("x",r,t,e),v("clipValueMin",r,t,e),v("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(v("x",r,t,e))];case"Rsqrt":return[n.rsqrt(pr(r.inputNames[0],t,e))];case"LeakyRelu":return[n.leakyRelu(v("x",r,t,e),v("alpha",r,t,e))];case"Prelu":return[n.prelu(v("x",r,t,e),v("alpha",r,t,e))];case"IsNan":return[n.isNaN(pr(r.inputNames[0],t,e))];case"IsInf":return[n.isInf(pr(r.inputNames[0],t,e))];case"IsFinite":return[n.isFinite(pr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Hn(r,t,e=""){if(!(typeof r=="number"||typeof t=="number")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function hF(r){return!(typeof r=="number"||r.some(t=>t<0))}function ed(r,t,e){let n=tw(r,e),o=!hF(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=tw(s.shape,n)}),!hF(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function tw(r,t){if(typeof r=="number")return t;if(typeof t=="number")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var ew=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=pt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Hn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,gr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.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: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Hn(e,s.shape,"TensorList shape mismatch: "),De(s)}),this.idTensor=pt(0),this.maxNumElements=o,De(this.idTensor)}copy(){return new r([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, 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.`);Hn(t,this.elementShape,"TensorList shape mismatch: ");let o=td(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return Fe(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=td(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Hn(o.shape,t,"TensorList shape mismatch: "),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Hn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new r([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Hn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=td(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Hn(this.elementShape,e.shape,"TensorList shape mismatch: "),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Hn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=td(this.elementShape,this.tensors,n);return t.length===0?ir([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return Fe(s,0)})}concat(t,e){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Hn(this.elementShape,e,"TensorList shape mismatch: ");let n=td(this.elementShape,this.tensors,e);return this.size()===0?ir([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ie(o,0)})}};function fF(r,t,e){let n=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!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Hn(o,t,"TensorList shape mismatch: ");let s=gr(r);return new ed(s,t,n)}function dF(r,t,e,n){return new ed([],r,t,n)}function hF(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ed([],e,r.dtype,n),i=gr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function gF(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Hn(e,s.shape,"TensorList shape mismatch: "),De(s)}),this.idTensor=pt(0),this.maxNumElements=o,De(this.idTensor)}copy(){return new r([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, 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.`);Hn(t,this.elementShape,"TensorList shape mismatch: ");let o=ed(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return Fe(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=ed(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Hn(o.shape,t,"TensorList shape mismatch: "),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Hn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new r([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Hn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=ed(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Hn(this.elementShape,e.shape,"TensorList shape mismatch: "),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Hn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=ed(this.elementShape,this.tensors,n);return t.length===0?ir([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return Fe(s,0)})}concat(t,e){if(t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Hn(this.elementShape,e,"TensorList shape mismatch: ");let n=ed(this.elementShape,this.tensors,e);return this.size()===0?ir([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ie(o,0)})}};function gF(r,t,e){let n=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!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Hn(o,t,"TensorList shape mismatch: ");let s=gr(r);return new rd(s,t,n)}function xF(r,t,e,n){return new rd([],r,t,n)}function yF(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new rd([],e,r.dtype,n),i=gr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function bF(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.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: ${r.shape}`);let s=r.shape.slice(1),i=Jb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=v("thenBranch",r,t,e),o=v("elseBranch",r,t,e),s=v("cond",r,t,e),i=v("args",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case"While":case"StatelessWhile":{let n=v("body",r,t,e),o=v("cond",r,t,e),s=v("args",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case"LoopCond":{let n=v("pred",r,t,e);return[bi(n)]}case"Switch":{let n=v("pred",r,t,e),o=v("data",r,t,e);return o.kept||(o=bi(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[bi(o)]}return}case"Enter":{let n=v("frameName",r,t,e),o=v("tensor",r,t,e);return e.enterFrame(n),[bi(o)]}case"Exit":{let n=v("tensor",r,t,e);return e.exitFrame(),[bi(n)]}case"NextIteration":{let n=v("tensor",r,t,e);return e.nextIteration(),[bi(n)]}case"TensorArrayV3":{let n=v("size",r,t,e),o=v("dtype",r,t,e),s=v("elementShape",r,t,e),i=v("dynamicSize",r,t,e),a=v("clearAfterRead",r,t,e),u=v("identicalElementShapes",r,t,e),l=v("name",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,pt(1)]}case"TensorArrayWriteV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=v("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=v("tensorArrayId",r,t,e),o=v("tensor",r,t,e),s=v("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[pt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=v("indices",r,t,e),o=v("tensor",r,t,e),s=v("elementShape",r,t,e),i=v("numElements",r,t,e),a=hF(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=v("elementShape",r,t,e),o=v("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=v(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=dF(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=v("tensorListId",r,t,e),o=v("indices",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=v("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=fF(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id),s=v("dtype",r,t,e),i=v("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=v("tensorListId",r,t,e),o=v("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("lengths",r,t,e),i=gF(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id);return[pt(o.size(),"int32")]}case"TensorListResize":{let n=v("tensorListId",r,t,e),o=v("size",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function yF(r,t,e){let[n,o]=v("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=v("numArgs",r,t,e);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&&s&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(u)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let c=v("strides",r,t,e),p=Vh(r,t,e),m=v("dataFormat",r,t,e).toUpperCase(),f=v("dilations",r,t,e),[d,h]=v("args",r,t,e);i&&(h=d,d=void 0);let g=v("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var bF=(r,t,e,n=ae)=>{switch(r.op){case"Conv1D":{let o=v("stride",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilation",r,t,e);return[n.conv1d(v("x",r,t,e),v("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=v("strides",r,t,e),s=Vh(r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv2d(v("x",r,t,e),v("filter",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=yF(r,t,e);return[n.fused.conv2d({x:v("x",r,t,e),filter:v("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=yF(r,t,e);return[n.fused.depthwiseConv2d({x:v("x",r,t,e),filter:v("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=v("outputShape",r,t,e),s=v("strides",r,t,e),i=Vh(r,t,e);return[n.conv2dTranspose(v("x",r,t,e),v("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=v("strides",r,t,e),s=Vh(r,t,e),i=v("dilations",r,t,e),a=v("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(v("input",r,t,e),v("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv3d(v("x",r,t,e),v("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e),a=v("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v("x",r,t,e),v("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var wF=(r,t,e,n=ae)=>{switch(r.op){case"Fill":{let o=v("shape",r,t,e),s=v("dtype",r,t,e),i=v("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=v("logits",r,t,e),s=v("numSamples",r,t,e),i=v("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=v("indices",r,t,e),s=v("depth",r,t,e),i=v("onValue",r,t,e),a=v("offValue",r,t,e),u=v("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(v("shape",r,t,e),v("dtype",r,t,e))];case"OnesLike":return[n.onesLike(v("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(v("shape",r,t,e),v("dtype",r,t,e),v("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(v("shape",r,t,e),v("minval",r,t,e),v("maxval",r,t,e),v("dtype",r,t,e))];case"RandomUniformInt":return[n.randomUniformInt(v("shape",r,t,e),v("minval",r,t,e),v("maxval",r,t,e),v("seed",r,t,e))];case"Range":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("step",r,t,e);return[n.range(o,s,i,v("dtype",r,t,e))]}case"TruncatedNormal":{let o=v("shape",r,t,e),s=v("mean",r,t,e),i=v("stdDev",r,t,e),a=v("seed",r,t,e);return[n.truncatedNormal(o,s,i,v("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(v("shape",r,t,e),v("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Tk(r,t,e){let n=v("boxes",r,t,e),o=v("scores",r,t,e),s=v("maxOutputSize",r,t,e),i=v("iouThreshold",r,t,e),a=v("scoreThreshold",r,t,e),u=v("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var IF=async(r,t,e,n,o=ae)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=Tk(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Tk(r,t,e),c=v("padToMaxOutputSize",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Tk(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(v("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(v("x",r,t,e),v("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var CF=(r,t,e,n=ae)=>{switch(r.op){case"LowerBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=v("x",r,t,e),s=v("k",r,t,e),i=v("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=v("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=v("x",r,t,e),s=v("axis",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var vF=(r,t,e,n=ae)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=v("default",r,t,e);return[pr(r.name,t,e)||o];case"Placeholder":return[pr(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=v("x",r,t,e);return[bi(c)]}case"IdentityN":return v("x",r,t,e).map(c=>bi(c));case"Snapshot":let s=v("x",r,t,e);return[bi(s)];case"Shape":return[n.tensor1d(v("x",r,t,e).shape,"int32")];case"ShapeN":return v("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(v("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(v("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=v("x",r,t,e),a=v("data",r,t,e),u=v("message",r,t,e),l=v("summarize",r,t,e);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return pt(this.size(),"int32")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=gr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=v("keyDType",r,t,e),i=v("valueDType",r,t,e),a=new tw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=v("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var NF=(r,t,e,n=ae)=>{switch(r.op){case"ResizeBilinear":{let o=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=v("image",r,t,e),s=v("boxes",r,t,e),i=v("boxInd",r,t,e),a=v("cropSize",r,t,e),u=v("method",r,t,e),l=v("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=v("images",r,t,e),s=v("transforms",r,t,e),i=v("outputShape",r,t,e),a=v("fillValue",r,t,e),u=v("interpolation",r,t,e),l=v("fillMode",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var kF=(r,t,e,n=ae)=>{switch(r.op){case"Equal":return[n.equal(v("a",r,t,e),v("b",r,t,e))];case"NotEqual":return[n.notEqual(v("a",r,t,e),v("b",r,t,e))];case"Greater":return[n.greater(v("a",r,t,e),v("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(v("a",r,t,e),v("b",r,t,e))];case"Less":return[n.less(v("a",r,t,e),v("b",r,t,e))];case"LessEqual":return[n.lessEqual(v("a",r,t,e),v("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(v("a",r,t,e),v("b",r,t,e))];case"LogicalNot":return[n.logicalNot(v("a",r,t,e))];case"LogicalOr":return[n.logicalOr(v("a",r,t,e),v("b",r,t,e))];case"Select":case"SelectV2":return[n.where(v("condition",r,t,e),v("a",r,t,e),v("b",r,t,e))];case"BitwiseAnd":return[n.bitwiseAnd(v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var TF=(r,t,e,n=ae)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(v("a",r,t,e),v("b",r,t,e),v("transposeA",r,t,e),v("transposeB",r,t,e))];case"Einsum":return[n.einsum(v("equation",r,t,e),...v("tensors",r,t,e))];case"Transpose":return[n.transpose(v("x",r,t,e),v("perm",r,t,e))];case"_FusedMatMul":let[o,s]=v("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=v("numArgs",r,t,e),l=v("leakyreluAlpha",r,t,e);if(i){if(a&&u!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&u!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,p]=v("args",r,t,e);return[n.fused.matMul({a:v("a",r,t,e),b:v("b",r,t,e),transposeA:v("transposeA",r,t,e),transposeB:v("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case"MatrixBandPart":return[n.linalg.bandPart(v("a",r,t,e),v("numLower",r,t,e),v("numUpper",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var _F=(r,t,e,n=ae)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(v("x",r,t,e),v("axis",r,t,e),v("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(v("x",r,t,e),v("radius",r,t,e),v("bias",r,t,e),v("alpha",r,t,e),v("beta",r,t,e))];case"Softmax":return[n.softmax(v("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var EF=(r,t,e,n=ae)=>{switch(r.op){case"RaggedGather":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(v("paramsNestedSplits",r,t,e),v("paramsDenseValues",r,t,e),v("indices",r,t,e),v("outputRaggedRank",r,t,e));return o.concat(s)}case"RaggedRange":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(v("starts",r,t,e),v("limits",r,t,e),v("splits",r,t,e));return[o,s]}case"RaggedTensorToTensor":return[n.raggedTensorToTensor(v("shape",r,t,e),v("values",r,t,e),v("defaultValue",r,t,e),v("rowPartitionTensors",r,t,e),v("rowPartitionTypes",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var AF=(r,t,e,n=ae)=>{switch(r.op){case"Max":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.max(v("x",r,t,e),a,u)]}case"Mean":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.mean(v("x",r,t,e),a,u)]}case"Min":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.min(v("x",r,t,e),a,u)]}case"Sum":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.sum(v("x",r,t,e),a,u)]}case"All":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.all(v("x",r,t,e),a,u)]}case"Any":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.any(v("x",r,t,e),a,u)]}case"ArgMax":{let a=v("axis",r,t,e);return[n.argMax(v("x",r,t,e),a)]}case"ArgMin":{let a=v("axis",r,t,e);return[n.argMin(v("x",r,t,e),a)]}case"Prod":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.prod(v("x",r,t,e),a,u)]}case"Cumprod":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumprod(v("x",r,t,e),a,u,l)]}case"Cumsum":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumsum(v("x",r,t,e),a,u,l)]}case"Bincount":let o=v("x",r,t,e),s=v("weights",r,t,e),i=v("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=v("x",r,t,e),u=v("weights",r,t,e),l=v("size",r,t,e),c=v("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var DF=(r,t,e,n=ae)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=v("n",r,t,e),s=v("axis",r,t,e),i=v("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=v("axis",r,t,e),s=v("batchDims",r,t,e),i=v("x",r,t,e),a=v("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=v("dims",r,t,e),s=[];for(let a=0;a{let o=v("axis",r,t,e),s=v("tensors",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error("the input tensors shape does not match");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case"Unpack":{let o=v("axis",r,t,e),s=v("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=v("reps",r,t,e);return[n.tile(v("x",r,t,e),o)]}case"Split":case"SplitV":{let o=v("axis",r,t,e),s=v("numOrSizeSplits",r,t,e),i=v("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=v("indices",r,t,e),s=v("values",r,t,e),i=v("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=v("sparseIndices",r,t,e),s=v("outputShape",r,t,e),i=v("sparseValues",r,t,e),a=v("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case"TensorScatterUpdate":{let o=v("indices",r,t,e),s=v("values",r,t,e),i=v("tensor",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var $F=(r,t,e,n=ae)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v("indices",r,t,e),v("values",r,t,e),v("denseShape",r,t,e),v("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v("inputIndices",r,t,e),v("inputShape",r,t,e),v("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var RF=(r,t,e,n=ae)=>{switch(r.op){case"FFT":return[n.fft(v("x",r,t,e))];case"IFFT":return[n.ifft(v("x",r,t,e))];case"RFFT":return[n.rfft(v("x",r,t,e))];case"IRFFT":return[n.irfft(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var FF=(r,t,e,n=ae)=>{switch(r.op){case"StaticRegexReplace":return[n.string.staticRegexReplace(v("input",r,t,e),v("pattern",r,t,e),v("rewrite",r,t,e),v("replaceGlobal",r,t,e))];case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v("data",r,t,e),v("dataSplits",r,t,e),v("separator",r,t,e),v("nGramWidths",r,t,e),v("leftPad",r,t,e),v("rightPad",r,t,e),v("padWidth",r,t,e),v("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v("input",r,t,e),v("delimiter",r,t,e),v("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(v("input",r,t,e),v("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var OF=(r,t,e,n=ae)=>{switch(r.op){case"Cast":return[n.cast(v("x",r,t,e),v("dtype",r,t,e))];case"ExpandDims":{let o=v("axis",r,t,e);return[n.expandDims(v("x",r,t,e),o)]}case"Squeeze":{let o=v("axis",r,t,e);return[n.squeeze(v("x",r,t,e),o)]}case"Reshape":return[n.reshape(v("x",r,t,e),v("shape",r,t,e))];case"EnsureShape":return[n.ensureShape(v("x",r,t,e),v("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(v("x",r,t,e),v("padding",r,t,e),v("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(v("x",r,t,e),v("padding",r,t,e),v("constantValue",r,t,e))];case"SpaceToBatchND":{let o=v("blockShape",r,t,e),s=v("paddings",r,t,e);return[n.spaceToBatchND(v("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=v("blockShape",r,t,e),s=v("crops",r,t,e);return[n.batchToSpaceND(v("x",r,t,e),o,s)]}case"DepthToSpace":{let o=v("blockSize",r,t,e),s=v("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(v("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(v("x",r,t,e),v("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(v("s0",r,t,e),v("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function _k(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>cF(i,a,u));case"basic_math":return o(()=>pF(i,a,u));case"control":return xF(i,a,u);case"convolution":return o(()=>bF(i,a,u));case"creation":return o(()=>wF(i,a,u));case"dynamic":return IF(i,a,u);case"evaluation":return o(()=>CF(i,a,u));case"image":return o(()=>NF(i,a,u));case"graph":return o(()=>vF(i,a,u));case"logical":return o(()=>kF(i,a,u));case"matrices":return o(()=>TF(i,a,u));case"normalization":return o(()=>_F(i,a,u));case"ragged":return o(()=>EF(i,a,u));case"reduction":return o(()=>AF(i,a,u));case"slice_join":return o(()=>DF(i,a,u));case"sparse":return o(()=>$F(i,a,u));case"spectral":return o(()=>RF(i,a,u));case"string":return o(()=>FF(i,a,u));case"transformation":return o(()=>OF(i,a,u));case"hash_table":return SF(i,a,u,n);case"custom":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Wh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?"":`${e.frameName}-${e.iterationId}`).join("/"):""}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),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 t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function Ek(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>In(m)[0]));n=n||[];let c=new Set(n.map(m=>In(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Bu(m)||utt(m)||ctt(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&!l.has(m.name)&&!c.has(m.name)){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function MF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>In(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g=="string"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=ott(d,u);return stt(h,u),h}function ott(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var rd=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function stt(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a=="string"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a=="string"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new rd(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new rd(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new rd(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new rd(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function PF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Bu(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new r(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+"--"+o.join(this.SEPARATOR)}compile(t,e){let n=Ek(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;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 [${i}]`);if(o.length>0){let l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=MF(this.graph,n),u=PF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return De(e),e}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([e,n])=>[e,this.cloneTensorList(n)]))}execute(t,e){this.disposeIntermediateTensors(),t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(m=>this.graph.nodes[In(m)[0]]),s=e.map(m=>In(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Wh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=In(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=_k(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){if(!(Bu(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Bu(u))continue;let l=ik(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Bu(u)||s.has(u.name)}if(!(Bu(t)||i==null))for(let u of i){if(a(u))continue;let l=ik(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let e of t)e&&!e.isDisposed&&e.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,e,n=!1,o={},s={}){this.disposeIntermediateTensors(),n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepIntermediateTensors=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Wh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(m,a,i)),l=u.map(m=>m.id),c=Object.keys(t).map(m=>t[m].id),p=new Set([...l,...c,...this.weightIds]);return Object.values(a).forEach(m=>{m.forEach(f=>{f&&!f.isDisposed&&!p.has(f.id)&&f.dispose()})}),this.parent==null&&i.dispose(p),u}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(I=>this.graph.nodes[In(I)[0]]),a=n.map(I=>In(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=Ek(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=In(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==null&&!o&&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(I=>!Bu(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I="";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&v("isConstant",p.node,o,n)&&([m]=yi(p.node.name,n)),o[p.node.name]==null){let f=_k(p.node,o,n,this._resourceManager);m||([m]=yi(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(h)),n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(f)),this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=yi(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=In(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){var e,n;let o={};for(let s in t){let i=(n=(e=this._signature)===null||e===void 0?void 0:e.inputs)===null||n===void 0?void 0:n[s];i!=null?o[i.name]=t[s]:o[s]=t[s]}return o}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=In(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>{var n,o;let s=(o=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||o===void 0?void 0:o[e];return s!=null?s.name:e},{})}checkOutputs(t){t.forEach(e=>{let[n]=In(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var ptt="?tfjs-format=file",mtt="model.json",Hh=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(t,e={},n=Mr){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}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 t=this.handler.load();return y.isPromise(t)?t.then(e=>e.getWeightStream==null?this.loadSync(e):this.loadStreaming(e)):this.loadSync(t)}loadSync(t){let e=this.io.decodeWeights(t.weightData,t.weightSpecs);return this.loadWithWeightMap(t,e)}async loadStreaming(t){if(t.getWeightStream==null)throw new Error("Model artifacts missing streamWeights function");let e=await ix(t.getWeightStream(),t.weightSpecs);return this.loadWithWeightMap(t,e)}loadWithWeightMap(t,e){this.artifacts=t;let n=this.artifacts.modelTopology,o=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(o=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}if(this.signature=o,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new Uh(Gh.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(e),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Gh.Instance.transformGraph(t.modelInitializer);this.initializer=new Uh(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t=="string"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return t.save(this.artifacts)}addStructuredOutputNames(t){if(this.structuredOutputKeys){let e=t instanceof Lt?[t]:t,n={};return e.forEach((o,s)=>n[this.structuredOutputKeys[s]]=o),n}return t}predict(t,e){let n=this.execute(t,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(t,e){let n=await this.executeAsync(t,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(t){var e;if(!(t instanceof Lt)&&!Array.isArray(t)){let s=(e=this.signature)===null||e===void 0?void 0:e.inputs;if(s!=null)for(let i in s){let a=s[i];a.resourceId!=null&&(t[i]=this.resourceIdToCapturedInput[a.resourceId])}return t}t=Array.isArray(t)?t:[t];let n=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${t.length} input tensors provided.`);let o=0;return this.inputNodes.reduce((s,i)=>{var a,u,l;let c=(l=(u=(a=this.signature)===null||a===void 0?void 0:a.inputs)===null||u===void 0?void 0:u[i])===null||l===void 0?void 0:l.resourceId;return c!=null?s[i]=this.resourceIdToCapturedInput[c]:s[i]=t[o++],s},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=this.initializerSignature.outputs,n=Object.keys(e);for(let o=0;o1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function ftt(r,t={},e=Mr){if(r==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&&typeof r=="string"&&(r=htt(r));let n=new Hh(r,t,e);return await n.load(),n}function dtt(r){if(r==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error("modelJSON must be the first element of the array");if(!o||!(o instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in n))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in n))throw new Error("Model JSON is missing 'weightsManifest'");let s=Mr.getWeightSpecs(n.weightsManifest),i=Mr.getModelArtifactsForJSONSync(n,s,o);t=Mr.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=Mr.fromMemorySync(r);else throw new Error("Unknown model format");let e=new Hh(t);return e.load(),e}function htt(r){return r.endsWith("/")||(r=r+"/"),`${r}${mtt}${ptt}`}var LF="4.16.0";var oO={};Kt(oO,{CSVDataset:()=>sd,Dataset:()=>wi,FileDataSource:()=>ld,TextLineDataset:()=>od,URLDataSource:()=>ud,array:()=>jF,csv:()=>QF,func:()=>tO,generator:()=>eO,microphone:()=>nO,version_data:()=>Yk,webcam:()=>rO,zip:()=>XF});var KF=Gl(dh());var UF=Gl(dh());function zF(r,t){return rw(r,t)}function rw(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob=="function"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error("Circular references are not supported.");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(o.recurse)if(Vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function BF(r,t=Dk){return VF(r,t)}function VF(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error("Circular references are not supported.");let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(o.recurse)if(Vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=VF(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function Dk(r){return r===null?null:Vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return rw(r,t,e)}function Vu(r){let t=!1;if(L().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=Ak();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Lt)&&!(r instanceof Promise)&&!t)}function GF(r){return r==null||gtt(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Lt||y.isTypedArray(r)}function gtt(r){return r===null||typeof r!="object"&&typeof r!="function"}function WF(r){return zF(r,xtt)}function xtt(r){return r instanceof Lt?{value:r.clone(),recurse:!1}:Vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var nd=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(t<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError("Can't get item at a negative index.");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError("Can't set item at a negative index.");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var qh=class r extends nd{constructor(){super(r.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new Pk(this,t,e)}columnMajorBatch(t,e=!0,n=Dk){return this.rowMajorBatch(t,e).map(s=>BF(s,n))}concatenate(t,e){return new sw(Uk([this,t]),e)}take(t){return t<0||t==null?this:new Mk(this,t)}skip(t){return t<0||t==null?this:new Ok(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new Wk(this,t,e)}serial(){return new Fk(this)}},$k=class extends er{constructor(t){super(),this.items=t,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 t=this.items[this.trav];return this.trav++,{value:WF(t),done:!1}}},Rk=class extends er{constructor(t){super(),this.nextFn=t}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},Fk=class extends er{constructor(t){super(),this.upstream=t,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()}},Ok=class extends er{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},Pk=class extends er{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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 t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},Lk=class extends er{constructor(t,e){super(),this.upstream=t,this.predicate=e,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 t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;Tt(t.value)}}},zk=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Bk=class extends er{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},ow=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=await this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Zc=class extends er{constructor(){super(),this.outputQueue=new qh,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}}},Vk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return!0}},sw=class extends er{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,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 e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},Dl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(Dl||(Dl={}));var Gk=class extends er{constructor(t,e=Dl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof er?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Dl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Dl.SHORTEST:return{value:null,done:!0};case Dl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends er{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new nd(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},Wk=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=UF.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var wi=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is - ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),En(async()=>(await n.iterator()).columnMajorBatch(t,e,ytt),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,En(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,En(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return En(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return En(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let e=this;return En(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,En(async()=>{let o=Kh(async()=>({value:await e.iterator(),done:!1}));return HF(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<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 o=this,s=KF.alea(e||y.now().toString());return En(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,En(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};wi.MAX_BUFFER_SIZE=1e4;function En(r,t=null){return new class extends wi{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function jF(r){return En(async()=>Uk(r),r.length)}function XF(r){if(!Vu(r))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(r))for(let e=0;e{let e=await nw(r,n=>{if(n instanceof wi)return{value:n.iterator(),recurse:!1};if(Vu(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return qF(e,Dl.SHORTEST)},t)}function ytt(r){if(r===null)return null;let t=r[0];return GF(t)?{value:btt(r),recurse:!1}:{value:null,recurse:!0}}function btt(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Lt?Fe(r):ir(r)}var od=class extends wi{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(o=>(o.endsWith("\r")&&(o=o.slice(0,-1)),o))}};var aw='"',jh=Symbol("out"),YF=Symbol("field"),lw=Symbol("quote"),Hk=Symbol("quoteafterquote"),ZF=Symbol("quoteinquote"),sd=class extends wi{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&t&&y.assert(t.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 ("+t.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key "'+o+'" 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 n=e.value;return this.parseRow(n,!1)}else return null}constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new od(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=e.delimiter?e.delimiter:","}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!L().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new r(t);return await e.start(),e}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 t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.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 t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},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(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ir(n,e)}};var cw=class r extends er{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Oe([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=ci([i,s,u,a],[1,4])}else this.cropBox=ci([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!L().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!e.resizeWidth||!e.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new r(t,e);return await n.start(),n}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=_y.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=je(J(t,"float32"),0),n;n=fn.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let o=n.shape;return R(n,o.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.")}};var id=class{};var Xh=class extends er{split(t){return new qk(this,t)}},qk=class extends Xh{constructor(t,e){super(),this.upstream=t,this.impl=new Kk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Kk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var pw=class extends er{decodeUTF8(){return new jk(this)}},jk=class extends Xh{constructor(t){super(),this.upstream=t,this.impl=new Xk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Xk=class extends Zc{constructor(t){if(super(),this.upstream=t,L().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=Ak();this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return L().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var ad=class extends pw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().get("IS_BROWSER")?t instanceof File||t instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=e.offset||0,this.chunkSize=e.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,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError("FileReader returned unknown type."));e(u)},s.onabort=a=>n(new Error("Aborted")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function JF(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=wtt(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new ad(i,t)}else throw new Error(s.statusText)}var wtt=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 mw(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var ld=class extends id{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(mw(this.input)&&L().get("IS_NODE")){let t=fw();this.input=t.readFileSync(this.input.slice(7))}return new ad(this.input,this.options)}};var ud=class extends id{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return mw(this.url)?new ld(this.url,this.fileOptions).iterator():JF(this.url,this.fileOptions)}};function QF(r,t={}){return new sd(new ud(r),t)}function tO(r){let t=Kh(r);return En(async()=>t)}function eO(r){return En(async()=>{let t=await r();return Kh(()=>t.next())})}async function rO(r,t){return cw.create(r,t)}async function nO(r){return uw.create(r)}var Yk="4.16.0";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var Itt=Kr.whereImpl,cd=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Ta(this,Bn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().get("IS_NODE")&&S.warn(` + ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=tw(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=v("thenBranch",r,t,e),o=v("elseBranch",r,t,e),s=v("cond",r,t,e),i=v("args",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case"While":case"StatelessWhile":{let n=v("body",r,t,e),o=v("cond",r,t,e),s=v("args",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case"LoopCond":{let n=v("pred",r,t,e);return[wi(n)]}case"Switch":{let n=v("pred",r,t,e),o=v("data",r,t,e);return o.kept||(o=wi(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>pr(o,t,e)!==void 0);if(n){let o=pr(n,t,e);return[wi(o)]}return}case"Enter":{let n=v("frameName",r,t,e),o=v("tensor",r,t,e);return e.enterFrame(n),[wi(o)]}case"Exit":{let n=v("tensor",r,t,e);return e.exitFrame(),[wi(n)]}case"NextIteration":{let n=v("tensor",r,t,e);return e.nextIteration(),[wi(n)]}case"TensorArrayV3":{let n=v("size",r,t,e),o=v("dtype",r,t,e),s=v("elementShape",r,t,e),i=v("dynamicSize",r,t,e),a=v("clearAfterRead",r,t,e),u=v("identicalElementShapes",r,t,e),l=v("name",r,t,e),c=new ew(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,pt(1)]}case"TensorArrayWriteV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=v("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=v("tensorArrayId",r,t,e),o=v("tensor",r,t,e),s=v("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[pt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=v("indices",r,t,e),o=v("tensor",r,t,e),s=v("elementShape",r,t,e),i=v("numElements",r,t,e),a=yF(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=v("elementShape",r,t,e),o=v("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=v(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=xF(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=v("tensorListId",r,t,e),o=v("indices",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=v("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=gF(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id),s=v("dtype",r,t,e),i=v("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=v("tensorListId",r,t,e),o=v("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("lengths",r,t,e),i=bF(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id);return[pt(o.size(),"int32")]}case"TensorListResize":{let n=v("tensorListId",r,t,e),o=v("size",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function IF(r,t,e){let[n,o]=v("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=v("numArgs",r,t,e);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&&s&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(u)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let c=v("strides",r,t,e),p=Gh(r,t,e),m=v("dataFormat",r,t,e).toUpperCase(),f=v("dilations",r,t,e),[d,h]=v("args",r,t,e);i&&(h=d,d=void 0);let g=v("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var CF=(r,t,e,n=ae)=>{switch(r.op){case"Conv1D":{let o=v("stride",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilation",r,t,e);return[n.conv1d(v("x",r,t,e),v("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=v("strides",r,t,e),s=Gh(r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv2d(v("x",r,t,e),v("filter",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=IF(r,t,e);return[n.fused.conv2d({x:v("x",r,t,e),filter:v("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=IF(r,t,e);return[n.fused.depthwiseConv2d({x:v("x",r,t,e),filter:v("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=v("outputShape",r,t,e),s=v("strides",r,t,e),i=Gh(r,t,e);return[n.conv2dTranspose(v("x",r,t,e),v("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=v("strides",r,t,e),s=Gh(r,t,e),i=v("dilations",r,t,e),a=v("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(v("input",r,t,e),v("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv3d(v("x",r,t,e),v("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e),a=v("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v("x",r,t,e),v("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var vF=(r,t,e,n=ae)=>{switch(r.op){case"Fill":{let o=v("shape",r,t,e),s=v("dtype",r,t,e),i=v("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=v("logits",r,t,e),s=v("numSamples",r,t,e),i=v("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=v("indices",r,t,e),s=v("depth",r,t,e),i=v("onValue",r,t,e),a=v("offValue",r,t,e),u=v("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(v("shape",r,t,e),v("dtype",r,t,e))];case"OnesLike":return[n.onesLike(v("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(v("shape",r,t,e),v("dtype",r,t,e),v("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(v("shape",r,t,e),v("minval",r,t,e),v("maxval",r,t,e),v("dtype",r,t,e))];case"RandomUniformInt":return[n.randomUniformInt(v("shape",r,t,e),v("minval",r,t,e),v("maxval",r,t,e),v("seed",r,t,e))];case"Range":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("step",r,t,e);return[n.range(o,s,i,v("dtype",r,t,e))]}case"TruncatedNormal":{let o=v("shape",r,t,e),s=v("mean",r,t,e),i=v("stdDev",r,t,e),a=v("seed",r,t,e);return[n.truncatedNormal(o,s,i,v("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(v("shape",r,t,e),v("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Ek(r,t,e){let n=v("boxes",r,t,e),o=v("scores",r,t,e),s=v("maxOutputSize",r,t,e),i=v("iouThreshold",r,t,e),a=v("scoreThreshold",r,t,e),u=v("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var SF=async(r,t,e,n,o=ae)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=Ek(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Ek(r,t,e),c=v("padToMaxOutputSize",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=Ek(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(v("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(v("x",r,t,e),v("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var NF=(r,t,e,n=ae)=>{switch(r.op){case"LowerBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=v("x",r,t,e),s=v("k",r,t,e),i=v("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=v("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=v("x",r,t,e),s=v("axis",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var kF=(r,t,e,n=ae)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=v("default",r,t,e);return[pr(r.name,t,e)||o];case"Placeholder":return[pr(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=v("x",r,t,e);return[wi(c)]}case"IdentityN":return v("x",r,t,e).map(c=>wi(c));case"Snapshot":let s=v("x",r,t,e);return[wi(s)];case"Shape":return[n.tensor1d(v("x",r,t,e).shape,"int32")];case"ShapeN":return v("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(v("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(v("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=v("x",r,t,e),a=v("data",r,t,e),u=v("message",r,t,e),l=v("summarize",r,t,e);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return pt(this.size(),"int32")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=gr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=v("keyDType",r,t,e),i=v("valueDType",r,t,e),a=new rw(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=v("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var _F=(r,t,e,n=ae)=>{switch(r.op){case"ResizeBilinear":{let o=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=v("image",r,t,e),s=v("boxes",r,t,e),i=v("boxInd",r,t,e),a=v("cropSize",r,t,e),u=v("method",r,t,e),l=v("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=v("images",r,t,e),s=v("transforms",r,t,e),i=v("outputShape",r,t,e),a=v("fillValue",r,t,e),u=v("interpolation",r,t,e),l=v("fillMode",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var EF=(r,t,e,n=ae)=>{switch(r.op){case"Equal":return[n.equal(v("a",r,t,e),v("b",r,t,e))];case"NotEqual":return[n.notEqual(v("a",r,t,e),v("b",r,t,e))];case"Greater":return[n.greater(v("a",r,t,e),v("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(v("a",r,t,e),v("b",r,t,e))];case"Less":return[n.less(v("a",r,t,e),v("b",r,t,e))];case"LessEqual":return[n.lessEqual(v("a",r,t,e),v("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(v("a",r,t,e),v("b",r,t,e))];case"LogicalNot":return[n.logicalNot(v("a",r,t,e))];case"LogicalOr":return[n.logicalOr(v("a",r,t,e),v("b",r,t,e))];case"Select":case"SelectV2":return[n.where(v("condition",r,t,e),v("a",r,t,e),v("b",r,t,e))];case"BitwiseAnd":return[n.bitwiseAnd(v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var AF=(r,t,e,n=ae)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(v("a",r,t,e),v("b",r,t,e),v("transposeA",r,t,e),v("transposeB",r,t,e))];case"Einsum":return[n.einsum(v("equation",r,t,e),...v("tensors",r,t,e))];case"Transpose":return[n.transpose(v("x",r,t,e),v("perm",r,t,e))];case"_FusedMatMul":let[o,s]=v("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=v("numArgs",r,t,e),l=v("leakyreluAlpha",r,t,e);if(i){if(a&&u!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&u!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,p]=v("args",r,t,e);return[n.fused.matMul({a:v("a",r,t,e),b:v("b",r,t,e),transposeA:v("transposeA",r,t,e),transposeB:v("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];case"MatrixBandPart":return[n.linalg.bandPart(v("a",r,t,e),v("numLower",r,t,e),v("numUpper",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var DF=(r,t,e,n=ae)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(v("x",r,t,e),v("axis",r,t,e),v("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(v("x",r,t,e),v("radius",r,t,e),v("bias",r,t,e),v("alpha",r,t,e),v("beta",r,t,e))];case"Softmax":return[n.softmax(v("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var $F=(r,t,e,n=ae)=>{switch(r.op){case"RaggedGather":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(v("paramsNestedSplits",r,t,e),v("paramsDenseValues",r,t,e),v("indices",r,t,e),v("outputRaggedRank",r,t,e));return o.concat(s)}case"RaggedRange":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(v("starts",r,t,e),v("limits",r,t,e),v("splits",r,t,e));return[o,s]}case"RaggedTensorToTensor":return[n.raggedTensorToTensor(v("shape",r,t,e),v("values",r,t,e),v("defaultValue",r,t,e),v("rowPartitionTensors",r,t,e),v("rowPartitionTypes",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var RF=(r,t,e,n=ae)=>{switch(r.op){case"Max":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.max(v("x",r,t,e),a,u)]}case"Mean":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.mean(v("x",r,t,e),a,u)]}case"Min":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.min(v("x",r,t,e),a,u)]}case"Sum":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.sum(v("x",r,t,e),a,u)]}case"All":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.all(v("x",r,t,e),a,u)]}case"Any":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.any(v("x",r,t,e),a,u)]}case"ArgMax":{let a=v("axis",r,t,e);return[n.argMax(v("x",r,t,e),a)]}case"ArgMin":{let a=v("axis",r,t,e);return[n.argMin(v("x",r,t,e),a)]}case"Prod":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.prod(v("x",r,t,e),a,u)]}case"Cumprod":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumprod(v("x",r,t,e),a,u,l)]}case"Cumsum":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumsum(v("x",r,t,e),a,u,l)]}case"Bincount":let o=v("x",r,t,e),s=v("weights",r,t,e),i=v("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=v("x",r,t,e),u=v("weights",r,t,e),l=v("size",r,t,e),c=v("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var FF=(r,t,e,n=ae)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=v("n",r,t,e),s=v("axis",r,t,e),i=v("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=v("axis",r,t,e),s=v("batchDims",r,t,e),i=v("x",r,t,e),a=v("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=v("dims",r,t,e),s=[];for(let a=0;a{let o=v("axis",r,t,e),s=v("tensors",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error("the input tensors shape does not match");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case"Unpack":{let o=v("axis",r,t,e),s=v("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=v("reps",r,t,e);return[n.tile(v("x",r,t,e),o)]}case"Split":case"SplitV":{let o=v("axis",r,t,e),s=v("numOrSizeSplits",r,t,e),i=v("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=v("indices",r,t,e),s=v("values",r,t,e),i=v("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=v("sparseIndices",r,t,e),s=v("outputShape",r,t,e),i=v("sparseValues",r,t,e),a=v("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}case"TensorScatterUpdate":{let o=v("indices",r,t,e),s=v("values",r,t,e),i=v("tensor",r,t,e);return[n.tensorScatterUpdate(i,o,s)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var OF=(r,t,e,n=ae)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v("indices",r,t,e),v("values",r,t,e),v("denseShape",r,t,e),v("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v("inputIndices",r,t,e),v("inputShape",r,t,e),v("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var MF=(r,t,e,n=ae)=>{switch(r.op){case"FFT":return[n.fft(v("x",r,t,e))];case"IFFT":return[n.ifft(v("x",r,t,e))];case"RFFT":return[n.rfft(v("x",r,t,e))];case"IRFFT":return[n.irfft(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var PF=(r,t,e,n=ae)=>{switch(r.op){case"StaticRegexReplace":return[n.string.staticRegexReplace(v("input",r,t,e),v("pattern",r,t,e),v("rewrite",r,t,e),v("replaceGlobal",r,t,e))];case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v("data",r,t,e),v("dataSplits",r,t,e),v("separator",r,t,e),v("nGramWidths",r,t,e),v("leftPad",r,t,e),v("rightPad",r,t,e),v("padWidth",r,t,e),v("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v("input",r,t,e),v("delimiter",r,t,e),v("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(v("input",r,t,e),v("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var LF=(r,t,e,n=ae)=>{switch(r.op){case"Cast":return[n.cast(v("x",r,t,e),v("dtype",r,t,e))];case"ExpandDims":{let o=v("axis",r,t,e);return[n.expandDims(v("x",r,t,e),o)]}case"Squeeze":{let o=v("axis",r,t,e);return[n.squeeze(v("x",r,t,e),o)]}case"Reshape":return[n.reshape(v("x",r,t,e),v("shape",r,t,e))];case"EnsureShape":return[n.ensureShape(v("x",r,t,e),v("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(v("x",r,t,e),v("padding",r,t,e),v("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(v("x",r,t,e),v("padding",r,t,e),v("constantValue",r,t,e))];case"SpaceToBatchND":{let o=v("blockShape",r,t,e),s=v("paddings",r,t,e);return[n.spaceToBatchND(v("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=v("blockShape",r,t,e),s=v("crops",r,t,e);return[n.batchToSpaceND(v("x",r,t,e),o,s)]}case"DepthToSpace":{let o=v("blockSize",r,t,e),s=v("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(v("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(v("x",r,t,e),v("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(v("s0",r,t,e),v("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Ak(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>fF(i,a,u));case"basic_math":return o(()=>dF(i,a,u));case"control":return wF(i,a,u);case"convolution":return o(()=>CF(i,a,u));case"creation":return o(()=>vF(i,a,u));case"dynamic":return SF(i,a,u);case"evaluation":return o(()=>NF(i,a,u));case"image":return o(()=>_F(i,a,u));case"graph":return o(()=>kF(i,a,u));case"logical":return o(()=>EF(i,a,u));case"matrices":return o(()=>AF(i,a,u));case"normalization":return o(()=>DF(i,a,u));case"ragged":return o(()=>$F(i,a,u));case"reduction":return o(()=>RF(i,a,u));case"slice_join":return o(()=>FF(i,a,u));case"sparse":return o(()=>OF(i,a,u));case"spectral":return o(()=>MF(i,a,u));case"string":return o(()=>PF(i,a,u));case"transformation":return o(()=>LF(i,a,u));case"hash_table":return TF(i,a,u,n);case"custom":let l=Vb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Qb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Uh=class{constructor(t={},e={},n={},o={},s){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.parseNodeNameCache=s,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?"":`${e.frameName}-${e.iterationId}`).join("/"):""}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),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 t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function Dk(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=new Set(Object.keys(r).map(m=>In(m)[0]));n=n||[];let c=new Set(n.map(m=>In(m.name)[0])),p=[...t];for(;p.length>0;){let m=p.pop();if((Bu(m)||ftt(m)||dtt(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&!l.has(m.name)&&!c.has(m.name)){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function zF(r,t){let{usedNodes:e,inputs:n}=t,o=Object.keys(n).map(g=>In(g)[0]).map(g=>r.nodes[g]),s=r.initNodes||[],i=g=>e.has(typeof g=="string"?g:g.name);function a(g){return[...new Map(g.map(x=>[x.name,x])).values()]}let u=a([...o,...r.weights,...s]).filter(i),l=a([...u,...Object.values(r.nodes)]).filter(i),c=new Map(l.map(g=>[g.name,g])),p={};for(let g of l){p[g.name]=p[g.name]||0;for(let x of g.children)i(x)||(p[x.name]=Number.POSITIVE_INFINITY),p[x.name]=(p[x.name]||0)+1}let m=Object.entries(p).filter(([,g])=>g===0).map(([g])=>g),f=[...m];for(;m.length>0;){let g=m.pop(),x=c.get(g);for(let b of x.children.filter(i))--p[b.name]===0&&(f.push(b.name),m.push(b.name))}let d=f.map(g=>c.get(g)),h=ltt(d,u);return utt(h,u),h}function ltt(r,t){let e=new Map(r.map(i=>[i.name,i])),n=t.map(i=>i.name),o=new Set(n);for(;n.length>0;){let i=n.pop(),a=e.get(i);for(let u of a.children)!e.has(u.name)||o.has(u.name)||(o.add(u.name),n.push(u.name))}return r.filter(i=>o.has(i.name))}var nd=class extends Error{constructor(t){super(`NodesExecutionOrderError: ${t}`)}};function utt(r,t){let e=new Map(r.map((a,u)=>[a.name,u])),n=new Set(t.map(a=>a.name)),o=a=>n.has(typeof a=="string"?a:a.name),s=new Set(r.map(a=>a.name)),i=a=>s.has(typeof a=="string"?a:a.name);for(let a of r){for(let u of a.children.filter(i)){if(!e.has(u.name))throw new nd(`Child ${u.name} of node ${a.name} is unreachable.`);if(e.get(a.name)>e.get(u.name))throw new nd(`Node ${a.name} is scheduled to run after its child ${u.name}.`)}if(!o(a))for(let u of a.inputs){if(!e.has(u.name))throw new nd(`Input ${u.name} of node ${a.name} is unreachable.`);if(e.get(u.name)>e.get(a.name))throw new nd(`Node ${a.name} is scheduled to run before its input ${u.name}.`)}}}function BF(r){let t=new Map(r.map((a,u)=>[a.name,u])),e=Number.MAX_SAFE_INTEGER,n=r.map((a,u)=>Bu(a)?e:u),o=a=>{let u=n[t.get(a.name)];return u==null?-1:u},s=r.map((a,u)=>a.children.map(o).reduce((l,c)=>Math.max(l,c),n[u])),i=new Map;for(let a=0;at[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new r(t.functions[n],this)})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPARATOR)+"--"+o.join(this.SEPARATOR)}compile(t,e){let n=Dk(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;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 [${i}]`);if(o.length>0){let l=e.map(p=>p.name),c=Object.keys(t);throw new Error(`Cannot compute the outputs [${l}] from the provided inputs [${c}]. Missing the following inputs: [${o}]`)}let a=zF(this.graph,n),u=BF(a);return{orderedNodes:a,nodeLiveUntilMap:u}}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return De(e),e}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([e,n])=>[e,this.cloneTensorList(n)]))}execute(t,e){this.disposeIntermediateTensors(),t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(m=>this.graph.nodes[In(m)[0]]),s=e.map(m=>In(m)[0]),i=new Set(s),a=s.map(m=>this.graph.nodes[m]);a.length===0&&(a=this._outputs);let u=this.getCompilationKey(o,a),l=this.compiledMap.get(u);l==null&&(l=this.compile(t,a),this.compiledMap.set(u,l));try{this.keepIntermediateTensors=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let c={},p={};return B(()=>{let m=new Uh(this.weightMap,c,p,this.functionExecutorMap,this.parseNodeNameCache),f=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(x=>{let[b,w]=In(x,m),I=[];I[w]=t[x],f[b]=I,this.keepIntermediateTensors&&(this.clonedTensorsMap[b]=this.cloneTensorList(I))});let d=this.getFrozenTensorIds(f),{orderedNodes:h,nodeLiveUntilMap:g}=l;for(let x of h){if(f[x.name])continue;let b=Ak(x,f,m,this._resourceManager);if(y.isPromise(b))throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);f[x.name]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[x.name]=this.cloneTensorList(b)),this.checkTensorForDisposalWithNodeLiveUntilInfo(x,f,m,d,i,g.get(x.name))}return this.parent==null&&m.dispose(d),e.map(x=>pr(x,f,m))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){if(!(Bu(e)||i.has(t))){for(let u of n[t])u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length);for(let u of e.inputs){if(Bu(u))continue;let l=lk(u.name,n,o);if(l!=null)for(let c of l){if(!c||c.kept||s.has(c.id))continue;let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(t,e,n,o,s,i){function a(u){return Bu(u)||s.has(u.name)}if(!(Bu(t)||i==null))for(let u of i){if(a(u))continue;let l=lk(u.name,e,n);for(let c of l)!c||c.kept||o.has(c.id)||c.dispose()}}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(t=>{for(let e of t)e&&!e.isDisposed&&e.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,e,n=!1,o={},s={}){this.disposeIntermediateTensors(),n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepIntermediateTensors=L().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Uh(this.weightMap,o,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>pr(m,a,i)),l=u.map(m=>m.id),c=Object.keys(t).map(m=>t[m].id),p=new Set([...l,...c,...this.weightIds]);return Object.values(a).forEach(m=>{m.forEach(f=>{f&&!f.isDisposed&&!p.has(f.id)&&f.dispose()})}),this.parent==null&&i.dispose(p),u}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(I=>this.graph.nodes[In(I)[0]]),a=n.map(I=>In(I)[0]),u=new Set(a),l=a.map(I=>this.graph.nodes[I]);l.length===0&&(l=this._outputs);let{usedNodes:c,missingInputs:p,dynamicNode:m,syncInputs:f}=Dk(t,l,this.weightMap,this._initNodes),d=[...i,...this.graph.weights,...this._initNodes||[]].map(I=>({node:I,contexts:e.currentContext})),h=Object.assign({},this.weightMap);Object.keys(t).forEach(I=>{let[N,E]=In(I),A=[];A[E]=t[I],h[N]=A});let g={},x=this.getFrozenTensorIds(h),b={};for(;d.length>0;){let I=this.processStack(i,d,e,h,b,x,u,g,c);await Promise.all(I)}m==null&&!o&&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(I=>!Bu(I)&&!pr(I.name,h,e)).map(I=>I.name);if(w.length>0){let I="";throw m!=null&&(I=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${f}]`),new Error(`Cannot compute the outputs [${w}] from the provided inputs [${s}]. Consider providing the following inputs: [${p}]. ${I}`)}return h}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&v("isConstant",p.node,o,n)&&([m]=bi(p.node.name,n)),o[p.node.name]==null){let f=Ak(p.node,o,n,this._resourceManager);m||([m]=bi(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(h)),n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(f)),this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=bi(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!pr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=In(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){var e,n;let o={};for(let s in t){let i=(n=(e=this._signature)===null||e===void 0?void 0:e.inputs)===null||n===void 0?void 0:n[s];i!=null?o[i.name]=t[s]:o[s]=t[s]}return o}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=In(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>{var n,o;let s=(o=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||o===void 0?void 0:o[e];return s!=null?s.name:e},{})}checkOutputs(t){t.forEach(e=>{let[n]=In(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var nw=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var htt="?tfjs-format=file",gtt="model.json",qh=class{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(t,e={},n=Mr){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new nw}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}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 t=this.handler.load();return y.isPromise(t)?t.then(e=>e.getWeightStream==null?this.loadSync(e):this.loadStreaming(e)):this.loadSync(t)}loadSync(t){let e=this.io.decodeWeights(t.weightData,t.weightSpecs);return this.loadWithWeightMap(t,e)}async loadStreaming(t){if(t.getWeightStream==null)throw new Error("Model artifacts missing streamWeights function");let e=await ax(t.getWeightStream(),t.weightSpecs);return this.loadWithWeightMap(t,e)}loadWithWeightMap(t,e){this.artifacts=t;let n=this.artifacts.modelTopology,o=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(o=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}if(this.signature=o,this.version=`${n.versions.producer}.${n.versions.minConsumer}`,this.executor=new Hh(Wh.Instance.transformGraph(n,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(e),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Wh.Instance.transformGraph(t.modelInitializer);this.initializer=new Hh(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t=="string"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return t.save(this.artifacts)}addStructuredOutputNames(t){if(this.structuredOutputKeys){let e=t instanceof Lt?[t]:t,n={};return e.forEach((o,s)=>n[this.structuredOutputKeys[s]]=o),n}return t}predict(t,e){let n=this.execute(t,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(t,e){let n=await this.executeAsync(t,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(t){var e;if(!(t instanceof Lt)&&!Array.isArray(t)){let s=(e=this.signature)===null||e===void 0?void 0:e.inputs;if(s!=null)for(let i in s){let a=s[i];a.resourceId!=null&&(t[i]=this.resourceIdToCapturedInput[a.resourceId])}return t}t=Array.isArray(t)?t:[t];let n=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${t.length} input tensors provided.`);let o=0;return this.inputNodes.reduce((s,i)=>{var a,u,l;let c=(l=(u=(a=this.signature)===null||a===void 0?void 0:a.inputs)===null||u===void 0?void 0:u[i])===null||l===void 0?void 0:l.resourceId;return c!=null?s[i]=this.resourceIdToCapturedInput[c]:s[i]=t[o++],s},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=this.initializerSignature.outputs,n=Object.keys(e);for(let o=0;o1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Tt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function xtt(r,t={},e=Mr){if(r==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&&typeof r=="string"&&(r=btt(r));let n=new qh(r,t,e);return await n.load(),n}function ytt(r){if(r==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error("modelJSON must be the first element of the array");if(!o||!(o instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in n))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in n))throw new Error("Model JSON is missing 'weightsManifest'");let s=Mr.getWeightSpecs(n.weightsManifest),i=Mr.getModelArtifactsForJSONSync(n,s,o);t=Mr.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=Mr.fromMemorySync(r);else throw new Error("Unknown model format");let e=new qh(t);return e.load(),e}function btt(r){return r.endsWith("/")||(r=r+"/"),`${r}${gtt}${htt}`}var VF="4.21.0";var aO={};Kt(aO,{CSVDataset:()=>id,Dataset:()=>Ii,FileDataSource:()=>ud,TextLineDataset:()=>sd,URLDataSource:()=>cd,array:()=>ZF,csv:()=>rO,func:()=>nO,generator:()=>oO,microphone:()=>iO,version_data:()=>Jk,webcam:()=>sO,zip:()=>JF});var YF=Gl(hh());var KF=Gl(hh());function GF(r,t){return ow(r,t)}function ow(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob=="function"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error("Circular references are not supported.");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(o.recurse)if(Vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=ow(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function WF(r,t=Rk){return UF(r,t)}function UF(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error("Circular references are not supported.");let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(o.recurse)if(Vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=UF(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function Rk(r){return r===null?null:Vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function sw(r,t){let e=new Map;ow(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return ow(r,t,e)}function Vu(r){let t=!1;if(L().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=$k();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Lt)&&!(r instanceof Promise)&&!t)}function HF(r){return r==null||wtt(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Lt||y.isTypedArray(r)}function wtt(r){return r===null||typeof r!="object"&&typeof r!="function"}function qF(r){return GF(r,Itt)}function Itt(r){return r instanceof Lt?{value:r.clone(),recurse:!1}:Vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var od=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(t<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError("Can't get item at a negative index.");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError("Can't set item at a negative index.");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Kh=class r extends od{constructor(){super(r.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new zk(this,t,e)}columnMajorBatch(t,e=!0,n=Rk){return this.rowMajorBatch(t,e).map(s=>WF(s,n))}concatenate(t,e){return new aw(qk([this,t]),e)}take(t){return t<0||t==null?this:new Lk(this,t)}skip(t){return t<0||t==null?this:new Pk(this,t)}prefetch(t){return new lw(this,t)}shuffle(t,e){return new Hk(this,t,e)}serial(){return new Mk(this)}},Fk=class extends er{constructor(t){super(),this.items=t,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 t=this.items[this.trav];return this.trav++,{value:qF(t),done:!1}}},Ok=class extends er{constructor(t){super(),this.nextFn=t}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},Mk=class extends er{constructor(t){super(),this.upstream=t,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()}},Pk=class extends er{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},zk=class extends er{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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 t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},Bk=class extends er{constructor(t,e){super(),this.upstream=t,this.predicate=e,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 t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;Tt(t.value)}}},Vk=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Gk=class extends er{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},iw=class extends er{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=Io.getTensorsInContainer(t.value),n=await this.transform(t.value),o=Io.getTensorsInContainer(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Zc=class extends er{constructor(){super(),this.outputQueue=new Kh,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}}},Wk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=Io.getTensorsInContainer(t.value),n=this.transform(t.value),o=Io.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)Io.isTensorInList(s,o)||s.dispose();return!0}},aw=class extends er{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,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 e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},Dl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(Dl||(Dl={}));var Uk=class extends er{constructor(t,e=Dl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof er?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await sw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Dl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Dl.SHORTEST:return{value:null,done:!0};case Dl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},lw=class extends er{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new od(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},Hk=class extends lw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=KF.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Ii=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is + ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),En(async()=>(await n.iterator()).columnMajorBatch(t,e,Ctt),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,En(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,En(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return En(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return En(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let e=this;return En(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,En(async()=>{let o=jh(async()=>({value:await e.iterator(),done:!1}));return jF(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<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 o=this,s=YF.alea(e||y.now().toString());return En(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,En(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Ii.MAX_BUFFER_SIZE=1e4;function En(r,t=null){return new class extends Ii{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function ZF(r){return En(async()=>qk(r),r.length)}function JF(r){if(!Vu(r))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(r))for(let e=0;e{let e=await sw(r,n=>{if(n instanceof Ii)return{value:n.iterator(),recurse:!1};if(Vu(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return XF(e,Dl.SHORTEST)},t)}function Ctt(r){if(r===null)return null;let t=r[0];return HF(t)?{value:vtt(r),recurse:!1}:{value:null,recurse:!0}}function vtt(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Lt?Fe(r):ir(r)}var sd=class extends Ii{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(o=>(o.endsWith("\r")&&(o=o.slice(0,-1)),o))}};var uw='"',Xh=Symbol("out"),QF=Symbol("field"),cw=Symbol("quote"),Kk=Symbol("quoteafterquote"),tO=Symbol("quoteinquote"),id=class extends Ii{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&t&&y.assert(t.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 ("+t.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key "'+o+'" 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 n=e.value;return this.parseRow(n,!1)}else return null}constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new sd(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=e.delimiter?e.delimiter:","}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.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(t={}){if(!L().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new r(t);return await e.start(),e}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 t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!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 e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.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 t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},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(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ir(n,e)}};var mw=class r extends er{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Oe([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=pi([i,s,u,a],[1,4])}else this.cropBox=pi([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!L().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!e.resizeWidth||!e.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new r(t,e);return await n.start(),n}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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=_y.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=je(J(t,"float32"),0),n;n=fn.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let o=n.shape;return R(n,o.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.")}};var ad=class{};var Yh=class extends er{split(t){return new jk(this,t)}},jk=class extends Yh{constructor(t,e){super(),this.upstream=t,this.impl=new Xk(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Xk=class extends Zc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var fw=class extends er{decodeUTF8(){return new Yk(this)}},Yk=class extends Yh{constructor(t){super(),this.upstream=t,this.impl=new Zk(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Zk=class extends Zc{constructor(t){if(super(),this.upstream=t,L().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=$k();this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return L().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var ld=class extends fw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(L().get("IS_BROWSER")?t instanceof File||t instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=e.offset||0,this.chunkSize=e.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,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError("FileReader returned unknown type."));e(u)},s.onabort=a=>n(new Error("Aborted")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function eO(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=Stt(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new ld(i,t)}else throw new Error(s.statusText)}var Stt=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 dw(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var ud=class extends ad{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(dw(this.input)&&L().get("IS_NODE")){let t=hw();this.input=t.readFileSync(this.input.slice(7))}return new ld(this.input,this.options)}};var cd=class extends ad{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return dw(this.url)?new ud(this.url,this.fileOptions).iterator():eO(this.url,this.fileOptions)}};function rO(r,t={}){return new id(new cd(r),t)}function nO(r){let t=jh(r);return En(async()=>t)}function oO(r){return En(async()=>{let t=await r();return jh(()=>t.next())})}async function sO(r,t){return mw.create(r,t)}async function iO(r){return pw.create(r)}var Jk="4.21.0";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var Ntt=Xr.whereImpl,pd=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Ta(this,Bn())}write(t,e,n){this.firstUse&&(this.firstUse=!1,L().get("IS_NODE")&&S.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e==="string"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e==="complex64"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return S.mergeRealAndImagArrays(o,s)}return y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){tt([t],"where");let e=this.readSync(t.dataId);return Itt(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};cd.nextDataId=0;var Tw={};Kt(Tw,{addImpl:()=>Qk,bincountImpl:()=>fd,bincountReduceImpl:()=>dw,bitwiseAndImpl:()=>tT,castImpl:()=>Jk,ceilImpl:()=>eT,concatImpl:()=>Jc,equalImpl:()=>rT,expImpl:()=>oT,expm1Impl:()=>iT,floorDivImpl:()=>lT,floorImpl:()=>aT,gatherNdImpl:()=>hw,gatherV2Impl:()=>gw,greaterEqualImpl:()=>cT,greaterImpl:()=>uT,lessEqualImpl:()=>mT,lessImpl:()=>pT,linSpaceImpl:()=>xw,logImpl:()=>fT,maxImpl:()=>yw,maximumImpl:()=>dT,minimumImpl:()=>hT,multiplyImpl:()=>Yh,negImpl:()=>gT,notEqualImpl:()=>xT,prodImpl:()=>yT,raggedGatherImpl:()=>bw,raggedRangeImpl:()=>ww,raggedTensorToTensorImpl:()=>Iw,rangeImpl:()=>tp,rsqrtImpl:()=>wT,scatterImpl:()=>Ii,sigmoidImpl:()=>OO,simpleAbsImpl:()=>Zk,sliceImpl:()=>ep,sparseFillEmptyRowsImpl:()=>Cw,sparseReshapeImpl:()=>vw,sparseSegmentReductionImpl:()=>hd,sqrtImpl:()=>LO,squaredDifferenceImpl:()=>CT,staticRegexReplaceImpl:()=>vT,stridedSliceImpl:()=>Sw,stringNGramsImpl:()=>rp,stringSplitImpl:()=>np,stringToHashBucketFastImpl:()=>op,subImpl:()=>NT,tileImpl:()=>Nw,topKImpl:()=>kw,transposeImpl:()=>dd,uniqueImpl:()=>sp});function Zk(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,"abs");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=Zk(o),e.makeOutput(n,t.shape,t.dtype)},sO={kernelName:Ei,backendName:"cpu",kernelFunc:Ctt};function Qt(r){return(t,e,n,o,s)=>{let i=S.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let I=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let E=y.locToIndex(N,m,d);c[x]=r(n[I],o[E])}return[c,i]}}function Ir(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,"complex64"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,"float32",s),imag:e.makeTensorInfo(o.shape,"float32",i)},a}var iO={kernelName:Ap,backendName:"cpu",kernelFunc:Ir};function pd(r,t,e="float32"){if(e==="complex64"){let o=pd(r,t,"float32"),s=pd(r,t,"float32");return Ir({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Xr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var aO={kernelName:go,backendName:"cpu",kernelFunc:Xr};function Ro(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var lO={kernelName:Vp,backendName:"cpu",kernelFunc:Ro};function Jk(r,t,e,n){if(n==="int32"){let o=Int32Array.from(r);return[t,"int32",o]}if(n==="bool"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Xr({inputs:{x:o},backend:e});let c=pd(e,o.shape,o.dtype),p=Fo({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=Ir({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Ro({inputs:{input:o},backend:e}),p=Fo({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Xr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=Jk(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var uO={kernelName:fo,backendName:"cpu",kernelFunc:Fo};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype==="string"?S.fromUint8ToStringArray(l):l,m=i.dtype==="string"?S.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype==="complex64"||a.dtype==="complex64"){let l=Fo({inputs:{x:i},backend:u,attrs:{dtype:"complex64"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=Fo({inputs:{x:a},backend:u,attrs:{dtype:"complex64"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",E),M=Ir({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),u.disposeIntermediateTensorInfo(F),M}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function md(r){return(t,e,n,o,s,i)=>{let a=S.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType("float32",u),m=y.getTypedArrayFromDType("float32",u),f=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let M=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[M*2],g[M*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var Qk=Qt((r,t)=>r+t),vtt=md((r,t,e,n)=>({real:r+e,imag:t+n})),ya=oe(no,Qk,vtt),cO={kernelName:no,backendName:"cpu",kernelFunc:ya};function fd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function dw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}var tT=Qt((r,t)=>r&t),Stt=oe($a,tT),pO={kernelName:$a,backendName:"cpu",kernelFunc:Stt};function _r(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype==="string"){if(!Array.isArray(u))throw new Error("String tensor's value was not an instance of Array");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var eT=_r(r=>Math.ceil(r)),Ntt=An(Jo,eT),mO={kernelName:Jo,backendName:"cpu",kernelFunc:Ntt};function Jc(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!=="string"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e==="string"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),nT=oe(za,rT,null,"bool"),fO={kernelName:za,backendName:"cpu",kernelFunc:nT};var oT=_r(r=>Math.exp(r)),sT=An(cs,oT,"float32"),dO={kernelName:cs,backendName:"cpu",kernelFunc:sT};var iT=_r(r=>Math.expm1(r)),ktt=An(ps,iT),hO={kernelName:ps,backendName:"cpu",kernelFunc:ktt};var aT=_r(r=>Math.floor(r)),Ttt=An(ms,aT),gO={kernelName:ms,backendName:"cpu",kernelFunc:Ttt};var lT=Qt((r,t)=>Math.floor(r/t)),_tt=oe(fs,lT,null,"int32"),xO={kernelName:fs,backendName:"cpu",kernelFunc:_tt};function hw(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),Ett=oe(Ga,uT,null,"bool"),yO={kernelName:Ga,backendName:"cpu",kernelFunc:Ett};var cT=Qt((r,t)=>r>=t?1:0),Att=oe(hs,cT,null,"bool"),bO={kernelName:hs,backendName:"cpu",kernelFunc:Att};var pT=Qt((r,t)=>rr<=t?1:0),$tt=oe(Ua,mT,null,"bool"),IO={kernelName:Ua,backendName:"cpu",kernelFunc:$tt};function xw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),Rtt=An(ws,fT),CO={kernelName:ws,backendName:"cpu",kernelFunc:Rtt};function yw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var dT=Qt((r,t)=>Math.max(r,t)),Ftt=oe(Ss,dT),vO={kernelName:Ss,backendName:"cpu",kernelFunc:Ftt};var hT=Qt((r,t)=>Math.min(r,t)),Ott=oe(_s,hT),SO={kernelName:_s,backendName:"cpu",kernelFunc:Ott};var Yh=Qt((r,t)=>r*t),Mtt=md((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),Qc=oe(Ds,Yh,Mtt),NO={kernelName:Ds,backendName:"cpu",kernelFunc:Qc};function gT(r,t,e){let n=y.createScalarValue(-1,e);return Yh([],t,n,r,e)}function Ptt(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=gT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var kO={kernelName:Li,backendName:"cpu",kernelFunc:Ptt};var xT=Qt((r,t)=>r!==t?1:0),Ltt=oe(Za,xT,null,"bool"),TO={kernelName:Za,backendName:"cpu",kernelFunc:Ltt};function dd(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var EO={kernelName:Ms,backendName:"cpu",kernelFunc:ztt};function Btt(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function Vtt(r,t){for(let e=0;eo)throw new Error("Ragged splits must not point past values");for(let s=1;sn[s])throw new Error("Ragged splits must be sorted in ascending order")}}function Gtt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);Vtt(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function AO(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error("starts must be a scalar or vector");if(o.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>DO)throw new Error(`Requires ((limit - start) / delta) <= ${DO}`);m[g+1]=m[g]+I}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Oo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Oo.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Oo[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let e=this.rowPartitionTypes[0];switch(e){case Oo.FIRST_DIM_SIZE:return t[0];case Oo.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Oo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Oo[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=RO(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=sa(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);$O(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function $O(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function Iw(r,t,e,n,o,s,i,a,u,l){return new bT(r,t,e,n,o,s,i,a,u,l).compute()}function tp(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),qtt=An(Us,wT),FO={kernelName:Us,backendName:"cpu",kernelFunc:qtt};function Ii(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=u instanceof le?u:wt(c,t.dtype);typeof u=="string"||typeof u=="number"?f.values.fill(u):typeof u=="boolean"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),IT=At(Xs,r=>1/(1+Math.exp(-r))),MO={kernelName:Xs,backendName:"cpu",kernelFunc:IT};function ep(r,t,e,n,o){let s=Be.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Be.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?S.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o==="string"?S.fromStringArrayToUint8(c.values):c.values}function Mo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=Be.parseSliceParams(o,s,i);Be.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=ep(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var PO={kernelName:Wi,backendName:"cpu",kernelFunc:Mo};function Cw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(S.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(S.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,I)=>w*I,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),Ktt=At(Zs,r=>Math.sqrt(r)),zO={kernelName:Zs,backendName:"cpu",kernelFunc:Ktt};var CT=Qt((r,t)=>{let e=r-t;return e*e}),jtt=oe(ti,CT),BO={kernelName:ti,backendName:"cpu",kernelFunc:jtt};var vT=_r((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?"g":""),o)}),Xtt=An(ec,vT),VO={kernelName:ec,backendName:"cpu",kernelFunc:Xtt};function Sw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType("int32",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth;this.createNGrams(t,l,a,c,1,m)}}return[a,i]}};function rp(r,t,e,n,o,s,i,a){return new ST(e,n,o,s,i,a).compute(r,t)}function Ytt(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),Ztt=md((r,t,e,n)=>({real:r-e,imag:t-n})),Zh=oe(ei,NT,Ztt),GO={kernelName:ei,backendName:"cpu",kernelFunc:Zh};function Nw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function WO(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));WO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Jh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Jh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function kw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType("int32",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew cd,1);var kT=At(ls,r=>r>=0?r:Math.exp(r)-1),HO={kernelName:ls,backendName:"cpu",kernelFunc:kT};function TT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],"leakyRelu");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType("float32",i);for(let l=0;lr<0?t*r:r);function _T(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],"prelu");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=Jtt(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var KO={kernelName:Os,backendName:"cpu",kernelFunc:_T};var ET=At(Ls,r=>Math.max(0,r)),jO={kernelName:Ls,backendName:"cpu",kernelFunc:ET};var AT=At(Vs,r=>Math.min(Math.max(0,r),6)),XO={kernelName:Vs,backendName:"cpu",kernelFunc:AT};function ip(r,t,e,n,o){if(e==="linear")return Xr({inputs:{x:t},backend:r});if(e==="relu")return ET({inputs:{x:t},backend:r});if(e==="elu")return kT({inputs:{x:t},backend:r});if(e==="relu6")return AT({inputs:{x:t},backend:r});if(e==="prelu")return _T({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return TT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return IT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function te(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var YO={kernelName:Vi,backendName:"cpu",kernelFunc:te};function DT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],"matMul");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Ur.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=te({inputs:{x:o},backend:e,attrs:{shape:I}}),A=te({inputs:{x:s},backend:e,attrs:{shape:N}}),D=i?E.shape[1]:E.shape[2],F=i?E.shape[2]:E.shape[1],M=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(E.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(E.shape),H=y.computeStrides(A.shape),[K,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],lt=F*M,ot=wt([V,F,M],E.dtype),it=ot.values,ft=e.blockSize;for(let gt=0;gtMath.acos(r)),QO={kernelName:Go,backendName:"cpu",kernelFunc:tet};var eet=At(Wo,r=>Math.acosh(r)),tM={kernelName:Wo,backendName:"cpu",kernelFunc:eet};function ret(r){let{inputs:t,backend:e}=r,n=t;tt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var oM={kernelName:Ai,backendName:"cpu",kernelFunc:set};function iet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,"argMin");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=We({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=S.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var sM={kernelName:Di,backendName:"cpu",kernelFunc:iet};var aet=At(Ho,r=>Math.asin(r)),iM={kernelName:Ho,backendName:"cpu",kernelFunc:aet};var uet=At(qo,r=>Math.asinh(r)),aM={kernelName:qo,backendName:"cpu",kernelFunc:uet};var cet=At(Ko,r=>Math.atan(r)),lM={kernelName:Ko,backendName:"cpu",kernelFunc:cet};var pet=Qt((r,t)=>Math.atan2(r,t)),met=oe(Xo,pet),uM={kernelName:Xo,backendName:"cpu",kernelFunc:met};var fet=At(jo,r=>Math.atanh(r)),cM={kernelName:jo,backendName:"cpu",kernelFunc:fet};function gd(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let I=0;IY?Y=ft:s==="avg"&&(Z+=ft,et++)}if(isNaN(Y))break}let nt=G+W*w+A;g[nt]=s==="avg"?Z/et:Y}}}return h}function _w(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,"int32"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gM&&(M=K,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,E,x)}}return i}function Ew(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),I=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],D=o.outShape[4];for(let F=0;FRt?Rt=Ae:s==="avg"&&(Dt+=Ae,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=Ct+G;I[qt]=s==="avg"?Dt/Math.max(Ht,1):Rt}}}}return w}function pM(r,t){let e=wt(t.outShape,"int32"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=st,q=K*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=gd(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var mM={kernelName:Yo,backendName:"cpu",kernelFunc:det};function het(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"avgPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Ew(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var fM={kernelName:$i,backendName:"cpu",kernelFunc:het};function get(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"avgPool3DGrad");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=E-1-c.padInfo.left,F=N-1-c.padInfo.top,M=wt(s.shape,"float32"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(ft)!==ft))for(let gt=0;gt=c.outWidth||Math.floor(Ct)!==Ct)continue;let Rt=G.get(W,ot,ft,Ct,q);st+=Rt}}}M.set(st*V,W,H,K,Y,q)}return e.makeTensorInfo(M.shape,M.dtype,M.values)}var dM={kernelName:Hl,backendName:"cpu",kernelFunc:get};function xet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,I=x-1-c.padInfo.top,N=wt(i.shape,"float32"),E=1/(f*d),A=e.data.get(o.dataId).values,D=wt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,Y,et,M);H+=nt}}N.set(H*E,F,V,G,M)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var hM={kernelName:Ul,backendName:"cpu",kernelFunc:xet};function yet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||a.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||a.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),tt([o,a,u,s,i],"batchNorm");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var gM={kernelName:ds,backendName:"cpu",kernelFunc:yet};function bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],"batchToSpaceND");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=te({inputs:{x:o},backend:e,attrs:{shape:u}}),d=We({inputs:{x:f},backend:e,attrs:{perm:l}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var xM={kernelName:Ri,backendName:"cpu",kernelFunc:bet};function wet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=fd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var yM={kernelName:Da,backendName:"cpu",kernelFunc:wet};function Iet(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var bM={kernelName:ql,backendName:"cpu",kernelFunc:Iet};var Cet=At(ho,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Xr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(I=>Ro({inputs:{input:I},backend:e})),g=u.map(I=>ba({inputs:{input:I},backend:e})),x=Gu({inputs:h,backend:e,attrs:{axis:s}}),b=Gu({inputs:g,backend:e,attrs:{axis:s}}),w=Ir({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return te({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Jc(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var vM={kernelName:Fi,backendName:"cpu",kernelFunc:Gu};function $T(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],"conv2d");let p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat==="channelsLast",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,M=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,K=e.data.get(s.dataId).values,Y=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],Ct=et+ft*D;for(let Rt=0;Rt=m.inWidth)continue;let xe=gt+qt*E[1],re=Ct+pe*F,ye=xe;for(let de=0;de=l.inDepth)continue;let Z=K*F[0],et=V+Y*D[1];for(let nt=0;nt=l.inHeight)continue;let ft=Z+ot*F[1],gt=et+it*D[2];for(let Ct=0;Ct=l.inWidth)continue;let pe=ft+Ht*F[2],xe=gt+qt*l.inChannels,re=pe;for(let ye=0;yeMath.cos(r)),AM={kernelName:rs,backendName:"cpu",kernelFunc:Aet};var Det=At(ns,r=>Math.cosh(r)),DM={kernelName:ns,backendName:"cpu",kernelFunc:Det};function $et(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],"float32"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,I=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-M)*(m-1)/(g-1):0;for(let K=0;K1?F*(p-1)+K*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?M*(m-1)+st*H:.5*(M+G)*(m-1);if(lt<0||lt>m-1){for(let gt=0;gt1?M*(m-1)+Z*H:.5*(M+G)*(m-1);if(et<0||et>m-1){for(let lt=0;ltx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=S.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let M=0;M=f.inHeight)continue;let Z=K*p[0],et=V+Y*c[1];for(let nt=0;nt=f.inWidth)continue;let ft=Z+ot*p[1],gt=et+it*f.inChannels,Ct=st,Rt=ft;for(let Dt=0;Dt{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,dilationWidth:F,outShape:M}=S.computeDilation2DInfo(n.shape,o.shape,s,i,"NHWC",a),V=y.sizeFromShape(M),G=M.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&it=0&>st&&(st=Dt)}}}let lt=y.locToIndex([H,K,Z,nt],G,y.computeStrides(M));W[lt]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),M,n.dtype),shape:M,dtype:n.dtype}}};var GM={kernelName:Zl,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Zl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=lt,st=it)}}}V[nt][st][Z]+=M[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var WM={kernelName:Yl,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Yl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=ot,st=ft)}}}V[W][nt][st][Z]+=M[W][q][K][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Bet(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{canvas:s,options:i}=n,{contextOptions:a,imageOptions:u}=i||{},l=(u==null?void 0:u.alpha)||1,c=(a==null?void 0:a.contextType)||"2d";if(c!=="2d")throw new Error(`Context type ${a.contextType} is not supported by the CPU backend.`);let p=s.getContext(c,(a==null?void 0:a.contextAttributes)||{});if(p==null)throw new Error(`Could not get the context with ${c} type.`);let[m,f]=o.shape.slice(0,2),d=o.shape.length===2?1:o.shape[2],h=e.data.get(o.dataId).values,g=o.dtype==="float32"?255:1,x=new Uint8ClampedArray(f*m*4);for(let w=0;w1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${A}.`)}else if(o.dtype==="int32"&&(A<0||A>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${A}.`);d===1?(I[0]=A*g,I[1]=A*g,I[2]=A*g):I[E]=A*g}let N=w*4;x[N+0]=Math.round(I[0]),x[N+1]=Math.round(I[1]),x[N+2]=Math.round(I[2]),x[N+3]=Math.round(I[3])}s.width=f,s.height=m;let b=new ImageData(x,f,m);return p.putImageData(b,0,0),o}var UM={kernelName:Jd,backendName:"cpu",kernelFunc:Bet};function $l(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"sum");let a;o.dtype==="bool"?a=Fo({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Xr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=We({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,"int32"),g=pd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=$l({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var qM={kernelName:Fp,backendName:"cpu",kernelFunc:Vet};function Get(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],"eluGrad");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var KM={kernelName:La,backendName:"cpu",kernelFunc:Get};var Wet=S.ERF_P,Uet=S.ERF_A1,Het=S.ERF_A2,qet=S.ERF_A3,Ket=S.ERF_A4,jet=S.ERF_A5,Xet=At(us,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+Wet*e);return t*(1-((((jet*n+Ket)*n+qet)*n+Het)*n+Uet)*n*Math.exp(-e*e))}),jM={kernelName:us,backendName:"cpu",kernelFunc:Xet};function xd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),te({inputs:{x:o},backend:e,attrs:{shape:a}})}var XM={kernelName:Oi,backendName:"cpu",kernelFunc:xd};var Yet=Qt((r,t)=>r/t),Qh=oe(as,Yet),tg={kernelName:as,backendName:"cpu",kernelFunc:Qh};function Aw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&w=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=te({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=te({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=gw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var rP={kernelName:Mi,backendName:"cpu",kernelFunc:srt};function irt(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=te({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=Aw(a,!0,e),l=te({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var nP={kernelName:Mp,backendName:"cpu",kernelFunc:irt};var art=At(gs,r=>Number.isFinite(r)?1:0,"bool"),oP={kernelName:gs,backendName:"cpu",kernelFunc:art};var lrt=At(xs,r=>Math.abs(r)===1/0?1:0,"bool"),sP={kernelName:xs,backendName:"cpu",kernelFunc:lrt};var urt=At(ys,r=>Number.isNaN(r)?1:0,"bool"),iP={kernelName:ys,backendName:"cpu",kernelFunc:urt};function crt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=xw(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var aP={kernelName:Ha,backendName:"cpu",kernelFunc:crt};var prt=At(Is,r=>Math.log1p(r)),lP={kernelName:Is,backendName:"cpu",kernelFunc:prt};var mrt=Qt((r,t)=>r&&t),frt=oe(qa,mrt,null,"bool"),uP={kernelName:qa,backendName:"cpu",kernelFunc:frt};var drt=At(Ka,r=>r?0:1,"bool"),cP={kernelName:Ka,backendName:"cpu",kernelFunc:drt};var hrt=Qt((r,t)=>r||t),grt=oe(ja,hrt,null,"bool"),pP={kernelName:ja,backendName:"cpu",kernelFunc:grt};function xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,"LRN");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let I=p[x];w+=I*I}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=gd(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var hP={kernelName:Ns,backendName:"cpu",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"maxPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Ew(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var gP={kernelName:Pi,backendName:"cpu",kernelFunc:wrt};function Irt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"maxPool3DGrad");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=pM(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=wt(s.shape,"float32"),M=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let lt=0;lt=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(ft)!==ft)continue;let gt=w*I*N-1-m.get(V,st,ot,ft,G),Ct=nt*I*N+lt*N+it,Rt=gt===Ct?1:0;if(Rt===0)continue;let Dt=M.get(V,st,ot,ft,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var xP={kernelName:tu,backendName:"cpu",kernelFunc:Irt};function Crt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,_w(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,"float32"),D=e.data.get(o.dataId).values,F=wt(o.shape,"float32",D);for(let M=0;M=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(M,Z,nt,V),lt=Y*I+et,ot=st===lt?1:0;if(ot===0)continue;let it=F.get(M,Z,nt,V);K+=it*ot}}A.set(K,M,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var yP={kernelName:Ql,backendName:"cpu",kernelFunc:Crt};function bP(r,t,e,n,o){let s=y.computeStrides(t),i=gd(r,t,e,s,o,"max"),a=_w(r,t,e,o,!0,n);return[i.values,a.values]}var wP={kernelName:eu,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,"MaxPoolWithArgmax");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=bP(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=Fo({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=Qh({inputs:{a:f,b:m},backend:e});p.push(d);let h=$l({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var IP={kernelName:ks,backendName:"cpu",kernelFunc:vrt};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"min");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=We({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=S.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),c=i==="reflect"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[E]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var vP={kernelName:Es,backendName:"cpu",kernelFunc:Nrt};var krt=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),Trt=oe(As,krt),SP={kernelName:As,backendName:"cpu",kernelFunc:Trt};var kP=Gl(dh());function MT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=OT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=te({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Zh({inputs:{a:o,b:p},backend:e}),f=sT({inputs:{x:m},backend:e}),d=$l({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Qh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var NP={kernelName:Qs,backendName:"cpu",kernelFunc:MT};function _rt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,"multinomial");let u=a?o:MT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=xd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Gu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var OP={kernelName:Bi,backendName:"cpu",kernelFunc:PT};function Mrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,"pad");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;bE+u[A]),N=y.locToIndex(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Dw={kernelName:Rs,backendName:"cpu",kernelFunc:Mrt};var Prt=Qt((r,t)=>Math.pow(r,t)),Lrt=oe(Fs,Prt),MP={kernelName:Fs,backendName:"cpu",kernelFunc:Lrt};function zrt(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=bw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var PP={kernelName:Lp,backendName:"cpu",kernelFunc:zrt};function Brt(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ww(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var LP={kernelName:zp,backendName:"cpu",kernelFunc:Brt};function Vrt(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=Iw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var zP={kernelName:Bp,backendName:"cpu",kernelFunc:Vrt};function Grt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=tp(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var BP={kernelName:ru,backendName:"cpu",kernelFunc:Grt};var Wrt=At(Ps,r=>1/r),VP={kernelName:Ps,backendName:"cpu",kernelFunc:Wrt};function Urt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,"resizeBilinear");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,I=x[0]/b[0],N=x[1]/b[1];for(let E=0;E1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,I=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],I=x[1]/b[1],N=0;for(let E=0;E1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=M+lt*u[1],it=lt*w,ft=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===ft)for(let gt=0;gt=d)continue;let Rt=ot+Ct*u[2],Dt=Ct*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[K+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var HP={kernelName:el,backendName:"cpu",kernelFunc:Krt};function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,"reverse");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Xr({inputs:{x:o},backend:e});let u=new le(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var qP={kernelName:Gs,backendName:"cpu",kernelFunc:jrt};var KP={kernelName:pl,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=S.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let I=0;I=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),jP={kernelName:Ws,backendName:"cpu",kernelFunc:Xrt};function Yrt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=Ii(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var XP={kernelName:nl,backendName:"cpu",kernelFunc:Yrt};function Zrt(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?rnt*r:ent*(Math.exp(r)-1)),QP={kernelName:Hs,backendName:"cpu",kernelFunc:nnt};var ont=At(js,r=>r<0?-1:r>0?1:0),tL={kernelName:js,backendName:"cpu",kernelFunc:ont};var snt=At(qs,r=>Math.sin(r)),eL={kernelName:qs,backendName:"cpu",kernelFunc:snt};var int=At(Ks,r=>Math.sinh(r)),rL={kernelName:Ks,backendName:"cpu",kernelFunc:int};var ant=11920928955078125e-23,nL=Math.log(ant)+2,lnt=At(Ys,r=>{let t=r>-nL,e=r0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e==="complex64"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return S.mergeRealAndImagArrays(o,s)}return y.convertBackendValuesAndArrayBuffer(this.data.get(t).values,e)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){tt([t],"where");let e=this.readSync(t.dataId);return Ntt(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};pd.nextDataId=0;var Ew={};Kt(Ew,{addImpl:()=>eT,bincountImpl:()=>dd,bincountReduceImpl:()=>gw,bitwiseAndImpl:()=>rT,castImpl:()=>tT,ceilImpl:()=>nT,concatImpl:()=>Jc,equalImpl:()=>oT,expImpl:()=>iT,expm1Impl:()=>lT,floorDivImpl:()=>cT,floorImpl:()=>uT,gatherNdImpl:()=>xw,gatherV2Impl:()=>yw,greaterEqualImpl:()=>mT,greaterImpl:()=>pT,lessEqualImpl:()=>dT,lessImpl:()=>fT,linSpaceImpl:()=>bw,logImpl:()=>hT,maxImpl:()=>ww,maximumImpl:()=>gT,minimumImpl:()=>xT,multiplyImpl:()=>Zh,negImpl:()=>yT,notEqualImpl:()=>bT,prodImpl:()=>wT,raggedGatherImpl:()=>Iw,raggedRangeImpl:()=>Cw,raggedTensorToTensorImpl:()=>vw,rangeImpl:()=>tp,rsqrtImpl:()=>CT,scatterImpl:()=>Ci,sigmoidImpl:()=>LO,simpleAbsImpl:()=>Qk,sliceImpl:()=>ep,sparseFillEmptyRowsImpl:()=>Sw,sparseReshapeImpl:()=>Nw,sparseSegmentReductionImpl:()=>gd,sqrtImpl:()=>VO,squaredDifferenceImpl:()=>ST,staticRegexReplaceImpl:()=>NT,stridedSliceImpl:()=>kw,stringNGramsImpl:()=>rp,stringSplitImpl:()=>np,stringToHashBucketFastImpl:()=>op,subImpl:()=>TT,tileImpl:()=>Tw,topKImpl:()=>_w,transposeImpl:()=>hd,uniqueImpl:()=>sp});function Qk(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,"abs");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=Qk(o),e.makeOutput(n,t.shape,t.dtype)},lO={kernelName:Ai,backendName:"cpu",kernelFunc:ktt};function Qt(r){return(t,e,n,o,s)=>{let i=S.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let I=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let E=y.locToIndex(N,m,d);c[x]=r(n[I],o[E])}return[c,i]}}function Ir(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,"complex64"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,"float32",s),imag:e.makeTensorInfo(o.shape,"float32",i)},a}var uO={kernelName:Ap,backendName:"cpu",kernelFunc:Ir};function md(r,t,e="float32"){if(e==="complex64"){let o=md(r,t,"float32"),s=md(r,t,"float32");return Ir({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Zr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var cO={kernelName:go,backendName:"cpu",kernelFunc:Zr};function Ro(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var pO={kernelName:Vp,backendName:"cpu",kernelFunc:Ro};function tT(r,t,e,n){if(n==="int32"){let o=Int32Array.from(r);return[t,"int32",o]}if(n==="bool"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Zr({inputs:{x:o},backend:e});let c=md(e,o.shape,o.dtype),p=Fo({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=Ir({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Ro({inputs:{input:o},backend:e}),p=Fo({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Zr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=tT(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var mO={kernelName:fo,backendName:"cpu",kernelFunc:Fo};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype==="string"?S.fromUint8ToStringArray(l):l,m=i.dtype==="string"?S.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype==="complex64"||a.dtype==="complex64"){let l=Fo({inputs:{x:i},backend:u,attrs:{dtype:"complex64"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=Fo({inputs:{x:a},backend:u,attrs:{dtype:"complex64"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,I=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,I),D=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",E),M=Ir({inputs:{real:D,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),u.disposeIntermediateTensorInfo(F),M}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function fd(r){return(t,e,n,o,s,i)=>{let a=S.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType("float32",u),m=y.getTypedArrayFromDType("float32",u),f=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,I=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let D=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let M=y.locToIndex(F,w,I),V=r(h[D*2],h[D*2+1],g[M*2],g[M*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var eT=Qt((r,t)=>r+t),Ttt=fd((r,t,e,n)=>({real:r+e,imag:t+n})),ya=oe(no,eT,Ttt),fO={kernelName:no,backendName:"cpu",kernelFunc:ya};function dd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function gw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}var rT=Qt((r,t)=>r&t),_tt=oe($a,rT),dO={kernelName:$a,backendName:"cpu",kernelFunc:_tt};function _r(r){return(t,e,n)=>{let o=y.getArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;tt(i,r);let a=s,u=a.data.get(i.dataId).values,l;if(i.dtype==="string"){if(!Array.isArray(u))throw new Error("String tensor's value was not an instance of Array");l=S.fromUint8ToStringArray(u)}else l=u;let c=e||i.dtype,p=t(l,c,o);return a.makeTensorInfo(i.shape,c,p)}}var nT=_r(r=>Math.ceil(r)),Ett=An(Jo,nT),hO={kernelName:Jo,backendName:"cpu",kernelFunc:Ett};function Jc(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!=="string"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e==="string"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),sT=oe(za,oT,null,"bool"),gO={kernelName:za,backendName:"cpu",kernelFunc:sT};var iT=_r(r=>Math.exp(r)),aT=An(cs,iT,"float32"),xO={kernelName:cs,backendName:"cpu",kernelFunc:aT};var lT=_r(r=>Math.expm1(r)),Att=An(ps,lT),yO={kernelName:ps,backendName:"cpu",kernelFunc:Att};var uT=_r(r=>Math.floor(r)),Dtt=An(ms,uT),bO={kernelName:ms,backendName:"cpu",kernelFunc:Dtt};var cT=Qt((r,t)=>Math.floor(r/t)),$tt=oe(fs,cT,null,"int32"),wO={kernelName:fs,backendName:"cpu",kernelFunc:$tt};function xw(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),Rtt=oe(Ga,pT,null,"bool"),IO={kernelName:Ga,backendName:"cpu",kernelFunc:Rtt};var mT=Qt((r,t)=>r>=t?1:0),Ftt=oe(hs,mT,null,"bool"),CO={kernelName:hs,backendName:"cpu",kernelFunc:Ftt};var fT=Qt((r,t)=>rr<=t?1:0),Mtt=oe(Ua,dT,null,"bool"),SO={kernelName:Ua,backendName:"cpu",kernelFunc:Mtt};function bw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),Ptt=An(ws,hT),NO={kernelName:ws,backendName:"cpu",kernelFunc:Ptt};function ww(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var gT=Qt((r,t)=>Math.max(r,t)),Ltt=oe(Ss,gT),kO={kernelName:Ss,backendName:"cpu",kernelFunc:Ltt};var xT=Qt((r,t)=>Math.min(r,t)),ztt=oe(_s,xT),TO={kernelName:_s,backendName:"cpu",kernelFunc:ztt};var Zh=Qt((r,t)=>r*t),Btt=fd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),Qc=oe(Ds,Zh,Btt),_O={kernelName:Ds,backendName:"cpu",kernelFunc:Qc};function yT(r,t,e){let n=y.createScalarValue(-1,e);return Zh([],t,n,r,e)}function Vtt(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=yT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var EO={kernelName:zi,backendName:"cpu",kernelFunc:Vtt};var bT=Qt((r,t)=>r!==t?1:0),Gtt=oe(Za,bT,null,"bool"),AO={kernelName:Za,backendName:"cpu",kernelFunc:Gtt};function hd(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var $O={kernelName:Ms,backendName:"cpu",kernelFunc:Wtt};function Utt(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function Htt(r,t){for(let e=0;eo)throw new Error("Ragged splits must not point past values");for(let s=1;sn[s])throw new Error("Ragged splits must be sorted in ascending order")}}function qtt(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);Htt(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function RO(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error("starts must be a scalar or vector");if(o.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)I=0;else if(I=Math.ceil(Math.abs((b-x)/w)),I>FO)throw new Error(`Requires ((limit - start) / delta) <= ${FO}`);m[g+1]=m[g]+I}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Oo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Oo.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Oo[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let e=this.rowPartitionTypes[0];switch(e){case Oo.FIRST_DIM_SIZE:return t[0];case Oo.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Oo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Oo[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=MO(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=sa(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);OO(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function OO(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function vw(r,t,e,n,o,s,i,a,u,l){return new IT(r,t,e,n,o,s,i,a,u,l).compute()}function tp(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),Ytt=An(Us,CT),PO={kernelName:Us,backendName:"cpu",kernelFunc:Ytt};function Ci(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=u instanceof le?u:wt(c,t.dtype);typeof u=="string"||typeof u=="number"?f.values.fill(u):typeof u=="boolean"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),vT=At(Xs,r=>1/(1+Math.exp(-r))),zO={kernelName:Xs,backendName:"cpu",kernelFunc:vT};function ep(r,t,e,n,o){let s=Be.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Be.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?S.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o==="string"?S.fromStringArrayToUint8(c.values):c.values}function Mo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=Be.parseSliceParams(o,s,i);Be.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=ep(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var BO={kernelName:Ui,backendName:"cpu",kernelFunc:Mo};function Sw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(S.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(S.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,I)=>w*I,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let I=h;I=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I,n[I],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),Ztt=At(Zs,r=>Math.sqrt(r)),GO={kernelName:Zs,backendName:"cpu",kernelFunc:Ztt};var ST=Qt((r,t)=>{let e=r-t;return e*e}),Jtt=oe(ti,ST),WO={kernelName:ti,backendName:"cpu",kernelFunc:Jtt};var NT=_r((r,t)=>{let{pattern:e,replaceGlobal:n,rewrite:o}=t;return r.replace(new RegExp(e,n?"g":""),o)}),Qtt=An(ec,NT),UO={kernelName:ec,backendName:"cpu",kernelFunc:Qtt};function kw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType("int32",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth;this.createNGrams(t,l,a,c,1,m)}}return[a,i]}};function rp(r,t,e,n,o,s,i,a){return new kT(e,n,o,s,i,a).compute(r,t)}function tet(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),eet=fd((r,t,e,n)=>({real:r-e,imag:t-n})),Jh=oe(ei,TT,eet),HO={kernelName:ei,backendName:"cpu",kernelFunc:Jh};function Tw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function qO(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));qO(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Qh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Qh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function _w(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType("int32",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew pd,1);var _T=At(ls,r=>r>=0?r:Math.exp(r)-1),jO={kernelName:ls,backendName:"cpu",kernelFunc:_T};function ET(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],"leakyRelu");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType("float32",i);for(let l=0;lr<0?t*r:r);function AT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],"prelu");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=ret(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var YO={kernelName:Os,backendName:"cpu",kernelFunc:AT};var DT=At(Ls,r=>Math.max(0,r)),ZO={kernelName:Ls,backendName:"cpu",kernelFunc:DT};var $T=At(Vs,r=>Math.min(Math.max(0,r),6)),JO={kernelName:Vs,backendName:"cpu",kernelFunc:$T};function ip(r,t,e,n,o){if(e==="linear")return Zr({inputs:{x:t},backend:r});if(e==="relu")return DT({inputs:{x:t},backend:r});if(e==="elu")return _T({inputs:{x:t},backend:r});if(e==="relu6")return $T({inputs:{x:t},backend:r});if(e==="prelu")return AT({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return ET({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return vT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function te(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var QO={kernelName:Gi,backendName:"cpu",kernelFunc:te};function RT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],"matMul");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Hr.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=te({inputs:{x:o},backend:e,attrs:{shape:I}}),A=te({inputs:{x:s},backend:e,attrs:{shape:N}}),D=i?E.shape[1]:E.shape[2],F=i?E.shape[2]:E.shape[1],M=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(E.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(E.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,nt,st]=a?[1,H[1],H[0]]:[H[1],1,H[0]],lt=F*M,ot=wt([V,F,M],E.dtype),it=ot.values,ft=e.blockSize;for(let gt=0;gtMath.acos(r)),rM={kernelName:Go,backendName:"cpu",kernelFunc:oet};var set=At(Wo,r=>Math.acosh(r)),nM={kernelName:Wo,backendName:"cpu",kernelFunc:set};function iet(r){let{inputs:t,backend:e}=r,n=t;tt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=I)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var aM={kernelName:Di,backendName:"cpu",kernelFunc:cet};function pet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,"argMin");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=We({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=S.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var lM={kernelName:$i,backendName:"cpu",kernelFunc:pet};var met=At(Ho,r=>Math.asin(r)),uM={kernelName:Ho,backendName:"cpu",kernelFunc:met};var fet=At(qo,r=>Math.asinh(r)),cM={kernelName:qo,backendName:"cpu",kernelFunc:fet};var det=At(Ko,r=>Math.atan(r)),pM={kernelName:Ko,backendName:"cpu",kernelFunc:det};var het=Qt((r,t)=>Math.atan2(r,t)),get=oe(Xo,het),mM={kernelName:Xo,backendName:"cpu",kernelFunc:get};var xet=At(jo,r=>Math.atanh(r)),fM={kernelName:jo,backendName:"cpu",kernelFunc:xet};function xd(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let I=0;IY?Y=ft:s==="avg"&&(Z+=ft,et++)}if(isNaN(Y))break}let nt=G+W*w+A;g[nt]=s==="avg"?Z/et:Y}}}return h}function Aw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,"int32"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gM&&(M=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,E,x)}}return i}function Dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),I=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],D=o.outShape[4];for(let F=0;FRt?Rt=Ae:s==="avg"&&(Dt+=Ae,Ht++),isNaN(Rt))break}if(isNaN(Rt))break}if(isNaN(Rt))break}let qt=Ct+G;I[qt]=s==="avg"?Dt/Math.max(Ht,1):Rt}}}}return w}function dM(r,t){let e=wt(t.outShape,"int32"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=st,q=j*c*p+Z*c+nt)}}}e.set(q,h,x,N,F,g)}}}return e}function yet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=xd(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var hM={kernelName:Yo,backendName:"cpu",kernelFunc:yet};function bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"avgPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var gM={kernelName:Ri,backendName:"cpu",kernelFunc:bet};function wet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"avgPool3DGrad");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,I=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=I-1-c.padInfo.front,D=E-1-c.padInfo.left,F=N-1-c.padInfo.top,M=wt(s.shape,"float32"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(ot)!==ot))for(let it=0;it=c.outHeight||Math.floor(ft)!==ft))for(let gt=0;gt=c.outWidth||Math.floor(Ct)!==Ct)continue;let Rt=G.get(W,ot,ft,Ct,q);st+=Rt}}}M.set(st*V,W,H,j,Y,q)}return e.makeTensorInfo(M.shape,M.dtype,M.values)}var xM={kernelName:Hl,backendName:"cpu",kernelFunc:wet};function Iet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,I=x-1-c.padInfo.top,N=wt(i.shape,"float32"),E=1/(f*d),A=e.data.get(o.dataId).values,D=wt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let nt=D.get(F,Y,et,M);H+=nt}}N.set(H*E,F,V,G,M)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var yM={kernelName:Ul,backendName:"cpu",kernelFunc:Iet};function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||a.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||a.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),tt([o,a,u,s,i],"batchNorm");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,I=0,N=0,E=0,A=0;for(let D=0;D=g&&(I=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var bM={kernelName:ds,backendName:"cpu",kernelFunc:Cet};function vet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],"batchToSpaceND");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=te({inputs:{x:o},backend:e,attrs:{shape:u}}),d=We({inputs:{x:f},backend:e,attrs:{perm:l}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var wM={kernelName:Fi,backendName:"cpu",kernelFunc:vet};function Net(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=dd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var IM={kernelName:Da,backendName:"cpu",kernelFunc:Net};function ket(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var CM={kernelName:ql,backendName:"cpu",kernelFunc:ket};var Tet=At(ho,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Zr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(I=>Ro({inputs:{input:I},backend:e})),g=u.map(I=>ba({inputs:{input:I},backend:e})),x=Gu({inputs:h,backend:e,attrs:{axis:s}}),b=Gu({inputs:g,backend:e,attrs:{axis:s}}),w=Ir({inputs:{real:x,imag:b},backend:e});return h.forEach(I=>e.disposeIntermediateTensorInfo(I)),g.forEach(I=>e.disposeIntermediateTensorInfo(I)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return te({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Jc(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var kM={kernelName:Oi,backendName:"cpu",kernelFunc:Gu};function FT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],"conv2d");let p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat==="channelsLast",I=new le(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],D=w?N[1]:N[2],F=w?N[2]:1,M=w?1:N[1],V=I.strides[0],G=w?I.strides[1]:I.strides[2],W=w?I.strides[2]:1,q=w?1:I.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=I.values;for(let Z=0;Z=m.inHeight)continue;let gt=it*E[0],Ct=et+ft*D;for(let Rt=0;Rt=m.inWidth)continue;let ye=gt+qt*E[1],re=Ct+pe*F,be=ye;for(let de=0;de=l.inDepth)continue;let Z=j*F[0],et=V+Y*D[1];for(let nt=0;nt=l.inHeight)continue;let ft=Z+ot*F[1],gt=et+it*D[2];for(let Ct=0;Ct=l.inWidth)continue;let pe=ft+Ht*F[2],ye=gt+qt*l.inChannels,re=pe;for(let be=0;beMath.cos(r)),RM={kernelName:rs,backendName:"cpu",kernelFunc:Fet};var Oet=At(ns,r=>Math.cosh(r)),FM={kernelName:ns,backendName:"cpu",kernelFunc:Oet};function Met(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],"float32"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,I=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-M)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?M*(m-1)+st*H:.5*(M+G)*(m-1);if(lt<0||lt>m-1){for(let gt=0;gt1?M*(m-1)+Z*H:.5*(M+G)*(m-1);if(et<0||et>m-1){for(let lt=0;ltx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=S.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,I=b.top,N=f.outChannels/f.inChannels,E=new le(f.outShape,o.dtype),A=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,F=E.values;for(let M=0;M=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let nt=0;nt=f.inWidth)continue;let ft=Z+ot*p[1],gt=et+it*f.inChannels,Ct=st,Rt=ft;for(let Dt=0;Dt{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:I,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:D,dilationWidth:F,outShape:M}=S.computeDilation2DInfo(n.shape,o.shape,s,i,"NHWC",a),V=y.sizeFromShape(M),G=M.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&it=0&>st&&(st=Dt)}}}let lt=y.locToIndex([H,j,Z,nt],G,y.computeStrides(M));W[lt]=st}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),M,n.dtype),shape:M,dtype:n.dtype}}};var HM={kernelName:Zl,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Zl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=lt,st=it)}}}V[nt][st][Z]+=M[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var qM={kernelName:Yl,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:D,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Yl}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let M=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&ot=0&&ftet&&(et=gt,nt=ot,st=ft)}}}V[W][nt][st][Z]+=M[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Uet(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{canvas:s,options:i}=n,{contextOptions:a,imageOptions:u}=i||{},l=(u==null?void 0:u.alpha)||1,c=(a==null?void 0:a.contextType)||"2d";if(c!=="2d")throw new Error(`Context type ${a.contextType} is not supported by the CPU backend.`);let p=s.getContext(c,(a==null?void 0:a.contextAttributes)||{});if(p==null)throw new Error(`Could not get the context with ${c} type.`);let[m,f]=o.shape.slice(0,2),d=o.shape.length===2?1:o.shape[2],h=e.data.get(o.dataId).values,g=o.dtype==="float32"?255:1,x=new Uint8ClampedArray(f*m*4);for(let w=0;w1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${A}.`)}else if(o.dtype==="int32"&&(A<0||A>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${A}.`);d===1?(I[0]=A*g,I[1]=A*g,I[2]=A*g):I[E]=A*g}let N=w*4;x[N+0]=Math.round(I[0]),x[N+1]=Math.round(I[1]),x[N+2]=Math.round(I[2]),x[N+3]=Math.round(I[3])}s.width=f,s.height=m;let b=new ImageData(x,f,m);return p.putImageData(b,0,0),o}var KM={kernelName:Qd,backendName:"cpu",kernelFunc:Uet};function $l(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"sum");let a;o.dtype==="bool"?a=Fo({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Zr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=We({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,"int32"),g=md(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let I=0;I=0&&(m=$l({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var XM={kernelName:Fp,backendName:"cpu",kernelFunc:Het};function qet(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],"eluGrad");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=0?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var YM={kernelName:La,backendName:"cpu",kernelFunc:qet};var Ket=S.ERF_P,jet=S.ERF_A1,Xet=S.ERF_A2,Yet=S.ERF_A3,Zet=S.ERF_A4,Jet=S.ERF_A5,Qet=At(us,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+Ket*e);return t*(1-((((Jet*n+Zet)*n+Yet)*n+Xet)*n+jet)*n*Math.exp(-e*e))}),ZM={kernelName:us,backendName:"cpu",kernelFunc:Qet};function yd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),te({inputs:{x:o},backend:e,attrs:{shape:a}})}var JM={kernelName:Mi,backendName:"cpu",kernelFunc:yd};var trt=Qt((r,t)=>r/t),tg=oe(as,trt),eg={kernelName:as,backendName:"cpu",kernelFunc:tg};function $w(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&w=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=te({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=te({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=yw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var sP={kernelName:Pi,backendName:"cpu",kernelFunc:urt};function crt(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=te({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=$w(a,!0,e),l=te({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var iP={kernelName:Mp,backendName:"cpu",kernelFunc:crt};var prt=At(gs,r=>Number.isFinite(r)?1:0,"bool"),aP={kernelName:gs,backendName:"cpu",kernelFunc:prt};var mrt=At(xs,r=>Math.abs(r)===1/0?1:0,"bool"),lP={kernelName:xs,backendName:"cpu",kernelFunc:mrt};var frt=At(ys,r=>Number.isNaN(r)?1:0,"bool"),uP={kernelName:ys,backendName:"cpu",kernelFunc:frt};function drt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=bw(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var cP={kernelName:Ha,backendName:"cpu",kernelFunc:drt};var hrt=At(Is,r=>Math.log1p(r)),pP={kernelName:Is,backendName:"cpu",kernelFunc:hrt};var grt=Qt((r,t)=>r&&t),xrt=oe(qa,grt,null,"bool"),mP={kernelName:qa,backendName:"cpu",kernelFunc:xrt};var yrt=At(Ka,r=>r?0:1,"bool"),fP={kernelName:Ka,backendName:"cpu",kernelFunc:yrt};var brt=Qt((r,t)=>r||t),wrt=oe(ja,brt,null,"bool"),dP={kernelName:ja,backendName:"cpu",kernelFunc:wrt};function Irt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,"LRN");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let I=p[x];w+=I*I}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Zr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=xd(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var yP={kernelName:Ns,backendName:"cpu",kernelFunc:vrt};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"maxPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var bP={kernelName:Li,backendName:"cpu",kernelFunc:Srt};function Nrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"maxPool3DGrad");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=dM(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,I=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,D=I-1-c.padInfo.top,F=wt(s.shape,"float32"),M=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(st)!==st))for(let lt=0;lt=c.outHeight||Math.floor(ot)!==ot))for(let it=0;it=c.outWidth||Math.floor(ft)!==ft)continue;let gt=w*I*N-1-m.get(V,st,ot,ft,G),Ct=nt*I*N+lt*N+it,Rt=gt===Ct?1:0;if(Rt===0)continue;let Dt=M.get(V,st,ot,ft,G);et+=Dt*Rt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var wP={kernelName:tu,backendName:"cpu",kernelFunc:Nrt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,Aw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,I=m.effectiveFilterWidth,N=I-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,"float32"),D=e.data.get(o.dataId).values,F=wt(o.shape,"float32",D);for(let M=0;M=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(nt)!==nt)continue;let st=w*I-1-d.get(M,Z,nt,V),lt=Y*I+et,ot=st===lt?1:0;if(ot===0)continue;let it=F.get(M,Z,nt,V);j+=it*ot}}A.set(j,M,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var IP={kernelName:Ql,backendName:"cpu",kernelFunc:krt};function CP(r,t,e,n,o){let s=y.computeStrides(t),i=xd(r,t,e,s,o,"max"),a=Aw(r,t,e,o,!0,n);return[i.values,a.values]}var vP={kernelName:eu,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,"MaxPoolWithArgmax");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=CP(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=Fo({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=tg({inputs:{a:f,b:m},backend:e});p.push(d);let h=$l({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var SP={kernelName:ks,backendName:"cpu",kernelFunc:Trt};function _rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"min");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=We({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=S.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[I]+w[1]),u=s.map(w=>w[0]),l=s.map((w,I)=>w[0]+o.shape[I]),c=i==="reflect"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[E]&&(I[E]=(l[E]-1)*2-I[E]+c);I=I.map((E,A)=>E-u[A]);let N=y.locToIndex(I,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var kP={kernelName:Es,backendName:"cpu",kernelFunc:Ert};var Art=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),Drt=oe(As,Art),TP={kernelName:As,backendName:"cpu",kernelFunc:Drt};var EP=Gl(hh());function LT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=PT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=te({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Jh({inputs:{a:o,b:p},backend:e}),f=aT({inputs:{x:m},backend:e}),d=$l({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=te({inputs:{x:d},backend:e,attrs:{shape:c}}),g=tg({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var _P={kernelName:Qs,backendName:"cpu",kernelFunc:LT};function $rt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,"multinomial");let u=a?o:LT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=yd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Gu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var LP={kernelName:Vi,backendName:"cpu",kernelFunc:zT};function Brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,"pad");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;bE+u[A]),N=y.locToIndex(I,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var Rw={kernelName:Rs,backendName:"cpu",kernelFunc:Brt};var Vrt=Qt((r,t)=>Math.pow(r,t)),Grt=oe(Fs,Vrt),zP={kernelName:Fs,backendName:"cpu",kernelFunc:Grt};function Wrt(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=Iw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var BP={kernelName:Lp,backendName:"cpu",kernelFunc:Wrt};function Urt(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=Cw(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var VP={kernelName:zp,backendName:"cpu",kernelFunc:Urt};function Hrt(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=vw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var GP={kernelName:Bp,backendName:"cpu",kernelFunc:Hrt};function qrt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=tp(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var WP={kernelName:ru,backendName:"cpu",kernelFunc:qrt};var Krt=At(Ps,r=>1/r),UP={kernelName:Ps,backendName:"cpu",kernelFunc:Krt};function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,"resizeBilinear");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,I=x[0]/b[0],N=x[1]/b[1];for(let E=0;E1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,I=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],I=x[1]/b[1],N=0;for(let E=0;E1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],I=x[1]/b[1],N=1/w,E=1/I,A=Math.ceil(N)*2+2,D=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let ot=M+lt*u[1],it=lt*w,ft=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===ft)for(let gt=0;gt=d)continue;let Rt=ot+Ct*u[2],Dt=Ct*I,Ht=Math.min(p-1,i?Math.round(Dt):Math.floor(Dt));H===Ht&&(nt+=g[Rt+et])}}h[j+et]=nt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var jP={kernelName:el,backendName:"cpu",kernelFunc:Zrt};function Jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,"reverse");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Zr({inputs:{x:o},backend:e});let u=new le(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var XP={kernelName:Gs,backendName:"cpu",kernelFunc:Jrt};var YP={kernelName:pl,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=S.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let I=0;I=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),ZP={kernelName:Ws,backendName:"cpu",kernelFunc:Qrt};function tnt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=Ci(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var JP={kernelName:nl,backendName:"cpu",kernelFunc:tnt};function ent(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?int*r:snt*(Math.exp(r)-1)),rL={kernelName:Hs,backendName:"cpu",kernelFunc:ant};var lnt=At(js,r=>r<0?-1:r>0?1:0),nL={kernelName:js,backendName:"cpu",kernelFunc:lnt};var unt=At(qs,r=>Math.sin(r)),oL={kernelName:qs,backendName:"cpu",kernelFunc:unt};var cnt=At(Ks,r=>Math.sinh(r)),sL={kernelName:Ks,backendName:"cpu",kernelFunc:cnt};var pnt=11920928955078125e-23,iL=Math.log(pnt)+2,mnt=At(Ys,r=>{let t=r>-iL,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var iL={kernelName:nu,backendName:"cpu",kernelFunc:cnt};function pnt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape + ${i.shape}`);let a=e.data.get(n.dataId).values,u=e.data.get(o.dataId).values,l=e.data.get(s.dataId).values,c=e.data.get(i.dataId).values[0],[p,m,f,d,h]=Sw(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],"bool",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var uL={kernelName:nu,backendName:"cpu",kernelFunc:dnt};function hnt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape - ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=vw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var aL={kernelName:il,backendName:"cpu",kernelFunc:pnt};function mnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=Nw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var cL={kernelName:il,backendName:"cpu",kernelFunc:hnt};function gnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=hd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var lL={kernelName:ou,backendName:"cpu",kernelFunc:mnt};function fnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=gd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var pL={kernelName:ou,backendName:"cpu",kernelFunc:gnt};function xnt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=hd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var uL={kernelName:su,backendName:"cpu",kernelFunc:fnt};function dnt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case"bool":{let g=e.bufferSync(s),x=!!e.data.get(i.dataId).values[0];h=Ii(d,g,a,m,c,l,u,p,x,f);break}case"float32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ii(d,g,a,m,c,l,u,p,x,f);break}case"int32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ii(d,g,a,m,c,l,u,p,x,f);break}case"string":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=Ii(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var cL={kernelName:al,backendName:"cpu",kernelFunc:dnt};function hnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Mo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var pL={kernelName:Hi,backendName:"cpu",kernelFunc:hnt};var mL={kernelName:iu,backendName:"cpu",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,"square");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),fL={kernelName:xo,backendName:"cpu",kernelFunc:gnt};function xnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,"stridedSlice");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=te({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Mo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=te({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=Sw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var dL={kernelName:ll,backendName:"cpu",kernelFunc:xnt};function ynt(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=rp(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var hL={kernelName:au,backendName:"cpu",kernelFunc:ynt};function bnt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=np(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var gL={kernelName:lu,backendName:"cpu",kernelFunc:bnt};function wnt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.data.get(s.dataId).values,a=op(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var xL={kernelName:uu,backendName:"cpu",kernelFunc:wnt};var Int=At(ri,r=>Math.tan(r)),yL={kernelName:ri,backendName:"cpu",kernelFunc:Int};var Cnt=At(ni,r=>Math.tanh(r)),bL={kernelName:ni,backendName:"cpu",kernelFunc:Cnt};function vnt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=Ii(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var wL={kernelName:ol,backendName:"cpu",kernelFunc:vnt};function Snt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=Nw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var IL={kernelName:oo,backendName:"cpu",kernelFunc:Snt};function Nnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,"topk");let a=e.data.get(o.dataId).values,[u,l]=kw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var CL={kernelName:ul,backendName:"cpu",kernelFunc:Nnt};function knt(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let M=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function _nt(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Ent(r,t){return r}function Ant(r,t){return y.clamp(0,r,t-1)}function ng(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var TL={kernelName:pu,backendName:"cpu",kernelFunc:Ont};var Mnt=[JO,sO,QO,tM,cO,eM,rM,nM,oM,sM,iM,aM,lM,uM,cM,mM,fM,dM,hM,ZO,gM,xM,yM,pO,bM,uO,mO,wM,iO,IM,vM,SM,NM,kM,TM,_M,EM,AM,DM,$M,RM,FM,OM,MM,PM,LM,zM,BM,VM,GM,WM,UM,qM,HO,KM,fO,jM,dO,XM,hO,YM,ZM,JM,gO,xO,QM,tP,eP,rP,yO,bO,aO,nP,CM,oP,sP,iP,qO,wO,IO,aP,CO,lP,uP,cP,pP,mP,fP,dP,vO,hP,gP,xP,yP,wP,IP,CP,SO,vP,SP,TP,NO,kO,_P,EP,AP,TO,DP,FP,OP,Dw,MP,KO,EO,PP,LP,zP,BP,lO,tg,VP,jO,XO,YO,GP,WP,UP,HP,qP,KP,jP,FO,XP,ZP,JP,QP,MO,tL,eL,rL,PO,NP,oL,sL,iL,aL,lL,uL,cL,pL,zO,mL,BO,VO,fL,dL,hL,gL,xL,GO,HM,yL,bL,wL,IL,CL,SL,_O,NL,kL,TL,$P];for(let r of Mnt)rc(r);var Id={};Kt(Id,{assertNotComplex:()=>Ci,bindCanvasToFramebuffer:()=>Hnt,bindColorTextureToFramebuffer:()=>ag,bindTextureToProgramUniformSampler:()=>QT,bindTextureUnit:()=>DL,bindVertexBufferToProgramAttribute:()=>Pw,callAndCheck:()=>ht,canBeRepresented:()=>VT,createFragmentShader:()=>WT,createFramebuffer:()=>YT,createProgram:()=>UT,createStaticIndexBuffer:()=>KT,createStaticVertexBuffer:()=>qT,createTexture:()=>jT,createVertexShader:()=>GT,getBatchDim:()=>Fl,getExtensionOrThrow:()=>yd,getFramebufferErrorMessage:()=>$L,getMaxTexturesInShader:()=>r1,getNumChannels:()=>Wnt,getProgramUniformLocation:()=>JT,getProgramUniformLocationOrThrow:()=>ZT,getRowsCols:()=>Ol,getShapeAs3D:()=>wd,getTextureShapeFromLogicalShape:()=>t1,getWebGLDisjointQueryTimerVersion:()=>n1,getWebGLErrorMessage:()=>AL,getWebGLMaxTextureSize:()=>e1,hasExtension:()=>Kn,isCapableOfRenderingToFloatTexture:()=>o1,isDownloadFloatTextureEnabled:()=>s1,isReshapeFree:()=>Uu,isWebGLFenceEnabled:()=>i1,isWebGLVersionEnabled:()=>zw,linkProgram:()=>HT,logShaderSourceAndInfoLog:()=>Mw,resetMaxTextureSize:()=>qnt,resetMaxTexturesInShader:()=>Knt,unbindColorTextureFromFramebuffer:()=>Lw,unbindTextureUnit:()=>Unt,validateFramebuffer:()=>bd,validateProgram:()=>ig,validateTextureSize:()=>XT});var ap={},$w={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function LT(r,t){ap[r]=t}function qn(r,t){if(!(r in ap)||t!=null){let n=Lnt(r,t);if(n!==null)ap[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=ap[r];return e==null||e.isContextLost()?(delete ap[r],qn(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),ap[r])}function Pnt(r){if(!L().getBool("IS_SAFARI")&&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 Lnt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?Pnt(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete ap[r]},!1),L().getBool("SOFTWARE_WEBGL_ENABLED")&&($w.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",$w)||e.getContext("experimental-webgl",$w):e.getContext("webgl2",$w)}var Wu;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(Wu||(Wu={}));var Yr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Yr||(Yr={}));var Pr;(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"})(Pr||(Pr={}));function lp(r,t){return[t,r]}function _L(r,t){return r*t}function og(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function wa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function EL(r,t){let[e,n]=wa(r,t);return e*n*4}function sg(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().getNumber("WEBGL_VERSION")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function ht(r,t){let e=t();return L().getBool("DEBUG")&&znt(r),e}function znt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+AL(r,t))}var Bnt=596e-10,Vnt=65504;function VT(r){return!!(L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||Bntr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function GT(r,t){let e=Rl(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error("Failed to compile vertex shader.");return e}function WT(r,t){let e=Rl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),L().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Mw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var Gnt=/ERROR: [0-9]+:([0-9]+):/g;function Mw(r,t){let e=Gnt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(` + ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=gd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var mL={kernelName:su,backendName:"cpu",kernelFunc:xnt};function ynt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case"bool":{let g=e.bufferSync(s),x=!!e.data.get(i.dataId).values[0];h=Ci(d,g,a,m,c,l,u,p,x,f);break}case"float32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ci(d,g,a,m,c,l,u,p,x,f);break}case"int32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=Ci(d,g,a,m,c,l,u,p,x,f);break}case"string":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=Ci(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var fL={kernelName:al,backendName:"cpu",kernelFunc:ynt};function bnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Mo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var dL={kernelName:qi,backendName:"cpu",kernelFunc:bnt};var hL={kernelName:iu,backendName:"cpu",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,"square");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),gL={kernelName:xo,backendName:"cpu",kernelFunc:wnt};function Int(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,"stridedSlice");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=te({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Mo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=te({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=kw(f,E,I,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var xL={kernelName:ll,backendName:"cpu",kernelFunc:Int};function Cnt(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=rp(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var yL={kernelName:au,backendName:"cpu",kernelFunc:Cnt};function vnt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=np(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var bL={kernelName:lu,backendName:"cpu",kernelFunc:vnt};function Snt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.data.get(s.dataId).values,a=op(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var wL={kernelName:uu,backendName:"cpu",kernelFunc:Snt};var Nnt=At(ri,r=>Math.tan(r)),IL={kernelName:ri,backendName:"cpu",kernelFunc:Nnt};var knt=At(ni,r=>Math.tanh(r)),CL={kernelName:ni,backendName:"cpu",kernelFunc:knt};function Tnt(r){let{inputs:t,backend:e}=r,{tensor:n,indices:o,updates:s}=t,{sliceRank:i,numUpdates:a,sliceSize:u,strides:l,outputSize:c}=S.calculateShapes(s,o,n.shape),p=!1,m=e.bufferSync(o),f=e.bufferSync(s),d=e.bufferSync(n),h=Ci(m,f,n.shape,c,u,a,i,l,d,p);return e.makeTensorInfo(n.shape,h.dtype,h.values)}var vL={kernelName:ol,backendName:"cpu",kernelFunc:Tnt};function _nt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=Tw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var SL={kernelName:oo,backendName:"cpu",kernelFunc:_nt};function Ent(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,"topk");let a=e.data.get(o.dataId).values,[u,l]=_w(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var NL={kernelName:ul,backendName:"cpu",kernelFunc:Ent};function Ant(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],I=x[2],N=y.computeStrides(g),E=N[0],A=N[1],D=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let M=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function $nt(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Rnt(r,t){return r}function Fnt(r,t){return y.clamp(0,r,t-1)}function og(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var AL={kernelName:pu,backendName:"cpu",kernelFunc:znt};var Bnt=[eM,lO,rM,nM,fO,oM,sM,iM,aM,lM,uM,cM,pM,mM,fM,hM,gM,xM,yM,tM,bM,wM,IM,dO,CM,mO,hO,vM,uO,SM,kM,TM,_M,EM,AM,DM,$M,RM,FM,OM,MM,PM,LM,zM,BM,VM,GM,WM,UM,HM,qM,KM,XM,jO,YM,gO,ZM,xO,JM,yO,QM,tP,eP,bO,wO,rP,nP,oP,sP,IO,CO,cO,iP,NM,aP,lP,uP,XO,vO,SO,cP,NO,pP,mP,fP,dP,hP,gP,xP,kO,yP,bP,wP,IP,vP,SP,NP,TO,kP,TP,AP,_O,EO,DP,$P,RP,AO,FP,PP,LP,Rw,zP,YO,$O,BP,VP,GP,WP,pO,eg,UP,ZO,JO,QO,HP,qP,KP,jP,XP,YP,ZP,PO,JP,tL,eL,rL,zO,nL,oL,sL,BO,_P,aL,lL,uL,cL,pL,mL,fL,dL,GO,hL,WO,UO,gL,xL,yL,bL,wL,HO,jM,IL,CL,vL,SL,NL,TL,DO,_L,EL,AL,OP];for(let r of Bnt)rc(r);var Cd={};Kt(Cd,{assertNotComplex:()=>vi,bindCanvasToFramebuffer:()=>Xnt,bindColorTextureToFramebuffer:()=>lg,bindTextureToProgramUniformSampler:()=>e1,bindTextureUnit:()=>FL,bindVertexBufferToProgramAttribute:()=>zw,callAndCheck:()=>ht,canBeRepresented:()=>WT,createFragmentShader:()=>HT,createFramebuffer:()=>JT,createProgram:()=>qT,createStaticIndexBuffer:()=>XT,createStaticVertexBuffer:()=>jT,createTexture:()=>YT,createVertexShader:()=>UT,getBatchDim:()=>Fl,getExtensionOrThrow:()=>bd,getFramebufferErrorMessage:()=>OL,getMaxTexturesInShader:()=>o1,getNumChannels:()=>Knt,getProgramUniformLocation:()=>t1,getProgramUniformLocationOrThrow:()=>QT,getRowsCols:()=>Ol,getShapeAs3D:()=>Id,getTextureShapeFromLogicalShape:()=>r1,getWebGLDisjointQueryTimerVersion:()=>s1,getWebGLErrorMessage:()=>RL,getWebGLMaxTextureSize:()=>n1,hasExtension:()=>Kn,isCapableOfRenderingToFloatTexture:()=>i1,isDownloadFloatTextureEnabled:()=>a1,isReshapeFree:()=>Uu,isWebGLFenceEnabled:()=>l1,isWebGLVersionEnabled:()=>Vw,linkProgram:()=>KT,logShaderSourceAndInfoLog:()=>Lw,resetMaxTextureSize:()=>Ynt,resetMaxTexturesInShader:()=>Znt,unbindColorTextureFromFramebuffer:()=>Bw,unbindTextureUnit:()=>jnt,validateFramebuffer:()=>wd,validateProgram:()=>ag,validateTextureSize:()=>ZT});var ap={},Fw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function BT(r,t){ap[r]=t}function qn(r,t){if(!(r in ap)||t!=null){let n=Gnt(r,t);if(n!==null)ap[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=ap[r];return e==null||e.isContextLost()?(delete ap[r],qn(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),ap[r])}function Vnt(r){if(!L().getBool("IS_SAFARI")&&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 Gnt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?Vnt(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete ap[r]},!1),L().getBool("SOFTWARE_WEBGL_ENABLED")&&(Fw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",Fw)||e.getContext("experimental-webgl",Fw):e.getContext("webgl2",Fw)}var Wu;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(Wu||(Wu={}));var Jr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Jr||(Jr={}));var Lr;(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"})(Lr||(Lr={}));function lp(r,t){return[t,r]}function DL(r,t){return r*t}function sg(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function wa(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function $L(r,t){let[e,n]=wa(r,t);return e*n*4}function ig(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return L().getNumber("WEBGL_VERSION")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function ht(r,t){let e=t();return L().getBool("DEBUG")&&Wnt(r),e}function Wnt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+RL(r,t))}var Unt=596e-10,Hnt=65504;function WT(r){return!!(L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||Untr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function UT(r,t){let e=Rl(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error("Failed to compile vertex shader.");return e}function HT(r,t){let e=Rl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),L().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Lw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var qnt=/ERROR: [0-9]+:([0-9]+):/g;function Lw(r,t){let e=qnt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(` `),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),"Unable to create WebGLProgram.")}function HT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().get("ENGINE_COMPILE_ONLY")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function ig(r,t){if(ht(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function qT(r,t){let e=Rl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function KT(r,t){let e=Rl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return ht(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function Wnt(){return L().getNumber("WEBGL_VERSION")===2?1:4}function jT(r){return Rl(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function XT(r,t){let e=L().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+o+".")}}function YT(r){return Rl(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Pw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),ht(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),ht(r,()=>r.enableVertexAttribArray(a)),!0)}function DL(r,t,e){RL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function Unt(r,t){RL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ZT(r,t,e){return Rl(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function JT(r,t,e){return r.getUniformLocation(t,e)}function QT(r,t,e,n){ht(r,()=>DL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function Hnt(r){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),ht(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),ht(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function ag(r,t,e){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Lw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function bd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+$L(r,t))}function $L(r,t){switch(t){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 ${t}`}}function Rl(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function RL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function Fl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Ol(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 wd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[Fl(r),...Ol(r)]),t}function t1(r,t=!1){let e=L().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=L().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&L().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=Fl(r),u=2,l=2;r.length&&([u,l]=Ol(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Rw(r){return r%2===0}function Uu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r[r.length-1],n=t[t.length-1];if(e===n||Rw(e)&&Rw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Rw(r[0])&&Rw(t[0])}var Fw,Ow;function e1(r){if(Fw==null){let t=qn(r);Fw=t.getParameter(t.MAX_TEXTURE_SIZE)}return Fw}function qnt(){Fw=null}function Knt(){Ow=null}function r1(r){if(Ow==null){let t=qn(r);Ow=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Ow)}function n1(r){if(r===0)return 0;let t,e=qn(r);return Kn(e,"EXT_disjoint_timer_query_webgl2")&&r===2?t=2:Kn(e,"EXT_disjoint_timer_query")?t=1:t=0,t}function Kn(r,t){return r.getExtension(t)!=null}function zw(r){try{if(qn(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function o1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,"OES_texture_float"))return!1}else if(!Kn(t,"EXT_color_buffer_float"))return!1;return BT(t)}function s1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,"OES_texture_float")||!Kn(t,"WEBGL_color_buffer_float"))return!1}else{if(Kn(t,"EXT_color_buffer_float"))return BT(t);let n="EXT_color_buffer_half_float";if(Kn(t,n)){let o=t.getExtension(n);return jnt(t,o)}return!1}return BT(t)}function BT(r){let t=sg(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e),r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function jnt(r,t){let e=sg(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n),r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,1,1,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function i1(r){return r!==2?!1:qn(r).fenceSync!=null}function Ci(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var kt=L();kt.registerFlag("HAS_WEBGL",()=>kt.getNumber("WEBGL_VERSION")>0);kt.registerFlag("WEBGL_VERSION",()=>zw(2)?2:zw(1)?1:0);kt.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);kt.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>kt.get("WEBGL_VERSION")===2);kt.registerFlag("WEBGL_CPU_FORWARD",()=>!0);kt.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);kt.registerFlag("WEBGL_PACK",()=>kt.getBool("HAS_WEBGL"));kt.registerFlag("WEBGL_PACK_NORMALIZATION",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_CLIP",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_REDUCE",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_LAZILY_UNPACK",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_CONV_IM2COL",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>e1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>r1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=kt.getNumber("WEBGL_VERSION");return r===0?0:n1(r)});kt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>kt.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!du.isMobile());kt.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>o1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>kt.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:kt.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));kt.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>s1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_FENCE_API_ENABLED",()=>i1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>kt.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);kt.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(typeof r!="number")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>du.isMobile()?1:-1,r=>{if(typeof r!="number")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);kt.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);kt.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);kt.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);kt.registerFlag("WEBGL_EXP_CONV",()=>!1);kt.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>kt.getBool("IS_TEST"));kt.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);kt.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);kt.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);kt.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function Ue(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=L().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function qT(r){return Rl(r,()=>r.createProgram(),"Unable to create WebGLProgram.")}function KT(r,t){if(ht(r,()=>r.linkProgram(t)),!L().get("ENGINE_COMPILE_ONLY")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function ag(r,t){if(ht(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function jT(r,t){let e=Rl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function XT(r,t){let e=Rl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return ht(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function Knt(){return L().getNumber("WEBGL_VERSION")===2?1:4}function YT(r){return Rl(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function ZT(r,t){let e=L().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+o+".")}}function JT(r){return Rl(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function zw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),ht(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),ht(r,()=>r.enableVertexAttribArray(a)),!0)}function FL(r,t,e){ML(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function jnt(r,t){ML(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function QT(r,t,e){return Rl(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function t1(r,t,e){return r.getUniformLocation(t,e)}function e1(r,t,e,n){ht(r,()=>FL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function Xnt(r){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),ht(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),ht(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function lg(r,t,e){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Bw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function wd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+OL(r,t))}function OL(r,t){switch(t){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 ${t}`}}function Rl(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function ML(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function Fl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Ol(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 Id(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[Fl(r),...Ol(r)]),t}function r1(r,t=!1){let e=L().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=L().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&L().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=Fl(r),u=2,l=2;r.length&&([u,l]=Ol(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function Ow(r){return r%2===0}function Uu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r[r.length-1],n=t[t.length-1];if(e===n||Ow(e)&&Ow(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Ow(r[0])&&Ow(t[0])}var Mw,Pw;function n1(r){if(Mw==null){let t=qn(r);Mw=t.getParameter(t.MAX_TEXTURE_SIZE)}return Mw}function Ynt(){Mw=null}function Znt(){Pw=null}function o1(r){if(Pw==null){let t=qn(r);Pw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Pw)}function s1(r){if(r===0)return 0;let t,e=qn(r);return Kn(e,"EXT_disjoint_timer_query_webgl2")&&r===2?t=2:Kn(e,"EXT_disjoint_timer_query")?t=1:t=0,t}function Kn(r,t){return r.getExtension(t)!=null}function Vw(r){try{if(qn(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function i1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,"OES_texture_float"))return!1}else if(!Kn(t,"EXT_color_buffer_float"))return!1;return GT(t)}function a1(r){if(r===0)return!1;let t=qn(r);if(r===1){if(!Kn(t,"OES_texture_float")||!Kn(t,"WEBGL_color_buffer_float"))return!1}else{if(Kn(t,"EXT_color_buffer_float"))return GT(t);let n="EXT_color_buffer_half_float";if(Kn(t,n)){let o=t.getExtension(n);return Jnt(t,o)}return!1}return GT(t)}function GT(r){let t=ig(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e),r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function Jnt(r,t){let e=ig(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n),r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,1,1,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function l1(r){return r!==2?!1:qn(r).fenceSync!=null}function vi(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var kt=L();kt.registerFlag("HAS_WEBGL",()=>kt.getNumber("WEBGL_VERSION")>0);kt.registerFlag("WEBGL_VERSION",()=>Vw(2)?2:Vw(1)?1:0);kt.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);kt.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>kt.get("WEBGL_VERSION")===2);kt.registerFlag("WEBGL_CPU_FORWARD",()=>!0);kt.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);kt.registerFlag("WEBGL_PACK",()=>kt.getBool("HAS_WEBGL"));kt.registerFlag("WEBGL_PACK_NORMALIZATION",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_CLIP",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_REDUCE",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_LAZILY_UNPACK",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_CONV_IM2COL",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>kt.getBool("WEBGL_PACK"));kt.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>n1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>o1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=kt.getNumber("WEBGL_VERSION");return r===0?0:s1(r)});kt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>kt.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!du.isMobile());kt.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>i1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>kt.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:kt.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));kt.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>a1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_FENCE_API_ENABLED",()=>l1(kt.getNumber("WEBGL_VERSION")));kt.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>kt.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);kt.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(typeof r!="number")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>du.isMobile()?1:-1,r=>{if(typeof r!="number")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${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}.`)});kt.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);kt.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);kt.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);kt.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);kt.registerFlag("WEBGL_EXP_CONV",()=>!1);kt.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>kt.getBool("IS_TEST"));kt.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);kt.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);kt.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);kt.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function Ue(){let r,t,e,n,o,s,i,a,u,l;return L().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=L().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -112,15 +112,15 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function vi(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join("")}function up(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join("")}function Xnt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function FL(r,t,e="index"){let n=r.map((s,i)=>i),o=Xnt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join("")}function Cd(r){let t=y.computeStrides(r).map(e=>e.toString());return` + `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function Si(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join("")}function up(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join("")}function Qnt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function PL(r,t,e="index"){let n=r.map((s,i)=>i),o=Qnt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join("")}function vd(r){let t=y.computeStrides(r).map(e=>e.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function vd(){return` +`}function Sd(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var Bw=` +`}var Gw=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -159,22 +159,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`;var{getBroadcastDims:OL}=S;function ML(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:""};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Vw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push("uniform int outShape;");break;case 2:n.push("uniform ivec2 outShape;"),n.push("uniform int outShapeStrides;");break;case 3:n.push("uniform ivec3 outShape;"),n.push("uniform ivec2 outShapeStrides;");break;case 4:n.push("uniform ivec4 outShape;"),n.push("uniform ivec3 outShapeStrides;");break;default:break}n.push("uniform ivec2 outTexShape;")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:""};`)});let o=n.join(` -`),s=r.map(f=>Ynt(f,t,e.packedInputs,e.enableShapeUniforms)).join(` -`),i=t.texShape,a=Ue(),u=Qnt(a),l,c,p=rot(a);return t.isPacked?(l=Znt(t.logicalShape,i,e.enableShapeUniforms),c=eot(a)):(l=Jnt(t.logicalShape,i,e.enableShapeUniforms),c=tot(a)),e.packedInputs&&(p+=iot),[p,u,c,o,l,s,e.userCode].join(` -`)}function Nd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return yot(r,t);case 1:return wot(r,t);case 2:return Cot(r,t);case 3:return Sot(r,t);case 4:return kot(r,t);case 5:return Tot(r);case 6:return _ot(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function PL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return xot(r);case 1:return bot(r,t);case 2:return Iot(r,t);case 3:return vot(r,t);default:return Not(r,t)}}function Ynt(r,t,e=!1,n){let o="";e?o+=PL(r,n):o+=Nd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Eot(r,t):o+=Aot(r,t)),o}function Znt(r,t,e){switch(r.length){case 0:return LL();case 1:return aot(r,t,e);case 2:return hot(r,t,e);case 3:return uot(r,t,e);default:return pot(r,t,e)}}function Jnt(r,t,e){switch(r.length){case 0:return LL();case 1:return lot(r,t,e);case 2:return got(r,t,e);case 3:return cot(r,t,e);case 4:return mot(r,t,e);case 5:return fot(r,t);case 6:return dot(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Qnt(r){return` +`;var{getBroadcastDims:LL}=S;function zL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:""};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Ww(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push("uniform int outShape;");break;case 2:n.push("uniform ivec2 outShape;"),n.push("uniform int outShapeStrides;");break;case 3:n.push("uniform ivec3 outShape;"),n.push("uniform ivec2 outShapeStrides;");break;case 4:n.push("uniform ivec4 outShape;"),n.push("uniform ivec3 outShapeStrides;");break;default:break}n.push("uniform ivec2 outTexShape;")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:""};`)});let o=n.join(` +`),s=r.map(f=>tot(f,t,e.packedInputs,e.enableShapeUniforms)).join(` +`),i=t.texShape,a=Ue(),u=not(a),l,c,p=iot(a);return t.isPacked?(l=eot(t.logicalShape,i,e.enableShapeUniforms),c=sot(a)):(l=rot(t.logicalShape,i,e.enableShapeUniforms),c=oot(a)),e.packedInputs&&(p+=cot),[p,u,c,o,l,s,e.userCode].join(` +`)}function kd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Cot(r,t);case 1:return Sot(r,t);case 2:return kot(r,t);case 3:return _ot(r,t);case 4:return Aot(r,t);case 5:return Dot(r);case 6:return $ot(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function BL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Iot(r);case 1:return vot(r,t);case 2:return Not(r,t);case 3:return Tot(r,t);default:return Eot(r,t)}}function tot(r,t,e=!1,n){let o="";e?o+=BL(r,n):o+=kd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Rot(r,t):o+=Fot(r,t)),o}function eot(r,t,e){switch(r.length){case 0:return VL();case 1:return pot(r,t,e);case 2:return bot(r,t,e);case 3:return fot(r,t,e);default:return hot(r,t,e)}}function rot(r,t,e){switch(r.length){case 0:return VL();case 1:return mot(r,t,e);case 2:return wot(r,t,e);case 3:return dot(r,t,e);case 4:return got(r,t,e);case 5:return xot(r,t);case 6:return yot(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function not(r){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${r.texture2D}(textureSampler, uv).r; } - `}function tot(r){return` + `}function oot(r){return` void setOutput(float val) { ${r.output} = vec4(val, 0, 0, 0); } - `}function eot(r){return` + `}function sot(r){return` void setOutput(vec4 val) { ${r.output} = val; } - `}function rot(r){return`${r.version} + `}function iot(r){return`${r.version} precision highp float; precision highp int; precision highp sampler2D; @@ -229,10 +229,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${not} - ${oot} - ${sot} - `}var not=` + ${aot} + ${lot} + ${uot} + `}var aot=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -244,7 +244,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,oot=` +`,lot=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -252,7 +252,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,sot=` +`,uot=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -261,7 +261,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,iot=` +`,cot=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -272,11 +272,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function LL(){return` +`;function VL(){return` int getOutputCoords() { return 0; } - `}function aot(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?` + `}function pot(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -305,7 +305,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function lot(r,t,e){return t[0]===1?e?` + `}function mot(r,t,e){return t[0]===1?e?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -333,7 +333,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function uot(r,t,e){if(e)return` + `}function fot(r,t,e){if(e)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -364,7 +364,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function cot(r,t,e){if(e)return` + `}function dot(r,t,e){if(e)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); @@ -372,7 +372,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${up(["r","c","d"],r)} return ivec3(r, c, d); } -`;let n=vi(["r","c","d"],r);return` +`;let n=Si(["r","c","d"],r);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -380,7 +380,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function pot(r,t,e){if(e)return` + `}function hot(r,t,e){if(e)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -421,7 +421,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${r.length}(${u}); } - `}function mot(r,t,e){if(e)return` + `}function got(r,t,e){if(e)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); @@ -429,7 +429,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${up(["r","c","d","d2"],r)} return ivec4(r, c, d, d2); } - `;let n=vi(["r","c","d","d2"],r);return` + `;let n=Si(["r","c","d","d2"],r);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -437,7 +437,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec4(r, c, d, d2); } - `}function fot(r,t){let e=vi(["r","c","d","d2","d3"],r);return` + `}function xot(r,t){let e=Si(["r","c","d","d2","d3"],r);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -449,7 +449,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function dot(r,t){let e=vi(["r","c","d","d2","d3","d4"],r);return` + `}function yot(r,t){let e=Si(["r","c","d","d2","d3","d4"],r);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -460,7 +460,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function hot(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(y.arraysEqual(r,t))return e?` + `}function bot(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(y.arraysEqual(r,t))return e?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -493,7 +493,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function got(r,t,e){return y.arraysEqual(r,t)?e?` + `}function wot(r,t,e){return y.arraysEqual(r,t)?e?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -547,11 +547,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${r[1]}; return ivec2(r, c); } - `}function cp(r){return`offset${r}`}function xot(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=Ue();return` + `}function cp(r){return`offset${r}`}function Iot(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=Ue();return` vec4 ${e}() { return ${n.texture2D}(${t}, halfCR); } - `}function yot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return`float ${n}() {return ${e};}`;let[o,s]=r.shapeInfo.texShape;if(o===1&&s===1)return` + `}function Cot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return`float ${n}() {return ${e};}`;let[o,s]=r.shapeInfo.texShape;if(o===1&&s===1)return` float ${n}() { return sampleTexture(${e}, halfCR); } @@ -565,7 +565,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${a}, ${u}, ${i}); return sampleTexture(${e}, uv); } - `}function bot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=Ue();if(t)return` + `}function vot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=Ue();if(t)return` vec4 ${n}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${e}TexShape[0]) / 2.0), ceil(float(${e}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -578,9 +578,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${e}, uv); } - `}function wot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` + `}function Sot(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` float ${n}(int index) { - ${kd(r)} + ${Td(r)} } `;let o=r.shapeInfo.texShape,s=o[0],i=o[1];if(i===1&&s===1)return` float ${n}(int index) { @@ -616,7 +616,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${a}); return sampleTexture(${e}, uv); } - `}function Iot(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape,i=s[0],a=s[1],u=Ue();if(s!=null&&y.arraysEqual(e,s))return t?` + `}function Not(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape,i=s[0],a=s[1],u=Ue();if(s!=null&&y.arraysEqual(e,s))return t?` vec4 ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); @@ -640,7 +640,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${c}, ${l[0]}, ${l[1]}, row, col); return ${u.texture2D}(${n}, uv); } - `}function Cot(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape;if(s!=null&&y.arraysEqual(e,s)){if(t)return` + `}function kot(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape;if(s!=null&&y.arraysEqual(e,s)){if(t)return` float ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); return sampleTexture(${n}, uv); @@ -650,15 +650,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = (vec2(col, row) + halfCR) / vec2(${f}.0, ${m}.0); return sampleTexture(${n}, uv); } - `}let{newShape:i,keptDims:a}=y.squeezeShape(e),u=i;if(u.length=1?c="coords = 0;":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(` + `}function Rot(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o="get"+n+"AtOutCoords",s=r.shapeInfo.logicalShape.length,i=t.logicalShape.length,a=LL(r.shapeInfo.logicalShape,t.logicalShape),u=zt(i),l=i-s,c,p=["x","y","z","w","u","v"];s===0?c="":i<2&&a.length>=1?c="coords = 0;":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(` `);let m="";i<2&&s>0?m="coords":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(", ");let f="return outputValue;",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=` return vec4(outputValue.xy, outputValue.xy); `;else if(h&&!x)i===1?f=` @@ -977,20 +977,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${n}(${m}); ${f} } - `}function Aot(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o="get"+n+"AtOutCoords",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return` + `}function Fot(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o="get"+n+"AtOutCoords",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return` float ${o}() { return sampleTexture(${e}, resultUV); } - `;let l=zt(u),c=OL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=["x","y","z","w","u","v"];a===0?m="":u<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` + `;let l=zt(u),c=LL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=["x","y","z","w","u","v"];a===0?m="":u<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` `);let d="";return u<2&&a>0?d="coords":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(", "),` float ${o}() { ${l} coords = getOutputCoords(); ${m} return get${n}(${d}); } - `}function zt(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 Vw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(", ")}function BL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=ML(o,i,t),u=WT(r.gl,a),l=r.createProgram(u);return L().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},a1(r,t,l)))}function a1(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,"NAN",!1),L().getNumber("WEBGL_VERSION")===1&&(u=r.getUniformLocation(e,"INFINITY",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,"outShape",c),a=r.getUniformLocation(e,"outShapeStrides",c),i=r.getUniformLocation(e,"outTexShape",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}function zL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function VL(r,t,e,n,o){t.program.enableShapeUniforms||(zL(t.inShapeInfos,e),zL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),r.bindVertexArray(t.webGLProgram.vao),L().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Vw(r.packedInputs,i.shape,u),m="",f="",d="";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=S.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),I=r.packedInputs||c.length>2?"":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:""}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${a}`}else{let u=i.isUniform?"uniform":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+="_"+n+"_"+o+`${L().getNumber("WEBGL_VERSION")}`,s}function he(r){return L().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var Gw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` + `}function zt(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 Ww(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(", ")}function WL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=zL(o,i,t),u=HT(r.gl,a),l=r.createProgram(u);return L().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(r.buildVao(l),Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},u1(r,t,l)))}function u1(r,t,e){let n=[],o=[],s,i,a,u=null,l=null;l=r.getUniformLocation(e,"NAN",!1),L().getNumber("WEBGL_VERSION")===1&&(u=r.getUniformLocation(e,"INFINITY",!1));let c=!1;for(let p of t.variableNames){let m={name:p,uniform:r.getUniformLocation(e,p,c),offset:r.getUniformLocation(e,`offset${p}`,c)};t.enableShapeUniforms&&(m.shape=r.getUniformLocation(e,`${p}Shape`,c),m.texShape=r.getUniformLocation(e,`${p}TexShape`,c)),n.push(m)}if(t.enableShapeUniforms&&(s=r.getUniformLocation(e,"outShape",c),a=r.getUniformLocation(e,"outShapeStrides",c),i=r.getUniformLocation(e,"outTexShape",c)),t.customUniforms)for(let p of t.customUniforms)o.push(r.getUniformLocation(e,p.name,c));return{variablesLocations:n,customUniformLocations:o,infLoc:u,nanLoc:l,outShapeLocation:s,outShapeStridesLocation:a,outTexShapeLocation:i}}function GL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function UL(r,t,e,n,o){t.program.enableShapeUniforms||(GL(t.inShapeInfos,e),GL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),r.bindVertexArray(t.webGLProgram.vao),L().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN);for(let u=0;u{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Ww(r.packedInputs,i.shape,u),m="",f="",d="";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=S.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),I=r.packedInputs||c.length>2?"":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:""}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${I}_${a}`}else{let u=i.isUniform?"uniform":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+="_"+n+"_"+o+`${L().getNumber("WEBGL_VERSION")}`,s}function he(r){return L().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var Uw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?up(["r","c","d"],t):vi(["r","c","d"],t)} + ${this.enableShapeUniforms?up(["r","c","d"],t):Si(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1008,9 +1008,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var Ww=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` + `}};var Hw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Wu.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?up(["r","c","d"],t):vi(["r","c","d"],t)} + ${this.enableShapeUniforms?up(["r","c","d"],t):Si(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1028,26 +1028,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var Uw=class{constructor(t){this.variableNames=["A"],this.outTexUsage=Yr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=` - ${Bw} + `}};var qw=class{constructor(t){this.variableNames=["A"],this.outTexUsage=Jr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=` + ${Gw} void main() { float x = getAAtOutCoords(); ${e.output} = encode_float(x); } - `}};var Hw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Yr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=` - ${Bw} + `}};var Kw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Jr.DOWNLOAD;let e=Ue();this.outputShape=t,this.userCode=` + ${Gw} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${e.output} = encode_float(x); } - `}};var Rot={R:0,G:1,B:2,A:3},lg=class{constructor(t,e=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let o=Ue();this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let s="result";e&&(s="floor(result * 255. + 0.5)");let i="";for(let a=0;ag1,createBufferFromOutputTexture:()=>b1,createFloat16MatrixTexture:()=>m1,createFloat16PackedMatrixTexture:()=>h1,createFloat32MatrixTexture:()=>p1,createIndexBuffer:()=>c1,createPackedMatrixTexture:()=>d1,createUnsignedBytesMatrixTexture:()=>f1,createVertexBuffer:()=>u1,createVertexShader:()=>l1,downloadByteEncodedFloatMatrixFromOutputTexture:()=>I1,downloadFloat32MatrixFromBuffer:()=>w1,downloadMatrixFromPackedOutputTexture:()=>v1,downloadPackedMatrixFromBuffer:()=>C1,getInternalFormatForFloat16MatrixTexture:()=>jw,getInternalFormatForFloat16PackedMatrixTexture:()=>Zw,getInternalFormatForFloat32MatrixTexture:()=>Kw,getInternalFormatForPackedMatrixTexture:()=>Yw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Xw,uploadDenseMatrixToTexture:()=>x1,uploadPixelDataToTexture:()=>y1});function l1(r){let t=Ue(),e=`${t.version} + `}};var k1={};Kt(k1,{bindVertexProgramAttributeStreams:()=>y1,createBufferFromOutputTexture:()=>I1,createFloat16MatrixTexture:()=>d1,createFloat16PackedMatrixTexture:()=>x1,createFloat32MatrixTexture:()=>f1,createIndexBuffer:()=>m1,createPackedMatrixTexture:()=>g1,createUnsignedBytesMatrixTexture:()=>h1,createVertexBuffer:()=>p1,createVertexShader:()=>c1,downloadByteEncodedFloatMatrixFromOutputTexture:()=>v1,downloadFloat32MatrixFromBuffer:()=>C1,downloadMatrixFromPackedOutputTexture:()=>N1,downloadPackedMatrixFromBuffer:()=>S1,getInternalFormatForFloat16MatrixTexture:()=>Yw,getInternalFormatForFloat16PackedMatrixTexture:()=>Qw,getInternalFormatForFloat32MatrixTexture:()=>Xw,getInternalFormatForPackedMatrixTexture:()=>Jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Zw,uploadDenseMatrixToTexture:()=>b1,uploadPixelDataToTexture:()=>w1});function c1(r){let t=Ue(),e=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1119,7 +1119,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return GT(r,e)}function u1(r){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 qT(r,t)}function c1(r){let t=new Uint16Array([0,1,2,2,1,3]);return KT(r,t)}function ug(r,t,e,n,o,s){XT(t,e);let i=jT(r),a=r.TEXTURE_2D;return ht(r,()=>r.bindTexture(a,i)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),L().getNumber("WEBGL_VERSION")===1?ht(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):ht(r,()=>r.texStorage2D(a,1,n,t,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Kw(r){return r.internalFormatFloat}function p1(r,t,e,n){let[o,s]=lp(t,e);return ug(r,o,s,Kw(n),n.textureFormatFloat,r.FLOAT)}function jw(r){return r.internalFormatHalfFloat}function m1(r,t,e,n){let[o,s]=lp(t,e);return ug(r,o,s,jw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Xw(r){return r.downloadTextureFormat}function f1(r,t,e,n){let[o,s]=lp(t,e);return ug(r,o,s,Xw(n),r.RGBA,r.UNSIGNED_BYTE)}function Yw(r){return r.internalFormatPackedFloat}function d1(r,t,e,n){let[o,s]=wa(t,e);return ug(r,o,s,Yw(n),r.RGBA,r.FLOAT)}function Zw(r){return r.internalFormatPackedHalfFloat}function h1(r,t,e,n){let[o,s]=wa(t,e);return ug(r,o,s,Zw(n),r.RGBA,n.textureTypeHalfFloat)}function g1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Pw(r,t,"clipSpacePos",e,3,20,0)&&Pw(r,t,"uv",e,2,20,12)}function x1(r,t,e,n,o,s){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),L().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function y1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):L().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function b1(r,t,e,n){let o=r.createBuffer();ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return ht(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function w1(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function I1(r,t,e,n){let[o,s]=lp(t,e),i=4,a=new Uint8Array(_L(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function C1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(EL(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function v1(r,t,e){let n=new Float32Array(t*e*4);return ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var pp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber("WEBGL_VERSION");if(t!=null?(this.gl=t,LT(e,t)):this.gl=qn(e),t=this.gl,L().getNumber("WEBGL_VERSION")===2){let s=t;this.createVertexArray=()=>ht(s,()=>s.createVertexArray()),this.bindVertexArray=i=>ht(s,()=>s.bindVertexArray(i)),this.deleteVertexArray=i=>ht(s,()=>s.deleteVertexArray(i)),this.getVertexArray=()=>ht(s,()=>s.getParameter(s.VERTEX_ARRAY_BINDING))}else if(t!=null){let s=t.getExtension("OES_vertex_array_object");if(s==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>ht(t,()=>s.createVertexArrayOES()),this.bindVertexArray=i=>ht(t,()=>s.bindVertexArrayOES(i)),this.deleteVertexArray=i=>ht(t,()=>s.deleteVertexArrayOES(i)),this.getVertexArray=()=>ht(t,()=>t.getParameter(s.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",o="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),L().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=yd(this.gl,s),Kn(this.gl,i))this.textureHalfFloatExtension=yd(this.gl,i);else if(L().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),Kn(this.gl,o))this.colorBufferHalfFloatExtension=yd(this.gl,o);else if(L().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",Kn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Kn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=u1(this.gl),this.indexBuffer=c1(this.gl),this.framebuffer=YT(this.gl),this.textureConfig=sg(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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 t=this.gl;ht(t,()=>t.finish()),ht(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),ht(t,()=>t.deleteFramebuffer(this.framebuffer)),ht(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),ht(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),ht(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),p1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),m1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),f1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),y1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),x1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),h1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),d1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Lw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>I1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return C1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return w1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=b1(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(L().getBool("WEBGL_FENCE_API_ENABLED")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>v1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=l1(e));let n=UT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),HT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&ig(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),g1(e,t,this.vertexBuffer)}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&(ht(this.gl,()=>this.gl.deleteProgram(t)),this.deleteVertexArray(t.vao))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&ig(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?ZT(this.gl,t,e):JT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),ht(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),QT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=wa(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&ig(this.gl,this.program),bd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;if(this.debug){let e=this.getVertexArray();console.assert(e===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}ht(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ht(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=yd(this.gl,L().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(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=Fot(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ag(this.gl,t,this.framebuffer),this.debug&&bd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ag(this.gl,this.outputTexture,this.framebuffer),this.debug&&bd(this.gl)):Lw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;ag(o,t,this.framebuffer),this.debug&&bd(o),this.outputTexture=t,ht(o,()=>o.viewport(0,0,e,n)),ht(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),ht(this.gl,()=>this.gl.scissor(t,e,n,o))}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 Fot(r){let t=0;for(;t`${r}.${e}`)}function rr(r,t){return t===1?[r]:N1(r,t)}function Fz(r,t){if(r===1)return"rc";let e="";for(let n=0;nr.bindTexture(a,i)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),L().getNumber("WEBGL_VERSION")===1?ht(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):ht(r,()=>r.texStorage2D(a,1,n,t,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Xw(r){return r.internalFormatFloat}function f1(r,t,e,n){let[o,s]=lp(t,e);return cg(r,o,s,Xw(n),n.textureFormatFloat,r.FLOAT)}function Yw(r){return r.internalFormatHalfFloat}function d1(r,t,e,n){let[o,s]=lp(t,e);return cg(r,o,s,Yw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Zw(r){return r.downloadTextureFormat}function h1(r,t,e,n){let[o,s]=lp(t,e);return cg(r,o,s,Zw(n),r.RGBA,r.UNSIGNED_BYTE)}function Jw(r){return r.internalFormatPackedFloat}function g1(r,t,e,n){let[o,s]=wa(t,e);return cg(r,o,s,Jw(n),r.RGBA,r.FLOAT)}function Qw(r){return r.internalFormatPackedHalfFloat}function x1(r,t,e,n){let[o,s]=wa(t,e);return cg(r,o,s,Qw(n),r.RGBA,n.textureTypeHalfFloat)}function y1(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),zw(r,t,"clipSpacePos",e,3,20,0)&&zw(r,t,"uv",e,2,20,12)}function b1(r,t,e,n,o,s){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),L().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function w1(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?L().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):L().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function I1(r,t,e,n){let o=r.createBuffer();ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return ht(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function C1(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function v1(r,t,e,n){let[o,s]=lp(t,e),i=4,a=new Uint8Array(DL(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function S1(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array($L(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function N1(r,t,e){let n=new Float32Array(t*e*4);return ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var pp=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=L().getNumber("WEBGL_VERSION");if(t!=null?(this.gl=t,BT(e,t)):this.gl=qn(e),t=this.gl,L().getNumber("WEBGL_VERSION")===2){let s=t;this.createVertexArray=()=>ht(s,()=>s.createVertexArray()),this.bindVertexArray=i=>ht(s,()=>s.bindVertexArray(i)),this.deleteVertexArray=i=>ht(s,()=>s.deleteVertexArray(i)),this.getVertexArray=()=>ht(s,()=>s.getParameter(s.VERTEX_ARRAY_BINDING))}else if(t!=null){let s=t.getExtension("OES_vertex_array_object");if(s==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>ht(t,()=>s.createVertexArrayOES()),this.bindVertexArray=i=>ht(t,()=>s.bindVertexArrayOES(i)),this.deleteVertexArray=i=>ht(t,()=>s.deleteVertexArrayOES(i)),this.getVertexArray=()=>ht(t,()=>t.getParameter(s.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",o="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),L().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=bd(this.gl,s),Kn(this.gl,i))this.textureHalfFloatExtension=bd(this.gl,i);else if(L().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),Kn(this.gl,o))this.colorBufferHalfFloatExtension=bd(this.gl,o);else if(L().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",Kn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Kn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=p1(this.gl),this.indexBuffer=m1(this.gl),this.framebuffer=JT(this.gl),this.textureConfig=ig(this.gl,this.textureHalfFloatExtension)}get debug(){return L().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 t=this.gl;ht(t,()=>t.finish()),ht(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),ht(t,()=>t.deleteFramebuffer(this.framebuffer)),ht(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),ht(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),ht(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),f1(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),d1(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),h1(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),w1(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),b1(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),x1(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),g1(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Bw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>v1(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return S1(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return C1(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=I1(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(L().getBool("WEBGL_FENCE_API_ENABLED")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>N1(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=c1(e));let n=qT(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),KT(e,n);let o=Object.assign(n,{vao:this.createVertexArray()});return this.debug&&ag(e,o),o}buildVao(t){this.setProgram(t),this.bindVertexArray(t.vao);let e=this.gl;ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),y1(e,t,this.vertexBuffer)}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&(ht(this.gl,()=>this.gl.deleteProgram(t)),this.deleteVertexArray(t.vao))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&ag(this.gl,this.program),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?QT(this.gl,t,e):t1(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),ht(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),e1(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=wa(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&ag(this.gl,this.program),wd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;if(this.debug){let e=this.getVertexArray();console.assert(e===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}ht(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ht(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=bd(this.gl,L().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(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=Lot(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in L().platform&&(n=L().platform.setTimeoutCustom.bind(L().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),lg(this.gl,t,this.framebuffer),this.debug&&wd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(lg(this.gl,this.outputTexture,this.framebuffer),this.debug&&wd(this.gl)):Bw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;lg(o,t,this.framebuffer),this.debug&&wd(o),this.outputTexture=t,ht(o,()=>o.viewport(0,0,e,n)),ht(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),ht(this.gl,()=>this.gl.scissor(t,e,n,o))}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 Lot(r){let t=0;for(;t`${r}.${e}`)}function rr(r,t){return t===1?[r]:T1(r,t)}function Pz(r,t){if(r===1)return"rc";let e="";for(let n=0;n= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}), cEdge ? 0. : getA(${e[1]}), rEdge ? 0. : getA(${e[2]}), - rEdge || cEdge ? 0. : getA(${e[3]})`}};var Ed=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let n="";for(let o=0;o<4;o++){let s="thisRC = rc;";o%2===1&&(s+="thisRC.z += 1;"),o>1&&(s+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${e[3]})`}};var Ad=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let n="";for(let o=0;o<4;o++){let s="thisRC = rc;";o%2===1&&(s+="thisRC.z += 1;"),o>1&&(s+="thisRC.y += 1;"),n+=` ${s} ${o>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -1158,8 +1158,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${o>0?"}":""} `}this.userCode=` - ${Oot(e,this.enableShapeUniforms)} - ${this.enableShapeUniforms?vd():Cd(t)} + ${zot(e,this.enableShapeUniforms)} + ${this.enableShapeUniforms?Sd():vd(t)} void main() { ivec3 rc = getOutputCoords(); @@ -1174,12 +1174,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function Oot(r,t){return` + `}};function zot(r,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?FL(["r","c","d"],"inputShape"):vi(["r","c","d"],r)} + ${t?PL(["r","c","d"],"inputShape"):Si(["r","c","d"],r)} return ivec3(r, c, d); } - `}var rI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=Mz(e,n),s=Pz(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=Oz(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].pop();return this.usedTextures[s].push(u),u}let a;return o===Pr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Pr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Pr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=Mz(n,o),i=Pz(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=Oz(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l&&l.indexOf(t);if(c==null||c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[c]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}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 t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function Mot(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function Oz(r,t,e,n,o){let s=Pot(t,n),i;if(o){let[u,l]=wa(r[0],r[1]);i=u*l}else{let[u,l]=lp(r[0],r[1]);i=u*l}let a=Mot(e,s);return i*a}function Pot(r,t){switch(r){case Pr.PACKED_2X2_FLOAT32:return Yw(t);case Pr.PACKED_2X2_FLOAT16:return Zw(t);case Pr.UNPACKED_FLOAT32:return Kw(t);case Pr.UNPACKED_FLOAT16:return jw(t);case Pr.PACKED_4X1_UNSIGNED_BYTE:return Xw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Lot(r){return L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?Pr.PACKED_2X2_FLOAT32:Pr.UNPACKED_FLOAT32:r?Pr.PACKED_2X2_FLOAT16:Pr.UNPACKED_FLOAT16}function Mz(r,t){if(r===Yr.UPLOAD)return Pr.PACKED_2X2_FLOAT32;if(r===Yr.RENDER||r==null)return Lot(t);if(r===Yr.DOWNLOAD||r===Yr.PIXELS)return Pr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function Pz(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Lr=class{constructor(t,e){this.variableNames=["A"],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` + `}var oI=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(t,e,n){let o=zz(e,n),s=Bz(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=Lz(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].pop();return this.usedTextures[s].push(u),u}let a;return o===Lr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Lr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Lr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=zz(n,o),i=Bz(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=Lz(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=L().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l&&l.indexOf(t);if(c==null||c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[c]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}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 t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function Bot(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function Lz(r,t,e,n,o){let s=Vot(t,n),i;if(o){let[u,l]=wa(r[0],r[1]);i=u*l}else{let[u,l]=lp(r[0],r[1]);i=u*l}let a=Bot(e,s);return i*a}function Vot(r,t){switch(r){case Lr.PACKED_2X2_FLOAT32:return Jw(t);case Lr.PACKED_2X2_FLOAT16:return Qw(t);case Lr.UNPACKED_FLOAT32:return Xw(t);case Lr.UNPACKED_FLOAT16:return Yw(t);case Lr.PACKED_4X1_UNSIGNED_BYTE:return Zw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Got(r){return L().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?Lr.PACKED_2X2_FLOAT32:Lr.UNPACKED_FLOAT32:r?Lr.PACKED_2X2_FLOAT16:Lr.UNPACKED_FLOAT16}function zz(r,t){if(r===Jr.UPLOAD)return Lr.PACKED_2X2_FLOAT32;if(r===Jr.RENDER||r==null)return Got(t);if(r===Jr.DOWNLOAD||r===Jr.PIXELS)return Lr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function Bz(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var zr=class{constructor(t,e){this.variableNames=["A"],this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${e} } @@ -1190,11 +1190,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},xr="if (isnan(x)) return x;",Lz="return x;",k1="return abs(x);";var zz="return (x >= 0.0) ? x : (exp(x) - 1.0);",Bz=xr+` + `}},xr="if (isnan(x)) return x;",Vz="return x;",_1="return abs(x);";var Gz="return (x >= 0.0) ? x : (exp(x) - 1.0);",Wz=xr+` return (x < 0.0) ? 0.0 : x; -`,Vz=xr+` +`,Uz=xr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Ia="return x;",Gz="return 1.0 / (1.0 + exp(-1.0 * x));";var Uz="return x;",Hz=` +`,Ia="return x;",Hz="return 1.0 / (1.0 + exp(-1.0 * x));";var Kz="return x;",jz=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1203,7 +1203,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,qz=` +`,Xz=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1213,7 +1213,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,Kz=` +`,Yz=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1223,7 +1223,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,jz="return 1.0 / (1.0 + exp(-1.0 * x));",Dn=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` +`,Zz="return 1.0 / (1.0 + exp(-1.0 * x));",Dn=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${e} } @@ -1234,14 +1234,14 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}};var nI=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let e=t.length,n=rr("rc",e),o=zt(e),s=Fz(e,n),i=n.slice(-2),a=e<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` + `}};var sI=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=he(this.outputShape.length);let e=t.length,n=rr("rc",e),o=zt(e),s=Pz(e,n),i=n.slice(-2),a=e<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` void main() { ${o} rc = getOutputCoords(); vec4 packedInput = getA(${s}); setOutput(getChannel(packedInput, ${a})); } - `}};var Bot=Kr.whereImpl,Vot=1e-7,Got=1e-4,oI={};function Wot(r){return r in oI||(oI[r]={}),oI[r]}var Uot=L().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),Hot=600;function qot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*Hot/1024/1024}var Ad=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!L().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let e;if(t!=null){if(t instanceof pp)e=t;else{let n=qn(L().getNumber("WEBGL_VERSION"),t);e=new pp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qn(L().getNumber("WEBGL_VERSION"));e=new pp(n),this.binaryCache=Wot(L().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new rI(this.gpgpu),this.numMBBeforeWarning=qot(),this.texData=new Ta(this,Bn())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=wd(e),c=new lg(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((L().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||L().getBool("DEBUG"))&&this.checkNumericalProblems(t),n==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:Yr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(L().getBool("DEBUG")&&this.checkNumericalProblems(e),o==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:n,dtype:o,values:e,usage:Yr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new Dn(a,Ia):m=new Lr(a,Ia);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o==="string")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=S.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new Dn(o,Ia):d=new Lr(o,Ia);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(L().getBool("DEBUG")&&!L().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&L().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(i!=="complex64"&&L().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...og(o))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(i==="complex64"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=S.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;ht(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Bn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let f;u?f=new Dn(s,Ia):f=new Lr(s,Ia);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let c=this.decode(t,e.customTexShape),p=Bn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else a.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=Uot){return L().getBool("WEBGL_CPU_FORWARD")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new nI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new eI(t.shape);return this.runWebGLProgram(e,[t],t.dtype,null,!0)}packedReshape(t,e){let n=[Fl(t.shape),...Ol(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[Fl(e),...Ol(e)],i=new Ed(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let a=wd(s),u;o?u=new Ww(a):u=new Gw(a);let l=!0,c=[e!=null?e:og(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===Wu.DENSE){let x=i!=null?i:og(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=L().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Uu(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=GL(t,c,p),f=this.getAndSaveBinary(m,()=>BL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get("ENGINE_COMPILE_ONLY")||VL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=L().getNumber("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(L().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=B(()=>{if(!L().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=L().getBool("DEBUG");L().set("DEBUG",!1);let e=this.abs(pt(1e-8)).dataSync()[0];if(L().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Vot:Got}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=t1(n,u),e.texShape=p),s!=null){let m=wd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=wa(p[0],p[1])),u?f=new qw(m,g):f=new lg(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Yr.PIXELS:w.usage=Yr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let I=[[h,d]],E=this.runWebGLProgram(f,[b],o,I,!0),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().get("ENGINE_COMPILE_ONLY")?this.disposeData(E.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(E.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return e!=null&&(n.values=Kot(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!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(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await Ih(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Mw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=a1(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||"RGBA";let{texture:o,height:s,width:i,channels:a}=t,u=Bn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=u.writeTexture(o,e,n,s,i,a);return Bn().makeTensorFromDataId(l,e,n,u)}};Ad.nextDataId=0;function Kot(r,t){if(t==="float32"||t==="complex64")return r;if(t==="int32"||t==="bool"){let e=t==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew Ad,2);var N$e={forceHalfFloat:Yz};var Dd=` + `}};var Uot=Xr.whereImpl,Hot=1e-7,qot=1e-4,iI={};function Kot(r){return r in iI||(iI[r]={}),iI[r]}var jot=L().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),Xot=600;function Yot(){return L().global.screen==null?1024:L().global.screen.height*L().global.screen.width*window.devicePixelRatio*Xot/1024/1024}var Dd=class r extends Bo{nextDataId(){return r.nextDataId++}constructor(t){if(super(),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.pendingDeletes=0,this.disposed=!1,!L().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let e;if(t!=null){if(t instanceof pp)e=t;else{let n=qn(L().getNumber("WEBGL_VERSION"),t);e=new pp(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qn(L().getNumber("WEBGL_VERSION"));e=new pp(n),this.binaryCache=Kot(L().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new oI(this.gpgpu),this.numMBBeforeWarning=Yot(),this.texData=new Ta(this,Bn())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=Id(e),c=new ug(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((L().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||L().getBool("DEBUG"))&&this.checkNumericalProblems(t),n==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:Jr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(L().getBool("DEBUG")&&this.checkNumericalProblems(e),o==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:n,dtype:o,values:e,usage:Jr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new Dn(a,Ia):m=new zr(a,Ia);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o==="string")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=S.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new Dn(o,Ia):d=new zr(o,Ia);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(L().getBool("DEBUG")&&!L().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&L().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(i!=="complex64"&&L().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...sg(o))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(i==="complex64"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=S.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;ht(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Bn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let f;u?f=new Dn(s,Ia):f=new zr(s,Ia);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let c=this.decode(t,e.customTexShape),p=Bn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else a.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(L().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=jot){return L().getBool("WEBGL_CPU_FORWARD")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Bn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new sI(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new nI(t.shape);return this.runWebGLProgram(e,[t],t.dtype,null,!0)}packedReshape(t,e){let n=[Fl(t.shape),...Ol(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[Fl(e),...Ol(e)],i=new Ad(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let a=Id(s),u;o?u=new Hw(a):u=new Uw(a);let l=!0,c=[e!=null?e:sg(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===Wu.DENSE){let x=i!=null?i:sg(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=L().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Uu(b.shape,x.shape)){let w=x,I=x.shape;x.shape=b.shape,x=this.packedReshape(x,I),l.push(x),b=this.texData.get(x.dataId),w.shape=I}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=HL(t,c,p),f=this.getAndSaveBinary(m,()=>WL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),L().get("ENGINE_COMPILE_ONLY")||UL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=L().getNumber("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!L().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(L().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=B(()=>{if(!L().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=L().getBool("DEBUG");L().set("DEBUG",!1);let e=this.abs(pt(1e-8)).dataSync()[0];if(L().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Hot:qot}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=r1(n,u),e.texShape=p),s!=null){let m=Id(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=wa(p[0],p[1])),u?f=new jw(m,g):f=new ug(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Jr.PIXELS:w.usage=Jr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let I=[[h,d]],E=this.runWebGLProgram(f,[b],o,I,!0),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,L().get("ENGINE_COMPILE_ONLY")?this.disposeData(E.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(E.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return e!=null&&(n.values=Zot(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!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(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await Ch(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Lw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let t of Object.values(this.binaryCache)){this.gpgpu.buildVao(t.webGLProgram);let{variablesLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:u}=u1(this.gpgpu,t.program,t.webGLProgram);t.variablesLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.outShapeLocation=i,t.outShapeStridesLocation=a,t.outTexShapeLocation=u}}createTensorFromGPUData(t,e,n){t.channels=t.channels||"RGBA";let{texture:o,height:s,width:i,channels:a}=t,u=Bn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=u.writeTexture(o,e,n,s,i,a);return Bn().makeTensorFromDataId(l,e,n,u)}};Dd.nextDataId=0;function Zot(r,t){if(t==="float32"||t==="complex64")return r;if(t==="int32"||t==="bool"){let e=t==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew Dd,2);var T$e={forceHalfFloat:Qz};var $d=` if (isnan(a)) return a; if (isnan(b)) return b; `;var $n=class{constructor(t,e,n){this.variableNames=["A","B"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=he(this.outputShape.length),this.userCode=` @@ -1303,13 +1303,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function nr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var Zz={kernelName:go,backendName:"webgl",kernelFunc:nr};function Rn(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,"complex64"),i=e.texData.get(s.dataId),a=nr({inputs:{x:n},backend:e}),u=nr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var Jz={kernelName:Ap,backendName:"webgl",kernelFunc:Rn};var T1="return (a < 0.) ? b * a : a;",_1=` + `}};function nr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var t3={kernelName:go,backendName:"webgl",kernelFunc:nr};function Rn(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,"complex64"),i=e.texData.get(s.dataId),a=nr({inputs:{x:n},backend:e}),u=nr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var e3={kernelName:Ap,backendName:"webgl",kernelFunc:Rn};var E1="return (a < 0.) ? b * a : a;",A1=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function jot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new jn(_1,o.shape,i.shape):new $n(T1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var Qz={kernelName:bs,backendName:"webgl",kernelFunc:jot};var E1="return (a < 0.) ? b * a : a;",A1=` +`;function Jot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new jn(A1,o.shape,i.shape):new $n(E1,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var r3={kernelName:bs,backendName:"webgl",kernelFunc:Jot};var D1="return (a < 0.) ? b * a : a;",$1=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function Xot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new jn(A1,n.shape,o.shape):new $n(E1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var t3={kernelName:Os,backendName:"webgl",kernelFunc:Xot};var Po="if (isnan(x)) return x;";function It({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=L().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new Dn(i.shape,t):c=new Lr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ce({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype==="complex64"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new $n(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Rn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(u.dtype,l.dtype);if((u.dtype==="string"||l.dtype==="string"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype==="string"?S.fromUint8ToStringArray(d):d,x=u.dtype==="string"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new jn(t,u.shape,l.shape,e):f=new $n(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Ml(r,t=!1){if(r==="linear")return t?Uz:Lz;if(r==="relu")return t?qz:Bz;if(r==="elu")return t?Hz:zz;if(r==="relu6")return t?Kz:Vz;if(r==="prelu")return t?A1:E1;if(r==="leakyrelu")return t?_1:T1;if(r==="sigmoid")return t?jz:Gz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var $d=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=he(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=o?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",x="";a&&(u?g=`vec4 activation(vec4 a) { +`;function Qot(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new jn($1,n.shape,o.shape):new $n(D1,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var n3={kernelName:Os,backendName:"webgl",kernelFunc:Qot};var Po="if (isnan(x)) return x;";function It({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=L().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new Dn(i.shape,t):c=new zr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ce({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype==="complex64"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[I,N]=w,E={dataId:I.dataId,dtype:I.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},D=new $n(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,A],ur(I.dtype,N.dtype))}),b=Rn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ur(u.dtype,l.dtype);if((u.dtype==="string"||l.dtype==="string"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype==="string"?S.fromUint8ToStringArray(d):d,x=u.dtype==="string"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),I=c.makeTensorInfo(w,p),N=c.texData.get(I.dataId);return N.values=b,I}let m=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new jn(t,u.shape,l.shape,e):f=new $n(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Ml(r,t=!1){if(r==="linear")return t?Kz:Vz;if(r==="relu")return t?Xz:Wz;if(r==="elu")return t?jz:Gz;if(r==="relu6")return t?Yz:Uz;if(r==="prelu")return t?$1:D1;if(r==="leakyrelu")return t?A1:E1;if(r==="sigmoid")return t?Zz:Hz;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Rd=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=he(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=o?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",x="";a&&(u?g=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${a} }`:l?g=`vec4 activation(vec4 a) { @@ -1348,7 +1348,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};var D1={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},cg=class{constructor(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.userCode=` + `}};var R1={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},pg=class{constructor(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${t} @@ -1361,7 +1361,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}};var e3="return a * b;";function pg(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=S.upcastType(n.dtype,o.dtype);if(n.dtype==="complex64"){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),l=new cg(D1.REAL,n.shape,o.shape),c=new cg(D1.IMAG,n.shape,o.shape),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:n.shape},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:n.shape},{dataId:u.complexTensorInfos.real.dataId,dtype:u.complexTensorInfos.real.dtype,shape:o.shape},{dataId:u.complexTensorInfos.imag.dataId,dtype:u.complexTensorInfos.imag.dtype,shape:o.shape}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=Rn({inputs:{real:m,imag:f},backend:e});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}if(e.shouldExecuteOnCPU([n,o])){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),[l,c]=cz(n.shape,o.shape,a.values,u.values,s),p=e.makeTensorInfo(c,s),m=e.texData.get(p.dataId);return m.values=l,p}let i;return L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new jn(e3,n.shape,o.shape):i=new $n(e3,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var r3={kernelName:Ds,backendName:"webgl",kernelFunc:pg};function n3(r,t,e){let n=[Fl(r.shape),...Ol(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[Fl(t),...Ol(t)],i=new Ed(s,n),a=!0,u=[n],l=e.runWebGLProgram(i,[o],r.dtype,u,a);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=e,a=y.sizeFromShape(o.shape),u=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(u);y.assert(a===l,()=>`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Uu(o.shape,u)&&!(c.texture!==null&&Uu(c.shape,u))?n3(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var o3={kernelName:Vi,backendName:"webgl",kernelFunc:rt};var mg=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l="sumValue += dot(values, ones);";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%n>0&&(c=` + `}};var o3="return a * b;";function mg(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=S.upcastType(n.dtype,o.dtype);if(n.dtype==="complex64"){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),l=new pg(R1.REAL,n.shape,o.shape),c=new pg(R1.IMAG,n.shape,o.shape),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:n.shape},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:n.shape},{dataId:u.complexTensorInfos.real.dataId,dtype:u.complexTensorInfos.real.dtype,shape:o.shape},{dataId:u.complexTensorInfos.imag.dataId,dtype:u.complexTensorInfos.imag.dtype,shape:o.shape}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=Rn({inputs:{real:m,imag:f},backend:e});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}if(e.shouldExecuteOnCPU([n,o])){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),[l,c]=fz(n.shape,o.shape,a.values,u.values,s),p=e.makeTensorInfo(c,s),m=e.texData.get(p.dataId);return m.values=l,p}let i;return L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new jn(o3,n.shape,o.shape):i=new $n(o3,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var s3={kernelName:Ds,backendName:"webgl",kernelFunc:mg};function i3(r,t,e){let n=[Fl(r.shape),...Ol(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[Fl(t),...Ol(t)],i=new Ad(s,n),a=!0,u=[n],l=e.runWebGLProgram(i,[o],r.dtype,u,a);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=e,a=y.sizeFromShape(o.shape),u=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(u);y.assert(a===l,()=>`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Uu(o.shape,u)&&!(c.texture!==null&&Uu(c.shape,u))?i3(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var a3={kernelName:Gi,backendName:"webgl",kernelFunc:rt};var fg=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l="sumValue += dot(values, ones);";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%n>0&&(c=` if (inIdx < 0 || inIdx >= ${s}) { return 0.0; } @@ -1414,7 +1414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}};var sI=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a="0.0",u="";e==="prod"?a="1.0":e==="min"?(a="1.0 / 1e-20",u="min"):e==="max"&&(a="-1.0 / 1e-20",u="max");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="sum"?l="sumValue":e==="prod"?l="prodValue":e==="all"?l="allValue":e==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,p=n%4,m=` + `}};var aI=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a="0.0",u="";e==="prod"?a="1.0":e==="min"?(a="1.0 / 1e-20",u="min"):e==="max"&&(a="-1.0 / 1e-20",u="max");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="sum"?l="sumValue":e==="prod"?l="prodValue":e==="all"?l="allValue":e==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,p=n%4,m=` if (${e==="sum"}) { sumValue += dot(values, ones); } else if (${e==="prod"}) { @@ -1506,12 +1506,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function Zot(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=S.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Yn(r,t,e,n){let o=Zot(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=N1("rc",this.rank),i=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=T1("rc",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],A=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],M=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u==="leakyrelu",H=u!=null?Ml(u,!0):null,K=G||W||q||H!=null,Y;if((f===1||d===1)&&V>$1&&K===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,lt=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[M,V,1]}}),F.push(ot));let it=d===1?2:1,ft=nt;lt&&(ft=rt({inputs:{x:nt},backend:o,attrs:{shape:[M,1,V]}}),F.push(ft));let gt=pg({inputs:{a:ot,b:ft},backend:o});Y=fp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new $d(N,E,[M,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let lt=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));st.push(lt),F.push(lt)}Y=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:Y},backend:o,attrs:{shape:I}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return dp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var l3={kernelName:ji,backendName:"webgl",kernelFunc:Qot};var u3="return abs(x);";function tst(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!=="complex64"){let s=e.texData.get(n.dataId),i=Qw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Dn(n.shape,u3):o=new Lr(n.shape,u3),e.runWebGLProgram(o,[n],n.dtype)}var c3={kernelName:Ei,backendName:"webgl",kernelFunc:tst};var est=xr+` + `}};function Hu(r,t,e){let n=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new uI(r.shape,t):new lI(r.shape,t);return e.runWebGLProgram(n,[r],r.dtype)}function l3(r,t,e,n){let o=t,s=r.shape.length,i=y.parseAxisParam(o,r.shape),a=i,u=S.getAxesPermutation(a,s),l=u!=null,c=r;l&&(c=Hu(r,u,n),a=S.getInnerMostAxes(a.length,s)),S.assertAxesAreInnerMostDims("sum",a,s);let[p,m]=S.computeOutAndReduceShapes(c.shape,a),f=p;e&&(f=S.expandShapeToKeepDim(p,i));let d=y.sizeFromShape(m),g=y.sizeFromShape(r.shape)/d,x=rt({inputs:{x:c},attrs:{shape:[g,d]},backend:n}),b=lc(r.dtype),w=Yn(x,b,"sum",n),I=rt({inputs:{x:w},attrs:{shape:f},backend:n});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(w),l&&n.disposeIntermediateTensorInfo(c),I}function fp(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;return l3(o,s,i,e)}var u3={kernelName:Js,backendName:"webgl",kernelFunc:fp};function Pe(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{perm:s}=n,i=e,a=o.shape.length,u=new Array(a);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],A=rt({inputs:{x:r},backend:o,attrs:{shape:N}}),D=rt({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,D],M=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u==="leakyrelu",H=u!=null?Ml(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>F1&&j===!1){let et=A,nt=D;e&&(et=Pe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(nt=Pe({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),F.push(nt));let st=d!==1,lt=d===1,ot=et;st&&(ot=rt({inputs:{x:et},backend:o,attrs:{shape:[M,V,1]}}),F.push(ot));let it=d===1?2:1,ft=nt;lt&&(ft=rt({inputs:{x:nt},backend:o,attrs:{shape:[M,1,V]}}),F.push(ft));let gt=mg({inputs:{a:ot,b:ft},backend:o});Y=fp({inputs:{x:gt},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(gt)}else{let et=ur(r.dtype,t.dtype),nt=new Rd(N,E,[M,f,d],e,n,G,H,W,q),st=[A,D];if(s!=null&&st.push(s),W&&st.push(i),q){let lt=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));st.push(lt),F.push(lt)}Y=o.runWebGLProgram(nt,st,et)}let Z=rt({inputs:{x:Y},backend:o,attrs:{shape:I}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function nst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return dp({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var p3={kernelName:Xi,backendName:"webgl",kernelFunc:nst};var m3="return abs(x);";function ost(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!=="complex64"){let s=e.texData.get(n.dataId),i=eI(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Dn(n.shape,m3):o=new zr(n.shape,m3),e.runWebGLProgram(o,[n],n.dtype)}var f3={kernelName:Ai,backendName:"webgl",kernelFunc:ost};var sst=xr+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,rst=It({opSnippet:est}),p3={kernelName:Go,backendName:"webgl",kernelFunc:rst};var nst=xr+` +`,ist=It({opSnippet:sst}),d3={kernelName:Go,backendName:"webgl",kernelFunc:ist};var ast=xr+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,ost=It({opSnippet:nst}),m3={kernelName:Wo,backendName:"webgl",kernelFunc:ost};var f3="return a + b;",sst=ce({opSnippet:f3,packedOpSnippet:f3,supportsComplex:!0,cpuKernelImpl:WL}),d3={kernelName:no,backendName:"webgl",kernelFunc:sst};var lI=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,lst=It({opSnippet:ast}),h3={kernelName:Wo,backendName:"webgl",kernelFunc:lst};var g3="return a + b;",ust=ce({opSnippet:g3,packedOpSnippet:g3,supportsComplex:!0,cpuKernelImpl:qL}),x3={kernelName:no,backendName:"webgl",kernelFunc:ust};var cI=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1543,7 +1543,7 @@ return log(x + sqrt(x * x - 1.0));`,ost=It({opSnippet:nst}),m3={kernelName:Wo,ba float result = ${o}; setOutput(result); } - `}};var uI=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` + `}};var pI=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1551,7 +1551,7 @@ return log(x + sqrt(x * x - 1.0));`,ost=It({opSnippet:nst}),m3={kernelName:Wo,ba vec4 result = ${o}; setOutput(result); } - `}};function cI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return nr({inputs:{x:n[0]},backend:e});if(n.length>L().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=cI({inputs:n.slice(0,u),backend:e}),c=cI({inputs:n.slice(u),backend:e});return cI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool("WEBGL_PACK")?new uI(n[0].shape,s):new lI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var h3={kernelName:Uo,backendName:"webgl",kernelFunc:cI};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("all",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,"all",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var g3={kernelName:Ea,backendName:"webgl",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("any",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,"any",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var x3={kernelName:Aa,backendName:"webgl",kernelFunc:ast};var pI=class{constructor(t,e,n){this.variableNames=["A"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push("bestIndicesA"),this.outputShape=[s,i];let a=e==="max"?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function mI(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return nr({inputs:{x:n[0]},backend:e});if(n.length>L().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=mI({inputs:n.slice(0,u),backend:e}),c=mI({inputs:n.slice(u),backend:e});return mI({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ur(u,l)),s=n.map(u=>u.shape),a=L().getBool("WEBGL_PACK")?new pI(n[0].shape,s):new cI(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var y3={kernelName:Uo,backendName:"webgl",kernelFunc:mI};function cst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("all",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,"all",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var b3={kernelName:Ea,backendName:"webgl",kernelFunc:cst};function pst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("any",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Yn(h,h.dtype,"any",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=rt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=rt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var w3={kernelName:Aa,backendName:"webgl",kernelFunc:pst};var fI=class{constructor(t,e,n){this.variableNames=["A"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push("bestIndicesA"),this.outputShape=[s,i];let a=e==="max"?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1571,7 +1571,7 @@ return log(x + sqrt(x * x - 1.0));`,ost=It({opSnippet:nst}),m3={kernelName:Wo,ba } setOutput(float(bestIndex)); } - `}};var mI=class{constructor(t,e,n,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push("bestIndicesA");let a=this.outputShape,u=a.length,l=zt(u),c=rr("coords",u),p,m;if(i===1){m=u+1;let D=zt(m);p=` + `}};var dI=class{constructor(t,e,n,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push("bestIndicesA");let a=this.outputShape,u=a.length,l=zt(u),c=rr("coords",u),p,m;if(i===1){m=u+1;let D=zt(m);p=` ${D} sourceLocR = ${D}(${c.join()}, 0); ++${c[u-1]}; ${D} sourceLocG = ${D}(${c.join()}, 0); @@ -1633,25 +1633,25 @@ return log(x + sqrt(x * x - 1.0));`,ost=It({opSnippet:nst}),m3={kernelName:Wo,ba } setOutput(bestIndex); } - `}};function y3(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new pI(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,"int32");if(c.shape[1]===1)return c;let p=y3(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function b3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new mI(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,"int32");if(l.shape.length===t.shape.length){let c=b3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function fI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=y3(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return b3(r,t,n)}function lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=fI(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var w3={kernelName:Ai,backendName:"webgl",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=fI(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var I3={kernelName:Di,backendName:"webgl",kernelFunc:ust};var cst=xr+` + `}};function I3(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new fI(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,"int32");if(c.shape[1]===1)return c;let p=I3(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function C3(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new dI(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,"int32");if(l.shape.length===t.shape.length){let c=C3(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function hI(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!L().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=rt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=I3(r,m,n);s.push(f);let d=rt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return C3(r,t,n)}function mst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=hI(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var v3={kernelName:Di,backendName:"webgl",kernelFunc:mst};function fst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Pe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=hI(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var S3={kernelName:$i,backendName:"webgl",kernelFunc:fst};var dst=xr+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,pst=It({opSnippet:cst}),C3={kernelName:Ho,backendName:"webgl",kernelFunc:pst};var mst=xr+"return log(x + sqrt(x * x + 1.0));",fst=It({opSnippet:mst}),v3={kernelName:qo,backendName:"webgl",kernelFunc:fst};var dst=xr+` +`,hst=It({opSnippet:dst}),N3={kernelName:Ho,backendName:"webgl",kernelFunc:hst};var gst=xr+"return log(x + sqrt(x * x + 1.0));",xst=It({opSnippet:gst}),k3={kernelName:qo,backendName:"webgl",kernelFunc:xst};var yst=xr+` return atan(x); -`,hst=It({opSnippet:dst}),S3={kernelName:Ko,backendName:"webgl",kernelFunc:hst};var gst=Dd+` +`,bst=It({opSnippet:yst}),T3={kernelName:Ko,backendName:"webgl",kernelFunc:bst};var wst=$d+` return atan(a, b); -`,xst=` +`,Ist=` vec4 result = atan(a, b); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); `+Xn+` return result; -`,yst=ce({opSnippet:gst,packedOpSnippet:xst}),N3={kernelName:Xo,backendName:"webgl",kernelFunc:yst};var bst=xr+` +`,Cst=ce({opSnippet:wst,packedOpSnippet:Ist}),_3={kernelName:Xo,backendName:"webgl",kernelFunc:Cst};var vst=xr+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelName:jo,backendName:"webgl",kernelFunc:wst};var Si=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=["x"],e==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e==="avg",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b="0.0";if(h||(b="-1.0 / 1e-20"),n){let D=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Sst=It({opSnippet:vst}),E3={kernelName:jo,backendName:"webgl",kernelFunc:Sst};var Ni=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=["x"],e==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e==="avg",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b="0.0";if(h||(b="-1.0 / 1e-20"),n){let D=">=";this.userCode=` const ivec2 strides = ivec2(${a}, ${u}); const ivec2 pads = ivec2(${f}, ${d}); @@ -1955,7 +1955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(${E}); } - `}};function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Ci(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Si(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var T3={kernelName:Yo,backendName:"webgl",kernelFunc:Ist};function Cst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new qu(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var _3={kernelName:$i,backendName:"webgl",kernelFunc:Cst};var dI=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=` + `}};function Nst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;vi(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Ni(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var A3={kernelName:Yo,backendName:"webgl",kernelFunc:Nst};function kst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new qu(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var D3={kernelName:Ri,backendName:"webgl",kernelFunc:kst};var gI=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=` const ivec2 pads = ivec2(${c}, ${p}); const float avgMultiplier = float(${m}); @@ -1997,7 +1997,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}},hI=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=` + `}},xI=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=` const ivec3 pads = ivec3(${d}, ${h}, ${g}); const float avgMultiplier = float(${x}); @@ -2053,7 +2053,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}};function vst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new hI(m);return e.runWebGLProgram(f,[o],i.dtype)}var E3={kernelName:Hl,backendName:"webgl",kernelFunc:vst};function Sst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Ci([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new dI(c);return e.runWebGLProgram(p,[o],i.dtype)}var A3={kernelName:Ul,backendName:"webgl",kernelFunc:Sst};function Nst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return dp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var D3={kernelName:Zo,backendName:"webgl",kernelFunc:Nst};var gI=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="0.0";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="1.0";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` + `}};function Tst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new xI(m);return e.runWebGLProgram(f,[o],i.dtype)}var $3={kernelName:Hl,backendName:"webgl",kernelFunc:Tst};function _st(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;vi([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new gI(c);return e.runWebGLProgram(p,[o],i.dtype)}var R3={kernelName:Ul,backendName:"webgl",kernelFunc:_st};function Est(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return dp({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var F3={kernelName:Zo,backendName:"webgl",kernelFunc:Est};var yI=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="0.0";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="1.0";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2063,7 +2063,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN float inv = scale * inversesqrt(variance + float(${i})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}};var xI=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="vec4(0.0)";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="vec4(1.0)";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` + `}};var bI=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="vec4(0.0)";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="vec4(1.0)";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` void main() { vec4 offset = ${a}; vec4 scale = ${u}; @@ -2076,7 +2076,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN setOutput((x - mean) * inv + offset); } - `}};var kst=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(a==null||o.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=L().getBool("WEBGL_PACK_NORMALIZATION")?new xI(n.shape,o.shape,s.shape,c,p,u):new gI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},$3={kernelName:ds,backendName:"webgl",kernelFunc:kst};var yI=class{constructor(t){this.variableNames=["source"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Tst(this.rank),o,s=t.map((i,a)=>`sourceLoc.${R1[a]} = start[${a}] + coords.${R1[a]};`);o=` + `}};var Ast=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(a==null||o.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=L().getBool("WEBGL_PACK_NORMALIZATION")?new bI(n.shape,o.shape,s.shape,c,p,u):new yI(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},O3={kernelName:ds,backendName:"webgl",kernelFunc:Ast};var wI=class{constructor(t){this.variableNames=["source"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Dst(this.rank),o,s=t.map((i,a)=>`sourceLoc.${O1[a]} = start[${a}] + coords.${O1[a]};`);o=` ${e} sourceLoc; ${e} coords = getOutputCoords(); ${s.join(` @@ -2086,7 +2086,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ${o} setOutput(getSource(${n})); } - `}},R1=["x","y","z","w","u","v"];function Tst(r){if(r===1)return"sourceLoc";if(r<=6)return R1.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var bI=class{constructor(t){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let e=zt(this.rank),n=rr("coords",this.rank),o=rr("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=` + `}},O1=["x","y","z","w","u","v"];function Dst(r){if(r===1)return"sourceLoc";if(r<=6)return O1.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var II=class{constructor(t){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let e=zt(this.rank),n=rr("coords",this.rank),o=rr("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=` result.x = ${i}; if (++${n[this.rank-1]} < ${t[this.rank-1]}) { ++${o[this.rank-1]}; @@ -2115,15 +2115,15 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ${u} setOutput(result); } - `}};function _st(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Be.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function Ni(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Be.parseSliceParams(o,s,i);if(Be.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype==="string"){let p=e.texData.get(o.dataId),m=Iz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Be.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new bI(u):new yI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),_st(o,a,u,e)}var R3={kernelName:Wi,backendName:"webgl",kernelFunc:Ni};var Est=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((b,w)=>b*w),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=Ni({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},F3={kernelName:Ri,backendName:"webgl",kernelFunc:Est};function Ast(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Jw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var O3={kernelName:Da,backendName:"webgl",kernelFunc:Ast};var Dst=` + `}};function $st(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Be.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ki(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Be.parseSliceParams(o,s,i);if(Be.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype==="string"){let p=e.texData.get(o.dataId),m=Sz(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Be.isSliceContinous(o.shape,a,u);if(l||!c){let p=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new II(u):new wI(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),$st(o,a,u,e)}var M3={kernelName:Ui,backendName:"webgl",kernelFunc:ki};var Rst=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((b,w)=>b*w),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=rt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Pe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=rt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ki({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},P3={kernelName:Fi,backendName:"webgl",kernelFunc:Rst};function Fst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=tI(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var L3={kernelName:Da,backendName:"webgl",kernelFunc:Fst};var Ost=` int r = int(a.r) & int(b.r); int g = int(a.g) & int(b.g); int rb = int(a.b) & int(b.b); int ra = int(a.a) & int(b.a); return vec4(r, g, rb, ra); -`,$st=` +`,Mst=` return float(int(a.r) & int(b.r)); -`;function Rst(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=L().getNumber("WEBGL_VERSION");if(e.shouldExecuteOnCPU([n,o])||i===1){let u=e.texData.get(n.dataId).values,l=e.texData.get(o.dataId).values,[c,p]=HL(n.shape,o.shape,u,l,n.dtype),m=e.makeTensorInfo(p,n.dtype),f=e.texData.get(m.dataId);return f.values=c,m}let a;return s?a=new jn(Dst,n.shape,o.shape,!1):a=new $n($st,n.shape,o.shape),e.runWebGLProgram(a,[n,o],n.dtype)}var M3={kernelName:$a,backendName:"webgl",kernelFunc:Rst};function Fst(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var P3={kernelName:ql,backendName:"webgl",kernelFunc:Fst};var Ost="return float(a != b);",F1=ce({opSnippet:Ost,cpuKernelImpl:mz,dtype:"bool"}),L3={kernelName:Za,backendName:"webgl",kernelFunc:F1};function Pl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.real},backend:e})}var z3={kernelName:Vp,backendName:"webgl",kernelFunc:Pl};var Mst="return float(int(x));";function B3(r,t){let e=new Lr(r.shape,Mst),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function O1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return nr({inputs:{x:o},backend:e});let i=ke(o.shape),a=O1({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=Rn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=Pl({inputs:{input:o},backend:e}),a=O1({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=nr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=qL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return B3(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=F1({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var V3={kernelName:fo,backendName:"webgl",kernelFunc:O1};var G3="return ceil(x);",Pst=It({opSnippet:G3,packedOpSnippet:G3,cpuKernelImpl:KL}),W3={kernelName:Jo,backendName:"webgl",kernelFunc:Pst};var wI=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` +`;function Pst(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=L().getNumber("WEBGL_VERSION");if(e.shouldExecuteOnCPU([n,o])||i===1){let u=e.texData.get(n.dataId).values,l=e.texData.get(o.dataId).values,[c,p]=jL(n.shape,o.shape,u,l,n.dtype),m=e.makeTensorInfo(p,n.dtype),f=e.texData.get(m.dataId);return f.values=c,m}let a;return s?a=new jn(Ost,n.shape,o.shape,!1):a=new $n(Mst,n.shape,o.shape),e.runWebGLProgram(a,[n,o],n.dtype)}var z3={kernelName:$a,backendName:"webgl",kernelFunc:Pst};function Lst(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var B3={kernelName:ql,backendName:"webgl",kernelFunc:Lst};var zst="return float(a != b);",M1=ce({opSnippet:zst,cpuKernelImpl:hz,dtype:"bool"}),V3={kernelName:Za,backendName:"webgl",kernelFunc:M1};function Pl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.real},backend:e})}var G3={kernelName:Vp,backendName:"webgl",kernelFunc:Pl};var Bst="return float(int(x));";function W3(r,t){let e=new zr(r.shape,Bst),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function P1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return nr({inputs:{x:o},backend:e});let i=ke(o.shape),a=P1({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=Rn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=Pl({inputs:{input:o},backend:e}),a=P1({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=nr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=XL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return W3(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=M1({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var U3={kernelName:fo,backendName:"webgl",kernelFunc:P1};var H3="return ceil(x);",Vst=It({opSnippet:H3,packedOpSnippet:H3,cpuKernelImpl:YL}),q3={kernelName:Jo,backendName:"webgl",kernelFunc:Vst};var CI=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2134,7 +2134,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN setOutput(clamp(value, minVal, maxVal)); } - `}};var II=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` + `}};var vI=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2145,7 +2145,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function Lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool("WEBGL_PACK_CLIP")?a=new II(o.shape):a=new wI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var U3={kernelName:ho,backendName:"webgl",kernelFunc:Lst};var CI=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` + `}};function Gst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;L().getBool("WEBGL_PACK_CLIP")?a=new vI(o.shape):a=new CI(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var K3={kernelName:ho,backendName:"webgl",kernelFunc:Gst};var SI=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2158,7 +2158,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function H3(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function zst(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new CI(n.shape),i=[H3(n,o.complexTensorInfos.real),H3(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var q3={kernelName:Kl,backendName:"webgl",kernelFunc:zst};var vI=class{constructor(t){this.outputShape=[],this.outputShape=S.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) { return getChannel( - getT${h}(${SI(a,l,g)}), - vec2(${SI(c,l,g)})); + getT${h}(${kI(a,l,g)}), + vec2(${kI(c,l,g)})); }`}let f=u.length,d=u[u.length-1];m+=` return getChannel( - getT${f}(${SI(a,l,d)}), - vec2(${SI(c,l,d)}));`,this.userCode=` + getT${f}(${kI(a,l,d)}), + vec2(${kI(c,l,d)}));`,this.userCode=` float getValue(${a.map(h=>"int "+h)}) { ${m} } @@ -2204,7 +2204,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(result); } - `}};function SI(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function hp(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var K3={kernelName:Pp,backendName:"webgl",kernelFunc:hp};function Rd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let f=r.map(b=>Pl({inputs:{input:b},backend:e})),d=r.map(b=>hp({inputs:{input:b},backend:e})),h=Rd(f,t,e),g=Rd(d,t,e),x=Rn({inputs:{real:h,imag:g},backend:e});return f.forEach(b=>e.disposeIntermediateTensorInfo(b)),d.forEach(b=>e.disposeIntermediateTensorInfo(b)),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),x}let o=e.shouldExecuteOnCPU(r);if(n==="string"&&(o=!0),o){let f=r.map(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=jL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let f=i?new Lr(r[0].shape,Ia):new Dn(r[0].shape,Ia);return e.runWebGLProgram(f,r,n)}let a=L().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>a){let f=[];for(let h=0;hd.shape),t);return e.runWebGLProgram(f,s,n)}let{tensors2D:u,outShape:l}=Bst(s,t,e),c=new vI(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Bst(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function M1(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?nr({inputs:{x:u[0]},backend:e}):Rd(u,s,e)}var j3={kernelName:Fi,backendName:"webgl",kernelFunc:M1};var Fd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,w=g?3:1,I="",N="";n&&(o?I=`float activation(float a) { + `}};function kI(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function hp(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return nr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var Y3={kernelName:Pp,backendName:"webgl",kernelFunc:hp};function Fd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let f=r.map(b=>Pl({inputs:{input:b},backend:e})),d=r.map(b=>hp({inputs:{input:b},backend:e})),h=Fd(f,t,e),g=Fd(d,t,e),x=Rn({inputs:{real:h,imag:g},backend:e});return f.forEach(b=>e.disposeIntermediateTensorInfo(b)),d.forEach(b=>e.disposeIntermediateTensorInfo(b)),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),x}let o=e.shouldExecuteOnCPU(r);if(n==="string"&&(o=!0),o){let f=r.map(I=>{let E=[-1,y.sizeFromShape(I.shape.slice(t))];return rt({inputs:{x:I},backend:e,attrs:{shape:E}})}),d=f.map(I=>({vals:e.readSync(I.dataId),shape:I.shape})),h=S.computeOutShape(f.map(I=>I.shape),1),g=f[0].shape[0]===1,x=ZL(d,h,n,g),b=S.computeOutShape(r.map(I=>I.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let f=i?new zr(r[0].shape,Ia):new Dn(r[0].shape,Ia);return e.runWebGLProgram(f,r,n)}let a=L().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>a){let f=[];for(let h=0;hd.shape),t);return e.runWebGLProgram(f,s,n)}let{tensors2D:u,outShape:l}=Ust(s,t,e),c=new NI(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=rt({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function Ust(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>rt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function L1(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?nr({inputs:{x:u[0]},backend:e}):Fd(u,s,e)}var Z3={kernelName:Oi,backendName:"webgl",kernelFunc:L1};var Od=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,w=g?3:1,I="",N="";n&&(o?I=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:s?I=`float activation(float a) { @@ -2338,7 +2338,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ${N} setOutput(result); } - `}},kI=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=` + `}},_I=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${s}, ${i}, ${a}); const ivec3 pads = ivec3(${e}, ${n}, ${o}); @@ -2426,7 +2426,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}};var Od=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=` + `}};var Md=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function EI({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat==="channelsLast",d=!1,h=!1,g,x=[];if(s!=null){let I=_I(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=_I(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>$1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Uu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=dp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=E,F.shape=e.outShape,g=nr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=dp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function AI({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f==="channelsLast",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,I=[];if(s!=null){let Z=_I(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=_I(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new TI(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],D=n.runWebGLProgram(E,[r],"float32",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let M=o!=null,V=s!=null,G=a==="leakyrelu",W=a?Ml(a,!0):null,q=new $d(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,M,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));H.push(Z),I.push(Z)}let K=n.runWebGLProgram(q,H,"float32"),Y=rt({inputs:{x:K},backend:n,attrs:{shape:e.outShape}});I.push(K);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return Y}function Vst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,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=EI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let h=new Od(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],"float32",g)}else if(L().getBool("WEBGL_CONV_IM2COL"))f=AI({x:o,filter:s,convInfo:m,backend:e});else{let h=new Fd(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var X3={kernelName:Qo,backendName:"webgl",kernelFunc:Vst};var DI=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat==="channelsLast";this.userCode=` + `}};function AI(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function DI({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat==="channelsLast",d=!1,h=!1,g,x=[];if(s!=null){let I=AI(s.shape,f);I!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:I}}),x.push(s))}if(o!=null){let I=AI(o.shape,f);I!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:I}}),x.push(o))}if(!((p===1||m===1)&&c>F1)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let I=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,I,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Uu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let D=dp({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get(D.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=E,F.shape=e.outShape,g=nr({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let I=e.outHeight*e.outWidth,N=rt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,I,e.inChannels]:[e.batchSize,e.inChannels,I]}}),E=rt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=dp({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=rt({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let I of x)n.disposeIntermediateTensorInfo(I);return g}function $I({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f==="channelsLast",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,I=[];if(s!=null){let Z=AI(s.shape,d);Z!=null&&(s=rt({inputs:{x:s},backend:n,attrs:{shape:Z}}),I.push(s))}if(o!=null){let Z=AI(o.shape,d);Z!=null&&(o=rt({inputs:{x:o},backend:n,attrs:{shape:Z}}),I.push(o))}let N=rt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});I.push(N);let E=new EI(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],D=n.runWebGLProgram(E,[r],"float32",A),F=rt({inputs:{x:D},backend:n,attrs:{shape:x}});I.push(D),I.push(F);let M=o!=null,V=s!=null,G=a==="leakyrelu",W=a?Ml(a,!0):null,q=new Rd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,M,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));H.push(Z),I.push(Z)}let j=n.runWebGLProgram(q,H,"float32"),Y=rt({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});I.push(j);for(let Z of I)n.disposeIntermediateTensorInfo(Z);return Y}function Hst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,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=DI({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let h=new Md(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],"float32",g)}else if(L().getBool("WEBGL_CONV_IM2COL"))f=$I({x:o,filter:s,convInfo:m,backend:e});else{let h=new Od(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=rt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var J3={kernelName:Qo,backendName:"webgl",kernelFunc:Hst};var RI=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2706,7 +2706,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}},$I=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat==="channelsLast",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=` + `}},FI=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat==="channelsLast",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=` const ivec2 pads = ivec2(${a}, ${u}); void main() { @@ -2759,7 +2759,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}},RI=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=` + `}},OI=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2801,7 +2801,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}},FI=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=` + `}},MI=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${u}, ${l}, ${c}); void main() { @@ -2858,7 +2858,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}};function Gst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new DI(m);return e.runWebGLProgram(f,[o,s],"float32")}var Y3={kernelName:Dp,backendName:"webgl",kernelFunc:Gst};var OI=class{constructor(t){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=t.inShape,this.enableShapeUniforms=he(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=` + `}};function qst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new RI(m);return e.runWebGLProgram(f,[o,s],"float32")}var Q3={kernelName:Dp,backendName:"webgl",kernelFunc:qst};var PI=class{constructor(t){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=t.inShape,this.enableShapeUniforms=he(this.outputShape.length);let e=t.filterHeight,n=t.filterWidth,o=e-1-t.padInfo.top,s=n-1-t.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${o}, ${s}); void main() { @@ -2932,17 +2932,17 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(result); } - `}};function Wst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p);if(L().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&p==="channelsLast"){let f=[[m.strideHeight,m.strideWidth]],d=new OI(m);return e.runWebGLProgram(d,[o,s],"float32",f)}else{let f=new $I(m);return e.runWebGLProgram(f,[o,s],"float32")}}var Z3={kernelName:ts,backendName:"webgl",kernelFunc:Wst};function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new kI(l);return e.runWebGLProgram(c,[o,s],"float32")}var J3={kernelName:es,backendName:"webgl",kernelFunc:Ust};function Hst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new RI(l);return e.runWebGLProgram(c,[o,s],"float32")}var Q3={kernelName:Ra,backendName:"webgl",kernelFunc:Hst};function qst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new FI(l);return e.runWebGLProgram(c,[o,s],"float32")}var tB={kernelName:Fa,backendName:"webgl",kernelFunc:qst};var Kst=Po+` + `}};function Kst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p);if(L().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&p==="channelsLast"){let f=[[m.strideHeight,m.strideWidth]],d=new PI(m);return e.runWebGLProgram(d,[o,s],"float32",f)}else{let f=new FI(m);return e.runWebGLProgram(f,[o,s],"float32")}}var tB={kernelName:ts,backendName:"webgl",kernelFunc:Kst};function jst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new _I(l);return e.runWebGLProgram(c,[o,s],"float32")}var eB={kernelName:es,backendName:"webgl",kernelFunc:jst};function Xst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new OI(l);return e.runWebGLProgram(c,[o,s],"float32")}var rB={kernelName:Ra,backendName:"webgl",kernelFunc:Xst};function Yst(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new MI(l);return e.runWebGLProgram(c,[o,s],"float32")}var nB={kernelName:Fa,backendName:"webgl",kernelFunc:Yst};var Zst=Po+` return cos(x); -`,jst=` +`,Jst=` vec4 result = cos(x); bvec4 isNaN = isnan(x); ${Xn} return result; -`,Xst=It({opSnippet:Kst,packedOpSnippet:jst}),eB={kernelName:rs,backendName:"webgl",kernelFunc:Xst};var Yst=` +`,Qst=It({opSnippet:Zst,packedOpSnippet:Jst}),oB={kernelName:rs,backendName:"webgl",kernelFunc:Qst};var tit=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,Zst=It({opSnippet:Yst}),rB={kernelName:ns,backendName:"webgl",kernelFunc:Zst};var MI=class{constructor(t,e,n,o,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o==="bilinear"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,I,N]=m>1?[`${(u-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${h} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${h}`];this.userCode=` +`,eit=It({opSnippet:tit}),sB={kernelName:ns,backendName:"webgl",kernelFunc:eit};var LI=class{constructor(t,e,n,o,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o==="bilinear"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,I,N]=m>1?[`${(u-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}); void main() { @@ -3003,20 +3003,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN setOutput(newValue); } } - `}};var Jst=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new MI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},nB={kernelName:Ma,backendName:"webgl",kernelFunc:Jst};var gp;(function(r){r.Prod="*",r.Sum="+"})(gp||(gp={}));var fg=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let s=this.outputShape.length,i=this.op===gp.Prod?"1.0":"0.0",a=n?i:`getX(${oB(s,"coords",this.op)})`,u=this.outputShape[this.outputShape.length-1],l="",c="";n?(l=o?`end != ${u-1}`:"end != 0",c=o?"end + 1":"end - 1"):(l=o?`end + pow2 < ${u}`:"end >= pow2",c=o?"end + pow2":"end - pow2"),this.userCode=` + `}};var rit=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new LI(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},iB={kernelName:Ma,backendName:"webgl",kernelFunc:rit};var gp;(function(r){r.Prod="*",r.Sum="+"})(gp||(gp={}));var dg=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let s=this.outputShape.length,i=this.op===gp.Prod?"1.0":"0.0",a=n?i:`getX(${aB(s,"coords",this.op)})`,u=this.outputShape[this.outputShape.length-1],l="",c="";n?(l=o?`end != ${u-1}`:"end != 0",c=o?"end + 1":"end - 1"):(l=o?`end + pow2 < ${u}`:"end >= pow2",c=o?"end + pow2":"end - pow2"),this.userCode=` void main() { ${zt(s)} coords = getOutputCoords(); - int end = ${sB(s,"coords",this.op)}; + int end = ${lB(s,"coords",this.op)}; float val = ${a}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${c}; - ${sB(s,"coords",this.op)} = idx; - val ${this.op}= getX(${oB(s,"coords",this.op)}); + ${lB(s,"coords",this.op)} = idx; + val ${this.op}= getX(${aB(s,"coords",this.op)}); } setOutput(val); } - `}};function oB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function sB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function PI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=nr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new fg(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new fg(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function Qst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return PI(gp.Prod,o,e,s,i,a)}var iB={kernelName:Oa,backendName:"webgl",kernelFunc:Qst};function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return PI(gp.Sum,o,e,s,i,a)}var aB={kernelName:os,backendName:"webgl",kernelFunc:tit};function eit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Jw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=UL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var lB={kernelName:jl,backendName:"webgl",kernelFunc:eit};var LI=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=` + `}};function aB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function lB(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function zI(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Pe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=nr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new dg(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new dg(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Pe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function nit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return zI(gp.Prod,o,e,s,i,a)}var uB={kernelName:Oa,backendName:"webgl",kernelFunc:nit};function oit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return zI(gp.Sum,o,e,s,i,a)}var cB={kernelName:os,backendName:"webgl",kernelFunc:oit};function sit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=tI(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=KL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var pB={kernelName:jl,backendName:"webgl",kernelFunc:sit};var BI=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3035,7 +3035,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN 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 rit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=new LI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var uB={kernelName:Pa,backendName:"webgl",kernelFunc:rit};var Md=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l="",c="";n&&(o?l=`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 iit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=new BI(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var mB={kernelName:Pa,backendName:"webgl",kernelFunc:iit};var Pd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l="",c="";n&&(o?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:s?l=`float activation(float a) { @@ -3088,7 +3088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ${c} setOutput(result); } - `}};var Pd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=` + `}};var Ld=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=he(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;L().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Pd(p):m=new Md(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],"float32",f)}var cB={kernelName:ss,backendName:"webgl",kernelFunc:nit};var zI=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=` + `}};function ait(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u,dimRoundingMode:l}=n,c=u;c==null&&(c=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(i,c),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;L().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Ld(p):m=new Pd(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],"float32",f)}var fB={kernelName:ss,backendName:"webgl",kernelFunc:ait};var VI=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3312,7 +3312,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}},BI=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=` + `}},GI=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=` const ivec2 pads = ivec2(${i}, ${a}); void main() { @@ -3357,13 +3357,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}};function oit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new zI(p);return e.runWebGLProgram(m,[o,s],"float32")}var pB={kernelName:$p,backendName:"webgl",kernelFunc:oit};function sit(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new BI(p);return e.runWebGLProgram(m,[o,s],"float32")}var mB={kernelName:Rp,backendName:"webgl",kernelFunc:sit};var VI=class{constructor(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode=` + `}};function lit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new VI(p);return e.runWebGLProgram(m,[o,s],"float32")}var dB={kernelName:$p,backendName:"webgl",kernelFunc:lit};function uit(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new GI(p);return e.runWebGLProgram(m,[o,s],"float32")}var hB={kernelName:Rp,backendName:"webgl",kernelFunc:uit};var WI=class{constructor(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function iit(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new VI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var fB={kernelName:Xl,backendName:"webgl",kernelFunc:iit};var GI=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=` + `}};function cit(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=rt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new WI(s),u=e.runWebGLProgram(a,[i],i.dtype),l=rt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var gB={kernelName:Xl,backendName:"webgl",kernelFunc:cit};var UI=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=` const ivec2 strides = ivec2(${s}, ${i}); const ivec2 pads = ivec2(${p}, ${m}); const float neg_infinity = -3.4e38; @@ -3401,7 +3401,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN float result = curVal; setOutput(result); } - `}};function ait(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new GI(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var dB={kernelName:is,backendName:"webgl",kernelFunc:ait};function lit(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=fp({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var hB={kernelName:Fp,backendName:"webgl",kernelFunc:lit};var uit="return (x >= 0.0) ? x : (exp(x) - 1.0);",cit=` + `}};function pit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new UI(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=rt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var xB={kernelName:is,backendName:"webgl",kernelFunc:pit};function mit(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=fp({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var yB={kernelName:Fp,backendName:"webgl",kernelFunc:mit};var fit="return (x >= 0.0) ? x : (exp(x) - 1.0);",dit=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3410,12 +3410,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,pit=It({opSnippet:uit,packedOpSnippet:cit}),gB={kernelName:ls,backendName:"webgl",kernelFunc:pit};var mit="return (b >= 0.0) ? a : a * (b + 1.0);",fit=` +`,hit=It({opSnippet:fit,packedOpSnippet:dit}),bB={kernelName:ls,backendName:"webgl",kernelFunc:hit};var git="return (b >= 0.0) ? a : a * (b + 1.0);",xit=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,dit=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new jn(fit,n.shape,o.shape):new $n(mit,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},xB={kernelName:La,backendName:"webgl",kernelFunc:dit};var hit=` +`,yit=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=L().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new jn(xit,n.shape,o.shape):new $n(git,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},wB={kernelName:La,backendName:"webgl",kernelFunc:yit};var bit=` return vec4(equal(a, b)); -`,git="return float(a == b);",xit=ce({opSnippet:git,packedOpSnippet:hit,dtype:"bool",cpuKernelImpl:XL}),yB={kernelName:za,backendName:"webgl",kernelFunc:xit};var yit=` +`,wit="return float(a == b);",Iit=ce({opSnippet:wit,packedOpSnippet:bit,dtype:"bool",cpuKernelImpl:JL}),IB={kernelName:za,backendName:"webgl",kernelFunc:Iit};var Cit=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3430,9 +3430,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN 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)); -`,bit=It({opSnippet:yit}),bB={kernelName:us,backendName:"webgl",kernelFunc:bit};var wit=Po+` +`,vit=It({opSnippet:Cit}),CB={kernelName:us,backendName:"webgl",kernelFunc:vit};var Sit=Po+` return exp(x); -`,Iit=` +`,Nit=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3441,7 +3441,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN result.a = isNaN.a ? x.a : result.a; return result; -`,P1=It({opSnippet:wit,packedOpSnippet:Iit,cpuKernelImpl:YL,dtype:"float32"}),wB={kernelName:cs,backendName:"webgl",kernelFunc:P1};function WI(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var IB={kernelName:Oi,backendName:"webgl",kernelFunc:WI};var CB="return exp(x) - 1.0;",Cit=It({opSnippet:CB,packedOpSnippet:CB,cpuKernelImpl:ZL}),vB={kernelName:ps,backendName:"webgl",kernelFunc:Cit};var dg=class{constructor(t,e,n){this.variableNames=["real","imag"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:"1.0",a;if(t==="real")a="return real * expR - imag * expI;";else if(t==="imag")a="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${t}.`);this.userCode=` +`,z1=It({opSnippet:Sit,packedOpSnippet:Nit,cpuKernelImpl:QL,dtype:"float32"}),vB={kernelName:cs,backendName:"webgl",kernelFunc:z1};function HI(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),rt({inputs:{x:s},backend:n,attrs:{shape:a}})}var SB={kernelName:Mi,backendName:"webgl",kernelFunc:HI};var NB="return exp(x) - 1.0;",kit=It({opSnippet:NB,packedOpSnippet:NB,cpuKernelImpl:tz}),kB={kernelName:ps,backendName:"webgl",kernelFunc:kit};var hg=class{constructor(t,e,n){this.variableNames=["real","imag"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:"1.0",a;if(t==="real")a="return real * expR - imag * expI;";else if(t==="imag")a="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${t}.`);this.userCode=` const float exponentMultiplier = ${s}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -3474,12 +3474,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function UI(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new dg("real",u,t),c=new dg("imag",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=Rn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function vit(r){let{inputs:t,backend:e}=r,{input:n}=t;return UI(n,!1,e)}var SB={kernelName:Op,backendName:"webgl",kernelFunc:vit};var HI=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` + `}};function qI(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=rt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new hg("real",u,t),c=new hg("imag",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=Rn({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=rt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Tit(r){let{inputs:t,backend:e}=r,{input:n}=t;return qI(n,!1,e)}var TB={kernelName:Op,backendName:"webgl",kernelFunc:Tit};var KI=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); } - `}};function Ll(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s==="string"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new HI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var NB={kernelName:Jl,backendName:"webgl",kernelFunc:Ll};var qI=class{constructor(t){this.variableNames=["Image"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=` + `}};function Ll(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s==="string"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new KI(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var _B={kernelName:Jl,backendName:"webgl",kernelFunc:Ll};var jI=class{constructor(t){this.variableNames=["Image"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3493,7 +3493,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(outputValue); } - `}};var kB={kernelName:Ba,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new qI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var TB="return floor(x);",Sit=It({opSnippet:TB,packedOpSnippet:TB,cpuKernelImpl:JL}),_B={kernelName:ms,backendName:"webgl",kernelFunc:Sit};var Nit=` + `}};var EB={kernelName:Ba,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new jI(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var AB="return floor(x);",_it=It({opSnippet:AB,packedOpSnippet:AB,cpuKernelImpl:ez}),DB={kernelName:ms,backendName:"webgl",kernelFunc:_it};var Eit=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3503,7 +3503,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } else { return NAN; } -`,kit=` +`,Ait=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3524,7 +3524,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Tit=ce({opSnippet:Nit,packedOpSnippet:kit,dtype:"int32"}),EB={kernelName:fs,backendName:"webgl",kernelFunc:Tit};var KI=class{constructor(t){this.variableNames=["A"];let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=` +`,Dit=ce({opSnippet:Eit,packedOpSnippet:Ait,dtype:"int32"}),$B={kernelName:fs,backendName:"webgl",kernelFunc:Dit};var XI=class{constructor(t){this.variableNames=["A"];let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3546,7 +3546,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN setOutput(floor(value * 255.0 + 0.5)); } - `}};var jI=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=` + `}};var YI=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let e=Ue(),[n,o]=t;this.outputShape=t,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3580,7 +3580,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ${e.output} = result; } - `}};var AB={kernelName:Qd,backendName:"webgl",kernelFunc:_it},Ld,L1=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function _it(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!="undefined"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Ld==null||h!==L1)&&(L1=h,Ld=document.createElement("canvas").getContext("2d",{willReadFrequently:L1})),Ld.canvas.width=u,Ld.canvas.height=l,Ld.drawImage(o,0,0,u,l),o=Ld.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=Yr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=L().getBool("WEBGL_PACK")?new jI(p):new KI(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function Eit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,I=a!=null,N=f==="leakyrelu",E=()=>{let D=[o,s],F=(M,V)=>{if(V==="NCHW"&&M.shape.length===1&&M.shape[0]!==1){let G=rt({inputs:{x:M},backend:e,attrs:{shape:[M.shape[0],1,1]}});return b.push(G),G}return M};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let M=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));D.push(M),b.push(M)}return D};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=EI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let D=f?Ml(f,!0):null,F=new Od(g,w,D,I,N),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=E();x=e.runWebGLProgram(F,V,"float32",M)}else if(L().getBool("WEBGL_CONV_IM2COL"))x=AI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Ml(f,!1):null,F=new Fd(g,w,D,I,N),M=E();x=e.runWebGLProgram(F,M,"float32")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var DB={kernelName:Xi,backendName:"webgl",kernelFunc:Eit};function Ait(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=L().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Ml(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m==="leakyrelu";if(I&&w.push(i),N&&w.push(a),E){let M=e.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));w.push(M),d.push(M)}let A;x?A=new Pd(g,I,b,N,E):A=new Md(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",D);return d.forEach(M=>e.disposeIntermediateTensorInfo(M)),F}var $B={kernelName:Yi,backendName:"webgl",kernelFunc:Ait};var XI=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=["x","indices"],this.outputShape=n;let s=zt(n.length),i=` + `}};var RB={kernelName:th,backendName:"webgl",kernelFunc:$it},zd,B1=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function $it(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!="undefined"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=L().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(zd==null||h!==B1)&&(B1=h,zd=document.createElement("canvas").getContext("2d",{willReadFrequently:B1})),zd.canvas.width=u,zd.canvas.height=l,zd.drawImage(o,0,0,u,l),o=zd.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=Jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=L().getBool("WEBGL_PACK")?new YI(p):new XI(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function Rit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,I=a!=null,N=f==="leakyrelu",E=()=>{let D=[o,s],F=(M,V)=>{if(V==="NCHW"&&M.shape.length===1&&M.shape[0]!==1){let G=rt({inputs:{x:M},backend:e,attrs:{shape:[M.shape[0],1,1]}});return b.push(G),G}return M};if(w&&D.push(F(i,c)),I&&D.push(F(a,c)),N){let M=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));D.push(M),b.push(M)}return D};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=DI({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&L().getBool("WEBGL_EXP_CONV")){let D=f?Ml(f,!0):null,F=new Md(g,w,D,I,N),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=E();x=e.runWebGLProgram(F,V,"float32",M)}else if(L().getBool("WEBGL_CONV_IM2COL"))x=$I({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?Ml(f,!1):null,F=new Od(g,w,D,I,N),M=E();x=e.runWebGLProgram(F,M,"float32")}let A=rt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),A}var FB={kernelName:Yi,backendName:"webgl",kernelFunc:Rit};function Fit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=L().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Ml(m,x):null,w=[o,s],I=i!=null,N=a!=null,E=m==="leakyrelu";if(I&&w.push(i),N&&w.push(a),E){let M=e.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));w.push(M),d.push(M)}let A;x?A=new Ld(g,I,b,N,E):A=new Pd(g,I,b,N,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",D);return d.forEach(M=>e.disposeIntermediateTensorInfo(M)),F}var OB={kernelName:Zi,backendName:"webgl",kernelFunc:Fit};var ZI=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=["x","indices"],this.outputShape=n;let s=zt(n.length),i=` int index;`;for(let a=0;a= 0) && (index < ${t[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${o})); } - `}};function $it(r,t){let e=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype==="string"){let b=e.bufferSync(f),w=e.bufferSync(m),I=tz(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new YI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var FB={kernelName:Mi,backendName:"webgl",kernelFunc:z1};var Rit="return float(a > b);",Fit=` + `}};function Mit(r,t){let e=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=rt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=rt({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype==="string"){let b=e.bufferSync(f),w=e.bufferSync(m),I=nz(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,I.dtype,I.values)}let h=new JI(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=rt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var PB={kernelName:Pi,backendName:"webgl",kernelFunc:V1};var Pit="return float(a > b);",Lit=` return vec4(greaterThan(a, b)); -`,Oit=ce({opSnippet:Rit,packedOpSnippet:Fit,cpuKernelImpl:ez,dtype:"bool"}),OB={kernelName:Ga,backendName:"webgl",kernelFunc:Oit};var Mit="return float(a >= b);",Pit=` +`,zit=ce({opSnippet:Pit,packedOpSnippet:Lit,cpuKernelImpl:oz,dtype:"bool"}),LB={kernelName:Ga,backendName:"webgl",kernelFunc:zit};var Bit="return float(a >= b);",Vit=` return vec4(greaterThanEqual(a, b)); -`,Lit=ce({opSnippet:Mit,packedOpSnippet:Pit,dtype:"bool",cpuKernelImpl:rz}),MB={kernelName:hs,backendName:"webgl",kernelFunc:Lit};function zit(r){let{inputs:t,backend:e}=r,{input:n}=t;return UI(n,!0,e)}var PB={kernelName:Mp,backendName:"webgl",kernelFunc:zit};var Bit="return float(!isnan(x) && !isinf(x));",Vit=It({opSnippet:Bit,dtype:"bool"}),LB={kernelName:gs,backendName:"webgl",kernelFunc:Vit};var Git="return float(isinf(x));",Wit=It({opSnippet:Git,dtype:"bool"}),zB={kernelName:xs,backendName:"webgl",kernelFunc:Wit};var Uit="return float(isnan(x));",Hit=It({opSnippet:Uit,dtype:"bool"}),BB={kernelName:ys,backendName:"webgl",kernelFunc:Hit};var qit="return float(a < b);",Kit=` +`,Git=ce({opSnippet:Bit,packedOpSnippet:Vit,dtype:"bool",cpuKernelImpl:sz}),zB={kernelName:hs,backendName:"webgl",kernelFunc:Git};function Wit(r){let{inputs:t,backend:e}=r,{input:n}=t;return qI(n,!0,e)}var BB={kernelName:Mp,backendName:"webgl",kernelFunc:Wit};var Uit="return float(!isnan(x) && !isinf(x));",Hit=It({opSnippet:Uit,dtype:"bool"}),VB={kernelName:gs,backendName:"webgl",kernelFunc:Hit};var qit="return float(isinf(x));",Kit=It({opSnippet:qit,dtype:"bool"}),GB={kernelName:xs,backendName:"webgl",kernelFunc:Kit};var jit="return float(isnan(x));",Xit=It({opSnippet:jit,dtype:"bool"}),WB={kernelName:ys,backendName:"webgl",kernelFunc:Xit};var Yit="return float(a < b);",Zit=` return vec4(lessThan(a, b)); -`,jit=ce({opSnippet:qit,packedOpSnippet:Kit,cpuKernelImpl:nz,dtype:"bool"}),VB={kernelName:Wa,backendName:"webgl",kernelFunc:jit};var Xit="return float(a <= b);",Yit=` +`,Jit=ce({opSnippet:Yit,packedOpSnippet:Zit,cpuKernelImpl:iz,dtype:"bool"}),UB={kernelName:Wa,backendName:"webgl",kernelFunc:Jit};var Qit="return float(a <= b);",tat=` return vec4(lessThanEqual(a, b)); -`,Zit=ce({opSnippet:Xit,packedOpSnippet:Yit,cpuKernelImpl:oz,dtype:"bool"}),GB={kernelName:Ua,backendName:"webgl",kernelFunc:Zit};function Jit(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=sz(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var WB={kernelName:Ha,backendName:"webgl",kernelFunc:Jit};var Qit=Po+` +`,eat=ce({opSnippet:Qit,packedOpSnippet:tat,cpuKernelImpl:az,dtype:"bool"}),HB={kernelName:Ua,backendName:"webgl",kernelFunc:eat};function rat(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=lz(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var qB={kernelName:Ha,backendName:"webgl",kernelFunc:rat};var nat=Po+` return x < 0.0 ? 0./0. : log(x); -`,tat=` +`,oat=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3620,18 +3620,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,eat=It({opSnippet:Qit,packedOpSnippet:tat,cpuKernelImpl:iz}),UB={kernelName:ws,backendName:"webgl",kernelFunc:eat};var rat=Po+` +`,sat=It({opSnippet:nat,packedOpSnippet:oat,cpuKernelImpl:uz}),KB={kernelName:ws,backendName:"webgl",kernelFunc:sat};var iat=Po+` return log(1.0 + x); -`,nat=It({opSnippet:rat}),HB={kernelName:Is,backendName:"webgl",kernelFunc:nat};var oat="return float(a >= 1.0 && b >= 1.0);",sat=` +`,aat=It({opSnippet:iat}),jB={kernelName:Is,backendName:"webgl",kernelFunc:aat};var lat="return float(a >= 1.0 && b >= 1.0);",uat=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,iat=ce({opSnippet:oat,packedOpSnippet:sat,dtype:"bool"}),qB={kernelName:qa,backendName:"webgl",kernelFunc:iat};var aat="return float(!(x >= 1.0));",lat=It({opSnippet:aat}),KB={kernelName:Ka,backendName:"webgl",kernelFunc:lat};var uat="return float(a >= 1.0 || b >= 1.0);",cat=` +`,cat=ce({opSnippet:lat,packedOpSnippet:uat,dtype:"bool"}),XB={kernelName:qa,backendName:"webgl",kernelFunc:cat};var pat="return float(!(x >= 1.0));",mat=It({opSnippet:pat}),YB={kernelName:Ka,backendName:"webgl",kernelFunc:mat};var fat="return float(a >= 1.0 || b >= 1.0);",dat=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,pat=ce({opSnippet:uat,packedOpSnippet:cat,dtype:"bool"}),jB={kernelName:ja,backendName:"webgl",kernelFunc:pat};var ZI=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` +`,hat=ce({opSnippet:fat,packedOpSnippet:dat,dtype:"bool"}),ZB={kernelName:ja,backendName:"webgl",kernelFunc:hat};var QI=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3650,7 +3650,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN float val = x * ${u}; setOutput(val); } - `}};var JI=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` + `}};var tC=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3712,7 +3712,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN vec4 result = xAtOutputCoords * ${u}; setOutput(result); } - `}};var mat=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool("WEBGL_PACK_NORMALIZATION")?new JI(o.shape,s,i,a,u):new ZI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},XB={kernelName:Cs,backendName:"webgl",kernelFunc:mat};var QI=class{constructor(t,e,n,o,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=` + `}};var gat=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=L().getBool("WEBGL_PACK_NORMALIZATION")?new tC(o.shape,s,i,a,u):new QI(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},JB={kernelName:Cs,backendName:"webgl",kernelFunc:gat};var eC=class{constructor(t,e,n,o,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3767,16 +3767,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(result); } - `}};var fat=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new QI(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},YB={kernelName:Xa,backendName:"webgl",kernelFunc:fat};function ZB(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,r.dtype,"max",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function B1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,I=new Array(a);for(let A=0;A{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new eC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},QB={kernelName:Xa,backendName:"webgl",kernelFunc:xat};function tV(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,r.dtype,"max",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function G1(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,I=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Si(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var tV={kernelName:Ns,backendName:"webgl",kernelFunc:xat};function yat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new qu(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var eV={kernelName:Pi,backendName:"webgl",kernelFunc:yat};var tC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=` +`,wat=ce({opSnippet:yat,packedOpSnippet:bat,cpuKernelImpl:pz}),rV={kernelName:Ss,backendName:"webgl",kernelFunc:wat};function Iat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;vi(o,"maxPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return nr({inputs:{x:o},backend:e});let p=new Ni(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var nV={kernelName:Ns,backendName:"webgl",kernelFunc:Iat};function Cat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new qu(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var oV={kernelName:Li,backendName:"webgl",kernelFunc:Cat};var rC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=` const ivec2 pads = ivec2(${a}, ${u}); void main() { @@ -3822,7 +3822,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}},eC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=` + `}},nC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${m}, ${f}); void main() { @@ -3886,16 +3886,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN } setOutput(dotProd); } - `}};function bat(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new qu(m,"max",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new eC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var rV={kernelName:tu,backendName:"webgl",kernelFunc:bat};function wat(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Ci([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new Si(m,"max",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new tC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var nV={kernelName:Ql,backendName:"webgl",kernelFunc:wat};function oV(r,t,e,n){let o=new Si(e,"max",!1),s=n.runWebGLProgram(o,[r],"float32");o=new Si(e,"max",!0,!0,t);let i=n.runWebGLProgram(o,[r],"float32");return[s,i]}var sV={kernelName:eu,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=oV(n,a,c,u);return[p,m]}};function iV(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,"float32","mean",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var aV={kernelName:ks,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;D{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=aV(n,a,c,u);return[p,m]}};function uV(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=rt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Yn(a,"float32","mean",n),l=rt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var cV={kernelName:ks,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let I=i.texData.get(d.dataId).values,N=new Array(a);for(let D=0;Dc[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(","),a=e.map((c,p)=>c[0]+t[p]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o),l=n==="reflect"?0:1;if(o===1){this.userCode=` +`,_at=ce({opSnippet:kat,packedOpSnippet:Tat,cpuKernelImpl:mz}),mV={kernelName:_s,backendName:"webgl",kernelFunc:_at};var oC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=e.map((c,p)=>c[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(","),a=e.map((c,p)=>c[0]+t[p]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o),l=n==="reflect"?0:1;if(o===1){this.userCode=` int start = ${i}; int end = ${a}; @@ -3924,7 +3924,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ${s} coords = outC - start; setOutput(getX(${u})); } - `}};var nC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(","),a=e.map((d,h)=>d[0]+t[h]).join(","),u=rr("rc",o),l=rr("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=n==="reflect"?0:1,f="";if(o===1){let d=` + `}};var sC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(","),a=e.map((d,h)=>d[0]+t[h]).join(","),u=rr("rc",o),l=rr("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=n==="reflect"?0:1,f="";if(o===1){let d=` ${s} source = rc; if (source < start) { source = start * 2 - source - ${m}; @@ -3980,13 +3980,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN ${f} setOutput(result); } - `}};var Nat=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new nC(n.shape,o,s):new rC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},cV={kernelName:Es,backendName:"webgl",kernelFunc:Nat};var kat=`if (b == 0.0) return NAN; - return mod(a, b);`,Tat=` + `}};var Eat=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sC(n.shape,o,s):new oC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},fV={kernelName:Es,backendName:"webgl",kernelFunc:Eat};var Aat=`if (b == 0.0) return NAN; + return mod(a, b);`,Dat=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); `+Xn+` return result; -`,_at=ce({opSnippet:kat,packedOpSnippet:Tat}),pV={kernelName:As,backendName:"webgl",kernelFunc:_at};var oC=class{constructor(t,e,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[t,n],this.userCode=` +`,$at=ce({opSnippet:Aat,packedOpSnippet:Dat}),dV={kernelName:As,backendName:"webgl",kernelFunc:$at};var iC=class{constructor(t,e,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[t,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4006,11 +4006,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,wst=It({opSnippet:bst}),k3={kernelN // If no other event happened, last event happened. setOutput(float(${e-1})); } - `}};var Eat=` + `}};var Rat=` if (a == b) { return 1.0; }; -return a / b;`,Aat=` +return a / b;`,Fat=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -4028,9 +4028,9 @@ return a / b;`,Aat=` } return result; -`,V1=ce({opSnippet:Eat,packedOpSnippet:Aat,checkOutOfBounds:!0}),mV={kernelName:as,backendName:"webgl",kernelFunc:V1};var fV="return a - b;",G1=ce({opSnippet:fV,packedOpSnippet:fV,supportsComplex:!0,cpuKernelImpl:Az}),dV={kernelName:ei,backendName:"webgl",kernelFunc:G1};function W1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=B1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=G1({inputs:{a:o,b:l},backend:e}),p=P1({inputs:{x:c},backend:e}),m=fp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=V1({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var hV={kernelName:Qs,backendName:"webgl",kernelFunc:W1};function Dat(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:W1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new oC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var gV={kernelName:Ya,backendName:"webgl",kernelFunc:Dat};var $at=xr+` +`,W1=ce({opSnippet:Rat,packedOpSnippet:Fat,checkOutOfBounds:!0}),hV={kernelName:as,backendName:"webgl",kernelFunc:W1};var gV="return a - b;",U1=ce({opSnippet:gV,packedOpSnippet:gV,supportsComplex:!0,cpuKernelImpl:Rz}),xV={kernelName:ei,backendName:"webgl",kernelFunc:U1};function H1(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=G1({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=rt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=U1({inputs:{a:o,b:l},backend:e}),p=z1({inputs:{x:c},backend:e}),m=fp({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=rt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=W1({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var yV={kernelName:Qs,backendName:"webgl",kernelFunc:H1};function Oat(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:H1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new iC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var bV={kernelName:Ya,backendName:"webgl",kernelFunc:Oat};var Mat=xr+` return -x; -`,Rat=` +`,Pat=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -4040,14 +4040,14 @@ return a / b;`,Aat=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Fat(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=pz(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Dn(n.shape,Rat):o=new Lr(n.shape,$at),e.runWebGLProgram(o,[n],n.dtype)}var xV={kernelName:Li,backendName:"webgl",kernelFunc:Fat};var Oat=Kr.nonMaxSuppressionV3Impl;function Mat(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=Oat(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var yV={kernelName:Ja,backendName:"webgl",kernelFunc:Mat};var Pat=Kr.nonMaxSuppressionV4Impl;function Lat(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=Pat(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var bV={kernelName:Qa,backendName:"webgl",kernelFunc:Lat};var zat=Kr.nonMaxSuppressionV5Impl;function Bat(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=zat(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var wV={kernelName:tl,backendName:"webgl",kernelFunc:Bat};var sC=class{constructor(t,e,n,o){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode=` +`;function Lat(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=dz(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return L().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new Dn(n.shape,Pat):o=new zr(n.shape,Mat),e.runWebGLProgram(o,[n],n.dtype)}var wV={kernelName:zi,backendName:"webgl",kernelFunc:Lat};var zat=Xr.nonMaxSuppressionV3Impl;function Bat(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=zat(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var IV={kernelName:Ja,backendName:"webgl",kernelFunc:Bat};var Vat=Xr.nonMaxSuppressionV4Impl;function Gat(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=Vat(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var CV={kernelName:Qa,backendName:"webgl",kernelFunc:Gat};var Wat=Xr.nonMaxSuppressionV5Impl;function Uat(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=Wat(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var vV={kernelName:tl,backendName:"webgl",kernelFunc:Uat};var aC=class{constructor(t,e,n,o){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${o}), float(${n}), float(index == coords.y))); } - `}};var Vat=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new sC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},IV={kernelName:$s,backendName:"webgl",kernelFunc:Vat};function hg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=Pl({inputs:{input:n},backend:e}),s=hg({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=hg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var CV={kernelName:Ki,backendName:"webgl",kernelFunc:hg};function vV(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(n.dtype==="complex64"){let o=Pl({inputs:{input:n},backend:e}),s=vV({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=hg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var SV={kernelName:zi,backendName:"webgl",kernelFunc:vV};function Gat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return WI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=WI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=M1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var NV={kernelName:Bi,backendName:"webgl",kernelFunc:Gat};var iC=class{constructor(t,e,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(","),a=e.map((l,c)=>l[0]+t[c]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o);if(o===1){this.userCode=` + `}};var Hat=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new aC(l,i,a,u),p=rt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=rt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},SV={kernelName:$s,backendName:"webgl",kernelFunc:Hat};function gg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=Pl({inputs:{input:n},backend:e}),s=gg({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=gg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var NV={kernelName:ji,backendName:"webgl",kernelFunc:gg};function kV(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(n.dtype==="complex64"){let o=Pl({inputs:{input:n},backend:e}),s=kV({inputs:{x:o},backend:e}),i=hp({inputs:{input:n},backend:e}),a=gg({inputs:{x:i},backend:e}),u=Rn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Ll({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var TV={kernelName:Bi,backendName:"webgl",kernelFunc:kV};function qat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return HI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=HI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=L1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var _V={kernelName:Vi,backendName:"webgl",kernelFunc:qat};var lC=class{constructor(t,e,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(","),a=e.map((l,c)=>l[0]+t[c]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o);if(o===1){this.userCode=` int start = ${i}; int end = ${a}; @@ -4072,7 +4072,7 @@ return a / b;`,Aat=` setOutput(getX(${u})); } } - `}};var aC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(","),a=e.map((h,g)=>h[0]+t[g]).join(","),u=rr("rc",o),l=rr("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1; + `}};var uC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(","),a=e.map((h,g)=>h[0]+t[g]).join(","),u=rr("rc",o),l=rr("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1; if(${c}) { `,o===1?"":`} rc = outputLoc; @@ -4096,7 +4096,7 @@ return a / b;`,Aat=` ${d} setOutput(result); } - `}};var U1=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Ll({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new aC(o.shape,s,i):new iC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},kV={kernelName:Rs,backendName:"webgl",kernelFunc:U1};var Wat=` + `}};var q1=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Ll({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new uC(o.shape,s,i):new lC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},EV={kernelName:Rs,backendName:"webgl",kernelFunc:q1};var Kat=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4105,7 +4105,7 @@ return a / b;`,Aat=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,Uat=` +`,jat=` // 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); @@ -4123,9 +4123,9 @@ return a / b;`,Aat=` bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); `+Xn+` return result; -`,Hat=ce({opSnippet:Wat,packedOpSnippet:Uat}),TV={kernelName:Fs,backendName:"webgl",kernelFunc:Hat};function qat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Pe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=fz(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=lc(o.dtype),w=Yn(x,b,"prod",e);f=rt({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var _V={kernelName:Ms,backendName:"webgl",kernelFunc:qat};function Kat(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=dz(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var EV={kernelName:Lp,backendName:"webgl",kernelFunc:Kat};function jat(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=hz(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var AV={kernelName:zp,backendName:"webgl",kernelFunc:jat};function Xat(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=gz(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var DV={kernelName:Bp,backendName:"webgl",kernelFunc:Xat};var H1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=xz(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},$V={kernelName:ru,backendName:"webgl",kernelFunc:H1};var Yat="return 1.0 / x;",Zat=It({opSnippet:Yat}),RV={kernelName:Ps,backendName:"webgl",kernelFunc:Zat};var Jat=xr+` +`,Xat=ce({opSnippet:Kat,packedOpSnippet:jat}),AV={kernelName:Fs,backendName:"webgl",kernelFunc:Xat};function Yat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Pe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=gz(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=rt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=lc(o.dtype),w=Yn(x,b,"prod",e);f=rt({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=rt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var DV={kernelName:Ms,backendName:"webgl",kernelFunc:Yat};function Zat(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=xz(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var $V={kernelName:Lp,backendName:"webgl",kernelFunc:Zat};function Jat(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=yz(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var RV={kernelName:zp,backendName:"webgl",kernelFunc:Jat};function Qat(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=bz(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var FV={kernelName:Bp,backendName:"webgl",kernelFunc:Qat};var K1=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=wz(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},OV={kernelName:ru,backendName:"webgl",kernelFunc:K1};var tlt="return 1.0 / x;",elt=It({opSnippet:tlt}),MV={kernelName:Ps,backendName:"webgl",kernelFunc:elt};var rlt=xr+` return (x < 0.0) ? 0.0 : x; -`,Qat=` +`,nlt=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4135,9 +4135,9 @@ return a / b;`,Aat=` result.a = isNaN.a ? x.a : result.a; return result; -`,tlt=It({opSnippet:Jat,packedOpSnippet:Qat}),FV={kernelName:Ls,backendName:"webgl",kernelFunc:tlt};var elt=xr+` +`,olt=It({opSnippet:rlt,packedOpSnippet:nlt}),PV={kernelName:Ls,backendName:"webgl",kernelFunc:olt};var slt=xr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,rlt=` +`,ilt=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4147,7 +4147,7 @@ return a / b;`,Aat=` result.a = isNaN.a ? x.a : result.a; return result; -`,nlt=It({opSnippet:elt,packedOpSnippet:rlt}),OV={kernelName:Vs,backendName:"webgl",kernelFunc:nlt};var lC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,alt=It({opSnippet:slt,packedOpSnippet:ilt}),LV={kernelName:Vs,backendName:"webgl",kernelFunc:alt};var cC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],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]}); @@ -4180,7 +4180,7 @@ return a / b;`,Aat=` setOutput(newValue); } - `}};var uC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};var pC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],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]}, @@ -4257,7 +4257,7 @@ return a / b;`,Aat=` setOutput(newValue); } - `}};function olt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new uC(o.shape,u,l,s,i):new lC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var MV={kernelName:Bs,backendName:"webgl",kernelFunc:olt};var cC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function llt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new pC(o.shape,u,l,s,i):new cC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var zV={kernelName:Bs,backendName:"webgl",kernelFunc:llt};var mC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[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]; @@ -4338,7 +4338,7 @@ return a / b;`,Aat=` setOutput(accumulator); } - `}};function slt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new cC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var PV={kernelName:rl,backendName:"webgl",kernelFunc:slt};var pC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"0.5":"0.0",f;s?f="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":f="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function ult(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new mC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var BV={kernelName:rl,backendName:"webgl",kernelFunc:ult};var fC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"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]}); @@ -4360,7 +4360,7 @@ return a / b;`,Aat=` setOutput(newValue); } - `}};var mC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"0.5":"0.0",f;s?f="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":f="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};var dC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"0.5":"0.0",f;s?f="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":f="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/p[0]}, ${c[1]/p[1]}, @@ -4401,7 +4401,7 @@ return a / b;`,Aat=` setOutput(newValue); } - `}};function ilt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new mC(o.shape,u,l,s,i):new pC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var LV={kernelName:zs,backendName:"webgl",kernelFunc:ilt};var fC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function clt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=L().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new dC(o.shape,u,l,s,i):new fC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var VV={kernelName:zs,backendName:"webgl",kernelFunc:clt};var hC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[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]; @@ -4471,7 +4471,7 @@ return a / b;`,Aat=` setOutput(accumulator); } - `}};function alt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new fC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var zV={kernelName:el,backendName:"webgl",kernelFunc:alt};var dC=class{constructor(t,e){this.variableNames=["x"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=` + `}};function plt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new hC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var GV={kernelName:el,backendName:"webgl",kernelFunc:plt};var gC=class{constructor(t,e){this.variableNames=["x"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${t[0]} - coord - 1)); @@ -4481,7 +4481,7 @@ return a / b;`,Aat=` ${i} coords = getOutputCoords(); setOutput(getX(${s})); } - `}};var hC=class{constructor(t,e){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=rr("rc",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=` + `}};var xC=class{constructor(t,e){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=rr("rc",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4509,7 +4509,7 @@ return a / b;`,Aat=` } setOutput(result); } - `;function u(d){return m(d)}function l(d){return d[n-1]="("+d[n-1]+" + 1)",m(d)}function c(d){return d[n-2]="("+d[n-2]+" + 1)",m(d)}function p(d){return d[n-1]="("+d[n-1]+" + 1)",d[n-2]="("+d[n-2]+" + 1)",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(","),x=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function llt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return nr({inputs:{x:o},backend:e});let u=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new hC(o.shape,a):new dC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var BV={kernelName:Gs,backendName:"webgl",kernelFunc:llt};var gC=class{constructor(t,e){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=t[1],o=t[2];this.outputShape=t;let s="";typeof e=="number"?s=`float outputValue = ${e.toFixed(2)};`:s=` + `;function u(d){return m(d)}function l(d){return d[n-1]="("+d[n-1]+" + 1)",m(d)}function c(d){return d[n-2]="("+d[n-2]+" + 1)",m(d)}function p(d){return d[n-1]="("+d[n-1]+" + 1)",d[n-2]="("+d[n-2]+" + 1)",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(","),x=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function mlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return nr({inputs:{x:o},backend:e});let u=L().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xC(o.shape,a):new gC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var WV={kernelName:Gs,backendName:"webgl",kernelFunc:mlt};var yC=class{constructor(t,e){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=t[1],o=t[2];this.outputShape=t;let s="";typeof e=="number"?s=`float outputValue = ${e.toFixed(2)};`:s=` vec3 fill = vec3(${e.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -4528,7 +4528,7 @@ return a / b;`,Aat=` } setOutput(outputValue); } - `}};var VV={kernelName:pl,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new gC(n.shape,s),[l,c]=S.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var ult=` + `}};var UV={kernelName:pl,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new yC(n.shape,s),[l,c]=S.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var flt=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4543,7 +4543,7 @@ return a / b;`,Aat=` return base + 1.0; } } -`,clt=It({opSnippet:ult}),GV={kernelName:Ws,backendName:"webgl",kernelFunc:clt};var plt="return inversesqrt(x);",mlt=It({opSnippet:plt,cpuKernelImpl:yz}),WV={kernelName:Us,backendName:"webgl",kernelFunc:mlt};var Ku=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p="";n===1?p="i":n===2&&(p="i, j");let m=`getIndices(${p})`,f="";o===1?f="i":o===2&&(f="i, coords[1]");let d=`getUpdates(${f})`,h="";u&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`,x=e>1?"strides[j]":"strides";this.userCode=` +`,dlt=It({opSnippet:flt}),HV={kernelName:Ws,backendName:"webgl",kernelFunc:dlt};var hlt="return inversesqrt(x);",glt=It({opSnippet:hlt,cpuKernelImpl:Iz}),qV={kernelName:Us,backendName:"webgl",kernelFunc:glt};var Ku=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;let l=zt(s.length),c=zt(i.length),p="";n===1?p="i":n===2&&(p="i, j");let m=`getIndices(${p})`,f="";o===1?f="i":o===2&&(f="i, coords[1]");let d=`getUpdates(${f})`,h="";u&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`,x=e>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${s}); void main() { @@ -4563,7 +4563,7 @@ return a / b;`,Aat=` } setOutput(mix(${g}, sum, float(found))); } - `}};var xC=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;let l=zt(s.length),c=zt(i.length),p="";n===1?p="i":n===2&&(p="i, j");let m=`getIndices(${p})`,f="";o===1?f="i":o===2&&(f="i, coords[1]");let d=`getUpdates(${f})`,h="";u&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`,x=e>1?"strides[j]":"strides",b=e>1?"strides[j + 1]":"strides";this.userCode=` + `}};var bC=class{constructor(t,e,n,o,s,i,a=!0,u=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;let l=zt(s.length),c=zt(i.length),p="";n===1?p="i":n===2&&(p="i, j");let m=`getIndices(${p})`,f="";o===1?f="i":o===2&&(f="i, coords[1]");let d=`getUpdates(${f})`,h="";u&&(h="coords[0], coords[1]");let g=`getDefaultValue(${h})`,x=e>1?"strides[j]":"strides",b=e>1?"strides[j + 1]":"strides";this.userCode=` ${l} strides = ${l}(${s}); void main() { @@ -4600,7 +4600,7 @@ return a / b;`,Aat=` } setOutput(mix(${g}, sum, found)); } - `}};function flt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g;L().getBool("WEBGL_PACK")?g=new xC(u,a,f.shape.length,d.shape.length,c,m):g=new Ku(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var UV={kernelName:nl,backendName:"webgl",kernelFunc:flt};var yC=class{constructor(t,e,n,o){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[t,n];let s="while (left < right) {",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=L().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` + `}};function xlt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=rt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g;L().getBool("WEBGL_PACK")?g=new bC(u,a,f.shape.length,d.shape.length,c,m):g=new Ku(u,a,f.shape.length,d.shape.length,c,m);let x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var KV={kernelName:nl,backendName:"webgl",kernelFunc:xlt};var wC=class{constructor(t,e,n,o){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[t,n];let s="while (left < right) {",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=L().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4625,7 +4625,7 @@ return a / b;`,Aat=` setOutput(float(findBound(batch, value))); } - `}};function dlt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new yC(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],"int32",u)}var HV={kernelName:sl,backendName:"webgl",kernelFunc:dlt};var bC=class{constructor(t,e,n){this.variableNames=["c","a","b"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s="resRC",o="resRC";else{let a=["resRC.x","resRC.y","resRC.z","resRC.w"],u=[],l=[];for(let c=0;c4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s="resRC",o="resRC";else{let a=["resRC.x","resRC.y","resRC.z","resRC.w"],u=[],l=[];for(let c=0;c= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,xlt=It({opSnippet:glt}),KV={kernelName:Hs,backendName:"webgl",kernelFunc:xlt};var ylt=Po+` +`,Ilt=It({opSnippet:wlt}),YV={kernelName:Hs,backendName:"webgl",kernelFunc:Ilt};var Clt=Po+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,blt=` +`,vlt=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4653,20 +4653,20 @@ return a / b;`,Aat=` result.a = isNaN.a ? x.a : result.a; return result; -`,wlt=It({opSnippet:ylt,packedOpSnippet:blt,cpuKernelImpl:wz}),jV={kernelName:Xs,backendName:"webgl",kernelFunc:wlt};var Ilt=` +`,Slt=It({opSnippet:Clt,packedOpSnippet:vlt,cpuKernelImpl:vz}),ZV={kernelName:Xs,backendName:"webgl",kernelFunc:Slt};var Nlt=` if (isnan(x)) { return 0.0; } return sign(x); -`,Clt=It({opSnippet:Ilt}),XV={kernelName:js,backendName:"webgl",kernelFunc:Clt};var vlt=Po+` +`,klt=It({opSnippet:Nlt}),JV={kernelName:js,backendName:"webgl",kernelFunc:klt};var Tlt=Po+` return sin(x); -`,Slt=` +`,_lt=` vec4 result = sin(x); bvec4 isNaN = isnan(x); ${Xn} return result; -`,Nlt=It({opSnippet:vlt,packedOpSnippet:Slt}),YV={kernelName:qs,backendName:"webgl",kernelFunc:Nlt};var klt=` +`,Elt=It({opSnippet:Tlt,packedOpSnippet:_lt}),QV={kernelName:qs,backendName:"webgl",kernelFunc:Elt};var Alt=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Tlt=It({opSnippet:klt}),ZV={kernelName:Ks,backendName:"webgl",kernelFunc:Tlt};var _lt=` +`,Dlt=It({opSnippet:Alt}),tG={kernelName:Ks,backendName:"webgl",kernelFunc:Dlt};var $lt=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4686,17 +4686,17 @@ return a / b;`,Aat=` result = log(exp_x + 1.0); } return result; -`,Elt=It({opSnippet:_lt}),JV={kernelName:Ys,backendName:"webgl",kernelFunc:Elt};var Alt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},QV={kernelName:Ui,backendName:"webgl",kernelFunc:Alt};function Dlt(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,Rlt=It({opSnippet:$lt}),eG={kernelName:Ys,backendName:"webgl",kernelFunc:Rlt};var Flt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},rG={kernelName:Hi,backendName:"webgl",kernelFunc:Flt};function Olt(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw: ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=Cz(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],"bool",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var tG={kernelName:nu,backendName:"webgl",kernelFunc:Dlt};function $lt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=vz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var eG={kernelName:il,backendName:"webgl",kernelFunc:$lt};function Rlt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=Nz(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],"bool",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var nG={kernelName:nu,backendName:"webgl",kernelFunc:Olt};function Mlt(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=kz(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var oG={kernelName:il,backendName:"webgl",kernelFunc:Mlt};function Plt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=tI(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var rG={kernelName:ou,backendName:"webgl",kernelFunc:Rlt};function Flt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=rI(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var sG={kernelName:ou,backendName:"webgl",kernelFunc:Plt};function Llt(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=tI(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var nG={kernelName:su,backendName:"webgl",kernelFunc:Flt};function Olt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1;if(s.dtype==="string"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),I=bz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new Ku(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var oG={kernelName:al,backendName:"webgl",kernelFunc:Olt};function Mlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=Ni({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var sG={kernelName:Hi,backendName:"webgl",kernelFunc:Mlt};var iG="return sqrt(x);",Plt=It({opSnippet:iG,packedOpSnippet:iG,cpuKernelImpl:Sz}),aG={kernelName:Zs,backendName:"webgl",kernelFunc:Plt};var Llt="return x * x;",zlt=It({opSnippet:Llt}),lG={kernelName:iu,backendName:"webgl",kernelFunc:zlt};var uG="return (a - b) * (a - b);",Blt=ce({opSnippet:uG,packedOpSnippet:uG}),cG={kernelName:ti,backendName:"webgl",kernelFunc:Blt};function Vlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!=="string")throw new Error("Input must be of datatype string");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=Nz(i,"string",n);return e.makeTensorInfo(o.shape,"string",a)}var pG={kernelName:ec,backendName:"webgl",kernelFunc:Vlt};function Glt({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=xr+` + ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=rI(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var iG={kernelName:su,backendName:"webgl",kernelFunc:Llt};function zlt(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1;if(s.dtype==="string"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),I=Cz(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,I.dtype,I.values)}let d=new Ku(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=rt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var aG={kernelName:al,backendName:"webgl",kernelFunc:zlt};function Blt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ki({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var lG={kernelName:qi,backendName:"webgl",kernelFunc:Blt};var uG="return sqrt(x);",Vlt=It({opSnippet:uG,packedOpSnippet:uG,cpuKernelImpl:Tz}),cG={kernelName:Zs,backendName:"webgl",kernelFunc:Vlt};var Glt="return x * x;",Wlt=It({opSnippet:Glt}),pG={kernelName:iu,backendName:"webgl",kernelFunc:Wlt};var mG="return (a - b) * (a - b);",Ult=ce({opSnippet:mG,packedOpSnippet:mG}),fG={kernelName:ti,backendName:"webgl",kernelFunc:Ult};function Hlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;if(o.dtype!=="string")throw new Error("Input must be of datatype string");let s=e.readSync(o.dataId),i=S.fromUint8ToStringArray(s),a=_z(i,"string",n);return e.makeTensorInfo(o.shape,"string",a)}var dG={kernelName:ec,backendName:"webgl",kernelFunc:Hlt};function qlt({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=xr+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new Lr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var mG={kernelName:xo,backendName:"webgl",kernelFunc:Glt};var wC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a="";if(o===1)a="coords * strides + begin";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new zr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var hG={kernelName:xo,backendName:"webgl",kernelFunc:qlt};var CC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a="";if(o===1)a="coords * strides + begin";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${s} begin = ${s}(${t}); ${s} strides = ${s}(${e}); @@ -4704,15 +4704,15 @@ return a / b;`,Aat=` ${i} coords = getOutputCoords(); setOutput(getX(${a})); } - `}};function Wlt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Be.computeOutShape(b,w,I),D=Ni({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=wt(o.shape,o.dtype,D),M=kz(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,M.values)}else{let D=new wC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var fG={kernelName:ll,backendName:"webgl",kernelFunc:Wlt};function Ult(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=Tz(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var dG={kernelName:au,backendName:"webgl",kernelFunc:Ult};function Hlt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=_z(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var hG={kernelName:lu,backendName:"webgl",kernelFunc:Hlt};function qlt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.readSync(s.dataId),a=Ez(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var gG={kernelName:uu,backendName:"webgl",kernelFunc:qlt};var Klt="return tan(x);",jlt=It({opSnippet:Klt}),xG={kernelName:ri,backendName:"webgl",kernelFunc:jlt};var Xlt=` + `}};function Klt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=rt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Be.computeOutShape(b,w,I),D=ki({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=rt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),F=wt(o.shape,o.dtype,D),M=Ez(f,F,I,b);N=e.makeTensorInfo(d,o.dtype,M.values)}else{let D=new CC(b,I,f);N=e.runWebGLProgram(D,[o],o.dtype)}let E=rt({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var gG={kernelName:ll,backendName:"webgl",kernelFunc:Klt};function jlt(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=Az(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var xG={kernelName:au,backendName:"webgl",kernelFunc:jlt};function Xlt(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=Dz(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var yG={kernelName:lu,backendName:"webgl",kernelFunc:Xlt};function Ylt(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.readSync(s.dataId),a=$z(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var bG={kernelName:uu,backendName:"webgl",kernelFunc:Ylt};var Zlt="return tan(x);",Jlt=It({opSnippet:Zlt}),wG={kernelName:ri,backendName:"webgl",kernelFunc:Jlt};var Qlt=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,Ylt=It({opSnippet:Xlt}),yG={kernelName:ni,backendName:"webgl",kernelFunc:Ylt};function Zlt(r){let{inputs:t,backend:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=t,{}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(i,s,o.shape),m=[p/l,l];if(p===0)return e.makeTensorInfo(o.shape,s.dtype);let f=rt({inputs:{x:s},backend:e,attrs:{shape:[u,a]}}),d=rt({inputs:{x:i},backend:e,attrs:{shape:[u,l]}}),h=rt({inputs:{x:o},backend:e,attrs:{shape:m}}),g=new Ku(u,a,f.shape.length,d.shape.length,c,m,!1,!0),x=e.runWebGLProgram(g,[d,f,h],h.dtype),b=rt({inputs:{x},backend:e,attrs:{shape:o.shape}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(x),b}var bG={kernelName:ol,backendName:"webgl",kernelFunc:Zlt};var IC=class{constructor(t,e){this.variableNames=["A"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype==="string"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=Dz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new IC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var wG={kernelName:oo,backendName:"webgl",kernelFunc:q1};var CC=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=t,this.userCode=` + `}};function rut(r){let t=r.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype==="string"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=Fz(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new vC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var vG={kernelName:oo,backendName:"webgl",kernelFunc:j1};var SC=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=t,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4752,7 +4752,7 @@ return a / b;`,Aat=` setOutput(float(i1)); } } - `}},vC=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=t,this.userCode=` + `}},NC=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=t,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4786,7 +4786,7 @@ return a / b;`,Aat=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function xp(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function IG(r){let t=1;for(;tu){let M=e.readSync(o.dataId),[V,G]=$z(M,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,"int32",[])];if(c===1)return[o,Ll({attrs:{shape:l,dtype:"int32",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&xp(e,f);let x=IG(s),b=IG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(M,V,G)=>{let W=I(),q=new CC(G),K=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[M],[V]],Y=w;w=e.runWebGLProgram(q,W,"int32",K),xp(e,Y)};for(let M=1;M=1;G/=2)N(V,G,[h,b])}for(let M=b;M>x;M/=2){let V=I(),G=new vC([h,M/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),xp(e,H);let K=x/2,Y=K*2;for(let Z=K;Z>=1;Z/=2)N(Y,Z,w.shape)}let E=w;w=Ni({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),xp(e,E);let A=z1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});xp(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),xp(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),xp(e,F),[A,w]}var CG={kernelName:ul,backendName:"webgl",kernelFunc:Qlt};var SC=class{constructor(t,e,n,o,s,i){this.variableNames=["Image","Transforms"],this.outputShape=i;let a=n==="nearest"?1:2,u;switch(o){case"constant":u=1;break;case"reflect":u=2;break;case"wrap":u=3;break;case"nearest":u=4;break;default:u=1;break}this.userCode=` + `}};function xp(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function SG(r){let t=1;for(;tu){let M=e.readSync(o.dataId),[V,G]=Oz(M,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,"int32",[])];if(c===1)return[o,Ll({attrs:{shape:l,dtype:"int32",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=rt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&xp(e,f);let x=SG(s),b=SG(c),w=null,I=()=>w===null?[g,g]:[g,w],N=(M,V,G)=>{let W=I(),q=new SC(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[M],[V]],Y=w;w=e.runWebGLProgram(q,W,"int32",j),xp(e,Y)};for(let M=1;M=1;G/=2)N(V,G,[h,b])}for(let M=b;M>x;M/=2){let V=I(),G=new NC([h,M/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),xp(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let E=w;w=ki({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),xp(e,E);let A=V1({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});xp(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=rt({inputs:{x:w},attrs:{shape:D},backend:e}),xp(e,E);let F=A;return A=rt({inputs:{x:A},attrs:{shape:D},backend:e}),xp(e,F),[A,w]}var NG={kernelName:ul,backendName:"webgl",kernelFunc:nut};var kC=class{constructor(t,e,n,o,s,i){this.variableNames=["Image","Transforms"],this.outputShape=i;let a=n==="nearest"?1:2,u;switch(o){case"constant":u=1;break;case"reflect":u=2;break;case"wrap":u=3;break;case"nearest":u=4;break;default:u=1;break}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${u} == 2) { @@ -4898,7 +4898,7 @@ return a / b;`,Aat=` } setOutput(outputValue); } - `}};function tut(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new SC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var vG={kernelName:cl,backendName:"webgl",kernelFunc:tut};function eut(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Ci(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=Rz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var SG={kernelName:cu,backendName:"webgl",kernelFunc:eut};function rut(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var NG={kernelName:qi,backendName:"webgl",kernelFunc:rut};var NC=class{constructor(t,e){this.variableNames=["x","segmentIds"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u="0.0",l="sumValue",c=Math.floor(n/4)*4,p=n%4,m=` + `}};function out(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new kC(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var kG={kernelName:cl,backendName:"webgl",kernelFunc:out};function sut(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;vi(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=Mz(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var TG={kernelName:cu,backendName:"webgl",kernelFunc:sut};function iut(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var _G={kernelName:Ki,backendName:"webgl",kernelFunc:iut};var TC=class{constructor(t,e){this.variableNames=["x","segmentIds"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u="0.0",l="sumValue",c=Math.floor(n/4)*4,p=n%4,m=` sumValue += dot(values, segFilter); `,f="";s%n>0&&(f=` if (inIdx < 0 || inIdx >= ${s}) { @@ -5004,6 +5004,6 @@ return a / b;`,Aat=` } setOutput(${l}); } - `}};function nut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=S.getAxesPermutation([l],a),p=o;c!=null&&(p=Pe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=S.getInnerMostAxes(1,a)[0]);let m=S.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=rt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=lc(o.dtype),g=(I,N,E,A,D)=>{let F=I.shape[0],M=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(M,D),G={windowSize:V,inSize:M,batchSize:F,numSegments:D},W=new NC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=H1({backend:e,attrs:{start:0,stop:D,step:1,dtype:"float32"}}),K=q1({inputs:{x:H},backend:e,attrs:{reps:[M/V]}});return u.push(H),u.push(K),g(q,N,K,A,D)},x=g(d,"unsortedSegmentSum",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var kG={kernelName:pu,backendName:"webgl",kernelFunc:nut};var out=[l3,c3,p3,m3,d3,h3,g3,x3,w3,I3,C3,v3,S3,N3,k3,T3,_3,E3,A3,D3,$3,F3,O3,M3,P3,V3,W3,U3,Jz,q3,j3,X3,Y3,Z3,J3,Q3,tB,eB,rB,nB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,bB,wB,IB,vB,SB,NB,kB,_B,EB,AB,DB,$B,RB,FB,OB,MB,Zz,PB,K3,LB,zB,BB,Qz,VB,GB,WB,UB,HB,qB,KB,jB,XB,YB,JB,QB,tV,eV,rV,nV,sV,aV,lV,uV,cV,pV,gV,r3,xV,yV,bV,wV,L3,IV,SV,NV,kV,TV,t3,_V,EV,AV,DV,$V,z3,mV,RV,FV,OV,o3,MV,PV,LV,zV,BV,VV,GV,WV,UV,HV,qV,KV,jV,XV,YV,ZV,R3,hV,JV,QV,tG,eG,rG,nG,oG,sG,aG,lG,cG,pG,mG,fG,dG,hG,gG,dV,i3,xG,yG,bG,wG,CG,vG,a3,SG,NG,kG,CV];for(let r of out)rc(r);var Nt;(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"})(Nt||(Nt={}));var ju;(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",r[r.sigmoid=5]="sigmoid",r[r.elu=6]="elu"})(ju||(ju={}));var TG;function sut(r){TG=r.wasm.cwrap(ji,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function iut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=ju[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Ur.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return TG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var _G={kernelName:ji,backendName:"wasm",setupFunc:sut,kernelFunc:iut};function yt(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,["number","number","number"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,Nt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var EG=yt(Ei);var AG=yt(Go);var DG=yt(Wo);function ee(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=S.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return n(p,g,l.shape.length,m,x,c.shape.length,Nt[l.dtype],b),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var aut=!0,$G=ee(no,aut);var RG;function lut(r){RG=r.wasm.cwrap(Uo,null,["array","number","number","number"])}function uut(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return RG(s,o.length,Nt[n.dtype],i),n}var FG={kernelName:Uo,backendName:"wasm",setupFunc:lut,kernelFunc:uut};function yp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return ir(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var OG={kernelName:go,backendName:"wasm",kernelFunc:yp};var MG;function cut(r){MG=r.wasm.cwrap(so,null,["number","array","number","number","number","array","number"])}function mo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=mut(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var PG={kernelName:so,backendName:"wasm",kernelFunc:mo,setupFunc:cut};function Cn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var nW={kernelName:Vi,backendName:"wasm",kernelFunc:mr};var oW;function Nut(r){oW=r.wasm.cwrap(Zo,null,["number","array","number","number","array","number","number","number","number"])}function kut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Ur.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=e.dataIdMap.get(E.dataId).id,F=e.dataIdMap.get(A.dataId).id,M=i?E.shape[2]:E.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,M,V],E.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(E.shape).buffer),K=new Uint8Array(new Int32Array(A.shape).buffer);return oW(D,H,E.shape.length,F,K,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var sW={kernelName:Zo,backendName:"wasm",setupFunc:Nut,kernelFunc:kut};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Be.parseSliceParams(t,e,n),a=Be.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Be.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype==="string"){let d=ep(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Tut(u,c[0],m,s,i);else if(f===3)_ut(u,c[0],c[1],m,s,i);else if(f===4)Eut(u,c[0],c[1],c[2],m,s,i);else{let d=ep(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Tut(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=mo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(h.dataId),g}var aW={kernelName:Ri,backendName:"wasm",kernelFunc:Aut};var lW;function Dut(r){lW=r.wasm.cwrap(Da,null,["number","number","boolean","number","number","number"])}function $ut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return lW(c(o),i,a,c(s),Nt[s.dtype],c(l)),l}var uW={kernelName:Da,backendName:"wasm",setupFunc:Dut,kernelFunc:$ut};var Rut=!0,cW=ee($a,Rut);function Fut(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],"int32",void 0,new Int32Array(a))}var pW={kernelName:ql,backendName:"wasm",kernelFunc:Fut};function Fn(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var mW={kernelName:fo,backendName:"wasm",kernelFunc:Fn};var fW=yt(Jo);var dW;function Out(r){dW=r.wasm.cwrap(ho,null,["number","number","number","number"])}function Mut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return dW(a,s,i,l),u}var hW={kernelName:ho,backendName:"wasm",setupFunc:Out,kernelFunc:Mut};function K1(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return yp({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype==="string"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return mr({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Jc(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims("cumprod",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;DW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var $W={kernelName:Oa,backendName:"wasm",setupFunc:Xut,kernelFunc:Yut};var RW;function Zut(r){RW=r.wasm.cwrap(os,null,["number","number","number","number","number","number"])}function Jut(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype==="float32"||o.dtype==="int32",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims("cumsum",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;RW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var FW={kernelName:os,backendName:"wasm",setupFunc:Zut,kernelFunc:Jut};var OW;function Qut(r){OW=r.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function tct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return OW(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),Nt[s.dtype],a,p(c)),c}var MW={kernelName:jl,backendName:"wasm",setupFunc:Qut,kernelFunc:tct};var PW;function ect(r){PW=r.wasm.cwrap(Pa,null,["number","number","number","array","number","array","array","number","number"])}function rct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,"float32"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return PW(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var LW={kernelName:Pa,backendName:"wasm",setupFunc:ect,kernelFunc:rct};var zW;function nct(r){zW=r.wasm.cwrap(ss,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function oct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=S.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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=n.makeOutput(f.outShape,"float32"),G=n.dataIdMap.get(V.dataId).id;return zW(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,M,I,N,E,A,D,F,G),V}var BW={kernelName:ss,backendName:"wasm",setupFunc:nct,kernelFunc:oct};var VW;function sct(r){VW=r.wasm.cwrap("Diag",null,["number","number","number","number"])}function ict(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return VW(e.dataIdMap.get(n.dataId).id,Nt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var GW={kernelName:Xl,backendName:"wasm",setupFunc:sct,kernelFunc:ict};var WW;function act(r){WW=r.wasm.cwrap(is,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function lct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c=e.makeOutput(l.outShape,o.dtype);return WW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,Nt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var UW={kernelName:is,backendName:"wasm",setupFunc:act,kernelFunc:lct};var HW;function uct(r){HW=r.wasm.cwrap(Zl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function cct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(s.shape,s.dtype);return HW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var qW={kernelName:Zl,backendName:"wasm",setupFunc:uct,kernelFunc:cct};var KW;function pct(r){KW=r.wasm.cwrap(Yl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function mct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(o.shape,o.dtype);return KW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var jW={kernelName:Yl,backendName:"wasm",setupFunc:pct,kernelFunc:mct};var XW=yt(ls);var YW;function fct(r){YW=r.wasm.cwrap(La,null,["number","number","number"])}function dct(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,"float32"),i=a=>e.dataIdMap.get(a.dataId).id;return YW(i(o),i(n),i(s)),s}var ZW={kernelName:La,backendName:"wasm",setupFunc:fct,kernelFunc:dct};var hct=!1,JW=ee(za,hct,"bool");var QW=yt(us);var tU=yt(cs,"float32");function TC(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var eU={kernelName:Oi,backendName:"wasm",kernelFunc:TC};var rU=yt(ps,"float32");function X1(r){let{attrs:{shape:t,value:e},backend:n}=r,{attrs:{dtype:o}}=r;o=o||y.inferDtype(e);let s=n.makeOutput(t,o);return n.typedArrayFromHeap(s).fill(e),s}var nU={kernelName:Jl,backendName:"wasm",kernelFunc:X1};var oU;function gct(r){oU=r.wasm.cwrap(Ba,null,["number","number","number","number","number","number"])}function xct(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return oU(s,a,u,l,c,i),o}var sU={kernelName:Ba,backendName:"wasm",kernelFunc:xct,setupFunc:gct};var iU=yt(ms);var yct=!1,aU=ee(fs,yct);var lU;function bct(r){lU=r.wasm.cwrap(ds,null,["number","number","number","number","number","number","number"])}function wct(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return lU(c,p,m,f,d,o,g),h}var uU={kernelName:ds,backendName:"wasm",setupFunc:bct,kernelFunc:wct};var cU;function Ict(r){cU=r.wasm.cwrap(Xi,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 Cct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,K=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return cU(x,Y,Z,et,b,N,E,I,A,D,F,M,K,V,G,W,q,H,w,g,lt,d||0,st),nt}var pU={kernelName:Xi,backendName:"wasm",setupFunc:Ict,kernelFunc:Cct};var mU;function vct(r){mU=r.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 Sct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,K=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return mU(x,Y,Z,et,b,N,E,I,A,D,F,M,K,V,G,W,q,H,w,g,lt,d||0,st),nt}var fU={kernelName:Yi,backendName:"wasm",setupFunc:vct,kernelFunc:Sct};var dU;function Nct(r){dU=r.wasm.cwrap(Va,null,["number","number","number","number","number","number","array","number"])}function kct(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Ey.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return dU(f,Nt[n.dtype],h,i,p,a,g,x),l}var hU={kernelName:Va,backendName:"wasm",setupFunc:Nct,kernelFunc:kct};var gU;function Tct(r){gU=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function _ct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${M} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return gU(w,Nt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var xU={kernelName:Mi,backendName:"wasm",setupFunc:Tct,kernelFunc:_ct};var Ect=!1,yU=ee(Ga,Ect,"bool");var Act=!1,bU=ee(hs,Act,"bool");var wU=yt(gs,"bool");var IU=yt(xs,"bool");var CU=yt(ys,"bool");var vU;function Dct(r){vU=r.wasm.cwrap(bs,null,["number","number","number","number"])}function $ct(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,"float32");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;vU(o,Nt[t.dtype],e,i)}return s}var SU={kernelName:bs,backendName:"wasm",setupFunc:Dct,kernelFunc:$ct};var Rct=!1,NU=ee(Wa,Rct,"bool");var Fct=!1,kU=ee(Ua,Fct,"bool");var TU;function Oct(r){TU=r.wasm.cwrap(Ha,null,["number","number","number","number"])}function Mct(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],"float32");return TU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var _U={kernelName:Ha,backendName:"wasm",setupFunc:Oct,kernelFunc:Mct};var EU=yt(ws);var AU=yt(Is);var Pct=!1,DU=ee(qa,Pct,"bool");var $U=yt(Ka);var Lct=!1,RU=ee(ja,Lct,"bool");var zct=!1,FU=ee(T_,zct,"bool");var OU;function Bct(r){OU=r.wasm.cwrap(Cs,null,["number","number","number","number","number","number","number"])}function Vct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let l=e.makeOutput(o.shape,o.dtype);return OU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var MU={kernelName:Cs,backendName:"wasm",setupFunc:Bct,kernelFunc:Vct};var PU;function Gct(r){PU=r.wasm.cwrap(Xa,null,["number","number","number","number","number","number","number","number","number"])}function Wct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n;if(o.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let p=e.makeOutput(o.shape,o.dtype);return PU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var LU={kernelName:Xa,backendName:"wasm",setupFunc:Gct,kernelFunc:Wct};var zU;function Uct(r){zU=r.wasm.cwrap(vs,null,["number","number","number","number"])}function Hct(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims("max",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;zU(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var BU={kernelName:vs,backendName:"wasm",setupFunc:Uct,kernelFunc:Hct};var qct=!1,VU=ee(Ss,qct);var GU;function Kct(r){GU=r.wasm.cwrap(Ns,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function jct(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=S.computePool2DInfo(o.shape,i,a,1,u,l),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,b=c.dilationWidth,w=c.strideHeight,I=c.strideWidth,N=c.inChannels,E=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,"float32"),D=n.dataIdMap.get(A.dataId).id;return GU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var WU={kernelName:Ns,backendName:"wasm",setupFunc:Kct,kernelFunc:jct};var UU;function Xct(r){UU=r.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return UU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var HU={kernelName:Pi,backendName:"wasm",setupFunc:Xct,kernelFunc:Yct};var qU;function Zct(r){qU=r.wasm.cwrap("MaxPool3DGrad",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 Jct(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return qU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var KU={kernelName:tu,backendName:"wasm",setupFunc:Zct,kernelFunc:Jct};var jU;function Qct(r){jU=r.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function tpt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool2DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return jU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),p}var XU={kernelName:Ql,backendName:"wasm",setupFunc:Qct,kernelFunc:tpt};var YU;function ept(r){YU=r.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function rpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,includeBatchInIndex:u}=n;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,[1,1],a),p=e.makeOutput(c.outShape,o.dtype),m=e.makeOutput(c.outShape,"int32");return YU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,e.dataIdMap.get(m.dataId).id,Nt[o.dtype],u,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),[p,m]}var ZU={kernelName:eu,backendName:"wasm",setupFunc:ept,kernelFunc:rpt};var JU;function npt(r){JU=r.wasm.cwrap(ks,null,["number, number, number"])}function opt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=Fn({backend:t,inputs:{x:l},attrs:{dtype:"float32"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,"float32");if(y.sizeFromShape(l.shape)!==0){let I=t.dataIdMap.get(w.dataId).id;JU(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var QU={kernelName:ks,backendName:"wasm",setupFunc:npt,kernelFunc:opt};var t4;function spt(r){t4=r.wasm.cwrap(Ts,null,["number","number","number","number"])}function ipt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims("min",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;t4(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var e4={kernelName:Ts,backendName:"wasm",setupFunc:spt,kernelFunc:ipt};var apt=!1,r4=ee(_s,apt);var Y1;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(Y1||(Y1={}));var n4;function lpt(r){n4=r.wasm.cwrap(Es,null,["number","array","number","number","array","array","number","number"])}function upt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return n4(i,l,t.shape.length,Nt[t.dtype],m,f,Y1[o],u),a}var o4={kernelName:Es,backendName:"wasm",kernelFunc:upt,setupFunc:lpt};var s4;function cpt(r){s4=r.wasm.cwrap(Qs,null,["number","number","number","number"])}function Z1(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||s4(o,i,a,u),s}var i4={kernelName:Qs,backendName:"wasm",setupFunc:cpt,kernelFunc:Z1};var a4;function ppt(r){a4=r.wasm.cwrap(Ya,null,["number","number","number","number","number","number"])}function mpt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:Z1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],"int32");return a4(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var l4={kernelName:Ya,backendName:"wasm",setupFunc:ppt,kernelFunc:mpt};var u4=ee(As,!0);var fpt=!0,c4=ee(Ds,fpt);var p4=yt(Li);function zd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var m4;function dpt(r){m4=r.wasm.cwrap(Ja,"number",["number","number","number","number","number"])}function hpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=m4(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=zd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var f4={kernelName:Ja,backendName:"wasm",setupFunc:dpt,kernelFunc:hpt};var d4;function gpt(r){d4=r.wasm.cwrap(Qa,"number",["number","number","number","number","number","bool"])}function xpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=d4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=zd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var h4={kernelName:Qa,backendName:"wasm",setupFunc:gpt,kernelFunc:xpt};var g4;function ypt(r){g4=r.wasm.cwrap(tl,"number",["number","number","number","number","number","number"])}function bpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=g4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=zd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var x4={kernelName:tl,backendName:"wasm",setupFunc:ypt,kernelFunc:bpt};var wpt=!1,y4=ee(Za,wpt,"bool");var b4;function Ipt(r){b4=r.wasm.cwrap($s,null,["number","number","number","number","number"])}function Cpt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return b4(m,i,a,u,c),l}var w4={kernelName:$s,backendName:"wasm",setupFunc:Ipt,kernelFunc:Cpt};function vpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var I4={kernelName:zi,backendName:"wasm",kernelFunc:vpt};function Spt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return TC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=TC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=K1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var C4={kernelName:Bi,backendName:"wasm",kernelFunc:Spt};var v4;function Npt(r){v4=r.wasm.cwrap(Rs,null,["number","array","number","number","array","array","number","number"])}function kpt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return X1({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return v4(i,c,t.shape.length,Nt[t.dtype],f,d,o,l),a}var _C={kernelName:Rs,backendName:"wasm",kernelFunc:kpt,setupFunc:Npt};var Tpt=!1,S4=ee(Fs,Tpt);var N4;function _pt(r){N4=r.wasm.cwrap(Os,null,["number","number","number"])}function Ept(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!=="float32"&&(l=Fn({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,"float32"),p=e.dataIdMap.get(c.dataId).id;return N4(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var k4={kernelName:Os,backendName:"wasm",setupFunc:_pt,kernelFunc:Ept};var T4;function Apt(r){T4=r.wasm.cwrap(Ms,null,["number","number","number","number"])}function Dpt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;T4(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _4={kernelName:Ms,backendName:"wasm",setupFunc:Apt,kernelFunc:Dpt};var $pt=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=tp(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},E4={kernelName:ru,backendName:"wasm",kernelFunc:$pt};var Rpt=!0,A4=ee(as,Rpt);var D4=yt(Ps);var $4=yt(Ls);var R4=yt(Vs);var F4;function Fpt(r){F4=r.wasm.cwrap(Bs,null,["number","number","number","number","number","number","number","number","number","number"])}function Opt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!=="float32"&&(g=Fn({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return F4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var O4={kernelName:Bs,backendName:"wasm",setupFunc:Fpt,kernelFunc:Opt};var M4;function Mpt(r){M4=r.wasm.cwrap(rl,null,["number","number","number","array","array","boolean"])}function Ppt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),M4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var P4={kernelName:rl,backendName:"wasm",setupFunc:Mpt,kernelFunc:Ppt};var L4;function Lpt(r){L4=r.wasm.cwrap(zs,null,["number","number","number","number","number","number","number","number","number","number"])}function zpt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!=="float32"&&(x=Fn({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return L4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var z4={kernelName:zs,backendName:"wasm",setupFunc:Lpt,kernelFunc:zpt};var B4;function Bpt(r){B4=r.wasm.cwrap(el,null,["number","number","number","array","array","boolean"])}function Vpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),B4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var V4={kernelName:el,backendName:"wasm",setupFunc:Bpt,kernelFunc:Vpt};var G4;function Gpt(r){G4=r.wasm.cwrap(Gs,null,["number","array","number","array","number","number"])}function Wpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return yp({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);G4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var W4={kernelName:Gs,backendName:"wasm",kernelFunc:Wpt,setupFunc:Gpt};var U4;function Upt(r){U4=r.wasm.cwrap(pl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Hpt(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=S.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i=="number"?[i,i,i,x?0:b]:[...i,b],I=new Uint8Array(new Int32Array(w).buffer);return U4(l,p,m,f,d,s,h,g,I,w.length,c),u}var H4={kernelName:pl,backendName:"wasm",kernelFunc:Hpt,setupFunc:Upt};var q4=yt(Ws);var K4=yt(Us);var j4;function qpt(r){j4=r.wasm.cwrap(nl,null,["number","number","number","number","number","number","array","number","number"])}function Kpt(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return j4(d,g,Nt[s.dtype],u,l,c,x,m,b),a}var X4={kernelName:nl,backendName:"wasm",setupFunc:qpt,kernelFunc:Kpt};var Y4;function jpt(r){Y4=r.wasm.cwrap(sl,null,["number","number","number","number","number","number","bool","number"])}function Xpt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,"int32");function u(l){return e.dataIdMap.get(l.dataId).id}return Y4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],Nt[o.dtype],i==="left",u(a)),a}var Z4={kernelName:sl,backendName:"wasm",setupFunc:jpt,kernelFunc:Xpt};var J4;function Ypt(r){J4=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Zpt(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return J4(i,a,u,f,c),l}var Q4={kernelName:Gi,backendName:"wasm",kernelFunc:Zpt,setupFunc:Ypt};var tH=yt(Hs);var eH;function Jpt(r){eH=r.wasm.cwrap(Xs,null,["number","number"])}function Qpt(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||eH(n,s),o}var rH={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Jpt,kernelFunc:Qpt};var nH=yt(js);var oH=yt(qs);var sH=yt(Ks);var iH=yt(Ys);function tmt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let E=1+s.length;E{let F=I.shape[0],M=I.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(M,D),G={windowSize:V,inSize:M,batchSize:F,numSegments:D},W=new TC(G,N),q=e.compileAndRun(W,[I,E],A);if(u.push(q),q.shape[1]===D)return q;let H=K1({backend:e,attrs:{start:0,stop:D,step:1,dtype:"float32"}}),j=j1({inputs:{x:H},backend:e,attrs:{reps:[M/V]}});return u.push(H),u.push(j),g(q,N,j,A,D)},x=g(d,"unsortedSegmentSum",s,h,i),b=rt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let I=S.getUndoAxesPermutation(c);w=Pe({inputs:{x:w},backend:e,attrs:{perm:I}})}return u.forEach(I=>e.disposeIntermediateTensorInfo(I)),w}var EG={kernelName:pu,backendName:"webgl",kernelFunc:aut};var lut=[p3,f3,d3,h3,x3,y3,b3,w3,v3,S3,N3,k3,T3,_3,E3,A3,D3,$3,R3,F3,O3,P3,L3,z3,B3,U3,q3,K3,e3,X3,Z3,J3,Q3,tB,eB,rB,nB,oB,sB,iB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,bB,wB,IB,CB,vB,SB,kB,TB,_B,EB,DB,$B,RB,FB,OB,MB,PB,LB,zB,t3,BB,Y3,VB,GB,WB,r3,UB,HB,qB,KB,jB,XB,YB,ZB,JB,QB,eV,rV,nV,oV,sV,iV,lV,cV,pV,mV,fV,dV,bV,s3,wV,IV,CV,vV,V3,SV,TV,_V,EV,AV,n3,DV,$V,RV,FV,OV,G3,hV,MV,PV,LV,a3,zV,BV,VV,GV,WV,UV,HV,qV,KV,jV,XV,YV,ZV,JV,QV,tG,M3,yV,eG,rG,nG,oG,sG,iG,aG,lG,cG,pG,fG,dG,hG,gG,xG,yG,bG,xV,u3,wG,IG,CG,vG,NG,kG,c3,TG,_G,EG,NV];for(let r of lut)rc(r);var Nt;(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"})(Nt||(Nt={}));var ju;(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",r[r.sigmoid=5]="sigmoid",r[r.elu=6]="elu"})(ju||(ju={}));var AG;function uut(r){AG=r.wasm.cwrap(Xi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function cut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=ju[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Hr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),I=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(I.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return AG(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),I}var DG={kernelName:Xi,backendName:"wasm",setupFunc:uut,kernelFunc:cut};function yt(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,["number","number","number"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,Nt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var $G=yt(Ai);var RG=yt(Go);var FG=yt(Wo);function ee(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=S.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return n(p,g,l.shape.length,m,x,c.shape.length,Nt[l.dtype],b),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var put=!0,OG=ee(no,put);var MG;function mut(r){MG=r.wasm.cwrap(Uo,null,["array","number","number","number"])}function fut(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return MG(s,o.length,Nt[n.dtype],i),n}var PG={kernelName:Uo,backendName:"wasm",setupFunc:mut,kernelFunc:fut};function yp(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return ir(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var LG={kernelName:go,backendName:"wasm",kernelFunc:yp};var zG;function dut(r){zG=r.wasm.cwrap(so,null,["number","array","number","number","number","array","number"])}function mo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=gut(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var BG={kernelName:so,backendName:"wasm",kernelFunc:mo,setupFunc:dut};function Cn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iW={kernelName:Gi,backendName:"wasm",kernelFunc:mr};var aW;function Eut(r){aW=r.wasm.cwrap(Zo,null,["number","array","number","number","array","number","number","number","number"])}function Aut(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Hr.assertAndGetBroadcastShape(o.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 ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let I=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=mr({inputs:{x:o},backend:e,attrs:{shape:I}}),A=mr({inputs:{x:s},backend:e,attrs:{shape:N}}),D=e.dataIdMap.get(E.dataId).id,F=e.dataIdMap.get(A.dataId).id,M=i?E.shape[2]:E.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,M,V],E.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(E.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aW(D,H,E.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var lW={kernelName:Zo,backendName:"wasm",setupFunc:Eut,kernelFunc:Aut};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Be.parseSliceParams(t,e,n),a=Be.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Be.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype==="string"){let d=ep(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Dut(u,c[0],m,s,i);else if(f===3)$ut(u,c[0],c[1],m,s,i);else if(f===4)Rut(u,c[0],c[1],c[2],m,s,i);else{let d=ep(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Dut(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=mr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=mo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=mr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(h.dataId),g}var cW={kernelName:Fi,backendName:"wasm",kernelFunc:Fut};var pW;function Out(r){pW=r.wasm.cwrap(Da,null,["number","number","boolean","number","number","number"])}function Mut(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i}=n,a=s.shape.reduce((p,m)=>p*m,1)!==0,u=o.shape.length===1?[i]:[o.shape[0],i],l=t.makeOutput(u,s.dtype);function c(p){return t.dataIdMap.get(p.dataId).id}return pW(c(o),i,a,c(s),Nt[s.dtype],c(l)),l}var mW={kernelName:Da,backendName:"wasm",setupFunc:Out,kernelFunc:Mut};var Put=!0,fW=ee($a,Put);function Lut(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.typedArrayFromHeap(n),i=e.typedArrayFromHeap(o),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeOutput([a.length],"int32",void 0,new Int32Array(a))}var dW={kernelName:ql,backendName:"wasm",kernelFunc:Lut};function Fn(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var hW={kernelName:fo,backendName:"wasm",kernelFunc:Fn};var gW=yt(Jo);var xW;function zut(r){xW=r.wasm.cwrap(ho,null,["number","number","number","number"])}function But(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return xW(a,s,i,l),u}var yW={kernelName:ho,backendName:"wasm",setupFunc:zut,kernelFunc:But};function X1(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return yp({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype==="string"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return mr({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Jc(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims("cumprod",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;FW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var OW={kernelName:Oa,backendName:"wasm",setupFunc:Qut,kernelFunc:tct};var MW;function ect(r){MW=r.wasm.cwrap(os,null,["number","number","number","number","number","number"])}function rct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype==="float32"||o.dtype==="int32",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=mo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims("cumsum",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;MW(d,i?1:0,a?1:0,f,h,Nt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=mo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var PW={kernelName:os,backendName:"wasm",setupFunc:ect,kernelFunc:rct};var LW;function nct(r){LW=r.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function oct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,weights:s}=e,{size:i,binaryOutput:a}=n,u=s.shape.reduce((m,f)=>m*f,1)!==0,l=o.shape.length===1?[i]:[o.shape[0],i],c=t.makeOutput(l,s.dtype);function p(m){return t.dataIdMap.get(m.dataId).id}return LW(p(o),new Uint8Array(new Int32Array(o.shape).buffer),o.shape.length,i,u,p(s),Nt[s.dtype],a,p(c)),c}var zW={kernelName:jl,backendName:"wasm",setupFunc:nct,kernelFunc:oct};var BW;function sct(r){BW=r.wasm.cwrap(Pa,null,["number","number","number","array","number","array","array","number","number"])}function ict(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,"float32"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),I=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return BW(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,I,d.length,N),h}var VW={kernelName:Pa,backendName:"wasm",setupFunc:sct,kernelFunc:ict};var GW;function act(r){GW=r.wasm.cwrap(ss,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function lct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=S.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,I=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,D=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=n.makeOutput(f.outShape,"float32"),G=n.dataIdMap.get(V.dataId).id;return GW(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,M,I,N,E,A,D,F,G),V}var WW={kernelName:ss,backendName:"wasm",setupFunc:act,kernelFunc:lct};var UW;function uct(r){UW=r.wasm.cwrap("Diag",null,["number","number","number","number"])}function cct(r){let{inputs:t,backend:e}=r,{x:n}=t,o=y.sizeFromShape(n.shape),s=e.makeOutput([...n.shape,...n.shape],n.dtype);return UW(e.dataIdMap.get(n.dataId).id,Nt[n.dtype],o,e.dataIdMap.get(s.dataId).id),s}var HW={kernelName:Xl,backendName:"wasm",setupFunc:uct,kernelFunc:cct};var qW;function pct(r){qW=r.wasm.cwrap(is,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function mct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n;if(o.dtype!==s.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${o.dtype} and ${s.dtype}`);let l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c=e.makeOutput(l.outShape,o.dtype);return qW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(c.dataId).id,Nt[o.dtype],l.batchSize,l.inChannels,l.inHeight,l.inWidth,l.outHeight,l.outWidth,l.strideHeight,l.strideWidth,l.dilationHeight,l.dilationWidth,l.filterHeight,l.filterWidth,l.padInfo.top,l.padInfo.left),c}var KW={kernelName:is,backendName:"wasm",setupFunc:pct,kernelFunc:mct};var jW;function fct(r){jW=r.wasm.cwrap(Zl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function dct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(s.shape,s.dtype);return jW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var XW={kernelName:Zl,backendName:"wasm",setupFunc:fct,kernelFunc:dct};var YW;function hct(r){YW=r.wasm.cwrap(Yl,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function gct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,dy:i}=t,{strides:a,pad:u,dilations:l}=n;if(o.dtype!==s.dtype||o.dtype!==i.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${o.dtype}, ${s.dtype}, and ${i.dtype}`);let c=S.computeDilation2DInfo(o.shape,s.shape,a,u,"NHWC",l),p=e.makeOutput(o.shape,o.dtype);return YW(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,Nt[o.dtype],c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.filterHeight,c.filterWidth,c.padInfo.top,c.padInfo.left),p}var ZW={kernelName:Yl,backendName:"wasm",setupFunc:hct,kernelFunc:gct};var JW=yt(ls);var QW;function xct(r){QW=r.wasm.cwrap(La,null,["number","number","number"])}function yct(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=e.makeOutput(o.shape,"float32"),i=a=>e.dataIdMap.get(a.dataId).id;return QW(i(o),i(n),i(s)),s}var tU={kernelName:La,backendName:"wasm",setupFunc:xct,kernelFunc:yct};var bct=!1,eU=ee(za,bct,"bool");var rU=yt(us);var nU=yt(cs,"float32");function EC(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),mr({inputs:{x:o},backend:n,attrs:{shape:a}})}var oU={kernelName:Mi,backendName:"wasm",kernelFunc:EC};var sU=yt(ps,"float32");function Z1(r){let{attrs:{shape:t,value:e},backend:n}=r,{attrs:{dtype:o}}=r;o=o||y.inferDtype(e);let s=n.makeOutput(t,o);return n.typedArrayFromHeap(s).fill(e),s}var iU={kernelName:Jl,backendName:"wasm",kernelFunc:Z1};var aU;function wct(r){aU=r.wasm.cwrap(Ba,null,["number","number","number","number","number","number"])}function Ict(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return aU(s,a,u,l,c,i),o}var lU={kernelName:Ba,backendName:"wasm",kernelFunc:Ict,setupFunc:wct};var uU=yt(ms);var Cct=!1,cU=ee(fs,Cct);var pU;function vct(r){pU=r.wasm.cwrap(ds,null,["number","number","number","number","number","number","number"])}function Sct(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return pU(c,p,m,f,d,o,g),h}var mU={kernelName:ds,backendName:"wasm",setupFunc:vct,kernelFunc:Sct};var fU;function Nct(r){fU=r.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 kct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return fU(x,Y,Z,et,b,N,E,I,A,D,F,M,j,V,G,W,q,H,w,g,lt,d||0,st),nt}var dU={kernelName:Yi,backendName:"wasm",setupFunc:Nct,kernelFunc:kct};var hU;function Tct(r){hU=r.wasm.cwrap(Zi,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 _ct(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=ju[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,I=0;if(i!=null){let ot=n.dataIdMap.get(i.dataId);if(ot.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ot.shape.length}.`);if(ot.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${ot.shape}) does not match the number of output channels (${w})`);I=ot.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,D=h.padInfo.right,F=h.padInfo.bottom,M=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let nt=n.makeOutput(h.outShape,"float32"),st=n.dataIdMap.get(nt.dataId).id,lt=a==null?0:n.dataIdMap.get(a.dataId).id;return hU(x,Y,Z,et,b,N,E,I,A,D,F,M,j,V,G,W,q,H,w,g,lt,d||0,st),nt}var gU={kernelName:Zi,backendName:"wasm",setupFunc:Tct,kernelFunc:_ct};var xU;function Ect(r){xU=r.wasm.cwrap(Va,null,["number","number","number","number","number","number","array","number"])}function Act(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Ey.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return xU(f,Nt[n.dtype],h,i,p,a,g,x),l}var yU={kernelName:Va,backendName:"wasm",setupFunc:Ect,kernelFunc:Act};var bU;function Dct(r){bU=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function $ct(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${M} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=mr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=mr({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return bU(w,Nt[o.dtype],A,x,N,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var wU={kernelName:Pi,backendName:"wasm",setupFunc:Dct,kernelFunc:$ct};var Rct=!1,IU=ee(Ga,Rct,"bool");var Fct=!1,CU=ee(hs,Fct,"bool");var vU=yt(gs,"bool");var SU=yt(xs,"bool");var NU=yt(ys,"bool");var kU;function Oct(r){kU=r.wasm.cwrap(bs,null,["number","number","number","number"])}function Mct(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,"float32");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;kU(o,Nt[t.dtype],e,i)}return s}var TU={kernelName:bs,backendName:"wasm",setupFunc:Oct,kernelFunc:Mct};var Pct=!1,_U=ee(Wa,Pct,"bool");var Lct=!1,EU=ee(Ua,Lct,"bool");var AU;function zct(r){AU=r.wasm.cwrap(Ha,null,["number","number","number","number"])}function Bct(r){let{attrs:t,backend:e}=r,{start:n,stop:o,num:s}=t,i=Math.floor(s),a=e.makeOutput([i],"float32");return AU(e.dataIdMap.get(a.dataId).id,n,o,i),a}var DU={kernelName:Ha,backendName:"wasm",setupFunc:zct,kernelFunc:Bct};var $U=yt(ws);var RU=yt(Is);var Vct=!1,FU=ee(qa,Vct,"bool");var OU=yt(Ka);var Gct=!1,MU=ee(ja,Gct,"bool");var Wct=!1,PU=ee(E_,Wct,"bool");var LU;function Uct(r){LU=r.wasm.cwrap(Cs,null,["number","number","number","number","number","number","number"])}function Hct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;if(o.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");let l=e.makeOutput(o.shape,o.dtype);return LU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(l.dataId).id,o.shape[3],s,i,a,u),l}var zU={kernelName:Cs,backendName:"wasm",setupFunc:Uct,kernelFunc:Hct};var BU;function qct(r){BU=r.wasm.cwrap(Xa,null,["number","number","number","number","number","number","number","number","number"])}function Kct(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n;if(o.dtype!=="float32"||s.dtype!=="float32"||i.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");let p=e.makeOutput(o.shape,o.dtype);return BU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(i.dataId).id,e.dataIdMap.get(p.dataId).id,i.shape[3],a,u,l,c),p}var VU={kernelName:Xa,backendName:"wasm",setupFunc:qct,kernelFunc:Kct};var GU;function jct(r){GU=r.wasm.cwrap(vs,null,["number","number","number","number"])}function Xct(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims("max",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;GU(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var WU={kernelName:vs,backendName:"wasm",setupFunc:jct,kernelFunc:Xct};var Yct=!1,UU=ee(Ss,Yct);var HU;function Zct(r){HU=r.wasm.cwrap(Ns,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Jct(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=S.computePool2DInfo(o.shape,i,a,1,u,l),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,b=c.dilationWidth,w=c.strideHeight,I=c.strideWidth,N=c.inChannels,E=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,"float32"),D=n.dataIdMap.get(A.dataId).id;return HU(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,I,N,E,D),A}var qU={kernelName:Ns,backendName:"wasm",setupFunc:Zct,kernelFunc:Jct};var KU;function Qct(r){KU=r.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function tpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.makeOutput(c.outShape,o.dtype);return KU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var jU={kernelName:Li,backendName:"wasm",setupFunc:Qct,kernelFunc:tpt};var XU;function ept(r){XU=r.wasm.cwrap("MaxPool3DGrad",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 rpt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return XU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inDepth,c.inHeight,c.inWidth,c.outDepth,c.outHeight,c.outWidth,c.strideDepth,c.strideHeight,c.strideWidth,c.dilationDepth,c.dilationHeight,c.dilationWidth,c.effectiveFilterDepth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.front,c.padInfo.top,c.padInfo.left),p}var YU={kernelName:tu,backendName:"wasm",setupFunc:ept,kernelFunc:rpt};var ZU;function npt(r){ZU=r.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function opt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n,c=S.computePool2DInfo(s.shape,i,a,1,u,l),p=e.makeOutput(s.shape,s.dtype);return ZU(e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),p}var JU={kernelName:Ql,backendName:"wasm",setupFunc:npt,kernelFunc:opt};var QU;function spt(r){QU=r.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ipt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,includeBatchInIndex:u}=n;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,[1,1],a),p=e.makeOutput(c.outShape,o.dtype),m=e.makeOutput(c.outShape,"int32");return QU(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(p.dataId).id,e.dataIdMap.get(m.dataId).id,Nt[o.dtype],u,c.batchSize,c.inChannels,c.inHeight,c.inWidth,c.outHeight,c.outWidth,c.strideHeight,c.strideWidth,c.dilationHeight,c.dilationWidth,c.effectiveFilterHeight,c.effectiveFilterWidth,c.padInfo.top,c.padInfo.left),[p,m]}var t4={kernelName:eu,backendName:"wasm",setupFunc:spt,kernelFunc:ipt};var e4;function apt(r){e4=r.wasm.cwrap(ks,null,["number, number, number"])}function lpt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let I=t.dataIdMap.get(c.dataId).id;I!==a&&(l=c,u=I,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=Fn({backend:t,inputs:{x:l},attrs:{dtype:"float32"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,"float32");if(y.sizeFromShape(l.shape)!==0){let I=t.dataIdMap.get(w.dataId).id;e4(u,x,I)}if(f&&t.disposeData(c.dataId),s){let I=S.expandShapeToKeepDim(w.shape,m);w.shape=I}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var r4={kernelName:ks,backendName:"wasm",setupFunc:apt,kernelFunc:lpt};var n4;function upt(r){n4=r.wasm.cwrap(Ts,null,["number","number","number","number"])}function cpt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims("min",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;n4(u,Nt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var o4={kernelName:Ts,backendName:"wasm",setupFunc:upt,kernelFunc:cpt};var ppt=!1,s4=ee(_s,ppt);var J1;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(J1||(J1={}));var i4;function mpt(r){i4=r.wasm.cwrap(Es,null,["number","array","number","number","array","array","number","number"])}function fpt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return i4(i,l,t.shape.length,Nt[t.dtype],m,f,J1[o],u),a}var a4={kernelName:Es,backendName:"wasm",kernelFunc:fpt,setupFunc:mpt};var l4;function dpt(r){l4=r.wasm.cwrap(Qs,null,["number","number","number","number"])}function Q1(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||l4(o,i,a,u),s}var u4={kernelName:Qs,backendName:"wasm",setupFunc:dpt,kernelFunc:Q1};var c4;function hpt(r){c4=r.wasm.cwrap(Ya,null,["number","number","number","number","number","number"])}function gpt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;if(o.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${o.dtype}`);let u=a?o:Q1({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),[l,c]=u.shape,p=e.makeOutput([l,s],"int32");return c4(e.dataIdMap.get(u.dataId).id,l,c,s,i,e.dataIdMap.get(p.dataId).id),a||e.disposeData(u.dataId),p}var p4={kernelName:Ya,backendName:"wasm",setupFunc:hpt,kernelFunc:gpt};var m4=ee(As,!0);var xpt=!0,f4=ee(Ds,xpt);var d4=yt(zi);function Bd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var h4;function ypt(r){h4=r.wasm.cwrap(Ja,"number",["number","number","number","number","number"])}function bpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=h4(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Bd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var g4={kernelName:Ja,backendName:"wasm",setupFunc:ypt,kernelFunc:bpt};var x4;function wpt(r){x4=r.wasm.cwrap(Qa,"number",["number","number","number","number","number","bool"])}function Ipt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=x4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var y4={kernelName:Qa,backendName:"wasm",setupFunc:wpt,kernelFunc:Ipt};var b4;function Cpt(r){b4=r.wasm.cwrap(tl,"number",["number","number","number","number","number","number"])}function vpt(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=b4(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var w4={kernelName:tl,backendName:"wasm",setupFunc:Cpt,kernelFunc:vpt};var Spt=!1,I4=ee(Za,Spt,"bool");var C4;function Npt(r){C4=r.wasm.cwrap($s,null,["number","number","number","number","number"])}function kpt(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return C4(m,i,a,u,c),l}var v4={kernelName:$s,backendName:"wasm",setupFunc:Npt,kernelFunc:kpt};function Tpt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var S4={kernelName:Bi,backendName:"wasm",kernelFunc:Tpt};function _pt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return EC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=EC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=X1({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var N4={kernelName:Vi,backendName:"wasm",kernelFunc:_pt};var k4;function Ept(r){k4=r.wasm.cwrap(Rs,null,["number","array","number","number","array","array","number","number"])}function Apt(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return Z1({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return k4(i,c,t.shape.length,Nt[t.dtype],f,d,o,l),a}var AC={kernelName:Rs,backendName:"wasm",kernelFunc:Apt,setupFunc:Ept};var Dpt=!1,T4=ee(Fs,Dpt);var _4;function $pt(r){_4=r.wasm.cwrap(Os,null,["number","number","number"])}function Rpt(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!=="float32"&&(l=Fn({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,"float32"),p=e.dataIdMap.get(c.dataId).id;return _4(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var E4={kernelName:Os,backendName:"wasm",setupFunc:$pt,kernelFunc:Rpt};var A4;function Fpt(r){A4=r.wasm.cwrap(Ms,null,["number","number","number","number"])}function Opt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;A4(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var D4={kernelName:Ms,backendName:"wasm",setupFunc:Fpt,kernelFunc:Opt};var Mpt=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=tp(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},$4={kernelName:ru,backendName:"wasm",kernelFunc:Mpt};var Ppt=!0,R4=ee(as,Ppt);var F4=yt(Ps);var O4=yt(Ls);var M4=yt(Vs);var P4;function Lpt(r){P4=r.wasm.cwrap(Bs,null,["number","number","number","number","number","number","number","number","number","number"])}function zpt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!=="float32"&&(g=Fn({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return P4(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var L4={kernelName:Bs,backendName:"wasm",setupFunc:Lpt,kernelFunc:zpt};var z4;function Bpt(r){z4=r.wasm.cwrap(rl,null,["number","number","number","array","array","boolean"])}function Vpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),z4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var B4={kernelName:rl,backendName:"wasm",setupFunc:Bpt,kernelFunc:Vpt};var V4;function Gpt(r){V4=r.wasm.cwrap(zs,null,["number","number","number","number","number","number","number","number","number","number"])}function Wpt(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!=="float32"&&(x=Fn({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return V4(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var G4={kernelName:zs,backendName:"wasm",setupFunc:Gpt,kernelFunc:Wpt};var W4;function Upt(r){W4=r.wasm.cwrap(el,null,["number","number","number","array","array","boolean"])}function Hpt(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=e.makeOutput(o.shape,"float32"),u=e.dataIdMap.get(o.dataId),l;return u.dtype!=="float32"&&(l=Fn({backend:e,inputs:{x:o},attrs:{dtype:"float32"}}),u=e.dataIdMap.get(l.dataId)),W4(e.dataIdMap.get(o.dataId).id,e.dataIdMap.get(s.dataId).id,e.dataIdMap.get(a.dataId).id,new Uint8Array(new Int32Array(o.shape).buffer),new Uint8Array(new Int32Array(s.shape).buffer),i),l!=null&&e.disposeData(l.dataId),a}var U4={kernelName:el,backendName:"wasm",setupFunc:Upt,kernelFunc:Hpt};var H4;function qpt(r){H4=r.wasm.cwrap(Gs,null,["number","array","number","array","number","number"])}function Kpt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return yp({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);H4(u,c,i.length,p,o.shape.length,l);let m=mr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var q4={kernelName:Gs,backendName:"wasm",kernelFunc:Kpt,setupFunc:qpt};var K4;function jpt(r){K4=r.wasm.cwrap(pl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Xpt(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=S.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i=="number"?[i,i,i,x?0:b]:[...i,b],I=new Uint8Array(new Int32Array(w).buffer);return K4(l,p,m,f,d,s,h,g,I,w.length,c),u}var j4={kernelName:pl,backendName:"wasm",kernelFunc:Xpt,setupFunc:jpt};var X4=yt(Ws);var Y4=yt(Us);var Z4;function Ypt(r){Z4=r.wasm.cwrap(nl,null,["number","number","number","number","number","number","array","number","number"])}function Zpt(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return Z4(d,g,Nt[s.dtype],u,l,c,x,m,b),a}var J4={kernelName:nl,backendName:"wasm",setupFunc:Ypt,kernelFunc:Zpt};var Q4;function Jpt(r){Q4=r.wasm.cwrap(sl,null,["number","number","number","number","number","number","bool","number"])}function Qpt(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n;if(o.dtype!==s.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${o.dtype} and ${s.dtype}`);let a=e.makeOutput(s.shape,"int32");function u(l){return e.dataIdMap.get(l.dataId).id}return Q4(u(o),u(s),o.shape[0],o.shape[1],s.shape[1],Nt[o.dtype],i==="left",u(a)),a}var tH={kernelName:sl,backendName:"wasm",setupFunc:Jpt,kernelFunc:Qpt};var eH;function tmt(r){eH=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function emt(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eH(i,a,u,f,c),l}var rH={kernelName:Wi,backendName:"wasm",kernelFunc:emt,setupFunc:tmt};var nH=yt(Hs);var oH;function rmt(r){oH=r.wasm.cwrap(Xs,null,["number","number"])}function nmt(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||oH(n,s),o}var sH={kernelName:"Sigmoid",backendName:"wasm",setupFunc:rmt,kernelFunc:nmt};var iH=yt(js);var aH=yt(qs);var lH=yt(Ks);var uH=yt(Ys);function omt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let E=1+s.length;E0?u+1:0;if(c<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],"int32"),b=e.dataIdMap.get(x.dataId).id;mH(m,Nt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=""}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function smt(r){return AC(r,!0)}var fH={kernelName:ou,backendName:"wasm",setupFunc:EC,kernelFunc:smt};function imt(r){return AC(r,!1)}var dH={kernelName:su,backendName:"wasm",setupFunc:EC,kernelFunc:imt};var hH;function amt(r){hH=r.wasm.cwrap(al,null,["number","number","number","number","number","number","number","number","array","number","number"])}function lmt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return hH(d,h,s.shape.length,g,Nt[i.dtype],l,c,p,x,f,b),u}var gH={kernelName:al,backendName:"wasm",setupFunc:amt,kernelFunc:lmt};function umt(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var xH={kernelName:Hi,backendName:"wasm",kernelFunc:umt};var yH=yt(Zs);var bH=yt(iu);var cmt=!0,wH=ee(ti,cmt);var IH;function pmt(r){IH=r.wasm.cwrap(xo,null,["number","number","number","number"])}function mmt(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return IH(i,o,Nt[s.dtype],u),a}var CH={kernelName:xo,backendName:"wasm",setupFunc:pmt,kernelFunc:mmt};var vH;function fmt(r){vH=r.wasm.cwrap(ll,null,["number","array","number","array","array","array","array","array","number","number"])}function dmt(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let E=t.makeOutput(f,"float32"),A=t.dataIdMap.get(o.dataId).id,D=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),M=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;vH(A,D,o.shape.length,F,M,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var SH={kernelName:ll,backendName:"wasm",setupFunc:fmt,kernelFunc:dmt};function hmt(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=rp(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],"string"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(h),[g,b]}var NH={kernelName:au,backendName:"wasm",kernelFunc:hmt};function gmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=np(a,u[0],i),m=c.length,f=t.makeOutput([m,2],"int32");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],"string"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],"int32");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var kH={kernelName:lu,backendName:"wasm",kernelFunc:gmt};function xmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=op(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var TH={kernelName:uu,backendName:"wasm",kernelFunc:xmt};var ymt=!0,_H=ee(ei,ymt);var EH;function bmt(r){EH=r.wasm.cwrap(Js,null,["number","number","number","number"])}function wmt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EH(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var AH={kernelName:Js,backendName:"wasm",setupFunc:bmt,kernelFunc:wmt};var DH=yt(ri);var $H=yt(ni);var RH;function Imt(r){RH=r.wasm.cwrap(ol,null,["number","number","number","number","number","number","array","number","number","number"])}function Cmt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return RH(d,g,Nt[i.dtype],u,l,c,w,m,I,b),a}var FH={kernelName:ol,backendName:"wasm",setupFunc:Imt,kernelFunc:Cmt};var OH;function vmt(r){OH=r.wasm.cwrap(oo,null,["number","array","number","array","number","number"])}function Smt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,"int32"),m=t.dataIdMap.get(p.dataId).id;return PH(i,a,n.shape.length,Nt[n.dtype],o,s,c,m),[l,p]},LH={kernelName:ul,backendName:"wasm",setupFunc:Nmt,kernelFunc:kmt};var zH;function Tmt(r){zH=r.wasm.cwrap(cl,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function _mt(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=t.dataIdMap.get(s.dataId).id,F=i==="nearest"?1:2,M;switch(a){case"constant":M=1;break;case"reflect":M=2;break;case"wrap":M=3;break;case"nearest":M=4;break;default:M=1;break}return zH(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,M,u,I),w}var BH={kernelName:cl,backendName:"wasm",setupFunc:Tmt,kernelFunc:_mt};function Emt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=sp(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],"int32",void 0,u)]}var VH={kernelName:cu,backendName:"wasm",kernelFunc:Emt};function Amt(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var GH={kernelName:qi,backendName:"wasm",kernelFunc:Amt};function Dmt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var WH={kernelName:Ki,backendName:"wasm",kernelFunc:Dmt};var $mt=[_G,EG,AG,DG,$G,FG,zG,VG,GG,WG,UG,HG,qG,KG,jG,YG,rW,JG,tW,sW,aW,uW,cW,pW,mW,fW,hW,gW,yW,wW,CW,SW,kW,TW,_W,AW,$W,FW,MW,LW,BW,GW,UW,qW,jW,XW,ZW,JW,QW,tU,eU,rU,nU,sU,iU,aU,uU,pU,fU,hU,xU,yU,bU,OG,wU,IU,CU,SU,NU,kU,_U,AU,EU,DU,$U,RU,FU,MU,LU,BU,VU,WU,HU,KU,XU,ZU,QU,e4,r4,o4,l4,u4,c4,p4,f4,h4,x4,y4,w4,I4,C4,_C,S4,k4,_4,E4,A4,D4,$4,R4,nW,O4,P4,z4,V4,W4,H4,q4,K4,X4,Z4,Q4,tH,rH,nH,oH,sH,iW,i4,iH,aH,uH,pH,fH,dH,gH,xH,yH,bH,wH,CH,SH,NH,kH,TH,_H,AH,DH,$H,FH,MH,LH,BH,PG,VH,GH,WH];for(let r of $mt)rc(r);var J1=L();J1.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});J1.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(J1.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 s_=Gl(KH()),QH=Gl(XH()),i_=Gl(YH());var ZH=s_.default||s_,Rmt=i_.default||i_,bg=class extends Bo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(eq),o_=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Ta(this,Bn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o==="string"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u)>>>0;this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s==="string")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Omt(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case"float32":return new Float32Array(o,s,i);case"int32":return new Int32Array(o,s,i);case"bool":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Fmt(r){return(t,e)=>(y.fetch(r,{credentials:"same-origin"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function JH(r,t,e){if(RC!=null)return RC;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),xg!=null&&xg[n]!=null?xg[n]:e+n}async function tq(){let[r,t]=await Promise.all([L().getAsync("WASM_HAS_SIMD_SUPPORT"),L().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=QH.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?JH(r,t,gg!=null?gg:u):u+a},a_&&(o.instantiateWasm=Fmt(JH(r,t,gg!=null?gg:"")));let s=!1;o.onAbort=()=>{if(s||yg)return;yg=!0,n({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&&r&&RC==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+ZH.toString()],{type:"text/javascript"}),i=ZH(o)):i=Rmt(o),i.then(a=>{s=!0,yg=!1;let u=null;a.tfjs={init:a.cwrap("init",null,[]),initWithThreadsCount:a.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:a.cwrap("get_threads_count","number",[]),registerTensor:a.cwrap("register_tensor",null,["number","number","number"]),disposeData:a.cwrap("dispose_data",u,["number"]),dispose:a.cwrap("dispose",u,[])},e({wasm:a})}).catch(n)})}function Omt(r,t){switch(t){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var Mmt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],RC=null,gg=null,xg={},yg=!1,a_=!1;function Pmt(r,t=!1){if(B0("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),yg)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");RC=r,a_=t}function Lmt(r,t=!1){if(yg)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")gg=r;else{xg=r;let e=Mmt.filter(n=>xg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.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.`)}a_=t}var eq=-1,o_=-1;function zmt(r){eq=r}function Bmt(){if(o_===-1)throw new Error("WASM backend not initialized.");return o_}var Vmt="4.16.0";var Gmt=2;Xp("wasm",async()=>{let{wasm:r}=await tq();return new bg(r)},Gmt);var rq="4.16.0",Wmt="4.16.0",Umt="4.16.0",Hmt="4.16.0",qmt="4.16.0",Kmt={tfjs:rq,"tfjs-core":rq,"tfjs-converter":Wmt,"tfjs-backend-cpu":Umt,"tfjs-backend-webgl":Hmt,"tfjs-backend-wasm":qmt};export{Ei as Abs,Go as Acos,Wo as Acosh,vc as AdadeltaOptimizer,Sc as AdagradOptimizer,Nc as AdamOptimizer,kc as AdamaxOptimizer,no as Add,Uo as AddN,Ea as All,Aa as Any,Ai as ArgMax,Di as ArgMin,Ho as Asin,qo as Asinh,Ko as Atan,Xo as Atan2,jo as Atanh,Yo as AvgPool,$i as AvgPool3D,Hl as AvgPool3DGrad,Ul as AvgPoolGrad,bg as BackendWasm,Zo as BatchMatMul,Ri as BatchToSpaceND,Da as Bincount,$a as BitwiseAnd,ql as BroadcastArgs,k_ as BroadcastTo,Pb as Callback,Xy as CallbackList,fo as Cast,Jo as Ceil,ho as ClipByValue,Ap as Complex,Kl as ComplexAbs,Fi as Concat,Qo as Conv2D,Dp as Conv2DBackpropFilter,ts as Conv2DBackpropInput,es as Conv3D,Ra as Conv3DBackpropFilterV2,Fa as Conv3DBackpropInputV2,rs as Cos,ns as Cosh,Ma as CropAndResize,Oa as Cumprod,os as Cumsum,Zy as CustomCallback,Ta as DataStorage,jl as DenseBincount,Pa as DepthToSpace,ss as DepthwiseConv2dNative,$p as DepthwiseConv2dNativeBackpropFilter,Rp as DepthwiseConv2dNativeBackpropInput,Xl as Diag,is as Dilation2D,Zl as Dilation2DBackpropFilter,Yl as Dilation2DBackpropInput,Jd as Draw,y0 as ENV,Lb as EarlyStopping,Fp as Einsum,ls as Elu,La as EluGrad,Yd as Environment,za as Equal,us as Erf,cs as Exp,Oi as ExpandDims,ps as Expm1,Op as FFT,Jl as Fill,Ba as FlipLeftRight,ms as Floor,fs as FloorDiv,Qd as FromPixels,ds as FusedBatchNorm,Xi as FusedConv2D,Yi as FusedDepthwiseConv2D,pp as GPGPUContext,Va as GatherNd,Mi as GatherV2,Hh as GraphModel,Ga as Greater,hs as GreaterEqual,Yy as History,Mp as IFFT,go as Identity,Pp as Imag,Ie as InputSpec,gs as IsFinite,xs as IsInf,ys as IsNan,Bo as KernelBackend,Cs as LRN,Xa as LRNGrad,kh as LayerVariable,Un as LayersModel,bs as LeakyRelu,Wa as Less,Ua as LessEqual,Ha as LinSpace,ws as Log,Is as Log1p,__ as LogSoftmax,qa as LogicalAnd,Ka as LogicalNot,ja as LogicalOr,T_ as LogicalXor,Qmt as LowerBound,cd as MathBackendCPU,Ad as MathBackendWebGL,tft as MatrixBandPart,vs as Max,Ns as MaxPool,Pi as MaxPool3D,tu as MaxPool3DGrad,Ql as MaxPoolGrad,eu as MaxPoolWithArgmax,Ss as Maximum,ks as Mean,Ts as Min,_s as Minimum,Es as MirrorPad,As as Mod,Tc as MomentumOptimizer,Ya as Multinomial,Ds as Multiply,Li as Neg,Ja as NonMaxSuppressionV3,Qa as NonMaxSuppressionV4,tl as NonMaxSuppressionV5,Za as NotEqual,z0 as OP_SCOPE_SUFFIX,$s as OneHot,zi as OnesLike,qr as Optimizer,wh as OptimizerConstructors,Bi as Pack,Rs as PadV2,eft as Pool,Fs as Pow,Os as Prelu,Ms as Prod,_c as RMSPropOptimizer,po as RNN,Lp as RaggedGather,zp as RaggedRange,Bp as RaggedTensorToTensor,ru as Range,E0 as Rank,Vp as Real,as as RealDiv,Ps as Reciprocal,Je as Reduction,Ls as Relu,Vs as Relu6,Vi as Reshape,Bs as ResizeBilinear,rl as ResizeBilinearGrad,zs as ResizeNearestNeighbor,el as ResizeNearestNeighborGrad,Gs as Reverse,pl as RotateWithOffset,Ws as Round,Us as Rsqrt,Il as SGDOptimizer,nl as ScatterNd,sl as SearchSorted,Gi as Select,Hs as Selu,Wc as Sequential,Xs as Sigmoid,js as Sign,qs as Sin,Ks as Sinh,Wi as Slice,Qs as Softmax,Ys as Softplus,Ui as SpaceToBatchND,nu as SparseFillEmptyRows,il as SparseReshape,ou as SparseSegmentMean,su as SparseSegmentSum,al as SparseToDense,Hi as SplitV,Zs as Sqrt,iu as Square,ti as SquaredDifference,ec as StaticRegexReplace,xo as Step,ll as StridedSlice,au as StringNGrams,lu as StringSplit,uu as StringToHashBucketFast,ei as Sub,Js as Sum,en as SymbolicTensor,ri as Tan,ni as Tanh,Lt as Tensor,le as TensorBuffer,ol as TensorScatterUpdate,oo as Tile,ul as TopK,cl as Transform,so as Transpose,cu as Unique,qi as Unpack,pu as UnsortedSegmentSum,rft as UpperBound,ml as Variable,Ki as ZerosLike,ji as _FusedMatMul,_e as abs,mx as acos,fx as acosh,X as add,TE as addN,tm as all,cc as any,ea as argMax,dx as argMin,hx as asin,gx as asinh,xx as atan,yx as atan2,bx as atanh,xu as avgPool,wx as avgPool3d,ox as backend,S as backend_util,AE as basicLSTMCell,oa as batchNorm,Ix as batchNorm2d,Cx as batchNorm3d,vx as batchNorm4d,yu as batchToSpaceND,Sx as bincount,$E as bitwiseAnd,W5 as booleanMaskAsync,RE as broadcastArgs,sa as broadcastTo,Ur as broadcast_util,_y as browser,wt as buffer,fQ as callbacks,J as cast,Nx as ceil,vr as clipByValue,ln as clone,Sn as complex,ie as concat,kx as concat1d,Tx as concat2d,_x as concat3d,Ex as concat4d,wR as constraints,rm as conv1d,Nn as conv2d,om as conv2dTranspose,Ax as conv3d,$x as conv3dTranspose,uft as copyRegisteredKernels,bu as cos,sm as cosh,gh as cosineWindow,mc as cumprod,im as cumsum,pn as customGrad,oO as data,ph as denseBincount,B0 as deprecationWarn,Rx as depthToSpace,ia as depthwiseConv2d,xQ as deregisterOp,du as device_util,FE as diag,Fx as dilation2d,wdt as disableDeprecationWarnings,Tt as dispose,Idt as disposeVariables,ct as div,Ox as divNoNan,Mx as dot,mN as dropout,wu as einsum,aa as elu,bdt as enableDebugMode,ydt as enableProdMode,fN as enclosingPowerOfTwo,Bn as engine,ME as ensureShape,L as env,$r as equal,Px as erf,Lx as euclideanNorm,Ke as exp,je as expandDims,zx as expm1,fc as eye,Au as fft,Co as fill,kdt as findBackend,Tdt as findBackendFactory,la as floor,Qp as floorDiv,Yz as forceHalfFloat,Ru as fused,ua as gather,Q5 as gatherND,Ey as gather_util,rE as getBackend,I0 as getGradient,Wp as getKernel,Xg as getKernelsForBackend,Bmt as getThreadsCount,S1 as gpgpu_util,q6 as grad,K6 as grads,Re as greater,cn as greaterEqual,wl as ifft,Iu as imag,fn as image,r8 as inTopKAsync,IR as initializers,YN as input,Mr as io,ym as irfft,Bx as isFinite,Vx as isInf,Gx as isNaN,De as keep,Kr as kernel_impls,eF as layers,Cu as leakyRelu,yl as less,Vn as lessEqual,hN as linalg,zE as linspace,ftt as loadGraphModel,dtt as loadGraphModelSync,VR as loadLayersModel,Wx as localResponseNormalization,Nr as log,vu as log1p,qx as logSigmoid,am as logSoftmax,Su as logSumExp,Fr as logicalAnd,Nu as logicalNot,lm as logicalOr,Kx as logicalXor,oY as losses,BE as lowerBound,Bt as matMul,R2 as math,Sr as max,ku as maxPool,Xx as maxPool3d,VE as maxPoolWithArgmax,kn as maximum,Ne as mean,ah as memory,GE as meshgrid,rF as metrics,gl as min,lo as minimum,Yx as mirrorPad,Zx as mod,fJ as model,nF as models,dc as moments,q5 as movingAverage,$ as mul,WE as multiRNNCell,UE as multinomial,Ut as neg,Ih as nextFrame,xl as norm,ui as notEqual,ca as oneHot,ar as ones,wr as onesLike,k as op,HE as outerProduct,mn as pad,qE as pad1d,KE as pad2d,jE as pad3d,XE as pad4d,Jx as pool,un as pow,_u as prelu,px as print,Qx as prod,Cdt as profile,YE as raggedGather,ZE as raggedRange,JE as raggedTensorToTensor,QE as rand,wA as randomGamma,xc as randomNormal,IA as randomStandardNormal,Gn as randomUniform,CA as randomUniformInt,pa as range,Sdt as ready,bl as real,sy as reciprocal,Xp as registerBackend,hJ as registerCallbackConstructor,A_ as registerGradient,rc as registerKernel,gQ as registerOp,oF as regularizers,Or as relu,um as relu6,Ndt as removeBackend,R as reshape,dr as reverse,vA as reverse1d,SA as reverse2d,NA as reverse3d,kA as reverse4d,Du as rfft,cm as round,pm as rsqrt,pt as scalar,j5 as scatterND,$u as scatter_util,fh as searchSorted,mm as selu,fm as separableConv2d,dJ as sequential,Q as serialization,$K as setBackend,_dt as setPlatform,zmt as setThreadsCount,Pmt as setWasmPath,Lmt as setWasmPaths,LT as setWebGLContext,TA as setdiff1dAsync,Tw as shared,Qr as sigmoid,iy as sign,nY as signal,dm as sin,hm as sinh,Ot as slice,gm as slice1d,hh as slice2d,xm as slice3d,yc as slice4d,Be as slice_util,Eu as softmax,li as softplus,Tu as spaceToBatchND,sY as sparse,Z5 as sparseToDense,rY as spectral,hr as split,Se as sqrt,Wt as square,bm as squaredDifference,Wn as squeeze,Fe as stack,So as step,ay as stridedSlice,iY as string,at as sub,mt as sum,lc as sumOutType,ly as tan,na as tanh,ir as tensor,Oe as tensor1d,ci as tensor2d,uy as tensor3d,_A as tensor4d,EA as tensor5d,AA as tensor6d,$A as tensorScatterUpdate,Io as tensor_util,bA as test_util,B as tidy,Rr as tile,vdt as time,cy as topk,Ac as train,Vt as transpose,Im as truncatedNormal,py as unique,lft as unregisterGradient,aft as unregisterKernel,Cm as unsortedSegmentSum,gr as unstack,ur as upcastType,RA as upperBound,y as util,j6 as valueAndGrad,X6 as valueAndGrads,my as variable,Ux as variableGrads,Kmt as version,LF as version_converter,K2 as version_core,UO as version_cpu,Km as version_layers,Vmt as version_wasm,Xz as version_webgl,N$e as webgl,Id as webgl_util,we as where,dy as whereAsync,ke as zeros,vt as zerosLike}; + ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(n.dataId).id,a=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(s.dataId).id,l=n.shape[0],c=y.sizeFromShape(s.shape),p=t.makeOutput([l,c],n.dtype),m=t.dataIdMap.get(p.dataId).id,f=t.makeOutput([c],s.dtype),d=t.dataIdMap.get(f.dataId).id,h=t.makeOutput([3],"int32"),g=t.dataIdMap.get(h.dataId).id;fH(i,a,u,l,m,d,g);let x=t.readSync(h.dataId),b;switch(x[0]){case 0:{b=S.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(x[1],x[2]);break}case 1:{b=S.getSparseReshapeNegativeOutputDimErrorMessage(x[1],x[2]);break}case 2:b=S.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let w=Array.from(t.readSync(o.dataId)),I=Array.from(t.readSync(f.dataId));b=S.getSparseReshapeInputOutputMultipleErrorMessage(w,I);break}case 4:{let w=Array.from(t.readSync(o.dataId)),I=Array.from(t.readSync(f.dataId));b=S.getSparseReshapeInputOutputMismatchErrorMessage(w,I);break}default:b=""}if(t.disposeData(h.dataId),b)throw t.disposeData(p.dataId),t.disposeData(f.dataId),new Error(b);return[p,f]}var dH={kernelName:il,backendName:"wasm",setupFunc:amt,kernelFunc:lmt};var hH;function DC(r){hH=r.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function $C(r,t){let{backend:e,inputs:n}=r,{data:o,indices:s,segmentIds:i}=n,a=s.shape[0],u=e.readSync(i.dataId,a-1,a)[0],c=a>0?u+1:0;if(c<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],"int32"),b=e.dataIdMap.get(x.dataId).id;hH(m,Nt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),I;switch(w[0]){case 0:{I=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{I=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:I=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:I=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:I=""}if(e.disposeData(x.dataId),I)throw e.disposeData(h.dataId),new Error(I);return h}function umt(r){return $C(r,!0)}var gH={kernelName:ou,backendName:"wasm",setupFunc:DC,kernelFunc:umt};function cmt(r){return $C(r,!1)}var xH={kernelName:su,backendName:"wasm",setupFunc:DC,kernelFunc:cmt};var yH;function pmt(r){yH=r.wasm.cwrap(al,null,["number","number","number","number","number","number","number","number","array","number","number"])}function mmt(r){let{backend:t,inputs:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=e,{outputShape:a}=n,u=t.makeOutput(a,i.dtype);if(y.sizeFromShape(a)===0)return u;let{sliceRank:l,numUpdates:c,sliceSize:p,strides:m,outputSize:f}=S.calculateShapes(s,o,a),d=t.dataIdMap.get(o.dataId).id,h=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,x=new Uint8Array(new Int32Array(m).buffer),b=t.dataIdMap.get(u.dataId).id;return yH(d,h,s.shape.length,g,Nt[i.dtype],l,c,p,x,f,b),u}var bH={kernelName:al,backendName:"wasm",setupFunc:pmt,kernelFunc:mmt};function fmt(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var wH={kernelName:qi,backendName:"wasm",kernelFunc:fmt};var IH=yt(Zs);var CH=yt(iu);var dmt=!0,vH=ee(ti,dmt);var SH;function hmt(r){SH=r.wasm.cwrap(xo,null,["number","number","number","number"])}function gmt(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return SH(i,o,Nt[s.dtype],u),a}var NH={kernelName:xo,backendName:"wasm",setupFunc:hmt,kernelFunc:gmt};var kH;function xmt(r){kH=r.wasm.cwrap(ll,null,["number","array","number","array","array","array","array","array","number","number"])}function ymt(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:I}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=mr({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Be.computeOutShape(b,w,I),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=mr({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let E=t.makeOutput(f,"float32"),A=t.dataIdMap.get(o.dataId).id,D=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),M=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(I).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;kH(A,D,o.shape.length,F,M,V,G,W,f.length,q),N=mr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var TH={kernelName:ll,backendName:"wasm",setupFunc:xmt,kernelFunc:ymt};function bmt(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=rp(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],"string"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(h),[g,b]}var _H={kernelName:au,backendName:"wasm",kernelFunc:bmt};function wmt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=np(a,u[0],i),m=c.length,f=t.makeOutput([m,2],"int32");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],"string"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],"int32");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var EH={kernelName:lu,backendName:"wasm",kernelFunc:wmt};function Imt(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=op(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var AH={kernelName:uu,backendName:"wasm",kernelFunc:Imt};var Cmt=!0,DH=ee(ei,Cmt);var $H;function vmt(r){$H=r.wasm.cwrap(Js,null,["number","number","number","number"])}function Smt(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;$H(u,x,Nt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var RH={kernelName:Js,backendName:"wasm",setupFunc:vmt,kernelFunc:Smt};var FH=yt(ri);var OH=yt(ni);var MH;function Nmt(r){MH=r.wasm.cwrap(ol,null,["number","number","number","number","number","number","array","number","number","number"])}function kmt(r){let{backend:t,inputs:e,attrs:n}=r,{tensor:o,indices:s,updates:i}=e,{}=n,a=t.makeOutput(o.shape,o.dtype);if(y.sizeFromShape(o.shape)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=$u.calculateShapes(i,s,o.shape),d=t.dataIdMap.get(s.dataId).id,g=t.dataIdMap.get(i.dataId).id,b=t.dataIdMap.get(o.dataId).id,w=new Uint8Array(new Int32Array(p).buffer),I=t.dataIdMap.get(a.dataId).id;return MH(d,g,Nt[i.dtype],u,l,c,w,m,I,b),a}var PH={kernelName:ol,backendName:"wasm",setupFunc:Nmt,kernelFunc:kmt};var LH;function Tmt(r){LH=r.wasm.cwrap(oo,null,["number","array","number","array","number","number"])}function _mt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,"int32"),m=t.dataIdMap.get(p.dataId).id;return BH(i,a,n.shape.length,Nt[n.dtype],o,s,c,m),[l,p]},VH={kernelName:ul,backendName:"wasm",setupFunc:Emt,kernelFunc:Amt};var GH;function Dmt(r){GH=r.wasm.cwrap(cl,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function $mt(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),I=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,D=t.dataIdMap.get(s.dataId).id,F=i==="nearest"?1:2,M;switch(a){case"constant":M=1;break;case"reflect":M=2;break;case"wrap":M=3;break;case"nearest":M=4;break;default:M=1;break}return GH(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,M,u,I),w}var WH={kernelName:cl,backendName:"wasm",setupFunc:Dmt,kernelFunc:$mt};function Rmt(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t,{outputValues:i,outputShape:a,indices:u}=sp(n.readSync(s.dataId),o,s.shape,s.dtype);return[n.makeOutput(a,s.dtype,void 0,i),n.makeOutput([u.length],"int32",void 0,u)]}var UH={kernelName:cu,backendName:"wasm",kernelFunc:Rmt};function Fmt(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var HH={kernelName:Ki,backendName:"wasm",kernelFunc:Fmt};function Omt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var qH={kernelName:ji,backendName:"wasm",kernelFunc:Omt};var Mmt=[DG,$G,RG,FG,OG,PG,GG,UG,HG,qG,KG,jG,XG,YG,ZG,QG,sW,eW,nW,lW,cW,mW,fW,dW,hW,gW,yW,bW,IW,vW,NW,TW,EW,AW,DW,RW,OW,PW,zW,VW,WW,HW,KW,XW,ZW,JW,tU,eU,rU,nU,oU,sU,iU,lU,uU,cU,mU,dU,gU,yU,wU,IU,CU,LG,vU,SU,NU,TU,_U,EU,DU,RU,$U,FU,OU,MU,PU,zU,VU,WU,UU,qU,jU,YU,JU,t4,r4,o4,s4,a4,p4,m4,f4,d4,g4,y4,w4,I4,v4,S4,N4,AC,T4,E4,D4,$4,R4,F4,O4,M4,iW,L4,B4,G4,U4,q4,j4,X4,Y4,J4,tH,rH,nH,sH,iH,aH,lH,uW,u4,uH,cH,mH,dH,gH,xH,bH,wH,IH,CH,vH,NH,TH,_H,EH,AH,DH,RH,FH,OH,PH,zH,VH,WH,BG,UH,HH,qH];for(let r of Mmt)rc(r);var t_=L();t_.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});t_.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(t_.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 a_=Gl(YH()),rq=Gl(JH()),l_=Gl(QH());var tq=a_.default||a_,Pmt=l_.default||l_,wg=class extends Bo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(oq),i_=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Ta(this,Bn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o==="string"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u)>>>0;this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s==="string")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return zmt(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n,o){let s;if(n==null)s=this.write(o!=null?o:null,t,e);else{let i=this.dataIdNextNumber++;s={id:i},this.dataIdMap.set(s,{id:i,memoryOffset:n,shape:t,dtype:e,refCount:1});let a=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(i,a,n)}return{dataId:s,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case"float32":return new Float32Array(o,s,i);case"int32":return new Int32Array(o,s,i);case"bool":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Lmt(r){return(t,e)=>(y.fetch(r,{credentials:"same-origin"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function eq(r,t,e){if(OC!=null)return OC;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),yg!=null&&yg[n]!=null?yg[n]:e+n}async function nq(){let[r,t]=await Promise.all([L().getAsync("WASM_HAS_SIMD_SUPPORT"),L().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=rq.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?eq(r,t,xg!=null?xg:u):u+a},u_&&(o.instantiateWasm=Lmt(eq(r,t,xg!=null?xg:"")));let s=!1;o.onAbort=()=>{if(s||bg)return;bg=!0,n({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&&r&&OC==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+tq.toString()],{type:"text/javascript"}),i=tq(o)):i=Pmt(o),i.then(a=>{s=!0,bg=!1;let u=null;a.tfjs={init:a.cwrap("init",null,[]),initWithThreadsCount:a.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:a.cwrap("get_threads_count","number",[]),registerTensor:a.cwrap("register_tensor",null,["number","number","number"]),disposeData:a.cwrap("dispose_data",u,["number"]),dispose:a.cwrap("dispose",u,[])},e({wasm:a})}).catch(n)})}function zmt(r,t){switch(t){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var Bmt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],OC=null,xg=null,yg={},bg=!1,u_=!1;function Vmt(r,t=!1){if(G0("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),bg)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");OC=r,u_=t}function Gmt(r,t=!1){if(bg)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")xg=r;else{yg=r;let e=Bmt.filter(n=>yg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.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.`)}u_=t}var oq=-1,i_=-1;function Wmt(r){oq=r}function Umt(){if(i_===-1)throw new Error("WASM backend not initialized.");return i_}var Hmt="4.21.0";var qmt=2;Xp("wasm",async()=>{let{wasm:r}=await nq();return new wg(r)},qmt);var sq="4.21.0",Kmt="4.21.0",jmt="4.21.0",Xmt="4.21.0",Ymt="4.21.0",Zmt={tfjs:sq,"tfjs-core":sq,"tfjs-converter":Kmt,"tfjs-backend-cpu":jmt,"tfjs-backend-webgl":Xmt,"tfjs-backend-wasm":Ymt};export{Ai as Abs,Go as Acos,Wo as Acosh,vc as AdadeltaOptimizer,Sc as AdagradOptimizer,Nc as AdamOptimizer,kc as AdamaxOptimizer,no as Add,Uo as AddN,Ea as All,Aa as Any,Di as ArgMax,$i as ArgMin,Ho as Asin,qo as Asinh,Ko as Atan,Xo as Atan2,jo as Atanh,Yo as AvgPool,Ri as AvgPool3D,Hl as AvgPool3DGrad,Ul as AvgPoolGrad,wg as BackendWasm,Zo as BatchMatMul,Fi as BatchToSpaceND,Da as Bincount,$a as BitwiseAnd,ql as BroadcastArgs,__ as BroadcastTo,zb as Callback,Xy as CallbackList,fo as Cast,Jo as Ceil,ho as ClipByValue,Ap as Complex,Kl as ComplexAbs,Oi as Concat,Qo as Conv2D,Dp as Conv2DBackpropFilter,ts as Conv2DBackpropInput,es as Conv3D,Ra as Conv3DBackpropFilterV2,Fa as Conv3DBackpropInputV2,rs as Cos,ns as Cosh,Ma as CropAndResize,Oa as Cumprod,os as Cumsum,Zy as CustomCallback,Ta as DataStorage,jl as DenseBincount,Pa as DepthToSpace,ss as DepthwiseConv2dNative,$p as DepthwiseConv2dNativeBackpropFilter,Rp as DepthwiseConv2dNativeBackpropInput,Xl as Diag,is as Dilation2D,Zl as Dilation2DBackpropFilter,Yl as Dilation2DBackpropInput,Qd as Draw,w0 as ENV,Bb as EarlyStopping,Fp as Einsum,ls as Elu,La as EluGrad,Zd as Environment,za as Equal,us as Erf,cs as Exp,Mi as ExpandDims,ps as Expm1,Op as FFT,Jl as Fill,Ba as FlipLeftRight,ms as Floor,fs as FloorDiv,th as FromPixels,ds as FusedBatchNorm,Yi as FusedConv2D,Zi as FusedDepthwiseConv2D,pp as GPGPUContext,Va as GatherNd,Pi as GatherV2,qh as GraphModel,Ga as Greater,hs as GreaterEqual,Yy as History,Mp as IFFT,go as Identity,Pp as Imag,Ce as InputSpec,gs as IsFinite,xs as IsInf,ys as IsNan,Bo as KernelBackend,Cs as LRN,Xa as LRNGrad,Th as LayerVariable,Un as LayersModel,bs as LeakyRelu,Wa as Less,Ua as LessEqual,Ha as LinSpace,ws as Log,Is as Log1p,A_ as LogSoftmax,qa as LogicalAnd,Ka as LogicalNot,ja as LogicalOr,E_ as LogicalXor,nft as LowerBound,pd as MathBackendCPU,Dd as MathBackendWebGL,oft as MatrixBandPart,vs as Max,Ns as MaxPool,Li as MaxPool3D,tu as MaxPool3DGrad,Ql as MaxPoolGrad,eu as MaxPoolWithArgmax,Ss as Maximum,ks as Mean,Ts as Min,_s as Minimum,Es as MirrorPad,As as Mod,Tc as MomentumOptimizer,Ya as Multinomial,Ds as Multiply,zi as Neg,Ja as NonMaxSuppressionV3,Qa as NonMaxSuppressionV4,tl as NonMaxSuppressionV5,Za as NotEqual,V0 as OP_SCOPE_SUFFIX,$s as OneHot,Bi as OnesLike,jr as Optimizer,Ih as OptimizerConstructors,Vi as Pack,Rs as PadV2,sft as Pool,Fs as Pow,Os as Prelu,Ms as Prod,_c as RMSPropOptimizer,po as RNN,Lp as RaggedGather,zp as RaggedRange,Bp as RaggedTensorToTensor,ru as Range,D0 as Rank,Vp as Real,as as RealDiv,Ps as Reciprocal,Je as Reduction,Ls as Relu,Vs as Relu6,Gi as Reshape,Bs as ResizeBilinear,rl as ResizeBilinearGrad,zs as ResizeNearestNeighbor,el as ResizeNearestNeighborGrad,Gs as Reverse,pl as RotateWithOffset,Ws as Round,Us as Rsqrt,Il as SGDOptimizer,nl as ScatterNd,sl as SearchSorted,Wi as Select,Hs as Selu,Wc as Sequential,Xs as Sigmoid,js as Sign,qs as Sin,Ks as Sinh,Ui as Slice,Qs as Softmax,Ys as Softplus,Hi as SpaceToBatchND,nu as SparseFillEmptyRows,il as SparseReshape,ou as SparseSegmentMean,su as SparseSegmentSum,al as SparseToDense,qi as SplitV,Zs as Sqrt,iu as Square,ti as SquaredDifference,ec as StaticRegexReplace,xo as Step,ll as StridedSlice,au as StringNGrams,lu as StringSplit,uu as StringToHashBucketFast,ei as Sub,Js as Sum,nn as SymbolicTensor,ri as Tan,ni as Tanh,Lt as Tensor,le as TensorBuffer,ol as TensorScatterUpdate,oo as Tile,ul as TopK,cl as Transform,so as Transpose,cu as Unique,Ki as Unpack,pu as UnsortedSegmentSum,ift as UpperBound,ml as Variable,ji as ZerosLike,Xi as _FusedMatMul,_e as abs,fx as acos,dx as acosh,K as add,EE as addN,tm as all,cc as any,ra as argMax,hx as argMin,gx as asin,xx as asinh,yx as atan,bx as atan2,wx as atanh,xu as avgPool,Ix as avgPool3d,sx as backend,S as backend_util,$E as basicLSTMCell,oa as batchNorm,Cx as batchNorm2d,vx as batchNorm3d,Sx as batchNorm4d,yu as batchToSpaceND,Nx as bincount,FE as bitwiseAnd,q5 as booleanMaskAsync,OE as broadcastArgs,sa as broadcastTo,Hr as broadcast_util,_y as browser,wt as buffer,xQ as callbacks,J as cast,kx as ceil,vr as clipByValue,un as clone,Sn as complex,ie as concat,Tx as concat1d,_x as concat2d,Ex as concat3d,Ax as concat4d,CR as constraints,rm as conv1d,Nn as conv2d,om as conv2dTranspose,Dx as conv3d,Rx as conv3dTranspose,fft as copyRegisteredKernels,bu as cos,sm as cosh,xh as cosineWindow,mc as cumprod,im as cumsum,pn as customGrad,aO as data,mh as denseBincount,G0 as deprecationWarn,Fx as depthToSpace,ia as depthwiseConv2d,IQ as deregisterOp,du as device_util,ME as diag,Ox as dilation2d,Sdt as disableDeprecationWarnings,Tt as dispose,Ndt as disposeVariables,ut as div,Mx as divNoNan,Px as dot,dN as dropout,wu as einsum,aa as elu,vdt as enableDebugMode,Cdt as enableProdMode,hN as enclosingPowerOfTwo,Bn as engine,LE as ensureShape,L as env,$r as equal,am as erf,Lx as euclideanNorm,Ke as exp,je as expandDims,zx as expm1,fc as eye,Au as fft,Co as fill,Adt as findBackend,Ddt as findBackendFactory,la as floor,Qp as floorDiv,Qz as forceHalfFloat,Ru as fused,ua as gather,r8 as gatherND,Ey as gather_util,oE as getBackend,v0 as getGradient,Wp as getKernel,Yg as getKernelsForBackend,Umt as getThreadsCount,k1 as gpgpu_util,X6 as grad,Y6 as grads,Re as greater,cn as greaterEqual,wl as ifft,Iu as imag,fn as image,s8 as inTopKAsync,vR as initializers,JN as input,Mr as io,bm as irfft,Bx as isFinite,Vx as isInf,Gx as isNaN,De as keep,Xr as kernel_impls,oF as layers,Cu as leakyRelu,yl as less,Vn as lessEqual,xN as linalg,VE as linspace,xtt as loadGraphModel,ytt as loadGraphModelSync,UR as loadLayersModel,Wx as localResponseNormalization,Nr as log,vu as log1p,qx as logSigmoid,lm as logSoftmax,Su as logSumExp,Fr as logicalAnd,Nu as logicalNot,um as logicalOr,Kx as logicalXor,aY as losses,GE as lowerBound,Bt as matMul,O2 as math,Sr as max,ku as maxPool,Xx as maxPool3d,WE as maxPoolWithArgmax,kn as maximum,Ne as mean,lh as memory,UE as meshgrid,sF as metrics,gl as min,lo as minimum,Yx as mirrorPad,Zx as mod,gJ as model,iF as models,dc as moments,X5 as movingAverage,$ as mul,HE as multiRNNCell,qE as multinomial,Ut as neg,Ch as nextFrame,xl as norm,ci as notEqual,ca as oneHot,ar as ones,wr as onesLike,k as op,KE as outerProduct,mn as pad,jE as pad1d,XE as pad2d,YE as pad3d,ZE as pad4d,Jx as pool,qr as pow,_u as prelu,mx as print,Qx as prod,kdt as profile,JE as raggedGather,QE as raggedRange,tA as raggedTensorToTensor,eA as rand,CA as randomGamma,xc as randomNormal,vA as randomStandardNormal,Gn as randomUniform,SA as randomUniformInt,pa as range,_dt as ready,bl as real,sy as reciprocal,Xp as registerBackend,yJ as registerCallbackConstructor,$_ as registerGradient,rc as registerKernel,wQ as registerOp,aF as regularizers,Or as relu,cm as relu6,Edt as removeBackend,R as reshape,dr as reverse,NA as reverse1d,kA as reverse2d,TA as reverse3d,_A as reverse4d,Du as rfft,pm as round,mm as rsqrt,pt as scalar,Z5 as scatterND,$u as scatter_util,dh as searchSorted,fm as selu,dm as separableConv2d,xJ as sequential,Q as serialization,OK as setBackend,$dt as setPlatform,Wmt as setThreadsCount,Vmt as setWasmPath,Gmt as setWasmPaths,BT as setWebGLContext,EA as setdiff1dAsync,Ew as shared,en as sigmoid,iy as sign,iY as signal,hm as sin,gm as sinh,Ot as slice,xm as slice1d,gh as slice2d,ym as slice3d,yc as slice4d,Be as slice_util,Eu as softmax,ui as softplus,Tu as spaceToBatchND,lY as sparse,t8 as sparseToDense,sY as spectral,hr as split,ge as sqrt,Wt as square,wm as squaredDifference,Wn as squeeze,Fe as stack,So as step,ay as stridedSlice,uY as string,at as sub,mt as sum,lc as sumOutType,ly as tan,li as tanh,ir as tensor,Oe as tensor1d,pi as tensor2d,uy as tensor3d,AA as tensor4d,DA as tensor5d,$A as tensor6d,FA as tensorScatterUpdate,Io as tensor_util,IA as test_util,B as tidy,Rr as tile,Tdt as time,cy as topk,Ac as train,Vt as transpose,Cm as truncatedNormal,py as unique,mft as unregisterGradient,pft as unregisterKernel,vm as unsortedSegmentSum,gr as unstack,ur as upcastType,OA as upperBound,y as util,Z6 as valueAndGrad,J6 as valueAndGrads,my as variable,Ux as variableGrads,Zmt as version,VF as version_converter,X2 as version_core,KO as version_cpu,jm as version_layers,Hmt as version_wasm,Jz as version_webgl,T$e as webgl,Cd as webgl_util,Ie as where,dy as whereAsync,ke as zeros,vt as zerosLike}; diff --git a/dist/tfjs.version.js b/dist/tfjs.version.js index f1f52a8..0e48bd6 100644 --- a/dist/tfjs.version.js +++ b/dist/tfjs.version.js @@ -4,4 +4,4 @@ author: ' */ -var e="4.16.0";var s="4.16.0";var t="4.16.0";var n="4.16.0";var i="4.16.0";var w={tfjs:e,"tfjs-core":e,"tfjs-converter":s,"tfjs-backend-cpu":t,"tfjs-backend-webgl":n,"tfjs-backend-wasm":i};export{w as version}; +var e="4.21.0";var s="4.21.0";var t="4.21.0";var n="4.21.0";var i="4.21.0";var w={tfjs:e,"tfjs-core":e,"tfjs-converter":s,"tfjs-backend-cpu":t,"tfjs-backend-webgl":n,"tfjs-backend-wasm":i};export{w as version}; diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index ba999a3..0000000 --- a/package-lock.json +++ /dev/null @@ -1,6109 +0,0 @@ -{ - "name": "@vladmandic/face-api", - "version": "1.7.13", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@vladmandic/face-api", - "version": "1.7.13", - "license": "MIT", - "devDependencies": { - "@canvas/image": "^1.0.1", - "@microsoft/api-extractor": "^7.35.2", - "@tensorflow/tfjs": "^4.7.0", - "@tensorflow/tfjs-backend-cpu": "^4.7.0", - "@tensorflow/tfjs-backend-wasm": "^4.7.0", - "@tensorflow/tfjs-backend-webgl": "^4.7.0", - "@tensorflow/tfjs-backend-webgpu": "4.7.0", - "@tensorflow/tfjs-converter": "^4.7.0", - "@tensorflow/tfjs-core": "^4.7.0", - "@tensorflow/tfjs-data": "^4.7.0", - "@tensorflow/tfjs-layers": "^4.7.0", - "@tensorflow/tfjs-node": "^4.7.0", - "@tensorflow/tfjs-node-gpu": "^4.7.0", - "@types/node": "^20.3.0", - "@types/offscreencanvas": "^2019.7.0", - "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "^5.59.9", - "@vladmandic/build": "^0.9.2", - "@vladmandic/pilogger": "^0.4.8", - "esbuild": "^0.18.1", - "eslint": "^8.42.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-json": "^3.1.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "rimraf": "^5.0.1", - "seedrandom": "^3.0.5", - "tslib": "^2.5.3", - "typedoc": "^0.24.8", - "typescript": "5.1.3" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@canvas/image": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@canvas/image/-/image-1.0.1.tgz", - "integrity": "sha512-nQ6Qt/marzeQkFikxw32qMep5Rs1U/7DdjqHlCn8ck78IX56CFnXjdfRCXOiM4kx8yvS4SmcPXuJjfpczRjFqA==", - "dev": true, - "dependencies": { - "@canvas/image-data": "^1.0.0", - "@cwasm/jpeg-turbo": "^0.1.1", - "@cwasm/lodepng": "^0.1.2", - "@cwasm/nsbmp": "^0.1.0", - "@cwasm/nsgif": "^0.1.0", - "@cwasm/webp": "^0.1.3", - "fast-base64-decode": "^1.0.0", - "fast-base64-encode": "^1.0.0", - "fast-base64-length": "^1.0.0", - "simple-get": "^3.1.0" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/@canvas/image-data": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@canvas/image-data/-/image-data-1.0.0.tgz", - "integrity": "sha512-BxOqI5LgsIQP1odU5KMwV9yoijleOPzHL18/YvNqF9KFSGF2K/DLlYAbDQsWqd/1nbaFuSkYD/191dpMtNh4vw==", - "dev": true - }, - "node_modules/@cwasm/jpeg-turbo": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@cwasm/jpeg-turbo/-/jpeg-turbo-0.1.3.tgz", - "integrity": "sha512-FkZxwwC6r4zhzlqM0nYGaMj/MDSrZPxLOdPdM6ySlgsMfOpNAZcLQkpNF4jP+DmsuUvRoeUD0YSMBvg3jYfK6w==", - "dev": true, - "dependencies": { - "@canvas/image-data": "^1.0.0" - } - }, - "node_modules/@cwasm/lodepng": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@cwasm/lodepng/-/lodepng-0.1.7.tgz", - "integrity": "sha512-8YNWLJkylTHzOxSq0D1xVd/XfLezuczYX20xuYjxb+bYZ2yU63kx1uk4HLxFXfWT3Qd/8ls3vDBwX3amkpOaLA==", - "dev": true, - "dependencies": { - "@canvas/image-data": "^1.0.0" - } - }, - "node_modules/@cwasm/nsbmp": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@cwasm/nsbmp/-/nsbmp-0.1.3.tgz", - "integrity": "sha512-APiz9Rj2E049rBapTtwnCGqQeqJjmC85busDQ44UCaujU+LoggUm06NuS1WIBAZcDMRbJOgCFcRWc0tMT2kpfg==", - "dev": true, - "dependencies": { - "@canvas/image-data": "^1.0.0" - } - }, - "node_modules/@cwasm/nsgif": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@cwasm/nsgif/-/nsgif-0.1.2.tgz", - "integrity": "sha512-LOD5HlL0O5jpnIAl+dLSZcB3v0RBNBjtoaymdCEPe2kyKzaP20BF+jy/QUyOZogQsgMVjusZES3tgwwoiiJ2rA==", - "dev": true, - "dependencies": { - "@canvas/image-data": "^1.0.0" - } - }, - "node_modules/@cwasm/webp": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@cwasm/webp/-/webp-0.1.5.tgz", - "integrity": "sha512-ceIZQkyxK+s7mmItNcWqqHdOBiJAxYxTnrnPNgUNjldB1M9j+Bp/3eVIVwC8rUFyN/zoFwuT0331pyY3ackaNA==", - "dev": true, - "dependencies": { - "@canvas/image-data": "^1.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", - "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", - "dev": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@microsoft/api-extractor": { - "version": "7.39.1", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.39.1.tgz", - "integrity": "sha512-V0HtCufWa8hZZvSmlEzQZfINcJkHAU/bmpyJQj6w+zpI87EkR8DuBOW6RWrO9c7mUYFZoDaNgUTyKo83ytv+QQ==", - "dev": true, - "dependencies": { - "@microsoft/api-extractor-model": "7.28.4", - "@microsoft/tsdoc": "0.14.2", - "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.63.0", - "@rushstack/rig-package": "0.5.1", - "@rushstack/ts-command-line": "4.17.1", - "colors": "~1.2.1", - "lodash": "~4.17.15", - "resolve": "~1.22.1", - "semver": "~7.5.4", - "source-map": "~0.6.1", - "typescript": "5.3.3" - }, - "bin": { - "api-extractor": "bin/api-extractor" - } - }, - "node_modules/@microsoft/api-extractor-model": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.4.tgz", - "integrity": "sha512-vucgyPmgHrJ/D4/xQywAmjTmSfxAx2/aDmD6TkIoLu51FdsAfuWRbijWA48AePy60OO+l+mmy9p2P/CEeBZqig==", - "dev": true, - "dependencies": { - "@microsoft/tsdoc": "0.14.2", - "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.63.0" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@microsoft/tsdoc": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", - "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", - "dev": true - }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", - "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", - "dev": true, - "dependencies": { - "@microsoft/tsdoc": "0.14.2", - "ajv": "~6.12.6", - "jju": "~1.4.0", - "resolve": "~1.19.0" - } - }, - "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rushstack/node-core-library": { - "version": "3.63.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.63.0.tgz", - "integrity": "sha512-Q7B3dVpBQF1v+mUfxNcNZh5uHVR8ntcnkN5GYjbBLrxUYHBGKbnCM+OdcN+hzCpFlLBH6Ob0dEHhZ0spQwf24A==", - "dev": true, - "dependencies": { - "colors": "~1.2.1", - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.5.4", - "z-schema": "~5.0.2" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@rushstack/rig-package": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.1.tgz", - "integrity": "sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==", - "dev": true, - "dependencies": { - "resolve": "~1.22.1", - "strip-json-comments": "~3.1.1" - } - }, - "node_modules/@rushstack/ts-command-line": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz", - "integrity": "sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==", - "dev": true, - "dependencies": { - "@types/argparse": "1.0.38", - "argparse": "~1.0.9", - "colors": "~1.2.1", - "string-argv": "~0.3.1" - } - }, - "node_modules/@tensorflow/tfjs": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-4.16.0.tgz", - "integrity": "sha512-wBs29w1rsE6XpKdwJ7vrxGJ+nbyU7+51Pgj1ZhLFdv5ZXwF5irHbNX1DegSd/8VbHPEY6mQSPvEuSe1mIhMw5Q==", - "dev": true, - "dependencies": { - "@tensorflow/tfjs-backend-cpu": "4.16.0", - "@tensorflow/tfjs-backend-webgl": "4.16.0", - "@tensorflow/tfjs-converter": "4.16.0", - "@tensorflow/tfjs-core": "4.16.0", - "@tensorflow/tfjs-data": "4.16.0", - "@tensorflow/tfjs-layers": "4.16.0", - "argparse": "^1.0.10", - "chalk": "^4.1.0", - "core-js": "3.29.1", - "regenerator-runtime": "^0.13.5", - "yargs": "^16.0.3" - }, - "bin": { - "tfjs-custom-module": "dist/tools/custom_module/cli.js" - } - }, - "node_modules/@tensorflow/tfjs-backend-cpu": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-4.16.0.tgz", - "integrity": "sha512-bQFu7FTUgqgss1AwnqSwQ1f02IPrfLLc2lLn5pyyVrS6Ex7zA6Y4YkfktqoJSRE6LlRZv3vxSriUGE1avRe4qQ==", - "dev": true, - "dependencies": { - "@types/seedrandom": "^2.4.28", - "seedrandom": "^3.0.5" - }, - "engines": { - "yarn": ">= 1.3.2" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.16.0" - } - }, - "node_modules/@tensorflow/tfjs-backend-wasm": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-4.16.0.tgz", - "integrity": "sha512-MlN7m1TwKS8wHiAXJ0/Jdm07ODk3vRhLeEJvP3Ad8lJYKwBKQfxLWnlYTSPR1MJA3EzMFzlGRG11qBx3C3sXTg==", - "dev": true, - "dependencies": { - "@tensorflow/tfjs-backend-cpu": "4.16.0", - "@types/emscripten": "~0.0.34" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.16.0" - } - }, - "node_modules/@tensorflow/tfjs-backend-webgl": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-4.16.0.tgz", - "integrity": "sha512-cIGZWuY892iwTRokbDj3qsLi0AlpQn+U7rzB1mddhHrWr9kBXrrnAvIq0h2aiFzRFNePWUcsbgK+HmYG32kosg==", - "dev": true, - "dependencies": { - "@tensorflow/tfjs-backend-cpu": "4.16.0", - "@types/offscreencanvas": "~2019.3.0", - "@types/seedrandom": "^2.4.28", - "seedrandom": "^3.0.5" - }, - "engines": { - "yarn": ">= 1.3.2" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.16.0" - } - }, - "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@types/offscreencanvas": { - "version": "2019.3.0", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz", - "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==", - "dev": true - }, - "node_modules/@tensorflow/tfjs-backend-webgpu": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgpu/-/tfjs-backend-webgpu-4.7.0.tgz", - "integrity": "sha512-6CbOn6pHmpltUJgJaZ4S3cpb5XGaEd6zV3c/WZ4kSjQTZuUOZ9xLxSY71JPD2/+csbh+nULxtNymYbPZV0WsTA==", - "dev": true, - "dependencies": { - "@tensorflow/tfjs-backend-cpu": "4.7.0" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.7.0" - } - }, - "node_modules/@tensorflow/tfjs-backend-webgpu/node_modules/@tensorflow/tfjs-backend-cpu": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-4.7.0.tgz", - "integrity": "sha512-jHtDUWTjNGhExbm4OKzSOBrbntlcHKU9VJV+EBcqqWR4fZpD3NhyqXrxFMgtyAJ4c5/z1KvYMwiliyKQPJVK9w==", - "dev": true, - "dependencies": { - "@types/seedrandom": "^2.4.28", - "seedrandom": "^3.0.5" - }, - "engines": { - "yarn": ">= 1.3.2" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.7.0" - } - }, - "node_modules/@tensorflow/tfjs-converter": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.16.0.tgz", - "integrity": "sha512-gd8dHl9tqEPQOHZLAUza713nKr42rpvUXrtm7yUhk10THvJT6TXe9Q2AJKmni8J3vfR+ghsCh77F8D4RbShx1Q==", - "dev": true, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.16.0" - } - }, - "node_modules/@tensorflow/tfjs-core": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-4.16.0.tgz", - "integrity": "sha512-MarAtO+Up6wA8pI9QDpQOwwJgb/imYMN++tsoaalyOEE9+B5HS4lQldxDJKXO8Frf4DyXf4FItJktEXaiPfRHw==", - "dev": true, - "dependencies": { - "@types/long": "^4.0.1", - "@types/offscreencanvas": "~2019.7.0", - "@types/seedrandom": "^2.4.28", - "@webgpu/types": "0.1.38", - "long": "4.0.0", - "node-fetch": "~2.6.1", - "seedrandom": "^3.0.5" - }, - "engines": { - "yarn": ">= 1.3.2" - } - }, - "node_modules/@tensorflow/tfjs-data": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-4.16.0.tgz", - "integrity": "sha512-HAmB4/3mvR1t/fuxu4Vx7hEGb4w8EcJoPNlzRHLr0+cYOApii6HQ/OksCcp7Ll8JoCb/SruVR3En3WSjSUu8YQ==", - "dev": true, - "dependencies": { - "@types/node-fetch": "^2.1.2", - "node-fetch": "~2.6.1", - "string_decoder": "^1.3.0" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.16.0", - "seedrandom": "^3.0.5" - } - }, - "node_modules/@tensorflow/tfjs-layers": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-4.16.0.tgz", - "integrity": "sha512-LNsbIF3SX45gG2FGo/34IPU+ObRCY5Z2znnp8cSqNZ96v52Q3nZ8GbyjYU9xDHv7eREKTSC2Aga2eGZ9Hfsl/g==", - "dev": true, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.16.0" - } - }, - "node_modules/@tensorflow/tfjs-node": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-4.16.0.tgz", - "integrity": "sha512-cjGaZzxTAHlGbXmmoyWcNVUcYb4urWnhaJ69zMdYlfdVkT1ShhopVjP1p1S9V93w2DqMn/fndAMICbj+LWBVeg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "1.0.9", - "@tensorflow/tfjs": "4.16.0", - "adm-zip": "^0.5.2", - "google-protobuf": "^3.9.2", - "https-proxy-agent": "^2.2.1", - "progress": "^2.0.0", - "rimraf": "^2.6.2", - "tar": "^4.4.6" - }, - "engines": { - "node": ">=8.11.0" - } - }, - "node_modules/@tensorflow/tfjs-node-gpu": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node-gpu/-/tfjs-node-gpu-4.16.0.tgz", - "integrity": "sha512-LlnxOxfuUYhJVQeHUlVsmj0eWM3KaWAXClli+o8U1mOT8j3MmJP/8B3modUU8asL94I2X1WYjbyzmw5RbGhKQw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "1.0.9", - "@tensorflow/tfjs": "4.16.0", - "adm-zip": "^0.5.2", - "google-protobuf": "^3.9.2", - "https-proxy-agent": "^2.2.1", - "progress": "^2.0.0", - "rimraf": "^2.6.2", - "tar": "^4.4.6" - }, - "engines": { - "node": ">=8.11.0" - } - }, - "node_modules/@tensorflow/tfjs-node-gpu/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@tensorflow/tfjs-node-gpu/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/@tensorflow/tfjs-node/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@tensorflow/tfjs-node/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/@types/argparse": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", - "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", - "dev": true - }, - "node_modules/@types/emscripten": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-0.0.34.tgz", - "integrity": "sha512-QSb9ojDincskc+uKMI0KXp8e1NALFINCrMlp8VGKGcTSxeEyRTTKyjWw75NYrCZHUsVEEEpr1tYHpbtaC++/sQ==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", - "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, - "node_modules/@types/offscreencanvas": { - "version": "2019.7.3", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", - "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", - "dev": true - }, - "node_modules/@types/seedrandom": { - "version": "2.4.34", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz", - "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vladmandic/build": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@vladmandic/build/-/build-0.9.3.tgz", - "integrity": "sha512-YiE12r4FT6csZZ44JoSWRvJf2moJiIn/hXlRkNJNaNjpueHxkYHNcpK6VGTjELKShupl0tSn6006JOc4LNGR3A==", - "dev": true, - "dependencies": { - "@types/node": "^20.10.3", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", - "esbuild": "^0.19.8", - "eslint": "^8.55.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-node": "^11.1.0", - "tslib": "^2.6.2", - "typedoc": "^0.25.4", - "typescript": "~5.3.0" - }, - "bin": { - "build": "dist/build.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", - "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/type-utils": "6.19.0", - "@typescript-eslint/utils": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/parser": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", - "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/scope-manager": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", - "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/type-utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", - "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/utils": "6.19.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", - "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@vladmandic/build/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.19.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vladmandic/build/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@vladmandic/build/node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" - } - }, - "node_modules/@vladmandic/build/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vladmandic/build/node_modules/typedoc": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.7.tgz", - "integrity": "sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.7" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 16" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x" - } - }, - "node_modules/@vladmandic/build/node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@vladmandic/pilogger": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/@vladmandic/pilogger/-/pilogger-0.4.9.tgz", - "integrity": "sha512-dPLciU5XvWlA4teSYsPX3+xwTt7kzh9T2TKtiv2baKDcCMiEW2fZcR++QO8iNghmH6FCXEoKQ8YihlRBLF6saw==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@webgpu/types": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz", - "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colors": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", - "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "optional": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "dev": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-airbnb-base/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-json": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", - "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "vscode-json-languageservice": "^4.1.6" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-base64-decode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", - "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", - "dev": true - }, - "node_modules/fast-base64-encode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-base64-encode/-/fast-base64-encode-1.0.0.tgz", - "integrity": "sha512-z2XCzVK4fde2cuTEHu2QGkLD6BPtJNKJPn0Z7oINvmhq/quUuIIVPYKUdN0gYeZqOyurjJjBH/bUzK5gafyHvw==", - "dev": true - }, - "node_modules/fast-base64-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-base64-length/-/fast-base64-length-1.0.0.tgz", - "integrity": "sha512-MV+/ioblHx6SMjc/1l4EAnRJyAku6+6DxZ6RW0FoFCF1Aol/Ldb6FqwE3Kn3Ju1aam2m1KCIVoCljhgcG+Umzg==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==", - "dev": true - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js-yaml/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.13", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz", - "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dev": true, - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", - "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shiki": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", - "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", - "dev": true, - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedoc": { - "version": "0.24.8", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", - "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.0", - "shiki": "^0.14.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 14.14" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typescript": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", - "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vscode-json-languageservice": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", - "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-languageserver-textdocument": "^1.0.3", - "vscode-languageserver-types": "^3.16.0", - "vscode-nls": "^5.0.0", - "vscode-uri": "^3.0.3" - } - }, - "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", - "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", - "dev": true - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "dev": true - }, - "node_modules/vscode-nls": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", - "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", - "dev": true - }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "node_modules/vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/z-schema": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", - "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", - "dev": true, - "dependencies": { - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" - }, - "bin": { - "z-schema": "bin/z-schema" - }, - "engines": { - "node": ">=8.0.0" - }, - "optionalDependencies": { - "commander": "^9.4.1" - } - } - } -} diff --git a/src/env/createFileSystem.ts b/src/env/createFileSystem.ts index 38f88a1..c5b963b 100644 --- a/src/env/createFileSystem.ts +++ b/src/env/createFileSystem.ts @@ -5,7 +5,7 @@ export function createFileSystem(fs?: any): FileSystem { let requireFsError = ''; if (!fs && isNodejs()) { try { - // eslint-disable-next-line global-require + // eslint-disable-next-line global-require, @typescript-eslint/no-require-imports fs = require('fs'); } catch (err) { requireFsError = (err as any).toString(); diff --git a/typedoc/assets/highlight.css b/typedoc/assets/highlight.css index 9cac2e7..efbf1f4 100644 --- a/typedoc/assets/highlight.css +++ b/typedoc/assets/highlight.css @@ -19,8 +19,6 @@ --dark-hl-8: #CE9178; --light-hl-9: #267F99; --dark-hl-9: #4EC9B0; - --light-hl-10: #000000; - --dark-hl-10: #C8C8C8; --light-code-background: #FFFFFF; --dark-code-background: #1E1E1E; } @@ -36,7 +34,6 @@ --hl-7: var(--light-hl-7); --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); - --hl-10: var(--light-hl-10); --code-background: var(--light-code-background); } } @@ -51,7 +48,6 @@ --hl-7: var(--dark-hl-7); --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); - --hl-10: var(--dark-hl-10); --code-background: var(--dark-code-background); } } @@ -66,7 +62,6 @@ --hl-7: var(--light-hl-7); --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); - --hl-10: var(--light-hl-10); --code-background: var(--light-code-background); } @@ -81,7 +76,6 @@ --hl-7: var(--dark-hl-7); --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); - --hl-10: var(--dark-hl-10); --code-background: var(--dark-code-background); } @@ -95,5 +89,4 @@ .hl-7 { color: var(--hl-7); } .hl-8 { color: var(--hl-8); } .hl-9 { color: var(--hl-9); } -.hl-10 { color: var(--hl-10); } pre, code { background: var(--code-background); } diff --git a/typedoc/assets/icons.js b/typedoc/assets/icons.js new file mode 100644 index 0000000..e88e8ca --- /dev/null +++ b/typedoc/assets/icons.js @@ -0,0 +1,18 @@ +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `""`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/typedoc/assets/icons.svg b/typedoc/assets/icons.svg new file mode 100644 index 0000000..e371b8b --- /dev/null +++ b/typedoc/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/typedoc/assets/main.js b/typedoc/assets/main.js index 7270cff..21a5d74 100644 --- a/typedoc/assets/main.js +++ b/typedoc/assets/main.js @@ -1,8 +1,9 @@ "use strict"; -"use strict";(()=>{var Pe=Object.create;var ne=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Ie(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Pe(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),v=s.str.charAt(1),f;v in s.node.edges?f=s.node.edges[v]:(f=new t.TokenSet,s.node.edges[v]=f),s.str.length==1&&(f.final=!0),i.push({node:f,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ne(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ce(l.parent,i)}.${d}`);let v=document.createElement("li");v.classList.value=l.classes??"";let f=document.createElement("a");f.href=r.base+l.url,f.innerHTML=u+d,v.append(f),e.appendChild(v)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var Be={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>Be[e])}var C=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",pe="mousemove",B="mouseup",J={x:0,y:0},fe=!1,ee=!1,He=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(He=!0,F="touchstart",pe="touchmove",B="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(pe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ee=!1});document.addEventListener("click",t=>{fe&&(t.preventDefault(),t.stopImmediatePropagation(),fe=!1)});var X=class extends C{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ve=document.head.appendChild(document.createElement("style"));ve.dataset.for="filters";var Y=class extends C{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ve.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.handleValueChange()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(e=>{e.style.display="block";let n=Array.from(e.querySelectorAll(".tsd-index-link")).every(r=>r.offsetParent==null);e.style.display=n?"none":"block"})}};var Z=class extends C{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.href===r.href&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; +"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); /*! Bundled license information: lunr/lunr.js: diff --git a/typedoc/assets/navigation.js b/typedoc/assets/navigation.js index ef33703..6000b27 100644 --- a/typedoc/assets/navigation.js +++ b/typedoc/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/typedoc/assets/search.js b/typedoc/assets/search.js index 245dc16..717291c 100644 --- a/typedoc/assets/search.js +++ b/typedoc/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/typedoc/assets/style.css b/typedoc/assets/style.css index 98a4377..9d619a6 100644 --- a/typedoc/assets/style.css +++ b/typedoc/assets/style.css @@ -10,6 +10,7 @@ --light-color-text: #222; --light-color-text-aside: #6e6e6e; --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; --light-color-ts-keyword: #056bd6; --light-color-ts-project: #b111c9; @@ -35,6 +36,7 @@ --light-color-ts-set-signature: var(--light-color-ts-accessor); --light-color-ts-type-alias: #d51270; /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; --light-external-icon: url("data:image/svg+xml;utf8,"); --light-color-scheme: light; @@ -50,6 +52,7 @@ --dark-color-text: #f5f5f5; --dark-color-text-aside: #dddddd; --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; --dark-color-ts-keyword: #3399ff; --dark-color-ts-project: #e358ff; @@ -75,6 +78,7 @@ --dark-color-ts-set-signature: var(--dark-color-ts-accessor); --dark-color-ts-type-alias: #ff6492; /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; --dark-external-icon: url("data:image/svg+xml;utf8,"); --dark-color-scheme: dark; @@ -92,6 +96,7 @@ --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); --color-ts-keyword: var(--light-color-ts-keyword); --color-ts-module: var(--light-color-ts-module); @@ -116,6 +121,7 @@ --color-ts-get-signature: var(--light-color-ts-get-signature); --color-ts-set-signature: var(--light-color-ts-set-signature); --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); @@ -134,6 +140,7 @@ --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); --color-ts-keyword: var(--dark-color-ts-keyword); --color-ts-module: var(--dark-color-ts-module); @@ -158,6 +165,7 @@ --color-ts-get-signature: var(--dark-color-ts-get-signature); --color-ts-set-signature: var(--dark-color-ts-set-signature); --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); @@ -183,6 +191,7 @@ body { --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); --color-ts-keyword: var(--light-color-ts-keyword); --color-ts-module: var(--light-color-ts-module); @@ -207,6 +216,7 @@ body { --color-ts-get-signature: var(--light-color-ts-get-signature); --color-ts-set-signature: var(--light-color-ts-set-signature); --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); @@ -223,6 +233,7 @@ body { --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); --color-ts-keyword: var(--dark-color-ts-keyword); --color-ts-module: var(--dark-color-ts-module); @@ -247,11 +258,17 @@ body { --color-ts-get-signature: var(--dark-color-ts-get-signature); --color-ts-set-signature: var(--dark-color-ts-set-signature); --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); } +*:focus-visible, +.tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); +} + .always-visible, .always-visible .tsd-signatures { display: inherit !important; @@ -266,16 +283,6 @@ h6 { line-height: 1.2; } -h1 > a:not(.link), -h2 > a:not(.link), -h3 > a:not(.link), -h4 > a:not(.link), -h5 > a:not(.link), -h6 > a:not(.link) { - text-decoration: none; - color: var(--color-text); -} - h1 { font-size: 1.875rem; margin: 0.67rem 0; @@ -306,10 +313,6 @@ h6 { margin: 2.33rem 0; } -.uppercase { - text-transform: uppercase; -} - dl, menu, ol, @@ -327,17 +330,14 @@ dd { } /* Footer */ -.tsd-generator { +footer { border-top: 1px solid var(--color-accent); padding-top: 1rem; padding-bottom: 1rem; max-height: 3.5rem; } - -.tsd-generator > p { - margin-top: 0; - margin-bottom: 0; - padding: 0 1rem; +footer > p { + margin: 0 1em; } .container-main { @@ -405,7 +405,8 @@ dd { } body { background: var(--color-background); - font-family: "Segoe UI", sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 16px; color: var(--color-text); } @@ -423,6 +424,9 @@ a.external[target="_blank"] { background-repeat: no-repeat; padding-right: 13px; } +a.tsd-anchor-link { + color: var(--color-text); +} code, pre { @@ -582,13 +586,13 @@ dl.tsd-comment-tag-group p { } .tsd-filter-input { display: flex; - width: fit-content; width: -moz-fit-content; + width: fit-content; align-items: center; - user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; + user-select: none; cursor: pointer; } .tsd-filter-input input[type="checkbox"] { @@ -611,11 +615,8 @@ dl.tsd-comment-tag-group p { Don't remove unless you know what you're doing. */ opacity: 0.99; } -.tsd-filter-input input[type="checkbox"]:focus + svg { - transform: scale(0.95); -} -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { - transform: scale(1); +.tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); } .tsd-checkbox-background { fill: var(--color-accent); @@ -632,13 +633,18 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { stroke: var(--color-accent); } -.tsd-theme-toggle { - padding-top: 0.75rem; +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; } -.tsd-theme-toggle > h4 { - display: inline; - vertical-align: middle; - margin-right: 0.75rem; + +.tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; +} + +.tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; } .tsd-hierarchy { @@ -771,6 +777,9 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { padding: 0; max-width: 100%; } +.tsd-navigation .tsd-nav-link { + display: none; +} .tsd-nested-navigation { margin-left: 3rem; } @@ -784,6 +793,15 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { margin-left: -1.5rem; } +.tsd-page-navigation-section { + margin-left: 10px; +} +.tsd-page-navigation-section > summary { + padding: 0.25rem; +} +.tsd-page-navigation-section > div { + margin-left: 20px; +} .tsd-page-navigation ul { padding-left: 1.75rem; } @@ -814,10 +832,10 @@ a.tsd-index-link { } .tsd-accordion-summary, .tsd-accordion-summary a { - user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; + user-select: none; cursor: pointer; } @@ -830,8 +848,9 @@ a.tsd-index-link { padding-top: 0; padding-bottom: 0; } -.tsd-index-accordion .tsd-accordion-summary > svg { +.tsd-accordion .tsd-accordion-summary > svg { margin-left: 0.25rem; + vertical-align: text-top; } .tsd-index-content > :not(:first-child) { margin-top: 0.75rem; @@ -879,7 +898,7 @@ a.tsd-index-link { } .tsd-panel-group { - margin: 4rem 0; + margin: 2rem 0; } .tsd-panel-group.tsd-index-group { margin: 2rem 0; @@ -887,6 +906,9 @@ a.tsd-index-link { .tsd-panel-group.tsd-index-group details { margin: 2rem 0; } +.tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; +} #tsd-search { transition: background-color 0.2s; @@ -1036,6 +1058,12 @@ a.tsd-index-link { border-width: 1px 0; transition: background-color 0.1s; } +.tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; +} +.tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; +} .tsd-description .tsd-signatures .tsd-signature { border-width: 1px; } @@ -1349,6 +1377,12 @@ img { .has-menu .tsd-navigation { max-height: 100%; } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } } /* one sidebar */ diff --git a/typedoc/classes/AgeGenderNet.html b/typedoc/classes/AgeGenderNet.html index 2c7460d..56efe0b 100644 --- a/typedoc/classes/AgeGenderNet.html +++ b/typedoc/classes/AgeGenderNet.html @@ -1,27 +1,27 @@ -AgeGenderNet | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

\ No newline at end of file +AgeGenderNet | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

diff --git a/typedoc/classes/BoundingBox.html b/typedoc/classes/BoundingBox.html index 65058ad..0d406ff 100644 --- a/typedoc/classes/BoundingBox.html +++ b/typedoc/classes/BoundingBox.html @@ -1,26 +1,26 @@ -BoundingBox | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Implements

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

\ No newline at end of file +BoundingBox | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Implements

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

diff --git a/typedoc/classes/Box.html b/typedoc/classes/Box.html index a9a3ddb..5fdd9ee 100644 --- a/typedoc/classes/Box.html +++ b/typedoc/classes/Box.html @@ -1,26 +1,26 @@ -Box | @vladmandic/face-api - v1.7.13

Class Box<BoxType>

Type Parameters

  • BoxType = any

Hierarchy (view full)

Implements

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

\ No newline at end of file +Box | @vladmandic/face-api - v1.7.14

Class Box<BoxType>

Type Parameters

  • BoxType = any

Hierarchy (view full)

Implements

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

diff --git a/typedoc/classes/ComposableTask.html b/typedoc/classes/ComposableTask.html index 0e9128d..d515fb0 100644 --- a/typedoc/classes/ComposableTask.html +++ b/typedoc/classes/ComposableTask.html @@ -1,4 +1,4 @@ -ComposableTask | @vladmandic/face-api - v1.7.13

Class ComposableTask<T>

Type Parameters

  • T

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

  • Parameters

    • onfulfilled: ((value) => T | PromiseLike<T>)
        • (value): T | PromiseLike<T>
        • Parameters

          • value: T

          Returns T | PromiseLike<T>

    Returns Promise<T>

\ No newline at end of file +ComposableTask | @vladmandic/face-api - v1.7.14

Class ComposableTask<T>

Type Parameters

  • T

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

  • Parameters

    • onfulfilled: ((value: T) => T | PromiseLike<T>)
        • (value): T | PromiseLike<T>
        • Parameters

          • value: T

          Returns T | PromiseLike<T>

    Returns Promise<T>

diff --git a/typedoc/classes/ComputeAllFaceDescriptorsTask.html b/typedoc/classes/ComputeAllFaceDescriptorsTask.html index 85d4d1d..2b9d320 100644 --- a/typedoc/classes/ComputeAllFaceDescriptorsTask.html +++ b/typedoc/classes/ComputeAllFaceDescriptorsTask.html @@ -1,6 +1,6 @@ -ComputeAllFaceDescriptorsTask | @vladmandic/face-api - v1.7.13

Class ComputeAllFaceDescriptorsTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

\ No newline at end of file +ComputeAllFaceDescriptorsTask | @vladmandic/face-api - v1.7.14

Class ComputeAllFaceDescriptorsTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

diff --git a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html index 3171c85..4629e33 100644 --- a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html +++ b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html @@ -1,4 +1,4 @@ -ComputeFaceDescriptorsTaskBase | @vladmandic/face-api - v1.7.13

Class ComputeFaceDescriptorsTaskBase<TReturn, TParentReturn>

Type Parameters

  • TReturn

  • TParentReturn

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

\ No newline at end of file +ComputeFaceDescriptorsTaskBase | @vladmandic/face-api - v1.7.14

Class ComputeFaceDescriptorsTaskBase<TReturn, TParentReturn>

Type Parameters

  • TReturn
  • TParentReturn

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

diff --git a/typedoc/classes/ComputeSingleFaceDescriptorTask.html b/typedoc/classes/ComputeSingleFaceDescriptorTask.html index fd68993..471a7eb 100644 --- a/typedoc/classes/ComputeSingleFaceDescriptorTask.html +++ b/typedoc/classes/ComputeSingleFaceDescriptorTask.html @@ -1,6 +1,6 @@ -ComputeSingleFaceDescriptorTask | @vladmandic/face-api - v1.7.13

Class ComputeSingleFaceDescriptorTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

\ No newline at end of file +ComputeSingleFaceDescriptorTask | @vladmandic/face-api - v1.7.14

Class ComputeSingleFaceDescriptorTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

diff --git a/typedoc/classes/DetectAllFaceLandmarksTask.html b/typedoc/classes/DetectAllFaceLandmarksTask.html index 2351088..79e6c0a 100644 --- a/typedoc/classes/DetectAllFaceLandmarksTask.html +++ b/typedoc/classes/DetectAllFaceLandmarksTask.html @@ -1,7 +1,7 @@ -DetectAllFaceLandmarksTask | @vladmandic/face-api - v1.7.13

Class DetectAllFaceLandmarksTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

\ No newline at end of file +DetectAllFaceLandmarksTask | @vladmandic/face-api - v1.7.14

Class DetectAllFaceLandmarksTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

diff --git a/typedoc/classes/DetectAllFacesTask.html b/typedoc/classes/DetectAllFacesTask.html index 55e70cb..740f238 100644 --- a/typedoc/classes/DetectAllFacesTask.html +++ b/typedoc/classes/DetectAllFacesTask.html @@ -1,7 +1,7 @@ -DetectAllFacesTask | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Methods

\ No newline at end of file +DetectAllFacesTask | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Methods

diff --git a/typedoc/classes/DetectFaceLandmarksTaskBase.html b/typedoc/classes/DetectFaceLandmarksTaskBase.html index 7ff0202..ec51461 100644 --- a/typedoc/classes/DetectFaceLandmarksTaskBase.html +++ b/typedoc/classes/DetectFaceLandmarksTaskBase.html @@ -1,4 +1,4 @@ -DetectFaceLandmarksTaskBase | @vladmandic/face-api - v1.7.13

Class DetectFaceLandmarksTaskBase<TReturn, TParentReturn>

Type Parameters

  • TReturn

  • TParentReturn

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

\ No newline at end of file +DetectFaceLandmarksTaskBase | @vladmandic/face-api - v1.7.14

Class DetectFaceLandmarksTaskBase<TReturn, TParentReturn>

Type Parameters

  • TReturn
  • TParentReturn

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

diff --git a/typedoc/classes/DetectFacesTaskBase.html b/typedoc/classes/DetectFacesTaskBase.html index 005c567..cd24d0a 100644 --- a/typedoc/classes/DetectFacesTaskBase.html +++ b/typedoc/classes/DetectFacesTaskBase.html @@ -1,4 +1,4 @@ -DetectFacesTaskBase | @vladmandic/face-api - v1.7.13

Class DetectFacesTaskBase<TReturn>

Type Parameters

  • TReturn

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

\ No newline at end of file +DetectFacesTaskBase | @vladmandic/face-api - v1.7.14

Class DetectFacesTaskBase<TReturn>

Type Parameters

  • TReturn

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

diff --git a/typedoc/classes/DetectSingleFaceLandmarksTask.html b/typedoc/classes/DetectSingleFaceLandmarksTask.html index 0e460f0..c76c736 100644 --- a/typedoc/classes/DetectSingleFaceLandmarksTask.html +++ b/typedoc/classes/DetectSingleFaceLandmarksTask.html @@ -1,7 +1,7 @@ -DetectSingleFaceLandmarksTask | @vladmandic/face-api - v1.7.13

Class DetectSingleFaceLandmarksTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

\ No newline at end of file +DetectSingleFaceLandmarksTask | @vladmandic/face-api - v1.7.14

Class DetectSingleFaceLandmarksTask<TSource>

Type Parameters

Hierarchy (view full)

Constructors

Methods

diff --git a/typedoc/classes/DetectSingleFaceTask.html b/typedoc/classes/DetectSingleFaceTask.html index 7f5560a..7c7ee69 100644 --- a/typedoc/classes/DetectSingleFaceTask.html +++ b/typedoc/classes/DetectSingleFaceTask.html @@ -1,7 +1,7 @@ -DetectSingleFaceTask | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Methods

\ No newline at end of file +DetectSingleFaceTask | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Methods

diff --git a/typedoc/classes/Dimensions.html b/typedoc/classes/Dimensions.html index 9b8051e..b665f59 100644 --- a/typedoc/classes/Dimensions.html +++ b/typedoc/classes/Dimensions.html @@ -1,5 +1,5 @@ -Dimensions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +Dimensions | @vladmandic/face-api - v1.7.14

Implements

Constructors

Accessors

Methods

Constructors

Accessors

Methods

diff --git a/typedoc/classes/FaceDetection.html b/typedoc/classes/FaceDetection.html index 15f28d4..524b231 100644 --- a/typedoc/classes/FaceDetection.html +++ b/typedoc/classes/FaceDetection.html @@ -1,11 +1,11 @@ -FaceDetection | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Implements

Constructors

Accessors

Methods

\ No newline at end of file +FaceDetection | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Implements

Constructors

Accessors

Methods

diff --git a/typedoc/classes/FaceDetectionNet.html b/typedoc/classes/FaceDetectionNet.html index fcabf9c..eef46f4 100644 --- a/typedoc/classes/FaceDetectionNet.html +++ b/typedoc/classes/FaceDetectionNet.html @@ -1,23 +1,23 @@ -FaceDetectionNet | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

\ No newline at end of file +FaceDetectionNet | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

diff --git a/typedoc/classes/FaceExpressionNet.html b/typedoc/classes/FaceExpressionNet.html index 7d8ea56..07c13bc 100644 --- a/typedoc/classes/FaceExpressionNet.html +++ b/typedoc/classes/FaceExpressionNet.html @@ -1,27 +1,27 @@ -FaceExpressionNet | @vladmandic/face-api - v1.7.13

Hierarchy

  • FaceProcessor<FaceFeatureExtractorParams>
    • FaceExpressionNet

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • weights: Float32Array

    Returns {
        paramMappings: ParamMapping[];
        params: NetParams;
    }

    • paramMappings: ParamMapping[]
    • params: NetParams
  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

\ No newline at end of file +FaceExpressionNet | @vladmandic/face-api - v1.7.14

Hierarchy

  • FaceProcessor<FaceFeatureExtractorParams>
    • FaceExpressionNet

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • weights: Float32Array

    Returns {
        paramMappings: ParamMapping[];
        params: NetParams;
    }

    • paramMappings: ParamMapping[]
    • params: NetParams
  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

diff --git a/typedoc/classes/FaceExpressions.html b/typedoc/classes/FaceExpressions.html index d767396..d2663e9 100644 --- a/typedoc/classes/FaceExpressions.html +++ b/typedoc/classes/FaceExpressions.html @@ -1,10 +1,10 @@ -FaceExpressions | @vladmandic/face-api - v1.7.13

Constructors

Properties

Methods

Constructors

Properties

angry: number = 0
disgusted: number = 0
fearful: number = 0
happy: number = 0
neutral: number = 0
sad: number = 0
surprised: number = 0

Methods

  • Returns {
        expression: "neutral" | "happy" | "sad" | "angry" | "fearful" | "disgusted" | "surprised";
        probability: number;
    }[]

\ No newline at end of file +FaceExpressions | @vladmandic/face-api - v1.7.14

Constructors

Properties

Methods

Constructors

Properties

angry: number = 0
disgusted: number = 0
fearful: number = 0
happy: number = 0
neutral: number = 0
sad: number = 0
surprised: number = 0

Methods

  • Returns {
        expression:
            | "neutral"
            | "happy"
            | "sad"
            | "angry"
            | "fearful"
            | "disgusted"
            | "surprised";
        probability: number;
    }[]

diff --git a/typedoc/classes/FaceLandmark68Net.html b/typedoc/classes/FaceLandmark68Net.html index c60cffc..76a8bb8 100644 --- a/typedoc/classes/FaceLandmark68Net.html +++ b/typedoc/classes/FaceLandmark68Net.html @@ -1,28 +1,28 @@ -FaceLandmark68Net | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

  • FaceLandmark68NetBase<FaceFeatureExtractorParams>

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get isLoaded(): boolean
  • Returns boolean

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • weights: Float32Array

    Returns {
        paramMappings: ParamMapping[];
        params: NetParams;
    }

    • paramMappings: ParamMapping[]
    • params: NetParams
  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

\ No newline at end of file +FaceLandmark68Net | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

  • FaceLandmark68NetBase<FaceFeatureExtractorParams>

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get isLoaded(): boolean
  • Returns boolean

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • weights: Float32Array

    Returns {
        paramMappings: ParamMapping[];
        params: NetParams;
    }

    • paramMappings: ParamMapping[]
    • params: NetParams
  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

diff --git a/typedoc/classes/FaceLandmark68TinyNet.html b/typedoc/classes/FaceLandmark68TinyNet.html index 203d142..1d713b0 100644 --- a/typedoc/classes/FaceLandmark68TinyNet.html +++ b/typedoc/classes/FaceLandmark68TinyNet.html @@ -1,28 +1,28 @@ -FaceLandmark68TinyNet | @vladmandic/face-api - v1.7.13

Hierarchy

  • FaceLandmark68NetBase<TinyFaceFeatureExtractorParams>
    • FaceLandmark68TinyNet

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get isLoaded(): boolean
  • Returns boolean

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • weights: Float32Array

    Returns {
        paramMappings: ParamMapping[];
        params: NetParams;
    }

    • paramMappings: ParamMapping[]
    • params: NetParams
  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

\ No newline at end of file +FaceLandmark68TinyNet | @vladmandic/face-api - v1.7.14

Hierarchy

  • FaceLandmark68NetBase<TinyFaceFeatureExtractorParams>
    • FaceLandmark68TinyNet

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get isLoaded(): boolean
  • Returns boolean

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • weights: Float32Array

    Returns {
        paramMappings: ParamMapping[];
        params: NetParams;
    }

    • paramMappings: ParamMapping[]
    • params: NetParams
  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

diff --git a/typedoc/classes/FaceLandmarkNet.html b/typedoc/classes/FaceLandmarkNet.html index e21ea8c..2162302 100644 --- a/typedoc/classes/FaceLandmarkNet.html +++ b/typedoc/classes/FaceLandmarkNet.html @@ -1,28 +1,28 @@ -FaceLandmarkNet | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

\ No newline at end of file +FaceLandmarkNet | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get faceFeatureExtractor(): IFaceFeatureExtractor<TExtractorParams>
  • Returns IFaceFeatureExtractor<TExtractorParams>

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

diff --git a/typedoc/classes/FaceLandmarks.html b/typedoc/classes/FaceLandmarks.html index d1ca666..02b415c 100644 --- a/typedoc/classes/FaceLandmarks.html +++ b/typedoc/classes/FaceLandmarks.html @@ -1,19 +1,19 @@ -FaceLandmarks | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Implements

Constructors

Accessors

Methods

Returns Box<any>

The bounding box of the aligned face.

+
diff --git a/typedoc/classes/FaceLandmarks5.html b/typedoc/classes/FaceLandmarks5.html index 0e31467..abd0a5e 100644 --- a/typedoc/classes/FaceLandmarks5.html +++ b/typedoc/classes/FaceLandmarks5.html @@ -1,19 +1,19 @@ -FaceLandmarks5 | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Accessors

Methods

Returns Box<any>

The bounding box of the aligned face.

+
diff --git a/typedoc/classes/FaceLandmarks68.html b/typedoc/classes/FaceLandmarks68.html index 77f61da..053d003 100644 --- a/typedoc/classes/FaceLandmarks68.html +++ b/typedoc/classes/FaceLandmarks68.html @@ -1,26 +1,26 @@ -FaceLandmarks68 | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Accessors

Methods

Returns Box<any>

The bounding box of the aligned face.

+
diff --git a/typedoc/classes/FaceMatch.html b/typedoc/classes/FaceMatch.html index d1f14d3..9bc7975 100644 --- a/typedoc/classes/FaceMatch.html +++ b/typedoc/classes/FaceMatch.html @@ -1,5 +1,6 @@ -FaceMatch | @vladmandic/face-api - v1.7.13

Implements

Constructors

Accessors

Methods

Constructors

Accessors

Methods

\ No newline at end of file +FaceMatch | @vladmandic/face-api - v1.7.14

Implements

Constructors

Accessors

Methods

Constructors

Accessors

Methods

  • Returns a string representation of an object.

    +

    Parameters

    • withDistance: boolean = true

    Returns string

diff --git a/typedoc/classes/FaceMatcher.html b/typedoc/classes/FaceMatcher.html index 8304069..dd7502a 100644 --- a/typedoc/classes/FaceMatcher.html +++ b/typedoc/classes/FaceMatcher.html @@ -1,9 +1,9 @@ -FaceMatcher | @vladmandic/face-api - v1.7.13

Constructors

Accessors

Methods

  • Parameters

    • queryDescriptor: Float32Array
    • descriptors: Float32Array[]

    Returns number

\ No newline at end of file +FaceMatcher | @vladmandic/face-api - v1.7.14

Constructors

Accessors

Methods

  • Parameters

    • queryDescriptor: Float32Array
    • descriptors: Float32Array[]

    Returns number

diff --git a/typedoc/classes/FaceRecognitionNet.html b/typedoc/classes/FaceRecognitionNet.html index be407a1..7c59ca6 100644 --- a/typedoc/classes/FaceRecognitionNet.html +++ b/typedoc/classes/FaceRecognitionNet.html @@ -1,23 +1,23 @@ -FaceRecognitionNet | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

\ No newline at end of file +FaceRecognitionNet | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

diff --git a/typedoc/classes/LabeledBox.html b/typedoc/classes/LabeledBox.html index 91a1b49..843d1be 100644 --- a/typedoc/classes/LabeledBox.html +++ b/typedoc/classes/LabeledBox.html @@ -1,28 +1,28 @@ -LabeledBox | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

\ No newline at end of file +LabeledBox | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

diff --git a/typedoc/classes/LabeledFaceDescriptors.html b/typedoc/classes/LabeledFaceDescriptors.html index cee9fc2..83a8c2d 100644 --- a/typedoc/classes/LabeledFaceDescriptors.html +++ b/typedoc/classes/LabeledFaceDescriptors.html @@ -1,6 +1,6 @@ -LabeledFaceDescriptors | @vladmandic/face-api - v1.7.13
\ No newline at end of file +LabeledFaceDescriptors | @vladmandic/face-api - v1.7.14

Class LabeledFaceDescriptors

Constructors

Accessors

Methods

Constructors

Accessors

Methods

diff --git a/typedoc/classes/NetInput.html b/typedoc/classes/NetInput.html index 8e5bd95..5e66e3d 100644 --- a/typedoc/classes/NetInput.html +++ b/typedoc/classes/NetInput.html @@ -1,19 +1,19 @@ -NetInput | @vladmandic/face-api - v1.7.13

Constructors

Accessors

Methods

  • Parameters

    • batchIdx: number

    Returns number[]

diff --git a/typedoc/classes/NeuralNetwork.html b/typedoc/classes/NeuralNetwork.html index a08cefa..0ed02c7 100644 --- a/typedoc/classes/NeuralNetwork.html +++ b/typedoc/classes/NeuralNetwork.html @@ -1,20 +1,20 @@ -NeuralNetwork | @vladmandic/face-api - v1.7.13

Class NeuralNetwork<TNetParams>Abstract

Type Parameters

  • TNetParams

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

Methods

  • Parameters

    • throwOnRedispose: boolean = true

    Returns void

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

\ No newline at end of file +NeuralNetwork | @vladmandic/face-api - v1.7.14

Class NeuralNetwork<TNetParams>Abstract

Type Parameters

  • TNetParams

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

Methods

  • Parameters

    • throwOnRedispose: boolean = true

    Returns void

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

diff --git a/typedoc/classes/ObjectDetection.html b/typedoc/classes/ObjectDetection.html index 9c51fc5..04c1e96 100644 --- a/typedoc/classes/ObjectDetection.html +++ b/typedoc/classes/ObjectDetection.html @@ -1,11 +1,11 @@ -ObjectDetection | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Accessors

Methods

\ No newline at end of file +ObjectDetection | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Accessors

Methods

diff --git a/typedoc/classes/Point.html b/typedoc/classes/Point.html index d2e38f2..591d571 100644 --- a/typedoc/classes/Point.html +++ b/typedoc/classes/Point.html @@ -1,11 +1,11 @@ -Point | @vladmandic/face-api - v1.7.13

Implements

Constructors

Accessors

x -y -

Methods

Constructors

Accessors

Methods

\ No newline at end of file +Point | @vladmandic/face-api - v1.7.14

Implements

Constructors

Accessors

x +y +

Methods

Constructors

Accessors

Methods

diff --git a/typedoc/classes/PredictedBox.html b/typedoc/classes/PredictedBox.html index 365a5bc..523d3fe 100644 --- a/typedoc/classes/PredictedBox.html +++ b/typedoc/classes/PredictedBox.html @@ -1,31 +1,31 @@ -PredictedBox | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
\ No newline at end of file +PredictedBox | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
diff --git a/typedoc/classes/Rect.html b/typedoc/classes/Rect.html index abe66c9..aa098d8 100644 --- a/typedoc/classes/Rect.html +++ b/typedoc/classes/Rect.html @@ -1,26 +1,26 @@ -Rect | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Implements

Constructors

  • Parameters

    • x: number
    • y: number
    • width: number
    • height: number
    • allowNegativeDimensions: boolean = false

    Returns Rect

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

\ No newline at end of file +Rect | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Implements

Constructors

  • Parameters

    • x: number
    • y: number
    • width: number
    • height: number
    • allowNegativeDimensions: boolean = false

    Returns Rect

Accessors

Methods

  • Parameters

    • imageHeight: number
    • imageWidth: number

    Returns {
        dx: number;
        dy: number;
        edx: number;
        edy: number;
        ex: number;
        ey: number;
        h: number;
        w: number;
        x: number;
        y: number;
    }

    • dx: number
    • dy: number
    • edx: number
    • edy: number
    • ex: number
    • ey: number
    • h: number
    • w: number
    • x: number
    • y: number
  • Parameters

    • box: any
    • callee: string
    • allowNegativeDimensions: boolean = false

    Returns void

diff --git a/typedoc/classes/SsdMobilenetv1.html b/typedoc/classes/SsdMobilenetv1.html index 9aaae83..8972148 100644 --- a/typedoc/classes/SsdMobilenetv1.html +++ b/typedoc/classes/SsdMobilenetv1.html @@ -1,23 +1,23 @@ -SsdMobilenetv1 | @vladmandic/face-api - v1.7.13

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

\ No newline at end of file +SsdMobilenetv1 | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Properties

_name: any

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

diff --git a/typedoc/classes/SsdMobilenetv1Options.html b/typedoc/classes/SsdMobilenetv1Options.html index 6d37964..2579cba 100644 --- a/typedoc/classes/SsdMobilenetv1Options.html +++ b/typedoc/classes/SsdMobilenetv1Options.html @@ -1,4 +1,4 @@ -SsdMobilenetv1Options | @vladmandic/face-api - v1.7.13
\ No newline at end of file +SsdMobilenetv1Options | @vladmandic/face-api - v1.7.14

Constructors

Accessors

Constructors

Accessors

diff --git a/typedoc/classes/TinyFaceDetector.html b/typedoc/classes/TinyFaceDetector.html index 4a65cef..8b2de8c 100644 --- a/typedoc/classes/TinyFaceDetector.html +++ b/typedoc/classes/TinyFaceDetector.html @@ -1,31 +1,31 @@ -TinyFaceDetector | @vladmandic/face-api - v1.7.13

Hierarchy

  • TinyYolov2Base
    • TinyFaceDetector

Constructors

Properties

_name: any
DEFAULT_FILTER_SIZES: number[] = ...

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • throwOnRedispose: boolean = true

    Returns void

  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

\ No newline at end of file +TinyFaceDetector | @vladmandic/face-api - v1.7.14

Hierarchy

  • TinyYolov2Base
    • TinyFaceDetector

Constructors

Properties

_name: any
DEFAULT_FILTER_SIZES: number[] = ...

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • throwOnRedispose: boolean = true

    Returns void

  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

diff --git a/typedoc/classes/TinyFaceDetectorOptions.html b/typedoc/classes/TinyFaceDetectorOptions.html index 6b320b5..b0fd4d8 100644 --- a/typedoc/classes/TinyFaceDetectorOptions.html +++ b/typedoc/classes/TinyFaceDetectorOptions.html @@ -1,4 +1,4 @@ -TinyFaceDetectorOptions | @vladmandic/face-api - v1.7.13

Class TinyFaceDetectorOptions

Hierarchy (view full)

Constructors

Accessors

Constructors

Accessors

\ No newline at end of file +TinyFaceDetectorOptions | @vladmandic/face-api - v1.7.14

Class TinyFaceDetectorOptions

Hierarchy (view full)

Constructors

Accessors

Constructors

Accessors

diff --git a/typedoc/classes/TinyYolov2.html b/typedoc/classes/TinyYolov2.html index b727992..0c99d99 100644 --- a/typedoc/classes/TinyYolov2.html +++ b/typedoc/classes/TinyYolov2.html @@ -1,32 +1,32 @@ -TinyYolov2 | @vladmandic/face-api - v1.7.13

Hierarchy

  • TinyYolov2Base
    • TinyYolov2

Constructors

Properties

_name: any
DEFAULT_FILTER_SIZES: number[] = ...

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • throwOnRedispose: boolean = true

    Returns void

  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

\ No newline at end of file +TinyYolov2 | @vladmandic/face-api - v1.7.14

Hierarchy

  • TinyYolov2Base
    • TinyYolov2

Constructors

Properties

_name: any
DEFAULT_FILTER_SIZES: number[] = ...

Accessors

  • get paramMappings(): ParamMapping[]
  • Returns ParamMapping[]

Methods

  • Parameters

    • throwOnRedispose: boolean = true

    Returns void

  • Parameters

    • weights: Float32Array

    Returns void

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Returns {
        path: string;
        tensor: Tensor<Rank>;
    }[]

  • Parameters

    • weightsOrUrl: undefined | string | Float32Array

    Returns Promise<void>

  • Parameters

    • filePath: undefined | string

    Returns Promise<void>

  • Parameters

    • uri: undefined | string

    Returns Promise<void>

  • Parameters

    Returns void

  • Returns Float32Array

diff --git a/typedoc/classes/TinyYolov2Options.html b/typedoc/classes/TinyYolov2Options.html index 4f229ea..49bc7a1 100644 --- a/typedoc/classes/TinyYolov2Options.html +++ b/typedoc/classes/TinyYolov2Options.html @@ -1,4 +1,4 @@ -TinyYolov2Options | @vladmandic/face-api - v1.7.13
\ No newline at end of file +TinyYolov2Options | @vladmandic/face-api - v1.7.14

Hierarchy (view full)

Constructors

Accessors

Constructors

Accessors

diff --git a/typedoc/classes/draw.DrawBox.html b/typedoc/classes/draw.DrawBox.html index 7551301..6d96dc9 100644 --- a/typedoc/classes/draw.DrawBox.html +++ b/typedoc/classes/draw.DrawBox.html @@ -1,5 +1,5 @@ -DrawBox | @vladmandic/face-api - v1.7.13

Constructors

Properties

Methods

Constructors

Properties

box: Box<any>

Methods

  • Parameters

    • canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D

    Returns void

\ No newline at end of file +DrawBox | @vladmandic/face-api - v1.7.14

Constructors

Properties

Methods

Constructors

Properties

box: Box<any>

Methods

  • Parameters

    • canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D

    Returns void

diff --git a/typedoc/classes/draw.DrawBoxOptions.html b/typedoc/classes/draw.DrawBoxOptions.html index 38fc0bd..ae63065 100644 --- a/typedoc/classes/draw.DrawBoxOptions.html +++ b/typedoc/classes/draw.DrawBoxOptions.html @@ -1,6 +1,6 @@ -DrawBoxOptions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +DrawBoxOptions | @vladmandic/face-api - v1.7.14

Constructors

Properties

boxColor: string
drawLabelOptions: DrawTextFieldOptions
label?: string
lineWidth: number
diff --git a/typedoc/classes/draw.DrawFaceLandmarks.html b/typedoc/classes/draw.DrawFaceLandmarks.html index 080cb62..a818ad0 100644 --- a/typedoc/classes/draw.DrawFaceLandmarks.html +++ b/typedoc/classes/draw.DrawFaceLandmarks.html @@ -1,5 +1,5 @@ -DrawFaceLandmarks | @vladmandic/face-api - v1.7.13
\ No newline at end of file +DrawFaceLandmarks | @vladmandic/face-api - v1.7.14

Constructors

Properties

Methods

Constructors

Properties

faceLandmarks: FaceLandmarks

Methods

diff --git a/typedoc/classes/draw.DrawFaceLandmarksOptions.html b/typedoc/classes/draw.DrawFaceLandmarksOptions.html index 1a63df6..288d263 100644 --- a/typedoc/classes/draw.DrawFaceLandmarksOptions.html +++ b/typedoc/classes/draw.DrawFaceLandmarksOptions.html @@ -1,8 +1,8 @@ -DrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +DrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.14

Constructors

Properties

drawLines: boolean
drawPoints: boolean
lineColor: string
lineWidth: number
pointColor: string
pointSize: number
diff --git a/typedoc/classes/draw.DrawTextField.html b/typedoc/classes/draw.DrawTextField.html index 9f7a7ee..ea20cdc 100644 --- a/typedoc/classes/draw.DrawTextField.html +++ b/typedoc/classes/draw.DrawTextField.html @@ -1,9 +1,9 @@ -DrawTextField | @vladmandic/face-api - v1.7.13

Constructors

Properties

anchor: IPoint
text: string[]

Methods

  • Parameters

    • canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D

    Returns void

\ No newline at end of file +DrawTextField | @vladmandic/face-api - v1.7.14

Constructors

Properties

anchor: IPoint
text: string[]

Methods

  • Parameters

    • canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D

    Returns void

diff --git a/typedoc/classes/draw.DrawTextFieldOptions.html b/typedoc/classes/draw.DrawTextFieldOptions.html index 731edfe..b700429 100644 --- a/typedoc/classes/draw.DrawTextFieldOptions.html +++ b/typedoc/classes/draw.DrawTextFieldOptions.html @@ -1,8 +1,8 @@ -DrawTextFieldOptions | @vladmandic/face-api - v1.7.13

Implements

Constructors

Properties

anchorPosition: AnchorPosition
backgroundColor: string
fontColor: string
fontSize: number
fontStyle: string
padding: number
\ No newline at end of file +DrawTextFieldOptions | @vladmandic/face-api - v1.7.14

Implements

Constructors

Properties

anchorPosition: AnchorPosition
backgroundColor: string
fontColor: string
fontSize: number
fontStyle: string
padding: number
diff --git a/typedoc/classes/tf.Tensor-1.html b/typedoc/classes/tf.Tensor-1.html index 8218dca..014be3d 100644 --- a/typedoc/classes/tf.Tensor-1.html +++ b/typedoc/classes/tf.Tensor-1.html @@ -1,4 +1,4 @@ -Tensor | @vladmandic/face-api - v1.7.13

A tf.Tensor object represents an immutable, multidimensional array of +Tensor | @vladmandic/face-api - v1.7.14

A tf.Tensor object represents an immutable, multidimensional array of numbers that has a shape and a data type.

For performance reasons, functions that create tensors do not necessarily perform a copy of the data passed to them (e.g. if the data is passed as a @@ -6,213 +6,220 @@ perform a copy of the data passed to them (e.g. if the data is passed as a a feature and is not supported. To avoid this behavior, use the tensor before changing the input data or create a copy with copy = tf.add(yourTensor, 0).

See tf.tensor for details on how to create a tf.Tensor.

-

Doc

Type Parameters

Hierarchy (view full)

Implements

  • TensorInfo

Constructors

  • Type Parameters

    Parameters

    • shape: ShapeMap[R]
    • dtype: keyof DataTypeMap
    • dataId: object
    • id: number

    Returns Tensor<R>

Properties

dataId: object

Id of the bucket holding the data for this tensor. Multiple arrays can +

Type Parameters

Hierarchy (view full)

Implements

  • TensorInfo

Constructors

  • Type Parameters

    Parameters

    • shape: ShapeMap[R]
    • dtype: keyof DataTypeMap
    • dataId: object
    • id: number

    Returns Tensor<R>

Properties

dataId: object

Id of the bucket holding the data for this tensor. Multiple arrays can point to the same bucket (e.g. when calling array.reshape()).

-
dtype: keyof DataTypeMap

The data type for the array.

-
id: number

Unique id of this tensor.

-
kept: boolean

Whether this tensor has been globally kept.

-
kerasMask?: Tensor<Rank>

The keras mask that some keras layers attach to the tensor

-
rankType: R

The rank type for the array (see Rank enum).

-
scopeId: number

The id of the scope this tensor is being tracked in.

-
shape: ShapeMap[R]

The shape of the tensor.

-
size: number

Number of elements in the tensor.

-
strides: number[]

Number of elements to skip in each dimension when indexing. See -https://docs.scipy.org/doc/numpy/reference/generated/\ +

dtype: keyof DataTypeMap

The data type for the array.

+
id: number

Unique id of this tensor.

+
kept: boolean

Whether this tensor has been globally kept.

+
kerasMask?: Tensor<Rank>

The keras mask that some keras layers attach to the tensor

+
rankType: R

The rank type for the array (see Rank enum).

+
scopeId: number

The id of the scope this tensor is being tracked in.

+
shape: ShapeMap[R]

The shape of the tensor.

+
size: number

Number of elements in the tensor.

+
strides: number[]

Number of elements to skip in each dimension when indexing. See +https://docs.scipy.org/doc/numpy/reference/generated/\ numpy.ndarray.strides.html

-

Accessors

  • get isDisposed(): boolean
  • Returns boolean

  • get rank(): number
  • Returns number

Methods

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T

  • Returns the tensor data as a nested array. The transfer of data is done +

Accessors

  • get isDisposed(): boolean
  • Returns boolean

  • get rank(): number
  • Returns number

Methods

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T

  • Returns the tensor data as a nested array. The transfer of data is done asynchronously.

    -

    Returns Promise<ArrayMap[R]>

    Doc

  • Returns the tensor data as a nested array. The transfer of data is done +

    Returns Promise<ArrayMap[R]>

  • Returns the tensor data as a nested array. The transfer of data is done synchronously.

    -

    Returns ArrayMap[R]

    Doc

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number

    Returns Tensor2D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number

    Returns Tensor3D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number

    Returns Tensor4D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number
    • depth3: number

    Returns Tensor5D

  • Type Parameters

    Returns Scalar

  • Type Parameters

    Parameters

    • this: T
    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same" | ExplicitPadding
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • crops: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • shape: ShapeMap[R]

    Returns Tensor<R>

  • Returns a promise of tf.TensorBuffer that holds the underlying data.

    -

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns Promise<TensorBuffer<R, D>>

    Doc

  • Returns a tf.TensorBuffer that holds the underlying data.

    -

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns TensorBuffer<R, D>

    Doc

  • Returns the underlying bytes of the tensor's data.

    -

    Returns Promise<Uint8Array | Uint8Array[]>

  • Type Parameters

    Parameters

    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • min: number
    • max: number

    Returns Tensor<Rank>

  • Returns a copy of the tensor. See tf.clone for details.

    -

    Type Parameters

    Parameters

    • this: T

    Returns T

    Doc

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • stride: number
    • pad: number | "valid" | "same" | ExplicitPadding
    • Optional dataFormat: "NWC" | "NCW"
    • Optional dilation: number
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • Optional dataFormat: "NHWC" | "NCHW"
    • Optional dilations: number | [number, number]
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • outputShape: [number, number, number, number] | [number, number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number
    • Optional exclusive: boolean
    • Optional reverse: boolean

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • Optional axis: number
    • Optional exclusive: boolean
    • Optional reverse: boolean

    Returns Tensor<R>

  • Asynchronously downloads the values from the tf.Tensor. Returns a +

    Returns ArrayMap[R]

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number

    Returns Tensor2D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number

    Returns Tensor3D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number

    Returns Tensor4D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number
    • depth3: number

    Returns Tensor5D

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns Scalar

  • Type Parameters

    Parameters

    • this: T
    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • crops: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • shape: ShapeMap[R]

    Returns Tensor<R>

  • Returns a promise of tf.TensorBuffer that holds the underlying data.

    +

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns Promise<TensorBuffer<R, D>>

  • Returns a tf.TensorBuffer that holds the underlying data.

    +

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns TensorBuffer<R, D>

  • Returns the underlying bytes of the tensor's data.

    +

    Returns Promise<Uint8Array | Uint8Array[]>

  • Type Parameters

    Parameters

    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • min: number
    • max: number

    Returns Tensor<Rank>

  • Returns a copy of the tensor. See tf.clone for details.

    +

    Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • stride: number
    • pad:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldataFormat: "NWC" | "NCW"
    • Optionaldilation: number
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • OptionaldataFormat: "NHWC" | "NCHW"
    • Optionaldilations: number | [number, number]
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • outputShape: [number, number, number, number] | [number, number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number
    • Optionalexclusive: boolean
    • Optionalreverse: boolean

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • Optionalaxis: number
    • Optionalexclusive: boolean
    • Optionalreverse: boolean

    Returns Tensor<R>

  • Asynchronously downloads the values from the tf.Tensor. Returns a promise of TypedArray that resolves when the computation has finished.

    -

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns Promise<DataTypeMap[D]>

    Doc

  • Synchronously downloads the values from the tf.Tensor. This blocks the +

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns Promise<DataTypeMap[D]>

  • Synchronously downloads the values from the tf.Tensor. This blocks the UI thread until the values are ready, which can cause performance issues.

    -

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns DataTypeMap[D]

    Doc

  • Copy the tensor's data to a new GPU resource. Comparing to the dataSync() +

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns DataTypeMap[D]

  • Copy the tensor's data to a new GPU resource. Comparing to the dataSync() and data(), this method prevents data from being downloaded to CPU.

    For WebGL backend, the data will be stored on a densely packed texture. This means that the texture will use the RGBA channels to store value.

    For WebGPU backend, the data will be stored on a buffer. There is no parameter, so can not use a user-defined size to create the buffer.

    -

    Parameters

    • Optional options: DataToGPUWebGLOption

    Returns GPUData

    For WebGL backend, a GPUData contains the new texture and - its information. - { - tensorRef: The tensor that is associated with this texture, - texture: WebGLTexture, - texShape: [number, number] // [height, width] - }

    -
    For WebGPU backend, a GPUData contains the new buffer.
    {
    tensorRef: The tensor that is associated with this buffer,
    buffer: GPUBuffer,
    }

    Remember to dispose the GPUData after it is used by
    `res.tensorRef.dispose()`. -
    -

    Doc

  • Type Parameters

    Parameters

    • blockSize: number
    • dataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • Optional dataFormat: "NHWC" | "NCHW"
    • Optional dilations: number | [number, number]
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optional dilations: number | [number, number]
    • Optional dataFormat: "NHWC"

    Returns T

  • Disposes tf.Tensor from memory.

    -

    Returns void

    Doc

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • alpha: number

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional depthRadius: number
    • Optional bias: number
    • Optional alpha: number
    • Optional beta: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same" | ExplicitPadding
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • mode: "reflect" | "symmetric"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optional ord: number | "euclidean" | "fro"
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Parameters

    • depth: number
    • onValue: number
    • offValue: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • Optional constantValue: number

    Returns T

  • Type Parameters

    Parameters

    • windowShape: number | [number, number]
    • poolingType: "avg" | "max"
    • padding: number | "valid" | "same" | ExplicitPadding
    • Optional diationRate: number | [number, number]
    • Optional strides: number | [number, number]
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Prints the tf.Tensor. See tf.print for details.

    -

    Parameters

    • Optional verbose: boolean

      Whether to print verbose information about the tensor, - including dtype and size.

      -

    Returns void

    Doc

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • shape: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • Optional alignCorners: boolean
    • Optional halfPixelCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • Optional alignCorners: boolean
    • Optional halfFloatCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • depthwiseFilter: Tensor4D | TensorLike4D
    • pointwiseFilter: Tensor4D | TensorLike
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optional dilation: number | [number, number]
    • Optional dataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • begin: number | number[]
    • Optional size: number | number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional dim: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • paddings: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • numOrSizeSplits: number | number[]
    • Optional axis: number

    Returns T[]

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional alpha: number

    Returns T

  • Type Parameters

    Parameters

    • this: Tensor<Rank>
    • begin: number[]
    • end: number[]
    • strides: number[]
    • Optional beginMask: number
    • Optional endMask: number
    • Optional ellipsisMask: number
    • Optional newAxisMask: number
    • Optional shrinkAxisMask: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Returns void

  • Type Parameters

    Parameters

    • b: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Returns a human-readable description of the tensor. Useful for logging.

    -

    Parameters

    • Optional verbose: boolean

    Returns string

    Doc

  • Type Parameters

    Parameters

    • this: T
    • Optional k: number
    • Optional sorted: boolean

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Type Parameters

    Parameters

    • Optional perm: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Type Parameters

    Parameters

    • this: T
    • segmentIds: Tensor1D | TensorLike1D
    • numSegments: number

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T[]

  • Parameters

    • Optional trainable: boolean
    • Optional name: string
    • Optional dtype: keyof DataTypeMap

    Returns Variable<R>

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

\ No newline at end of file +

Parameters

  • Optionaloptions: DataToGPUWebGLOption

Returns GPUData

For WebGL backend, a GPUData contains the new texture and +its information. +{ +tensorRef: The tensor that is associated with this texture, +texture: WebGLTexture, +texShape: [number, number] // [height, width] +}

+
For WebGPU backend, a GPUData contains the new buffer.
+{
+   tensorRef: The tensor that is associated with this buffer,
+   buffer: GPUBuffer,
+}
+
+Remember to dispose the GPUData after it is used by
+`res.tensorRef.dispose()`.
+
+
  • Type Parameters

    Parameters

    • blockSize: number
    • dataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • OptionaldataFormat: "NHWC" | "NCHW"
    • Optionaldilations: number | [number, number]
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optionaldilations: number | [number, number]
    • OptionaldataFormat: "NHWC"

    Returns T

  • Disposes tf.Tensor from memory.

    +

    Returns void

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • alpha: number

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • OptionaldepthRadius: number
    • Optionalbias: number
    • Optionalalpha: number
    • Optionalbeta: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • mode: "reflect" | "symmetric"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optionalord: number | "euclidean" | "fro"
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Parameters

    • depth: number
    • onValue: number
    • offValue: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • OptionalconstantValue: number

    Returns T

  • Type Parameters

    Parameters

    • windowShape: number | [number, number]
    • poolingType: "avg" | "max"
    • padding:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldiationRate: number | [number, number]
    • Optionalstrides: number | [number, number]
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Prints the tf.Tensor. See tf.print for details.

    +

    Parameters

    • Optionalverbose: boolean

      Whether to print verbose information about the tensor, +including dtype and size.

      +

    Returns void

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • shape: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • OptionalalignCorners: boolean
    • OptionalhalfPixelCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • OptionalalignCorners: boolean
    • OptionalhalfFloatCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • depthwiseFilter: Tensor4D | TensorLike4D
    • pointwiseFilter: Tensor4D | TensorLike
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optionaldilation: number | [number, number]
    • OptionaldataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • begin: number | number[]
    • Optionalsize: number | number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionaldim: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • paddings: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • numOrSizeSplits: number | number[]
    • Optionalaxis: number

    Returns T[]

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalalpha: number

    Returns T

  • Type Parameters

    Parameters

    • this: Tensor<Rank>
    • begin: number[]
    • end: number[]
    • strides: number[]
    • OptionalbeginMask: number
    • OptionalendMask: number
    • OptionalellipsisMask: number
    • OptionalnewAxisMask: number
    • OptionalshrinkAxisMask: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Returns void

  • Type Parameters

    Parameters

    • b: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalk: number
    • Optionalsorted: boolean

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Returns a human-readable description of the tensor. Useful for logging.

    +

    Parameters

    • Optionalverbose: boolean

    Returns string

  • Type Parameters

    Parameters

    • Optionalperm: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Type Parameters

    Parameters

    • this: T
    • segmentIds: Tensor1D | TensorLike1D
    • numSegments: number

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T[]

  • Parameters

    • Optionaltrainable: boolean
    • Optionalname: string
    • Optionaldtype: keyof DataTypeMap

    Returns Variable<R>

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

diff --git a/typedoc/classes/tf.Variable.html b/typedoc/classes/tf.Variable.html index 4c30d82..56761bf 100644 --- a/typedoc/classes/tf.Variable.html +++ b/typedoc/classes/tf.Variable.html @@ -1,217 +1,224 @@ -Variable | @vladmandic/face-api - v1.7.13

A mutable tf.Tensor, useful for persisting state, e.g. for training.

-

Doc

Type Parameters

Hierarchy (view full)

Constructors

  • Type Parameters

    Parameters

    • initialValue: Tensor<R>
    • trainable: boolean
    • name: string
    • tensorId: number

    Returns Variable<R>

Properties

dataId: object

Id of the bucket holding the data for this tensor. Multiple arrays can +Variable | @vladmandic/face-api - v1.7.14

A mutable tf.Tensor, useful for persisting state, e.g. for training.

+

Type Parameters

Hierarchy (view full)

Constructors

  • Type Parameters

    Parameters

    • initialValue: Tensor<R>
    • trainable: boolean
    • name: string
    • tensorId: number

    Returns Variable<R>

Properties

dataId: object

Id of the bucket holding the data for this tensor. Multiple arrays can point to the same bucket (e.g. when calling array.reshape()).

-
dtype: keyof DataTypeMap

The data type for the array.

-
id: number

Unique id of this tensor.

-
kept: boolean

Whether this tensor has been globally kept.

-
kerasMask?: Tensor<Rank>

The keras mask that some keras layers attach to the tensor

-
name: string
rankType: R

The rank type for the array (see Rank enum).

-
scopeId: number

The id of the scope this tensor is being tracked in.

-
shape: ShapeMap[R]

The shape of the tensor.

-
size: number

Number of elements in the tensor.

-
strides: number[]

Number of elements to skip in each dimension when indexing. See -https://docs.scipy.org/doc/numpy/reference/generated/\ +

dtype: keyof DataTypeMap

The data type for the array.

+
id: number

Unique id of this tensor.

+
kept: boolean

Whether this tensor has been globally kept.

+
kerasMask?: Tensor<Rank>

The keras mask that some keras layers attach to the tensor

+
name: string
rankType: R

The rank type for the array (see Rank enum).

+
scopeId: number

The id of the scope this tensor is being tracked in.

+
shape: ShapeMap[R]

The shape of the tensor.

+
size: number

Number of elements in the tensor.

+
strides: number[]

Number of elements to skip in each dimension when indexing. See +https://docs.scipy.org/doc/numpy/reference/generated/\ numpy.ndarray.strides.html

-
trainable: boolean

Accessors

  • get isDisposed(): boolean
  • Returns boolean

  • get rank(): number
  • Returns number

Methods

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T

  • Returns the tensor data as a nested array. The transfer of data is done +

trainable: boolean

Accessors

  • get isDisposed(): boolean
  • Returns boolean

  • get rank(): number
  • Returns number

Methods

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T

  • Returns the tensor data as a nested array. The transfer of data is done asynchronously.

    -

    Returns Promise<ArrayMap[R]>

    Doc

  • Returns the tensor data as a nested array. The transfer of data is done +

    Returns Promise<ArrayMap[R]>

  • Returns the tensor data as a nested array. The transfer of data is done synchronously.

    -

    Returns ArrayMap[R]

    Doc

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number

    Returns Tensor2D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number

    Returns Tensor3D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number

    Returns Tensor4D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number
    • depth3: number

    Returns Tensor5D

  • Type Parameters

    Returns Scalar

  • Type Parameters

    Parameters

    • this: T
    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Assign a new tf.Tensor to this variable. The new tf.Tensor must have +

    Returns ArrayMap[R]

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number

    Returns Tensor2D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number

    Returns Tensor3D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number

    Returns Tensor4D

  • Type Parameters

    Parameters

    • rows: number
    • columns: number
    • depth: number
    • depth2: number
    • depth3: number

    Returns Tensor5D

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns Scalar

  • Assign a new tf.Tensor to this variable. The new tf.Tensor must have the same shape and dtype as the old tf.Tensor.

    -

    Parameters

    • newValue: Tensor<R>

      New tensor to be assigned to this variable.

      -

    Returns void

    Doc

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same" | ExplicitPadding
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • crops: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • shape: ShapeMap[R]

    Returns Tensor<R>

  • Returns a promise of tf.TensorBuffer that holds the underlying data.

    -

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns Promise<TensorBuffer<R, D>>

    Doc

  • Returns a tf.TensorBuffer that holds the underlying data.

    -

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns TensorBuffer<R, D>

    Doc

  • Returns the underlying bytes of the tensor's data.

    -

    Returns Promise<Uint8Array | Uint8Array[]>

  • Type Parameters

    Parameters

    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • min: number
    • max: number

    Returns Tensor<Rank>

  • Returns a copy of the tensor. See tf.clone for details.

    -

    Type Parameters

    Parameters

    • this: T

    Returns T

    Doc

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • stride: number
    • pad: number | "valid" | "same" | ExplicitPadding
    • Optional dataFormat: "NWC" | "NCW"
    • Optional dilation: number
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • Optional dataFormat: "NHWC" | "NCHW"
    • Optional dilations: number | [number, number]
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • outputShape: [number, number, number, number] | [number, number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number
    • Optional exclusive: boolean
    • Optional reverse: boolean

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • Optional axis: number
    • Optional exclusive: boolean
    • Optional reverse: boolean

    Returns Tensor<R>

  • Asynchronously downloads the values from the tf.Tensor. Returns a +

    Parameters

    • newValue: Tensor<R>

      New tensor to be assigned to this variable.

      +

    Returns void

  • Type Parameters

    Parameters

    • this: T
    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • crops: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • shape: ShapeMap[R]

    Returns Tensor<R>

  • Returns a promise of tf.TensorBuffer that holds the underlying data.

    +

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns Promise<TensorBuffer<R, D>>

  • Returns a tf.TensorBuffer that holds the underlying data.

    +

    Type Parameters

    • D extends keyof DataTypeMap = "float32"

    Returns TensorBuffer<R, D>

  • Returns the underlying bytes of the tensor's data.

    +

    Returns Promise<Uint8Array | Uint8Array[]>

  • Type Parameters

    Parameters

    • dtype: keyof DataTypeMap

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • min: number
    • max: number

    Returns Tensor<Rank>

  • Returns a copy of the tensor. See tf.clone for details.

    +

    Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • stride: number
    • pad:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldataFormat: "NWC" | "NCW"
    • Optionaldilation: number
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • OptionaldataFormat: "NHWC" | "NCHW"
    • Optionaldilations: number | [number, number]
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • outputShape: [number, number, number, number] | [number, number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number
    • Optionalexclusive: boolean
    • Optionalreverse: boolean

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • Optionalaxis: number
    • Optionalexclusive: boolean
    • Optionalreverse: boolean

    Returns Tensor<R>

  • Asynchronously downloads the values from the tf.Tensor. Returns a promise of TypedArray that resolves when the computation has finished.

    -

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns Promise<DataTypeMap[D]>

    Doc

  • Synchronously downloads the values from the tf.Tensor. This blocks the +

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns Promise<DataTypeMap[D]>

  • Synchronously downloads the values from the tf.Tensor. This blocks the UI thread until the values are ready, which can cause performance issues.

    -

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns DataTypeMap[D]

    Doc

  • Copy the tensor's data to a new GPU resource. Comparing to the dataSync() +

    Type Parameters

    • D extends keyof DataTypeMap = NumericDataType

    Returns DataTypeMap[D]

  • Copy the tensor's data to a new GPU resource. Comparing to the dataSync() and data(), this method prevents data from being downloaded to CPU.

    For WebGL backend, the data will be stored on a densely packed texture. This means that the texture will use the RGBA channels to store value.

    For WebGPU backend, the data will be stored on a buffer. There is no parameter, so can not use a user-defined size to create the buffer.

    -

    Parameters

    • Optional options: DataToGPUWebGLOption

    Returns GPUData

    For WebGL backend, a GPUData contains the new texture and - its information. - { - tensorRef: The tensor that is associated with this texture, - texture: WebGLTexture, - texShape: [number, number] // [height, width] - }

    -
    For WebGPU backend, a GPUData contains the new buffer.
    {
    tensorRef: The tensor that is associated with this buffer,
    buffer: GPUBuffer,
    }

    Remember to dispose the GPUData after it is used by
    `res.tensorRef.dispose()`. -
    -

    Doc

  • Type Parameters

    Parameters

    • blockSize: number
    • dataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • Optional dataFormat: "NHWC" | "NCHW"
    • Optional dilations: number | [number, number]
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optional dilations: number | [number, number]
    • Optional dataFormat: "NHWC"

    Returns T

  • Disposes tf.Tensor from memory.

    -

    Returns void

    Doc

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • alpha: number

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional depthRadius: number
    • Optional bias: number
    • Optional alpha: number
    • Optional beta: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad: number | "valid" | "same" | ExplicitPadding
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • mode: "reflect" | "symmetric"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optional ord: number | "euclidean" | "fro"
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Parameters

    • depth: number
    • onValue: number
    • offValue: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • Optional constantValue: number

    Returns T

  • Type Parameters

    Parameters

    • windowShape: number | [number, number]
    • poolingType: "avg" | "max"
    • padding: number | "valid" | "same" | ExplicitPadding
    • Optional diationRate: number | [number, number]
    • Optional strides: number | [number, number]
    • Optional dimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Prints the tf.Tensor. See tf.print for details.

    -

    Parameters

    • Optional verbose: boolean

      Whether to print verbose information about the tensor, - including dtype and size.

      -

    Returns void

    Doc

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • shape: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • Optional alignCorners: boolean
    • Optional halfPixelCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • Optional alignCorners: boolean
    • Optional halfFloatCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number | number[]

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • depthwiseFilter: Tensor4D | TensorLike4D
    • pointwiseFilter: Tensor4D | TensorLike
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optional dilation: number | [number, number]
    • Optional dataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • begin: number | number[]
    • Optional size: number | number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional dim: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • paddings: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • numOrSizeSplits: number | number[]
    • Optional axis: number

    Returns T[]

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional alpha: number

    Returns T

  • Type Parameters

    Parameters

    • this: Tensor<Rank>
    • begin: number[]
    • end: number[]
    • strides: number[]
    • Optional beginMask: number
    • Optional endMask: number
    • Optional ellipsisMask: number
    • Optional newAxisMask: number
    • Optional shrinkAxisMask: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number | number[]
    • Optional keepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Returns void

  • Type Parameters

    Parameters

    • b: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Returns a human-readable description of the tensor. Useful for logging.

    -

    Parameters

    • Optional verbose: boolean

    Returns string

    Doc

  • Type Parameters

    Parameters

    • this: T
    • Optional k: number
    • Optional sorted: boolean

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Type Parameters

    Parameters

    • Optional perm: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optional axis: number

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Type Parameters

    Parameters

    • this: T
    • segmentIds: Tensor1D | TensorLike1D
    • numSegments: number

    Returns T

  • Type Parameters

    Parameters

    • Optional axis: number

    Returns T[]

  • Parameters

    • Optional trainable: boolean
    • Optional name: string
    • Optional dtype: keyof DataTypeMap

    Returns Variable<R>

  • Type Parameters

    Parameters

    • this: T

    Returns T

\ No newline at end of file +

Parameters

  • Optionaloptions: DataToGPUWebGLOption

Returns GPUData

For WebGL backend, a GPUData contains the new texture and +its information. +{ +tensorRef: The tensor that is associated with this texture, +texture: WebGLTexture, +texShape: [number, number] // [height, width] +}

+
For WebGPU backend, a GPUData contains the new buffer.
+{
+   tensorRef: The tensor that is associated with this buffer,
+   buffer: GPUBuffer,
+}
+
+Remember to dispose the GPUData after it is used by
+`res.tensorRef.dispose()`.
+
+
  • Type Parameters

    Parameters

    • blockSize: number
    • dataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor4D | TensorLike4D
    • strides: number | [number, number]
    • pad: number | "valid" | "same"
    • OptionaldataFormat: "NHWC" | "NCHW"
    • Optionaldilations: number | [number, number]
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • filter: Tensor3D | TensorLike3D
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optionaldilations: number | [number, number]
    • OptionaldataFormat: "NHWC"

    Returns T

  • Disposes tf.Tensor from memory.

    +

    Returns void

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Returns Tensor1D

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • alpha: number

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • OptionaldepthRadius: number
    • Optionalbias: number
    • Optionalalpha: number
    • Optionalbeta: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • filterSize: number | [number, number]
    • strides: number | [number, number]
    • pad:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • mode: "reflect" | "symmetric"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • Optionalord: number | "euclidean" | "fro"
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Parameters

    • depth: number
    • onValue: number
    • offValue: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • paddings: [number, number][]
    • OptionalconstantValue: number

    Returns T

  • Type Parameters

    Parameters

    • windowShape: number | [number, number]
    • poolingType: "avg" | "max"
    • padding:
          | number
          | "valid"
          | "same"
          | ExplicitPadding
    • OptionaldiationRate: number | [number, number]
    • Optionalstrides: number | [number, number]
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Prints the tf.Tensor. See tf.print for details.

    +

    Parameters

    • Optionalverbose: boolean

      Whether to print verbose information about the tensor, +including dtype and size.

      +

    Returns void

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • shape: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • OptionalalignCorners: boolean
    • OptionalhalfPixelCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • newShape2D: [number, number]
    • OptionalalignCorners: boolean
    • OptionalhalfFloatCenters: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number | number[]

    Returns T

  • Type Parameters

    Parameters

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Returns T

  • Type Parameters

    Parameters

    • depthwiseFilter: Tensor4D | TensorLike4D
    • pointwiseFilter: Tensor4D | TensorLike
    • strides: number | [number, number]
    • pad: "valid" | "same"
    • Optionaldilation: number | [number, number]
    • OptionaldataFormat: "NHWC" | "NCHW"

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • begin: number | number[]
    • Optionalsize: number | number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionaldim: number

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • blockShape: number[]
    • paddings: number[][]

    Returns Tensor<R>

  • Type Parameters

    Parameters

    • numOrSizeSplits: number | number[]
    • Optionalaxis: number

    Returns T[]

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number[]

    Returns T

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalalpha: number

    Returns T

  • Type Parameters

    Parameters

    • this: Tensor<Rank>
    • begin: number[]
    • end: number[]
    • strides: number[]
    • OptionalbeginMask: number
    • OptionalendMask: number
    • OptionalellipsisMask: number
    • OptionalnewAxisMask: number
    • OptionalshrinkAxisMask: number

    Returns Tensor<Rank>

  • Type Parameters

    Parameters

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number | number[]
    • OptionalkeepDims: boolean

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Returns void

  • Type Parameters

    Parameters

    • b: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalk: number
    • Optionalsorted: boolean

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Returns a human-readable description of the tensor. Useful for logging.

    +

    Parameters

    • Optionalverbose: boolean

    Returns string

  • Type Parameters

    Parameters

    • Optionalperm: number[]

    Returns T

  • Type Parameters

    Parameters

    • this: T
    • Optionalaxis: number

    Returns {
        indices: T;
        values: T;
    }

    • indices: T
    • values: T
  • Type Parameters

    Parameters

    • this: T
    • segmentIds: Tensor1D | TensorLike1D
    • numSegments: number

    Returns T

  • Type Parameters

    Parameters

    • Optionalaxis: number

    Returns T[]

  • Parameters

    • Optionaltrainable: boolean
    • Optionalname: string
    • Optionaldtype: keyof DataTypeMap

    Returns Variable<R>

  • Type Parameters

    Parameters

    • this: T

    Returns T

diff --git a/typedoc/classes/tf.io.CompositeArrayBuffer.html b/typedoc/classes/tf.io.CompositeArrayBuffer.html index 5677e4f..113138e 100644 --- a/typedoc/classes/tf.io.CompositeArrayBuffer.html +++ b/typedoc/classes/tf.io.CompositeArrayBuffer.html @@ -1,16 +1,16 @@ -CompositeArrayBuffer | @vladmandic/face-api - v1.7.13

Wraps a list of ArrayBuffers into a slice()-able object without allocating +CompositeArrayBuffer | @vladmandic/face-api - v1.7.14

Wraps a list of ArrayBuffers into a slice()-able object without allocating a large ArrayBuffer.

Allocating large ArrayBuffers (~2GB) can be unstable on Chrome. TFJS loads its weights as a list of (usually) 4MB ArrayBuffers and then slices the -weight tensors out of them. For small models, it's safe to concatenate all +weight tensors out of them. For small models, it's safe to concatenate all the weight buffers into a single ArrayBuffer and then slice the weight tensors out of it, but for large models, a different approach is needed.

-

Constructors

Properties

Methods

Constructors

  • Parameters

    • Optional buffers: TypedArray | ArrayBuffer | ArrayBuffer[] | TypedArray[]

    Returns CompositeArrayBuffer

Properties

byteLength: number

Methods

  • Parameters

    • Optional start: number
    • Optional end: number

    Returns ArrayBuffer

  • Concatenate a number of ArrayBuffers into one.

    -

    Parameters

    • Optional buffers: ArrayBuffer | ArrayBuffer[]

      An array of ArrayBuffers to concatenate, or a single - ArrayBuffer.

      +

Constructors

Properties

Methods

Constructors

  • Parameters

    • Optionalbuffers:
          | TypedArray
          | ArrayBuffer
          | ArrayBuffer[]
          | TypedArray[]

    Returns CompositeArrayBuffer

Properties

byteLength: number

Methods

  • Parameters

    • Optionalstart: number
    • Optionalend: number

    Returns ArrayBuffer

  • Concatenate a number of ArrayBuffers into one.

    +

    Parameters

    • Optionalbuffers: ArrayBuffer | ArrayBuffer[]

      An array of ArrayBuffers to concatenate, or a single +ArrayBuffer.

    Returns ArrayBuffer

    Result of concatenating buffers in order.

    -
\ No newline at end of file +
diff --git a/typedoc/enums/Gender.html b/typedoc/enums/Gender.html index f138fbc..b353db2 100644 --- a/typedoc/enums/Gender.html +++ b/typedoc/enums/Gender.html @@ -1,3 +1,3 @@ -Gender | @vladmandic/face-api - v1.7.13
\ No newline at end of file +Gender | @vladmandic/face-api - v1.7.14

Enumeration Gender

Enumeration Members

Enumeration Members

FEMALE: "female"
MALE: "male"
diff --git a/typedoc/enums/draw.AnchorPosition.html b/typedoc/enums/draw.AnchorPosition.html index 3d1b068..9339bb9 100644 --- a/typedoc/enums/draw.AnchorPosition.html +++ b/typedoc/enums/draw.AnchorPosition.html @@ -1,5 +1,5 @@ -AnchorPosition | @vladmandic/face-api - v1.7.13
\ No newline at end of file +AnchorPosition | @vladmandic/face-api - v1.7.14

Enumeration AnchorPosition

Enumeration Members

Enumeration Members

BOTTOM_LEFT: "BOTTOM_LEFT"
BOTTOM_RIGHT: "BOTTOM_RIGHT"
TOP_LEFT: "TOP_LEFT"
TOP_RIGHT: "TOP_RIGHT"
diff --git a/typedoc/enums/tf.Rank.html b/typedoc/enums/tf.Rank.html index dad7736..f6bede1 100644 --- a/typedoc/enums/tf.Rank.html +++ b/typedoc/enums/tf.Rank.html @@ -1,8 +1,8 @@ -Rank | @vladmandic/face-api - v1.7.13

Enumeration Members

R0 -R1 -R2 -R3 -R4 -R5 -R6 -

Enumeration Members

R0: "R0"
R1: "R1"
R2: "R2"
R3: "R3"
R4: "R4"
R5: "R5"
R6: "R6"
\ No newline at end of file +Rank | @vladmandic/face-api - v1.7.14

Enumeration Members

R0 +R1 +R2 +R3 +R4 +R5 +R6 +

Enumeration Members

R0: "R0"
R1: "R1"
R2: "R2"
R3: "R3"
R4: "R4"
R5: "R5"
R6: "R6"
diff --git a/typedoc/functions/allFaces.html b/typedoc/functions/allFaces.html index ff9e218..46db0df 100644 --- a/typedoc/functions/allFaces.html +++ b/typedoc/functions/allFaces.html @@ -1 +1 @@ -allFaces | @vladmandic/face-api - v1.7.13
\ No newline at end of file +allFaces | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/allFacesSsdMobilenetv1.html b/typedoc/functions/allFacesSsdMobilenetv1.html index 1c9ae40..14cf1f4 100644 --- a/typedoc/functions/allFacesSsdMobilenetv1.html +++ b/typedoc/functions/allFacesSsdMobilenetv1.html @@ -1 +1 @@ -allFacesSsdMobilenetv1 | @vladmandic/face-api - v1.7.13
\ No newline at end of file +allFacesSsdMobilenetv1 | @vladmandic/face-api - v1.7.14

Function allFacesSsdMobilenetv1

diff --git a/typedoc/functions/allFacesTinyYolov2.html b/typedoc/functions/allFacesTinyYolov2.html index 404fce1..ed134df 100644 --- a/typedoc/functions/allFacesTinyYolov2.html +++ b/typedoc/functions/allFacesTinyYolov2.html @@ -1 +1 @@ -allFacesTinyYolov2 | @vladmandic/face-api - v1.7.13
\ No newline at end of file +allFacesTinyYolov2 | @vladmandic/face-api - v1.7.14

Function allFacesTinyYolov2

diff --git a/typedoc/functions/awaitMediaLoaded.html b/typedoc/functions/awaitMediaLoaded.html index 7bb1e3e..f1793bf 100644 --- a/typedoc/functions/awaitMediaLoaded.html +++ b/typedoc/functions/awaitMediaLoaded.html @@ -1 +1 @@ -awaitMediaLoaded | @vladmandic/face-api - v1.7.13
\ No newline at end of file +awaitMediaLoaded | @vladmandic/face-api - v1.7.14

Function awaitMediaLoaded

  • Parameters

    • media: HTMLCanvasElement | HTMLImageElement | HTMLVideoElement

    Returns Promise<unknown>

diff --git a/typedoc/functions/bufferToImage.html b/typedoc/functions/bufferToImage.html index 0a0554f..25d881f 100644 --- a/typedoc/functions/bufferToImage.html +++ b/typedoc/functions/bufferToImage.html @@ -1 +1 @@ -bufferToImage | @vladmandic/face-api - v1.7.13
\ No newline at end of file +bufferToImage | @vladmandic/face-api - v1.7.14

Function bufferToImage

  • Parameters

    • buf: Blob

    Returns Promise<HTMLImageElement>

diff --git a/typedoc/functions/computeFaceDescriptor.html b/typedoc/functions/computeFaceDescriptor.html index 770864a..7e26c0b 100644 --- a/typedoc/functions/computeFaceDescriptor.html +++ b/typedoc/functions/computeFaceDescriptor.html @@ -1,6 +1,6 @@ -computeFaceDescriptor | @vladmandic/face-api - v1.7.13

Function computeFaceDescriptor

  • Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image, +computeFaceDescriptor | @vladmandic/face-api - v1.7.14

    Function computeFaceDescriptor

    Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image, which uniquely represents the features of that persons face. The computed face descriptor can be used to measure the similarity between faces, by computing the euclidean distance of two face descriptors.

    -

    Parameters

    Returns Promise<Float32Array | Float32Array[]>

    Face descriptor with 128 entries or array thereof in case of batch input.

    -
\ No newline at end of file +
  • Parameters

    Returns Promise<Float32Array | Float32Array[]>

    Face descriptor with 128 entries or array thereof in case of batch input.

    +
diff --git a/typedoc/functions/createCanvas.html b/typedoc/functions/createCanvas.html index 98a0f0a..131e373 100644 --- a/typedoc/functions/createCanvas.html +++ b/typedoc/functions/createCanvas.html @@ -1 +1 @@ -createCanvas | @vladmandic/face-api - v1.7.13
\ No newline at end of file +createCanvas | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/createCanvasFromMedia.html b/typedoc/functions/createCanvasFromMedia.html index c67fdc0..5017d24 100644 --- a/typedoc/functions/createCanvasFromMedia.html +++ b/typedoc/functions/createCanvasFromMedia.html @@ -1 +1 @@ -createCanvasFromMedia | @vladmandic/face-api - v1.7.13
\ No newline at end of file +createCanvasFromMedia | @vladmandic/face-api - v1.7.14

Function createCanvasFromMedia

  • Parameters

    • media: HTMLImageElement | HTMLVideoElement | ImageData
    • Optionaldims: IDimensions

    Returns HTMLCanvasElement

diff --git a/typedoc/functions/createFaceDetectionNet.html b/typedoc/functions/createFaceDetectionNet.html index fba078f..ef637c0 100644 --- a/typedoc/functions/createFaceDetectionNet.html +++ b/typedoc/functions/createFaceDetectionNet.html @@ -1 +1 @@ -createFaceDetectionNet | @vladmandic/face-api - v1.7.13
\ No newline at end of file +createFaceDetectionNet | @vladmandic/face-api - v1.7.14

Function createFaceDetectionNet

diff --git a/typedoc/functions/createFaceRecognitionNet.html b/typedoc/functions/createFaceRecognitionNet.html index 97c6a0f..5d60d48 100644 --- a/typedoc/functions/createFaceRecognitionNet.html +++ b/typedoc/functions/createFaceRecognitionNet.html @@ -1 +1 @@ -createFaceRecognitionNet | @vladmandic/face-api - v1.7.13
\ No newline at end of file +createFaceRecognitionNet | @vladmandic/face-api - v1.7.14

Function createFaceRecognitionNet

diff --git a/typedoc/functions/createSsdMobilenetv1.html b/typedoc/functions/createSsdMobilenetv1.html index bc7af7c..1b8b2e4 100644 --- a/typedoc/functions/createSsdMobilenetv1.html +++ b/typedoc/functions/createSsdMobilenetv1.html @@ -1 +1 @@ -createSsdMobilenetv1 | @vladmandic/face-api - v1.7.13
\ No newline at end of file +createSsdMobilenetv1 | @vladmandic/face-api - v1.7.14

Function createSsdMobilenetv1

diff --git a/typedoc/functions/createTinyFaceDetector.html b/typedoc/functions/createTinyFaceDetector.html index 686e8c5..aee9222 100644 --- a/typedoc/functions/createTinyFaceDetector.html +++ b/typedoc/functions/createTinyFaceDetector.html @@ -1 +1 @@ -createTinyFaceDetector | @vladmandic/face-api - v1.7.13
\ No newline at end of file +createTinyFaceDetector | @vladmandic/face-api - v1.7.14

Function createTinyFaceDetector

diff --git a/typedoc/functions/createTinyYolov2.html b/typedoc/functions/createTinyYolov2.html index 39136c4..d7b0455 100644 --- a/typedoc/functions/createTinyYolov2.html +++ b/typedoc/functions/createTinyYolov2.html @@ -1 +1 @@ -createTinyYolov2 | @vladmandic/face-api - v1.7.13
\ No newline at end of file +createTinyYolov2 | @vladmandic/face-api - v1.7.14

Function createTinyYolov2

diff --git a/typedoc/functions/detectAllFaces.html b/typedoc/functions/detectAllFaces.html index c5f55f8..a8aa454 100644 --- a/typedoc/functions/detectAllFaces.html +++ b/typedoc/functions/detectAllFaces.html @@ -1 +1 @@ -detectAllFaces | @vladmandic/face-api - v1.7.13
\ No newline at end of file +detectAllFaces | @vladmandic/face-api - v1.7.14

Function detectAllFaces

diff --git a/typedoc/functions/detectFaceLandmarks.html b/typedoc/functions/detectFaceLandmarks.html index 655a864..5971831 100644 --- a/typedoc/functions/detectFaceLandmarks.html +++ b/typedoc/functions/detectFaceLandmarks.html @@ -1,3 +1,3 @@ -detectFaceLandmarks | @vladmandic/face-api - v1.7.13
\ No newline at end of file +detectFaceLandmarks | @vladmandic/face-api - v1.7.14

Function detectFaceLandmarks

Detects the 68 point face landmark positions of the face shown in an image.

+
diff --git a/typedoc/functions/detectFaceLandmarksTiny.html b/typedoc/functions/detectFaceLandmarksTiny.html index b48f13d..57336ef 100644 --- a/typedoc/functions/detectFaceLandmarksTiny.html +++ b/typedoc/functions/detectFaceLandmarksTiny.html @@ -1,5 +1,5 @@ -detectFaceLandmarksTiny | @vladmandic/face-api - v1.7.13

Function detectFaceLandmarksTiny

  • Detects the 68 point face landmark positions of the face shown in an image +detectFaceLandmarksTiny | @vladmandic/face-api - v1.7.14

    Function detectFaceLandmarksTiny

    Detects the 68 point face landmark positions of the face shown in an image using a tinier version of the 68 point face landmark model, which is slightly faster at inference, but also slightly less accurate.

    -

    Parameters

    Returns Promise<FaceLandmarks68 | FaceLandmarks68[]>

    68 point face landmarks or array thereof in case of batch input.

    -
\ No newline at end of file +
diff --git a/typedoc/functions/detectLandmarks.html b/typedoc/functions/detectLandmarks.html index 7b13db8..82c9bf7 100644 --- a/typedoc/functions/detectLandmarks.html +++ b/typedoc/functions/detectLandmarks.html @@ -1,3 +1,3 @@ -detectLandmarks | @vladmandic/face-api - v1.7.13
\ No newline at end of file +detectLandmarks | @vladmandic/face-api - v1.7.14

Function detectLandmarks

diff --git a/typedoc/functions/detectSingleFace.html b/typedoc/functions/detectSingleFace.html index 5ace810..57345c9 100644 --- a/typedoc/functions/detectSingleFace.html +++ b/typedoc/functions/detectSingleFace.html @@ -1 +1 @@ -detectSingleFace | @vladmandic/face-api - v1.7.13
\ No newline at end of file +detectSingleFace | @vladmandic/face-api - v1.7.14

Function detectSingleFace

diff --git a/typedoc/functions/draw.drawContour.html b/typedoc/functions/draw.drawContour.html index 1515245..b8d5318 100644 --- a/typedoc/functions/draw.drawContour.html +++ b/typedoc/functions/draw.drawContour.html @@ -1 +1 @@ -drawContour | @vladmandic/face-api - v1.7.13
\ No newline at end of file +drawContour | @vladmandic/face-api - v1.7.14
  • Parameters

    • ctx: CanvasRenderingContext2D
    • points: Point[]
    • isClosed: boolean = false

    Returns void

diff --git a/typedoc/functions/draw.drawDetections.html b/typedoc/functions/draw.drawDetections.html index b0cfa69..5af3324 100644 --- a/typedoc/functions/draw.drawDetections.html +++ b/typedoc/functions/draw.drawDetections.html @@ -1 +1 @@ -drawDetections | @vladmandic/face-api - v1.7.13
\ No newline at end of file +drawDetections | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/draw.drawFaceExpressions.html b/typedoc/functions/draw.drawFaceExpressions.html index 63480c2..c113946 100644 --- a/typedoc/functions/draw.drawFaceExpressions.html +++ b/typedoc/functions/draw.drawFaceExpressions.html @@ -1 +1 @@ -drawFaceExpressions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +drawFaceExpressions | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/draw.drawFaceLandmarks-1.html b/typedoc/functions/draw.drawFaceLandmarks-1.html index 312741a..b0fdd84 100644 --- a/typedoc/functions/draw.drawFaceLandmarks-1.html +++ b/typedoc/functions/draw.drawFaceLandmarks-1.html @@ -1 +1 @@ -drawFaceLandmarks | @vladmandic/face-api - v1.7.13
\ No newline at end of file +drawFaceLandmarks | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/euclideanDistance.html b/typedoc/functions/euclideanDistance.html index 659bade..5eb514b 100644 --- a/typedoc/functions/euclideanDistance.html +++ b/typedoc/functions/euclideanDistance.html @@ -1 +1 @@ -euclideanDistance | @vladmandic/face-api - v1.7.13
\ No newline at end of file +euclideanDistance | @vladmandic/face-api - v1.7.14

Function euclideanDistance

  • Parameters

    • arr1: Float32Array | number[]
    • arr2: Float32Array | number[]

    Returns number

diff --git a/typedoc/functions/extendWithAge.html b/typedoc/functions/extendWithAge.html index 1e8afb8..e6a36b9 100644 --- a/typedoc/functions/extendWithAge.html +++ b/typedoc/functions/extendWithAge.html @@ -1 +1 @@ -extendWithAge | @vladmandic/face-api - v1.7.13
\ No newline at end of file +extendWithAge | @vladmandic/face-api - v1.7.14

Function extendWithAge

diff --git a/typedoc/functions/extendWithFaceDescriptor.html b/typedoc/functions/extendWithFaceDescriptor.html index 87d13cf..d776982 100644 --- a/typedoc/functions/extendWithFaceDescriptor.html +++ b/typedoc/functions/extendWithFaceDescriptor.html @@ -1 +1 @@ -extendWithFaceDescriptor | @vladmandic/face-api - v1.7.13
\ No newline at end of file +extendWithFaceDescriptor | @vladmandic/face-api - v1.7.14

Function extendWithFaceDescriptor

diff --git a/typedoc/functions/extendWithFaceDetection.html b/typedoc/functions/extendWithFaceDetection.html index 3933386..34f280f 100644 --- a/typedoc/functions/extendWithFaceDetection.html +++ b/typedoc/functions/extendWithFaceDetection.html @@ -1 +1 @@ -extendWithFaceDetection | @vladmandic/face-api - v1.7.13
\ No newline at end of file +extendWithFaceDetection | @vladmandic/face-api - v1.7.14

Function extendWithFaceDetection

diff --git a/typedoc/functions/extendWithFaceExpressions.html b/typedoc/functions/extendWithFaceExpressions.html index b171347..3d211f2 100644 --- a/typedoc/functions/extendWithFaceExpressions.html +++ b/typedoc/functions/extendWithFaceExpressions.html @@ -1 +1 @@ -extendWithFaceExpressions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +extendWithFaceExpressions | @vladmandic/face-api - v1.7.14

Function extendWithFaceExpressions

diff --git a/typedoc/functions/extendWithFaceLandmarks.html b/typedoc/functions/extendWithFaceLandmarks.html index a729c5b..1ec5f89 100644 --- a/typedoc/functions/extendWithFaceLandmarks.html +++ b/typedoc/functions/extendWithFaceLandmarks.html @@ -1 +1 @@ -extendWithFaceLandmarks | @vladmandic/face-api - v1.7.13
\ No newline at end of file +extendWithFaceLandmarks | @vladmandic/face-api - v1.7.14

Function extendWithFaceLandmarks

diff --git a/typedoc/functions/extendWithGender.html b/typedoc/functions/extendWithGender.html index d456118..b96953a 100644 --- a/typedoc/functions/extendWithGender.html +++ b/typedoc/functions/extendWithGender.html @@ -1 +1 @@ -extendWithGender | @vladmandic/face-api - v1.7.13
\ No newline at end of file +extendWithGender | @vladmandic/face-api - v1.7.14

Function extendWithGender

diff --git a/typedoc/functions/extractFaceTensors.html b/typedoc/functions/extractFaceTensors.html index 651aead..3348935 100644 --- a/typedoc/functions/extractFaceTensors.html +++ b/typedoc/functions/extractFaceTensors.html @@ -1,8 +1,8 @@ -extractFaceTensors | @vladmandic/face-api - v1.7.13

Function extractFaceTensors

diff --git a/typedoc/functions/extractFaces.html b/typedoc/functions/extractFaces.html index be988ad..aa2b867 100644 --- a/typedoc/functions/extractFaces.html +++ b/typedoc/functions/extractFaces.html @@ -1,5 +1,5 @@ -extractFaces | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/fetchImage.html b/typedoc/functions/fetchImage.html index 792305b..cbe874a 100644 --- a/typedoc/functions/fetchImage.html +++ b/typedoc/functions/fetchImage.html @@ -1 +1 @@ -fetchImage | @vladmandic/face-api - v1.7.13
\ No newline at end of file +fetchImage | @vladmandic/face-api - v1.7.14
  • Parameters

    • uri: string

    Returns Promise<HTMLImageElement>

diff --git a/typedoc/functions/fetchJson.html b/typedoc/functions/fetchJson.html index c8e6081..a9df200 100644 --- a/typedoc/functions/fetchJson.html +++ b/typedoc/functions/fetchJson.html @@ -1 +1 @@ -fetchJson | @vladmandic/face-api - v1.7.13
\ No newline at end of file +fetchJson | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/fetchNetWeights.html b/typedoc/functions/fetchNetWeights.html index 9bb3752..ae05794 100644 --- a/typedoc/functions/fetchNetWeights.html +++ b/typedoc/functions/fetchNetWeights.html @@ -1 +1 @@ -fetchNetWeights | @vladmandic/face-api - v1.7.13
\ No newline at end of file +fetchNetWeights | @vladmandic/face-api - v1.7.14

Function fetchNetWeights

diff --git a/typedoc/functions/fetchOrThrow.html b/typedoc/functions/fetchOrThrow.html index b0ac197..1c6256c 100644 --- a/typedoc/functions/fetchOrThrow.html +++ b/typedoc/functions/fetchOrThrow.html @@ -1 +1 @@ -fetchOrThrow | @vladmandic/face-api - v1.7.13
\ No newline at end of file +fetchOrThrow | @vladmandic/face-api - v1.7.14
  • Parameters

    • url: string
    • Optionalinit: RequestInit

    Returns Promise<Response>

diff --git a/typedoc/functions/fetchVideo.html b/typedoc/functions/fetchVideo.html index 1a58fb9..291942d 100644 --- a/typedoc/functions/fetchVideo.html +++ b/typedoc/functions/fetchVideo.html @@ -1 +1 @@ -fetchVideo | @vladmandic/face-api - v1.7.13
\ No newline at end of file +fetchVideo | @vladmandic/face-api - v1.7.14
  • Parameters

    • uri: string

    Returns Promise<HTMLVideoElement>

diff --git a/typedoc/functions/getContext2dOrThrow.html b/typedoc/functions/getContext2dOrThrow.html index fa1f7c8..2b81793 100644 --- a/typedoc/functions/getContext2dOrThrow.html +++ b/typedoc/functions/getContext2dOrThrow.html @@ -1 +1 @@ -getContext2dOrThrow | @vladmandic/face-api - v1.7.13
\ No newline at end of file +getContext2dOrThrow | @vladmandic/face-api - v1.7.14

Function getContext2dOrThrow

  • Parameters

    • canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D

    Returns CanvasRenderingContext2D

diff --git a/typedoc/functions/getMediaDimensions.html b/typedoc/functions/getMediaDimensions.html index 349b489..ec13614 100644 --- a/typedoc/functions/getMediaDimensions.html +++ b/typedoc/functions/getMediaDimensions.html @@ -1 +1 @@ -getMediaDimensions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +getMediaDimensions | @vladmandic/face-api - v1.7.14

Function getMediaDimensions

diff --git a/typedoc/functions/imageTensorToCanvas.html b/typedoc/functions/imageTensorToCanvas.html index eec6491..238ced8 100644 --- a/typedoc/functions/imageTensorToCanvas.html +++ b/typedoc/functions/imageTensorToCanvas.html @@ -1 +1 @@ -imageTensorToCanvas | @vladmandic/face-api - v1.7.13
\ No newline at end of file +imageTensorToCanvas | @vladmandic/face-api - v1.7.14

Function imageTensorToCanvas

  • Parameters

    • imgTensor: Tensor<Rank>
    • Optionalcanvas: HTMLCanvasElement

    Returns Promise<HTMLCanvasElement>

diff --git a/typedoc/functions/imageToSquare.html b/typedoc/functions/imageToSquare.html index 871783f..19b5aa5 100644 --- a/typedoc/functions/imageToSquare.html +++ b/typedoc/functions/imageToSquare.html @@ -1 +1 @@ -imageToSquare | @vladmandic/face-api - v1.7.13
\ No newline at end of file +imageToSquare | @vladmandic/face-api - v1.7.14

Function imageToSquare

  • Parameters

    • input: HTMLCanvasElement | HTMLImageElement
    • inputSize: number
    • centerImage: boolean = false

    Returns HTMLCanvasElement

diff --git a/typedoc/functions/inverseSigmoid.html b/typedoc/functions/inverseSigmoid.html index 651cd36..e51b93f 100644 --- a/typedoc/functions/inverseSigmoid.html +++ b/typedoc/functions/inverseSigmoid.html @@ -1 +1 @@ -inverseSigmoid | @vladmandic/face-api - v1.7.13
\ No newline at end of file +inverseSigmoid | @vladmandic/face-api - v1.7.14

Function inverseSigmoid

diff --git a/typedoc/functions/iou.html b/typedoc/functions/iou.html index eaedb38..ff48a33 100644 --- a/typedoc/functions/iou.html +++ b/typedoc/functions/iou.html @@ -1 +1 @@ -iou | @vladmandic/face-api - v1.7.13
\ No newline at end of file +iou | @vladmandic/face-api - v1.7.14
  • Parameters

    • box1: Box<any>
    • box2: Box<any>
    • isIOU: boolean = true

    Returns number

diff --git a/typedoc/functions/isMediaElement.html b/typedoc/functions/isMediaElement.html index 252d08d..ae4c769 100644 --- a/typedoc/functions/isMediaElement.html +++ b/typedoc/functions/isMediaElement.html @@ -1 +1 @@ -isMediaElement | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isMediaElement | @vladmandic/face-api - v1.7.14

Function isMediaElement

  • Parameters

    • input: any

    Returns input is HTMLCanvasElement | HTMLImageElement | HTMLVideoElement

diff --git a/typedoc/functions/isMediaLoaded.html b/typedoc/functions/isMediaLoaded.html index 42e7bca..be507a1 100644 --- a/typedoc/functions/isMediaLoaded.html +++ b/typedoc/functions/isMediaLoaded.html @@ -1 +1 @@ -isMediaLoaded | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isMediaLoaded | @vladmandic/face-api - v1.7.14

Function isMediaLoaded

  • Parameters

    • media: HTMLImageElement | HTMLVideoElement

    Returns boolean

diff --git a/typedoc/functions/isWithAge.html b/typedoc/functions/isWithAge.html index ff83b8e..64f81fa 100644 --- a/typedoc/functions/isWithAge.html +++ b/typedoc/functions/isWithAge.html @@ -1 +1 @@ -isWithAge | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isWithAge | @vladmandic/face-api - v1.7.14
  • Parameters

    • obj: any

    Returns obj is {
        age: number;
    }

diff --git a/typedoc/functions/isWithFaceDetection.html b/typedoc/functions/isWithFaceDetection.html index 6ad2167..d404fc6 100644 --- a/typedoc/functions/isWithFaceDetection.html +++ b/typedoc/functions/isWithFaceDetection.html @@ -1 +1 @@ -isWithFaceDetection | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isWithFaceDetection | @vladmandic/face-api - v1.7.14

Function isWithFaceDetection

diff --git a/typedoc/functions/isWithFaceExpressions.html b/typedoc/functions/isWithFaceExpressions.html index eeb4fc5..7a3e166 100644 --- a/typedoc/functions/isWithFaceExpressions.html +++ b/typedoc/functions/isWithFaceExpressions.html @@ -1 +1 @@ -isWithFaceExpressions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isWithFaceExpressions | @vladmandic/face-api - v1.7.14

Function isWithFaceExpressions

diff --git a/typedoc/functions/isWithFaceLandmarks.html b/typedoc/functions/isWithFaceLandmarks.html index 63063e2..a84bdc3 100644 --- a/typedoc/functions/isWithFaceLandmarks.html +++ b/typedoc/functions/isWithFaceLandmarks.html @@ -1 +1 @@ -isWithFaceLandmarks | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isWithFaceLandmarks | @vladmandic/face-api - v1.7.14

Function isWithFaceLandmarks

diff --git a/typedoc/functions/isWithGender.html b/typedoc/functions/isWithGender.html index 61aa125..7331352 100644 --- a/typedoc/functions/isWithGender.html +++ b/typedoc/functions/isWithGender.html @@ -1 +1 @@ -isWithGender | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isWithGender | @vladmandic/face-api - v1.7.14
  • Parameters

    • obj: any

    Returns obj is {
        gender: Gender;
        genderProbability: number;
    }

diff --git a/typedoc/functions/loadAgeGenderModel.html b/typedoc/functions/loadAgeGenderModel.html index ee0bf29..b88137d 100644 --- a/typedoc/functions/loadAgeGenderModel.html +++ b/typedoc/functions/loadAgeGenderModel.html @@ -1 +1 @@ -loadAgeGenderModel | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadAgeGenderModel | @vladmandic/face-api - v1.7.14

Function loadAgeGenderModel

diff --git a/typedoc/functions/loadFaceDetectionModel.html b/typedoc/functions/loadFaceDetectionModel.html index e10563b..9d6c047 100644 --- a/typedoc/functions/loadFaceDetectionModel.html +++ b/typedoc/functions/loadFaceDetectionModel.html @@ -1 +1 @@ -loadFaceDetectionModel | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadFaceDetectionModel | @vladmandic/face-api - v1.7.14

Function loadFaceDetectionModel

diff --git a/typedoc/functions/loadFaceExpressionModel.html b/typedoc/functions/loadFaceExpressionModel.html index 2c651fa..d216085 100644 --- a/typedoc/functions/loadFaceExpressionModel.html +++ b/typedoc/functions/loadFaceExpressionModel.html @@ -1 +1 @@ -loadFaceExpressionModel | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadFaceExpressionModel | @vladmandic/face-api - v1.7.14

Function loadFaceExpressionModel

diff --git a/typedoc/functions/loadFaceLandmarkModel.html b/typedoc/functions/loadFaceLandmarkModel.html index 891aa74..5a7a976 100644 --- a/typedoc/functions/loadFaceLandmarkModel.html +++ b/typedoc/functions/loadFaceLandmarkModel.html @@ -1 +1 @@ -loadFaceLandmarkModel | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadFaceLandmarkModel | @vladmandic/face-api - v1.7.14

Function loadFaceLandmarkModel

diff --git a/typedoc/functions/loadFaceLandmarkTinyModel.html b/typedoc/functions/loadFaceLandmarkTinyModel.html index ca8ac71..bf7feba 100644 --- a/typedoc/functions/loadFaceLandmarkTinyModel.html +++ b/typedoc/functions/loadFaceLandmarkTinyModel.html @@ -1 +1 @@ -loadFaceLandmarkTinyModel | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadFaceLandmarkTinyModel | @vladmandic/face-api - v1.7.14

Function loadFaceLandmarkTinyModel

diff --git a/typedoc/functions/loadFaceRecognitionModel.html b/typedoc/functions/loadFaceRecognitionModel.html index 79d3b2c..bad924d 100644 --- a/typedoc/functions/loadFaceRecognitionModel.html +++ b/typedoc/functions/loadFaceRecognitionModel.html @@ -1 +1 @@ -loadFaceRecognitionModel | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadFaceRecognitionModel | @vladmandic/face-api - v1.7.14

Function loadFaceRecognitionModel

diff --git a/typedoc/functions/loadSsdMobilenetv1Model.html b/typedoc/functions/loadSsdMobilenetv1Model.html index 5fb5c53..9e9e5bf 100644 --- a/typedoc/functions/loadSsdMobilenetv1Model.html +++ b/typedoc/functions/loadSsdMobilenetv1Model.html @@ -1 +1 @@ -loadSsdMobilenetv1Model | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadSsdMobilenetv1Model | @vladmandic/face-api - v1.7.14

Function loadSsdMobilenetv1Model

diff --git a/typedoc/functions/loadTinyFaceDetectorModel.html b/typedoc/functions/loadTinyFaceDetectorModel.html index 15ffcd2..2272a5c 100644 --- a/typedoc/functions/loadTinyFaceDetectorModel.html +++ b/typedoc/functions/loadTinyFaceDetectorModel.html @@ -1 +1 @@ -loadTinyFaceDetectorModel | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadTinyFaceDetectorModel | @vladmandic/face-api - v1.7.14

Function loadTinyFaceDetectorModel

diff --git a/typedoc/functions/loadTinyYolov2Model.html b/typedoc/functions/loadTinyYolov2Model.html index 6379ebd..8784199 100644 --- a/typedoc/functions/loadTinyYolov2Model.html +++ b/typedoc/functions/loadTinyYolov2Model.html @@ -1 +1 @@ -loadTinyYolov2Model | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadTinyYolov2Model | @vladmandic/face-api - v1.7.14

Function loadTinyYolov2Model

diff --git a/typedoc/functions/loadWeightMap.html b/typedoc/functions/loadWeightMap.html index cba085c..332a964 100644 --- a/typedoc/functions/loadWeightMap.html +++ b/typedoc/functions/loadWeightMap.html @@ -1 +1 @@ -loadWeightMap | @vladmandic/face-api - v1.7.13
\ No newline at end of file +loadWeightMap | @vladmandic/face-api - v1.7.14

Function loadWeightMap

diff --git a/typedoc/functions/locateFaces.html b/typedoc/functions/locateFaces.html index becf8fc..2598f8d 100644 --- a/typedoc/functions/locateFaces.html +++ b/typedoc/functions/locateFaces.html @@ -1,5 +1,5 @@ -locateFaces | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/matchDimensions.html b/typedoc/functions/matchDimensions.html index d5fdde2..7fb7d75 100644 --- a/typedoc/functions/matchDimensions.html +++ b/typedoc/functions/matchDimensions.html @@ -1 +1 @@ -matchDimensions | @vladmandic/face-api - v1.7.13

Function matchDimensions

  • Parameters

    Returns {
        height: number;
        width: number;
    }

    • height: number
    • width: number
\ No newline at end of file +matchDimensions | @vladmandic/face-api - v1.7.14

Function matchDimensions

  • Parameters

    Returns {
        height: number;
        width: number;
    }

    • height: number
    • width: number
diff --git a/typedoc/functions/minBbox.html b/typedoc/functions/minBbox.html index 574b22d..a532b02 100644 --- a/typedoc/functions/minBbox.html +++ b/typedoc/functions/minBbox.html @@ -1 +1 @@ -minBbox | @vladmandic/face-api - v1.7.13
\ No newline at end of file +minBbox | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/nonMaxSuppression.html b/typedoc/functions/nonMaxSuppression.html index 857e5c0..ff3038f 100644 --- a/typedoc/functions/nonMaxSuppression.html +++ b/typedoc/functions/nonMaxSuppression.html @@ -1 +1 @@ -nonMaxSuppression | @vladmandic/face-api - v1.7.13
\ No newline at end of file +nonMaxSuppression | @vladmandic/face-api - v1.7.14

Function nonMaxSuppression

  • Parameters

    • boxes: Box<any>[]
    • scores: number[]
    • iouThreshold: number
    • isIOU: boolean = true

    Returns number[]

diff --git a/typedoc/functions/normalize.html b/typedoc/functions/normalize.html index 3662ea6..38776d9 100644 --- a/typedoc/functions/normalize.html +++ b/typedoc/functions/normalize.html @@ -1 +1 @@ -normalize | @vladmandic/face-api - v1.7.13
\ No newline at end of file +normalize | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/padToSquare.html b/typedoc/functions/padToSquare.html index 8d37933..5cd4c5a 100644 --- a/typedoc/functions/padToSquare.html +++ b/typedoc/functions/padToSquare.html @@ -1,6 +1,6 @@ -padToSquare | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/predictAgeAndGender.html b/typedoc/functions/predictAgeAndGender.html index 4023992..dd32ecb 100644 --- a/typedoc/functions/predictAgeAndGender.html +++ b/typedoc/functions/predictAgeAndGender.html @@ -1,3 +1,3 @@ -predictAgeAndGender | @vladmandic/face-api - v1.7.13
\ No newline at end of file +predictAgeAndGender | @vladmandic/face-api - v1.7.14

Function predictAgeAndGender

Predicts age and gender from a face image.

+
diff --git a/typedoc/functions/recognizeFaceExpressions.html b/typedoc/functions/recognizeFaceExpressions.html index c9ecb95..4e15b94 100644 --- a/typedoc/functions/recognizeFaceExpressions.html +++ b/typedoc/functions/recognizeFaceExpressions.html @@ -1,3 +1,3 @@ -recognizeFaceExpressions | @vladmandic/face-api - v1.7.13
\ No newline at end of file +recognizeFaceExpressions | @vladmandic/face-api - v1.7.14

Function recognizeFaceExpressions

Recognizes the facial expressions from a face image.

+
diff --git a/typedoc/functions/resizeResults.html b/typedoc/functions/resizeResults.html index 475a843..30ceaba 100644 --- a/typedoc/functions/resizeResults.html +++ b/typedoc/functions/resizeResults.html @@ -1 +1 @@ -resizeResults | @vladmandic/face-api - v1.7.13
\ No newline at end of file +resizeResults | @vladmandic/face-api - v1.7.14

Function resizeResults

diff --git a/typedoc/functions/resolveInput.html b/typedoc/functions/resolveInput.html index c60ec72..929bd06 100644 --- a/typedoc/functions/resolveInput.html +++ b/typedoc/functions/resolveInput.html @@ -1 +1 @@ -resolveInput | @vladmandic/face-api - v1.7.13
\ No newline at end of file +resolveInput | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/shuffleArray.html b/typedoc/functions/shuffleArray.html index 5cb63ca..0464e67 100644 --- a/typedoc/functions/shuffleArray.html +++ b/typedoc/functions/shuffleArray.html @@ -1 +1 @@ -shuffleArray | @vladmandic/face-api - v1.7.13
\ No newline at end of file +shuffleArray | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/sigmoid.html b/typedoc/functions/sigmoid.html index 7909ea0..7e85717 100644 --- a/typedoc/functions/sigmoid.html +++ b/typedoc/functions/sigmoid.html @@ -1 +1 @@ -sigmoid | @vladmandic/face-api - v1.7.13
\ No newline at end of file +sigmoid | @vladmandic/face-api - v1.7.14
diff --git a/typedoc/functions/ssdMobilenetv1-1.html b/typedoc/functions/ssdMobilenetv1-1.html index 96f6a16..7ca2153 100644 --- a/typedoc/functions/ssdMobilenetv1-1.html +++ b/typedoc/functions/ssdMobilenetv1-1.html @@ -1,5 +1,5 @@ -ssdMobilenetv1 | @vladmandic/face-api - v1.7.13

Function ssdMobilenetv1

diff --git a/typedoc/functions/tf.add.html b/typedoc/functions/tf.add.html index 3889348..dac498a 100644 --- a/typedoc/functions/tf.add.html +++ b/typedoc/functions/tf.add.html @@ -1,8 +1,10 @@ -add | @vladmandic/face-api - v1.7.13
  • Adds two tf.Tensors element-wise, A + B. Supports broadcasting.

    -
    const a = tf.tensor1d([1, 2, 3, 4]);
    const b = tf.tensor1d([10, 20, 30, 40]);

    a.add(b).print(); // or tf.add(a, b) -
    -
    // Broadcast add a with b.
    const a = tf.scalar(5);
    const b = tf.tensor1d([10, 20, 30, 40]);

    a.add(b).print(); // or tf.add(a, b) -
    -

    Type Parameters

    Parameters

    Returns T

    Doc

\ No newline at end of file +add | @vladmandic/face-api - v1.7.14
  • Adds two tf.Tensors element-wise, A + B. Supports broadcasting.

    +
    const a = tf.tensor1d([1, 2, 3, 4]);
    const b = tf.tensor1d([10, 20, 30, 40]);

    a.add(b).print(); // or tf.add(a, b) +
    + +
    // Broadcast add a with b.
    const a = tf.scalar(5);
    const b = tf.tensor1d([10, 20, 30, 40]);

    a.add(b).print(); // or tf.add(a, b) +
    + +

    Type Parameters

    Parameters

    Returns T

diff --git a/typedoc/functions/tf.avgPool.html b/typedoc/functions/tf.avgPool.html index 990bf25..413310b 100644 --- a/typedoc/functions/tf.avgPool.html +++ b/typedoc/functions/tf.avgPool.html @@ -1,19 +1,19 @@ -avgPool | @vladmandic/face-api - v1.7.13
  • Computes the 2D average pooling of an image.

    -

    Type Parameters

    Parameters

    Returns T

diff --git a/typedoc/functions/tf.batchNorm.html b/typedoc/functions/tf.batchNorm.html index 8e0a963..f5accde 100644 --- a/typedoc/functions/tf.batchNorm.html +++ b/typedoc/functions/tf.batchNorm.html @@ -1,6 +1,6 @@ -batchNorm | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.browser.draw.html b/typedoc/functions/tf.browser.draw.html index bab0b56..7c110de 100644 --- a/typedoc/functions/tf.browser.draw.html +++ b/typedoc/functions/tf.browser.draw.html @@ -1,8 +1,8 @@ -draw | @vladmandic/face-api - v1.7.13

Returns void

diff --git a/typedoc/functions/tf.browser.fromPixels.html b/typedoc/functions/tf.browser.fromPixels.html index 5ed293e..0ff76cd 100644 --- a/typedoc/functions/tf.browser.fromPixels.html +++ b/typedoc/functions/tf.browser.fromPixels.html @@ -1,11 +1,12 @@ -fromPixels | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.browser.fromPixelsAsync.html b/typedoc/functions/tf.browser.fromPixelsAsync.html index b7009ab..70838bd 100644 --- a/typedoc/functions/tf.browser.fromPixelsAsync.html +++ b/typedoc/functions/tf.browser.fromPixelsAsync.html @@ -1,14 +1,15 @@ -fromPixelsAsync | @vladmandic/face-api - v1.7.13
  • Creates a tf.Tensor from an image in async way.

    -
    const image = new ImageData(1, 1);
    image.data[0] = 100;
    image.data[1] = 150;
    image.data[2] = 200;
    image.data[3] = 255;

    (await tf.browser.fromPixelsAsync(image)).print(); -
    +fromPixelsAsync | @vladmandic/face-api - v1.7.14
    • Creates a tf.Tensor from an image in async way.

      +
      const image = new ImageData(1, 1);
      image.data[0] = 100;
      image.data[1] = 150;
      image.data[2] = 200;
      image.data[3] = 255;

      (await tf.browser.fromPixelsAsync(image)).print(); +
      +

      This API is the async version of fromPixels. The API will first check |WRAP_TO_IMAGEBITMAP| flag, and try to wrap the input to imageBitmap if the flag is set to true.

      -

      Parameters

      • pixels: HTMLCanvasElement | HTMLImageElement | HTMLVideoElement | ImageData | ImageBitmap | PixelData

        The input image to construct the tensor from. The +

        Parameters

        • pixels:
              | HTMLCanvasElement
              | HTMLImageElement
              | HTMLVideoElement
              | ImageData
              | ImageBitmap
              | PixelData

          The input image to construct the tensor from. The supported image types are all 4-channel. You can also pass in an image object with following attributes: {data: Uint8Array; width: number; height: number}

          -
        • Optional numChannels: number

          The number of channels of the output tensor. A +

        • OptionalnumChannels: number

          The number of channels of the output tensor. A numChannels value less than 4 allows you to ignore channels. Defaults to 3 (ignores alpha channel of input image).

          -

        Returns Promise<Tensor3D>

        Doc

    \ No newline at end of file +

Returns Promise<Tensor3D>

diff --git a/typedoc/functions/tf.browser.toPixels.html b/typedoc/functions/tf.browser.toPixels.html index 018a246..8b94f79 100644 --- a/typedoc/functions/tf.browser.toPixels.html +++ b/typedoc/functions/tf.browser.toPixels.html @@ -1,14 +1,14 @@ -toPixels | @vladmandic/face-api - v1.7.13

Returns Promise<Uint8ClampedArray>

diff --git a/typedoc/functions/tf.cast.html b/typedoc/functions/tf.cast.html index d5292f3..c3ca94d 100644 --- a/typedoc/functions/tf.cast.html +++ b/typedoc/functions/tf.cast.html @@ -1,6 +1,7 @@ -cast | @vladmandic/face-api - v1.7.13
  • Casts a tf.Tensor to a new dtype.

    -
    const x = tf.tensor1d([1.5, 2.5, 3]);
    tf.cast(x, 'int32').print(); -
    -

    Type Parameters

    Parameters

    • x: TensorLike | T

      The input tensor to be casted.

      -
    • dtype: keyof DataTypeMap

      The dtype to cast the input tensor to.

      -

    Returns T

    Doc

\ No newline at end of file +cast | @vladmandic/face-api - v1.7.14
  • Casts a tf.Tensor to a new dtype.

    +
    const x = tf.tensor1d([1.5, 2.5, 3]);
    tf.cast(x, 'int32').print(); +
    + +

    Type Parameters

    Parameters

    • x: TensorLike | T

      The input tensor to be casted.

      +
    • dtype: keyof DataTypeMap

      The dtype to cast the input tensor to.

      +

    Returns T

diff --git a/typedoc/functions/tf.clipByValue.html b/typedoc/functions/tf.clipByValue.html index 371fef2..40eba22 100644 --- a/typedoc/functions/tf.clipByValue.html +++ b/typedoc/functions/tf.clipByValue.html @@ -1,7 +1,8 @@ -clipByValue | @vladmandic/face-api - v1.7.13
  • Clips values element-wise. max(min(x, clipValueMax), clipValueMin)

    -
    const x = tf.tensor1d([-1, 2, -3, 4]);

    x.clipByValue(-2, 3).print(); // or tf.clipByValue(x, -2, 3) -
    -

    Type Parameters

    Parameters

    • x: TensorLike | T

      The input tensor.

      -
    • clipValueMin: number

      Lower bound of range to be clipped to.

      -
    • clipValueMax: number

      Upper bound of range to be clipped to.

      -

    Returns T

    Doc

\ No newline at end of file +clipByValue | @vladmandic/face-api - v1.7.14
  • Clips values element-wise. max(min(x, clipValueMax), clipValueMin)

    +
    const x = tf.tensor1d([-1, 2, -3, 4]);

    x.clipByValue(-2, 3).print(); // or tf.clipByValue(x, -2, 3) +
    + +

    Type Parameters

    Parameters

    • x: TensorLike | T

      The input tensor.

      +
    • clipValueMin: number

      Lower bound of range to be clipped to.

      +
    • clipValueMax: number

      Upper bound of range to be clipped to.

      +

    Returns T

diff --git a/typedoc/functions/tf.concat.html b/typedoc/functions/tf.concat.html index 937fab3..f47820c 100644 --- a/typedoc/functions/tf.concat.html +++ b/typedoc/functions/tf.concat.html @@ -1,4 +1,4 @@ -concat | @vladmandic/face-api - v1.7.13
  • Concatenates a list of tf.Tensors along a given axis.

    +concat | @vladmandic/face-api - v1.7.14
    • Concatenates a list of tf.Tensors along a given axis.

      The tensors ranks and types must match, and their sizes must match in all dimensions except axis.

      Also available are stricter rank-specific methods that assert that @@ -11,12 +11,15 @@ dimensions except axis.

    Except tf.concat1d (which does not have axis param), all methods have same signature as this method.

    -
    const a = tf.tensor1d([1, 2]);
    const b = tf.tensor1d([3, 4]);
    a.concat(b).print(); // or a.concat(b) -
    -
    const a = tf.tensor1d([1, 2]);
    const b = tf.tensor1d([3, 4]);
    const c = tf.tensor1d([5, 6]);
    tf.concat([a, b, c]).print(); -
    -
    const a = tf.tensor2d([[1, 2], [10, 20]]);
    const b = tf.tensor2d([[3, 4], [30, 40]]);
    const axis = 1;
    tf.concat([a, b], axis).print(); -
    -

    Type Parameters

    Parameters

    • tensors: (TensorLike | T)[]

      A list of tensors to concatenate.

      -
    • Optional axis: number

      The axis to concatenate along. Defaults to 0 (the first dim).

      -

    Returns T

    Doc

\ No newline at end of file +
const a = tf.tensor1d([1, 2]);
const b = tf.tensor1d([3, 4]);
a.concat(b).print(); // or a.concat(b) +
+ +
const a = tf.tensor1d([1, 2]);
const b = tf.tensor1d([3, 4]);
const c = tf.tensor1d([5, 6]);
tf.concat([a, b, c]).print(); +
+ +
const a = tf.tensor2d([[1, 2], [10, 20]]);
const b = tf.tensor2d([[3, 4], [30, 40]]);
const axis = 1;
tf.concat([a, b], axis).print(); +
+ +

Type Parameters

Parameters

  • tensors: (TensorLike | T)[]

    A list of tensors to concatenate.

    +
  • Optionalaxis: number

    The axis to concatenate along. Defaults to 0 (the first dim).

    +

Returns T

diff --git a/typedoc/functions/tf.conv2d.html b/typedoc/functions/tf.conv2d.html index ea543b4..8174a79 100644 --- a/typedoc/functions/tf.conv2d.html +++ b/typedoc/functions/tf.conv2d.html @@ -1,24 +1,24 @@ -conv2d | @vladmandic/face-api - v1.7.13
  • Computes a 2D convolution over the input x.

    -

    Type Parameters

    Parameters

    • x: TensorLike | T

      The input tensor, of rank 4 or rank 3, of shape - [batch, height, width, inChannels]. If rank 3, batch of 1 is +conv2d | @vladmandic/face-api - v1.7.14

      • Computes a 2D convolution over the input x.

        +

        Type Parameters

        Parameters

        • x: TensorLike | T

          The input tensor, of rank 4 or rank 3, of shape +[batch, height, width, inChannels]. If rank 3, batch of 1 is assumed.

          -
        • filter: Tensor4D | TensorLike

          The filter, rank 4, of shape - [filterHeight, filterWidth, inDepth, outDepth].

          -
        • strides: number | [number, number]

          The strides of the convolution: [strideHeight, strideWidth].

          -
        • pad: number | "valid" | "same" | ExplicitPadding

          The type of padding algorithm.

          +
        • filter: Tensor4D | TensorLike

          The filter, rank 4, of shape +[filterHeight, filterWidth, inDepth, outDepth].

          +
        • strides: number | [number, number]

          The strides of the convolution: [strideHeight, strideWidth].

          +
        • pad:
              | number
              | "valid"
              | "same"
              | ExplicitPadding

          The type of padding algorithm.

          -
        • Optional dataFormat: "NHWC" | "NCHW"
        • Optional dilations: number | [number, number]

          The dilation rates: [dilationHeight, dilationWidth] - in which we sample input values across the height and width dimensions - in atrous convolution. Defaults to [1, 1]. If dilations is a single - number, then dilationHeight == dilationWidth. If it is greater than - 1, then all values of strides must be 1.

          -
        • Optional dimRoundingMode: "floor" | "round" | "ceil"

          A string from: 'ceil', 'round', 'floor'. If none is - provided, it will default to truncate.

          -

        Returns T

        Doc

      \ No newline at end of file +
    • OptionaldataFormat: "NHWC" | "NCHW"
    • Optionaldilations: number | [number, number]

      The dilation rates: [dilationHeight, dilationWidth] +in which we sample input values across the height and width dimensions +in atrous convolution. Defaults to [1, 1]. If dilations is a single +number, then dilationHeight == dilationWidth. If it is greater than +1, then all values of strides must be 1.

      +
    • OptionaldimRoundingMode: "floor" | "round" | "ceil"

      A string from: 'ceil', 'round', 'floor'. If none is +provided, it will default to truncate.

      +

    Returns T

diff --git a/typedoc/functions/tf.depthwiseConv2d.html b/typedoc/functions/tf.depthwiseConv2d.html index d45d46a..15f67af 100644 --- a/typedoc/functions/tf.depthwiseConv2d.html +++ b/typedoc/functions/tf.depthwiseConv2d.html @@ -1,4 +1,4 @@ -depthwiseConv2d | @vladmandic/face-api - v1.7.13
  • Depthwise 2D convolution.

    +depthwiseConv2d | @vladmandic/face-api - v1.7.14
    • Depthwise 2D convolution.

      Given a 4D input array and a filter array of shape [filterHeight, filterWidth, inChannels, channelMultiplier] containing inChannels convolutional filters of depth 1, this op applies a @@ -6,28 +6,28 @@ different filter to each input channel (expanding from 1 channel to channelMultiplier channels for each), then concatenates the results together. The output has inChannels * channelMultiplier channels.

      See -https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d +https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d for more details.

      -

      Type Parameters

      Parameters

      • x: TensorLike | T

        The input tensor, of rank 4 or rank 3, of shape - [batch, height, width, inChannels]. If rank 3, batch of 1 is +

        Type Parameters

        Parameters

        • x: TensorLike | T

          The input tensor, of rank 4 or rank 3, of shape +[batch, height, width, inChannels]. If rank 3, batch of 1 is assumed.

          -
        • filter: Tensor4D | TensorLike

          The filter tensor, rank 4, of shape - [filterHeight, filterWidth, inChannels, channelMultiplier].

          -
        • strides: number | [number, number]

          The strides of the convolution: [strideHeight, strideWidth]. If strides is a single number, then strideHeight == strideWidth.

          -
        • pad: number | "valid" | "same" | ExplicitPadding

          The type of padding algorithm.

          +
        • filter: Tensor4D | TensorLike

          The filter tensor, rank 4, of shape +[filterHeight, filterWidth, inChannels, channelMultiplier].

          +
        • strides: number | [number, number]

          The strides of the convolution: [strideHeight, strideWidth]. If strides is a single number, then strideHeight == strideWidth.

          +
        • pad:
              | number
              | "valid"
              | "same"
              | ExplicitPadding

          The type of padding algorithm.

          -
        • Optional dataFormat: "NHWC" | "NCHW"
        • Optional dilations: number | [number, number]

          The dilation rates: [dilationHeight, dilationWidth] - in which we sample input values across the height and width dimensions - in atrous convolution. Defaults to [1, 1]. If rate is a single - number, then dilationHeight == dilationWidth. If it is greater than - 1, then all values of strides must be 1.

          -
        • Optional dimRoundingMode: "floor" | "round" | "ceil"

          A string from: 'ceil', 'round', 'floor'. If none is - provided, it will default to truncate.

          -

        Returns T

        Doc

    \ No newline at end of file +
  • OptionaldataFormat: "NHWC" | "NCHW"
  • Optionaldilations: number | [number, number]

    The dilation rates: [dilationHeight, dilationWidth] +in which we sample input values across the height and width dimensions +in atrous convolution. Defaults to [1, 1]. If rate is a single +number, then dilationHeight == dilationWidth. If it is greater than +1, then all values of strides must be 1.

    +
  • OptionaldimRoundingMode: "floor" | "round" | "ceil"

    A string from: 'ceil', 'round', 'floor'. If none is +provided, it will default to truncate.

    +

Returns T

diff --git a/typedoc/functions/tf.div.html b/typedoc/functions/tf.div.html index c485006..3744661 100644 --- a/typedoc/functions/tf.div.html +++ b/typedoc/functions/tf.div.html @@ -1,9 +1,11 @@ -div | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.exp.html b/typedoc/functions/tf.exp.html index 542b1a2..cc044b8 100644 --- a/typedoc/functions/tf.exp.html +++ b/typedoc/functions/tf.exp.html @@ -1,5 +1,6 @@ -exp | @vladmandic/face-api - v1.7.13
  • Computes exponential of the input tf.Tensor element-wise. e ^ x

    -
    const x = tf.tensor1d([1, 2, -3]);

    x.exp().print(); // or tf.exp(x) -
    -

    Type Parameters

    Parameters

    Returns T

    Doc

\ No newline at end of file +exp | @vladmandic/face-api - v1.7.14
  • Computes exponential of the input tf.Tensor element-wise. e ^ x

    +
    const x = tf.tensor1d([1, 2, -3]);

    x.exp().print(); // or tf.exp(x) +
    + +

    Type Parameters

    Parameters

    Returns T

diff --git a/typedoc/functions/tf.expandDims.html b/typedoc/functions/tf.expandDims.html index e94be51..1cf1c95 100644 --- a/typedoc/functions/tf.expandDims.html +++ b/typedoc/functions/tf.expandDims.html @@ -1,8 +1,9 @@ -expandDims | @vladmandic/face-api - v1.7.13
  • Returns a tf.Tensor that has expanded rank, by inserting a dimension -into the tensor's shape.

    -
    const x = tf.tensor1d([1, 2, 3, 4]);
    const axis = 1;
    x.expandDims(axis).print(); -
    -

    Type Parameters

    Parameters

    • x: TensorLike | Tensor<Rank>

      The input tensor whose dimensions are to be expanded.

      -
    • Optional axis: number

      The dimension index at which to insert shape of 1. Defaults - to 0 (the first dimension).

      -

    Returns T

    Doc

\ No newline at end of file +expandDims | @vladmandic/face-api - v1.7.14
  • Returns a tf.Tensor that has expanded rank, by inserting a dimension +into the tensor's shape.

    +
    const x = tf.tensor1d([1, 2, 3, 4]);
    const axis = 1;
    x.expandDims(axis).print(); +
    + +

    Type Parameters

    Parameters

    • x: TensorLike | Tensor<Rank>

      The input tensor whose dimensions are to be expanded.

      +
    • Optionalaxis: number

      The dimension index at which to insert shape of 1. Defaults +to 0 (the first dimension).

      +

    Returns T

diff --git a/typedoc/functions/tf.fill.html b/typedoc/functions/tf.fill.html index b36476c..91ddea1 100644 --- a/typedoc/functions/tf.fill.html +++ b/typedoc/functions/tf.fill.html @@ -1,8 +1,9 @@ -fill | @vladmandic/face-api - v1.7.13
  • Creates a tf.Tensor filled with a scalar value.

    -
    tf.fill([2, 2], 4).print();
    -
    -

    Type Parameters

    Parameters

    • shape: ShapeMap[R]

      An array of integers defining the output tensor shape.

      -
    • value: string | number

      The scalar value to fill the tensor with.

      -
    • Optional dtype: keyof DataTypeMap

      The type of an element in the resulting tensor. Defaults to - 'float32' if the given param value is a number, otherwise 'string'.

      -

    Returns Tensor<R>

    Doc

\ No newline at end of file +fill | @vladmandic/face-api - v1.7.14
  • Creates a tf.Tensor filled with a scalar value.

    +
    tf.fill([2, 2], 4).print();
    +
    + +

    Type Parameters

    Parameters

    • shape: ShapeMap[R]

      An array of integers defining the output tensor shape.

      +
    • value: string | number

      The scalar value to fill the tensor with.

      +
    • Optionaldtype: keyof DataTypeMap

      The type of an element in the resulting tensor. Defaults to +'float32' if the given param value is a number, otherwise 'string'.

      +

    Returns Tensor<R>

diff --git a/typedoc/functions/tf.io.browserFiles.html b/typedoc/functions/tf.io.browserFiles.html index c9e78ff..b407086 100644 --- a/typedoc/functions/tf.io.browserFiles.html +++ b/typedoc/functions/tf.io.browserFiles.html @@ -1,13 +1,14 @@ -browserFiles | @vladmandic/face-api - v1.7.13
  • Creates an IOHandler that loads model artifacts from user-selected files.

    +browserFiles | @vladmandic/face-api - v1.7.14
    • Creates an IOHandler that loads model artifacts from user-selected files.

      This method can be used for loading from files such as user-selected files in the browser. When used in conjunction with tf.loadLayersModel, an instance of tf.LayersModel (Keras-style) can be constructed from the loaded artifacts.

      -
      // Note: This code snippet won't run properly without the actual file input
      // elements in the HTML DOM.

      // Suppose there are two HTML file input (`<input type="file" ...>`)
      // elements.
      const uploadJSONInput = document.getElementById('upload-json');
      const uploadWeightsInput = document.getElementById('upload-weights');
      const model = await tf.loadLayersModel(tf.io.browserFiles(
      [uploadJSONInput.files[0], uploadWeightsInput.files[0]])); -
      -

      Parameters

      • files: File[]

        Files to load from. Currently, this function supports only - loading from files that contain Keras-style models (i.e., tf.Models), for - which an Array of Files is expected (in that order):

        +
        // Note: This code snippet won't run properly without the actual file input
        // elements in the HTML DOM.

        // Suppose there are two HTML file input (`<input type="file" ...>`)
        // elements.
        const uploadJSONInput = document.getElementById('upload-json');
        const uploadWeightsInput = document.getElementById('upload-weights');
        const model = await tf.loadLayersModel(tf.io.browserFiles(
        [uploadJSONInput.files[0], uploadWeightsInput.files[0]])); +
        + +

        Parameters

        • files: File[]

          Files to load from. Currently, this function supports only +loading from files that contain Keras-style models (i.e., tf.Models), for +which an Array of Files is expected (in that order):

          • A JSON file containing the model topology and weight manifest.
          • Optionally, one or more binary files containing the binary weights. @@ -19,4 +20,4 @@ Python PIP package. If no weights files are provided, only the model topology will be loaded from the JSON file above.

        Returns IOHandler

        An instance of Files IOHandler.

        -

        Doc

    \ No newline at end of file +
diff --git a/typedoc/functions/tf.io.browserHTTPRequest.html b/typedoc/functions/tf.io.browserHTTPRequest.html index e1e9bd0..2003b47 100644 --- a/typedoc/functions/tf.io.browserHTTPRequest.html +++ b/typedoc/functions/tf.io.browserHTTPRequest.html @@ -1,2 +1,2 @@ -browserHTTPRequest | @vladmandic/face-api - v1.7.13
  • Deprecated. Use tf.io.http.

    -

    Parameters

    Returns IOHandler

\ No newline at end of file +browserHTTPRequest | @vladmandic/face-api - v1.7.14
  • Deprecated. Use tf.io.http.

    +

    Parameters

    Returns IOHandler

diff --git a/typedoc/functions/tf.io.concatenateArrayBuffers.html b/typedoc/functions/tf.io.concatenateArrayBuffers.html index 9d182c4..c345b6f 100644 --- a/typedoc/functions/tf.io.concatenateArrayBuffers.html +++ b/typedoc/functions/tf.io.concatenateArrayBuffers.html @@ -1,6 +1,6 @@ -concatenateArrayBuffers | @vladmandic/face-api - v1.7.13

Function concatenateArrayBuffers

diff --git a/typedoc/functions/tf.io.copyModel.html b/typedoc/functions/tf.io.copyModel.html index ff46396..66fc871 100644 --- a/typedoc/functions/tf.io.copyModel.html +++ b/typedoc/functions/tf.io.copyModel.html @@ -1,17 +1,18 @@ -copyModel | @vladmandic/face-api - v1.7.13
  • Copy a model from one URL to another.

    +copyModel | @vladmandic/face-api - v1.7.14
    • Copy a model from one URL to another.

      This function supports:

      1. Copying within a storage medium, e.g., -tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')
      2. +tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')
      3. Copying between two storage mediums, e.g., -tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')
      4. +tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')
      -
      // First create and save a model.
      const model = tf.sequential();
      model.add(tf.layers.dense(
      {units: 1, inputShape: [10], activation: 'sigmoid'}));
      await model.save('localstorage://demo/management/model1');

      // Then list existing models.
      console.log(JSON.stringify(await tf.io.listModels()));

      // Copy the model, from Local Storage to IndexedDB.
      await tf.io.copyModel(
      'localstorage://demo/management/model1',
      'indexeddb://demo/management/model1');

      // List models again.
      console.log(JSON.stringify(await tf.io.listModels()));

      // Remove both models.
      await tf.io.removeModel('localstorage://demo/management/model1');
      await tf.io.removeModel('indexeddb://demo/management/model1'); -
      -

      Parameters

      • sourceURL: string

        Source URL of copying.

        -
      • destURL: string

        Destination URL of copying.

        +
        // First create and save a model.
        const model = tf.sequential();
        model.add(tf.layers.dense(
        {units: 1, inputShape: [10], activation: 'sigmoid'}));
        await model.save('localstorage://demo/management/model1');

        // Then list existing models.
        console.log(JSON.stringify(await tf.io.listModels()));

        // Copy the model, from Local Storage to IndexedDB.
        await tf.io.copyModel(
        'localstorage://demo/management/model1',
        'indexeddb://demo/management/model1');

        // List models again.
        console.log(JSON.stringify(await tf.io.listModels()));

        // Remove both models.
        await tf.io.removeModel('localstorage://demo/management/model1');
        await tf.io.removeModel('indexeddb://demo/management/model1'); +
        + +

        Parameters

        • sourceURL: string

          Source URL of copying.

          +
        • destURL: string

          Destination URL of copying.

        Returns Promise<ModelArtifactsInfo>

        ModelArtifactsInfo of the copied model (if and only if copying - is successful).

        -

        Throws

        Error if copying fails, e.g., if no model exists at sourceURL, or - if oldPath and newPath are identical.

        -

        Doc

    \ No newline at end of file +is successful).

    +

    Error if copying fails, e.g., if no model exists at sourceURL, or +if oldPath and newPath are identical.

    +
diff --git a/typedoc/functions/tf.io.decodeWeights.html b/typedoc/functions/tf.io.decodeWeights.html index ba16d73..210b1c7 100644 --- a/typedoc/functions/tf.io.decodeWeights.html +++ b/typedoc/functions/tf.io.decodeWeights.html @@ -1,12 +1,12 @@ -decodeWeights | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.io.decodeWeightsStream.html b/typedoc/functions/tf.io.decodeWeightsStream.html index 863a359..e9502a7 100644 --- a/typedoc/functions/tf.io.decodeWeightsStream.html +++ b/typedoc/functions/tf.io.decodeWeightsStream.html @@ -1 +1 @@ -decodeWeightsStream | @vladmandic/face-api - v1.7.13
  • Parameters

    Returns Promise<NamedTensorMap>

\ No newline at end of file +decodeWeightsStream | @vladmandic/face-api - v1.7.14
  • Parameters

    Returns Promise<NamedTensorMap>

diff --git a/typedoc/functions/tf.io.encodeWeights.html b/typedoc/functions/tf.io.encodeWeights.html index e120979..0f499bd 100644 --- a/typedoc/functions/tf.io.encodeWeights.html +++ b/typedoc/functions/tf.io.encodeWeights.html @@ -1,9 +1,9 @@ -encodeWeights | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.io.fromMemory.html b/typedoc/functions/tf.io.fromMemory.html index 8dc0d23..8b98375 100644 --- a/typedoc/functions/tf.io.fromMemory.html +++ b/typedoc/functions/tf.io.fromMemory.html @@ -1,14 +1,15 @@ -fromMemory | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.io.fromMemorySync.html b/typedoc/functions/tf.io.fromMemorySync.html index c2fd46c..ab3ec5d 100644 --- a/typedoc/functions/tf.io.fromMemorySync.html +++ b/typedoc/functions/tf.io.fromMemorySync.html @@ -1,14 +1,15 @@ -fromMemorySync | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.io.getLoadHandlers.html b/typedoc/functions/tf.io.getLoadHandlers.html index 5a4404b..2fcd518 100644 --- a/typedoc/functions/tf.io.getLoadHandlers.html +++ b/typedoc/functions/tf.io.getLoadHandlers.html @@ -1 +1 @@ -getLoadHandlers | @vladmandic/face-api - v1.7.13
  • Parameters

    • url: string | string[]
    • Optional loadOptions: LoadOptions

    Returns IOHandler[]

\ No newline at end of file +getLoadHandlers | @vladmandic/face-api - v1.7.14
  • Parameters

    Returns IOHandler[]

diff --git a/typedoc/functions/tf.io.getModelArtifactsForJSON.html b/typedoc/functions/tf.io.getModelArtifactsForJSON.html index 262d6c0..301ef92 100644 --- a/typedoc/functions/tf.io.getModelArtifactsForJSON.html +++ b/typedoc/functions/tf.io.getModelArtifactsForJSON.html @@ -1,7 +1,7 @@ -getModelArtifactsForJSON | @vladmandic/face-api - v1.7.13

Function getModelArtifactsForJSON

  • Create ModelArtifacts from a JSON file.

    -

    Parameters

    Returns Promise<ModelArtifacts>

    A Promise of the ModelArtifacts, as described by the JSON file.

    -
\ No newline at end of file +getModelArtifactsForJSON | @vladmandic/face-api - v1.7.14

Function getModelArtifactsForJSON

  • Create ModelArtifacts from a JSON file.

    +

    Parameters

    Returns Promise<ModelArtifacts>

    A Promise of the ModelArtifacts, as described by the JSON file.

    +
diff --git a/typedoc/functions/tf.io.getModelArtifactsForJSONSync.html b/typedoc/functions/tf.io.getModelArtifactsForJSONSync.html index 613f54a..641738a 100644 --- a/typedoc/functions/tf.io.getModelArtifactsForJSONSync.html +++ b/typedoc/functions/tf.io.getModelArtifactsForJSONSync.html @@ -1,9 +1,9 @@ -getModelArtifactsForJSONSync | @vladmandic/face-api - v1.7.13

Function getModelArtifactsForJSONSync

diff --git a/typedoc/functions/tf.io.getModelArtifactsInfoForJSON.html b/typedoc/functions/tf.io.getModelArtifactsInfoForJSON.html index 434f5c9..83f7050 100644 --- a/typedoc/functions/tf.io.getModelArtifactsInfoForJSON.html +++ b/typedoc/functions/tf.io.getModelArtifactsInfoForJSON.html @@ -1,3 +1,3 @@ -getModelArtifactsInfoForJSON | @vladmandic/face-api - v1.7.13

Function getModelArtifactsInfoForJSON

  • Populate ModelArtifactsInfo fields for a model with JSON topology.

    -

    Parameters

    Returns ModelArtifactsInfo

    A ModelArtifactsInfo object.

    -
\ No newline at end of file +getModelArtifactsInfoForJSON | @vladmandic/face-api - v1.7.14

Function getModelArtifactsInfoForJSON

  • Populate ModelArtifactsInfo fields for a model with JSON topology.

    +

    Parameters

    Returns ModelArtifactsInfo

    A ModelArtifactsInfo object.

    +
diff --git a/typedoc/functions/tf.io.getSaveHandlers.html b/typedoc/functions/tf.io.getSaveHandlers.html index 582aab6..034b94e 100644 --- a/typedoc/functions/tf.io.getSaveHandlers.html +++ b/typedoc/functions/tf.io.getSaveHandlers.html @@ -1 +1 @@ -getSaveHandlers | @vladmandic/face-api - v1.7.13
\ No newline at end of file +getSaveHandlers | @vladmandic/face-api - v1.7.14
  • Parameters

    • url: string | string[]

    Returns IOHandler[]

diff --git a/typedoc/functions/tf.io.getWeightSpecs.html b/typedoc/functions/tf.io.getWeightSpecs.html index f93fff9..79380fc 100644 --- a/typedoc/functions/tf.io.getWeightSpecs.html +++ b/typedoc/functions/tf.io.getWeightSpecs.html @@ -1,5 +1,5 @@ -getWeightSpecs | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.io.http.html b/typedoc/functions/tf.io.http.html index cc52f65..173423e 100644 --- a/typedoc/functions/tf.io.http.html +++ b/typedoc/functions/tf.io.http.html @@ -1,4 +1,4 @@ -http | @vladmandic/face-api - v1.7.13
  • Creates an IOHandler subtype that sends model artifacts to HTTP server.

    +http | @vladmandic/face-api - v1.7.14
    • Creates an IOHandler subtype that sends model artifacts to HTTP server.

      An HTTP request of the multipart/form-data mime type will be sent to the path URL. The form data includes artifacts that represent the topology and/or weights of the model. In the case of Keras-style tf.Model, two @@ -7,28 +7,30 @@ blobs (files) exist in form-data:

    • A JSON file consisting of modelTopology and weightsManifest.
    • A binary weights file consisting of the concatenated weight values. These files are in the same format as the one generated by -tfjs_converter.
    • +tfjs_converter.

    The following code snippet exemplifies the client-side code that uses this function:

    -
    const model = tf.sequential();
    model.add(
    tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));

    const saveResult = await model.save(tf.io.http(
    'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));
    console.log(saveResult); -
    +
    const model = tf.sequential();
    model.add(
    tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));

    const saveResult = await model.save(tf.io.http(
    'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));
    console.log(saveResult); +
    +

    If the default POST method is to be used, without any custom parameters such as headers, you can simply pass an HTTP or HTTPS URL to model.save:

    -
    const saveResult = await model.save('http://model-server:5000/upload');
    -
    +
    const saveResult = await model.save('http://model-server:5000/upload');
    +
    +

    The following GitHub Gist -https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864 -implements a server based on flask that +https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864 +implements a server based on flask that can receive the request. Upon receiving the model artifacts via the requst, -this particular server reconstitutes instances of Keras +this particular server reconstitutes instances of Keras Models in memory.

    -

    Parameters

    • path: string

      A URL path to the model. - Can be an absolute HTTP path (e.g., - 'http://localhost:8000/model-upload)') or a relative path (e.g., - './model-upload').

      -
    • Optional loadOptions: LoadOptions

      Optional configuration for the loading. It includes the - following fields:

      +

      Parameters

      • path: string

        A URL path to the model. +Can be an absolute HTTP path (e.g., +'http://localhost:8000/model-upload)') or a relative path (e.g., +'./model-upload').

        +
      • OptionalloadOptions: LoadOptions

        Optional configuration for the loading. It includes the +following fields:

        • weightPathPrefix Optional, this specifies the path prefix for weight files, by default this is calculated from the path param.
        • @@ -38,4 +40,4 @@ the fetch from node-fetch can be used here. before the load is completed.

      Returns IOHandler

      An instance of IOHandler.

      -

      Doc

\ No newline at end of file +
diff --git a/typedoc/functions/tf.io.isHTTPScheme.html b/typedoc/functions/tf.io.isHTTPScheme.html index b6d79ec..82861a7 100644 --- a/typedoc/functions/tf.io.isHTTPScheme.html +++ b/typedoc/functions/tf.io.isHTTPScheme.html @@ -1 +1 @@ -isHTTPScheme | @vladmandic/face-api - v1.7.13
\ No newline at end of file +isHTTPScheme | @vladmandic/face-api - v1.7.14
  • Parameters

    • url: string

    Returns boolean

diff --git a/typedoc/functions/tf.io.listModels.html b/typedoc/functions/tf.io.listModels.html index 7118577..def2bce 100644 --- a/typedoc/functions/tf.io.listModels.html +++ b/typedoc/functions/tf.io.listModels.html @@ -1,10 +1,11 @@ -listModels | @vladmandic/face-api - v1.7.13
  • List all models stored in registered storage mediums.

    +listModels | @vladmandic/face-api - v1.7.14
    • List all models stored in registered storage mediums.

      For a web browser environment, the registered mediums are Local Storage and IndexedDB.

      -
      // First create and save a model.
      const model = tf.sequential();
      model.add(tf.layers.dense(
      {units: 1, inputShape: [10], activation: 'sigmoid'}));
      await model.save('localstorage://demo/management/model1');

      // Then list existing models.
      console.log(JSON.stringify(await tf.io.listModels()));

      // Delete the model.
      await tf.io.removeModel('localstorage://demo/management/model1');

      // List models again.
      console.log(JSON.stringify(await tf.io.listModels())); -
      +
      // First create and save a model.
      const model = tf.sequential();
      model.add(tf.layers.dense(
      {units: 1, inputShape: [10], activation: 'sigmoid'}));
      await model.save('localstorage://demo/management/model1');

      // Then list existing models.
      console.log(JSON.stringify(await tf.io.listModels()));

      // Delete the model.
      await tf.io.removeModel('localstorage://demo/management/model1');

      // List models again.
      console.log(JSON.stringify(await tf.io.listModels())); +
      +

      Returns Promise<{
          [url: string]: ModelArtifactsInfo;
      }>

      A Promise of a dictionary mapping URLs of existing models to their model artifacts info. URLs include medium-specific schemes, e.g., - 'indexeddb://my/model/1'. Model artifacts info include type of the -model's topology, byte sizes of the topology, weights, etc.

      -

      Doc

    \ No newline at end of file +'indexeddb://my/model/1'. Model artifacts info include type of the +model's topology, byte sizes of the topology, weights, etc.

    +
diff --git a/typedoc/functions/tf.io.loadWeights.html b/typedoc/functions/tf.io.loadWeights.html index b6b059b..227f71b 100644 --- a/typedoc/functions/tf.io.loadWeights.html +++ b/typedoc/functions/tf.io.loadWeights.html @@ -1,7 +1,7 @@ -loadWeights | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.io.moveModel.html b/typedoc/functions/tf.io.moveModel.html index 78dff7b..ba18c8d 100644 --- a/typedoc/functions/tf.io.moveModel.html +++ b/typedoc/functions/tf.io.moveModel.html @@ -1,17 +1,18 @@ -moveModel | @vladmandic/face-api - v1.7.13
  • Move a model from one URL to another.

    +moveModel | @vladmandic/face-api - v1.7.14
    • Move a model from one URL to another.

      This function supports:

      1. Moving within a storage medium, e.g., -tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')
      2. +tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')
      3. Moving between two storage mediums, e.g., -tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')
      4. +tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')
      -
      // First create and save a model.
      const model = tf.sequential();
      model.add(tf.layers.dense(
      {units: 1, inputShape: [10], activation: 'sigmoid'}));
      await model.save('localstorage://demo/management/model1');

      // Then list existing models.
      console.log(JSON.stringify(await tf.io.listModels()));

      // Move the model, from Local Storage to IndexedDB.
      await tf.io.moveModel(
      'localstorage://demo/management/model1',
      'indexeddb://demo/management/model1');

      // List models again.
      console.log(JSON.stringify(await tf.io.listModels()));

      // Remove the moved model.
      await tf.io.removeModel('indexeddb://demo/management/model1'); -
      -

      Parameters

      • sourceURL: string

        Source URL of moving.

        -
      • destURL: string

        Destination URL of moving.

        +
        // First create and save a model.
        const model = tf.sequential();
        model.add(tf.layers.dense(
        {units: 1, inputShape: [10], activation: 'sigmoid'}));
        await model.save('localstorage://demo/management/model1');

        // Then list existing models.
        console.log(JSON.stringify(await tf.io.listModels()));

        // Move the model, from Local Storage to IndexedDB.
        await tf.io.moveModel(
        'localstorage://demo/management/model1',
        'indexeddb://demo/management/model1');

        // List models again.
        console.log(JSON.stringify(await tf.io.listModels()));

        // Remove the moved model.
        await tf.io.removeModel('indexeddb://demo/management/model1'); +
        + +

        Parameters

        • sourceURL: string

          Source URL of moving.

          +
        • destURL: string

          Destination URL of moving.

        Returns Promise<ModelArtifactsInfo>

        ModelArtifactsInfo of the copied model (if and only if copying - is successful).

        -

        Throws

        Error if moving fails, e.g., if no model exists at sourceURL, or - if oldPath and newPath are identical.

        -

        Doc

    \ No newline at end of file +is successful).

    +

    Error if moving fails, e.g., if no model exists at sourceURL, or +if oldPath and newPath are identical.

    +
diff --git a/typedoc/functions/tf.io.registerLoadRouter.html b/typedoc/functions/tf.io.registerLoadRouter.html index 137338f..172a023 100644 --- a/typedoc/functions/tf.io.registerLoadRouter.html +++ b/typedoc/functions/tf.io.registerLoadRouter.html @@ -1 +1 @@ -registerLoadRouter | @vladmandic/face-api - v1.7.13
  • Parameters

    • loudRouter: IORouter

    Returns void

\ No newline at end of file +registerLoadRouter | @vladmandic/face-api - v1.7.14
  • Parameters

    • loudRouter: IORouter

    Returns void

diff --git a/typedoc/functions/tf.io.registerSaveRouter.html b/typedoc/functions/tf.io.registerSaveRouter.html index c9152be..afdbad3 100644 --- a/typedoc/functions/tf.io.registerSaveRouter.html +++ b/typedoc/functions/tf.io.registerSaveRouter.html @@ -1 +1 @@ -registerSaveRouter | @vladmandic/face-api - v1.7.13
  • Parameters

    • loudRouter: IORouter

    Returns void

\ No newline at end of file +registerSaveRouter | @vladmandic/face-api - v1.7.14
  • Parameters

    • loudRouter: IORouter

    Returns void

diff --git a/typedoc/functions/tf.io.removeModel.html b/typedoc/functions/tf.io.removeModel.html index 3379c9d..bcf4fff 100644 --- a/typedoc/functions/tf.io.removeModel.html +++ b/typedoc/functions/tf.io.removeModel.html @@ -1,9 +1,10 @@ -removeModel | @vladmandic/face-api - v1.7.13
  • Remove a model specified by URL from a registered storage medium.

    -
    // First create and save a model.
    const model = tf.sequential();
    model.add(tf.layers.dense(
    {units: 1, inputShape: [10], activation: 'sigmoid'}));
    await model.save('localstorage://demo/management/model1');

    // Then list existing models.
    console.log(JSON.stringify(await tf.io.listModels()));

    // Delete the model.
    await tf.io.removeModel('localstorage://demo/management/model1');

    // List models again.
    console.log(JSON.stringify(await tf.io.listModels())); -
    -

    Parameters

diff --git a/typedoc/functions/tf.io.weightsLoaderFactory.html b/typedoc/functions/tf.io.weightsLoaderFactory.html index 00a333d..58f74ce 100644 --- a/typedoc/functions/tf.io.weightsLoaderFactory.html +++ b/typedoc/functions/tf.io.weightsLoaderFactory.html @@ -1,8 +1,9 @@ -weightsLoaderFactory | @vladmandic/face-api - v1.7.13
  • Creates a function, which reads a weights manifest JSON configuration, +weightsLoaderFactory | @vladmandic/face-api - v1.7.14

    • Creates a function, which reads a weights manifest JSON configuration, fetches the weight files using the specified function and returns them as Tensors.

      -
      // example for creating a nodejs weight loader, which reads the weight files
      // from disk using fs.readFileSync

      import * as fs from 'fs'

      const fetchWeightsFromDisk = (filePaths: string[]) =>
      filePaths.map(filePath => fs.readFileSync(filePath).buffer)

      const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)

      const manifest = JSON.parse(
      fs.readFileSync('./my_model-weights_manifest').toString()
      )
      const weightMap = await loadWeights(manifest, './') -
      -

      Parameters

      • fetchWeightsFunction: ((fetchUrls) => Promise<ArrayBuffer[]>)

        The function used for fetching the weight files.

        -
          • (fetchUrls): Promise<ArrayBuffer[]>
          • Parameters

            • fetchUrls: string[]

            Returns Promise<ArrayBuffer[]>

      Returns ((manifest, filePathPrefix?, weightNames?) => Promise<NamedTensorMap>)

      Weight loading function.

      -
    \ No newline at end of file +
    // example for creating a nodejs weight loader, which reads the weight files
    // from disk using fs.readFileSync

    import * as fs from 'fs'

    const fetchWeightsFromDisk = (filePaths: string[]) =>
    filePaths.map(filePath => fs.readFileSync(filePath).buffer)

    const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)

    const manifest = JSON.parse(
    fs.readFileSync('./my_model-weights_manifest').toString()
    )
    const weightMap = await loadWeights(manifest, './') +
    + +

    Parameters

    • fetchWeightsFunction: ((fetchUrls: string[]) => Promise<ArrayBuffer[]>)

      The function used for fetching the weight files.

      +
        • (fetchUrls): Promise<ArrayBuffer[]>
        • Parameters

          • fetchUrls: string[]

          Returns Promise<ArrayBuffer[]>

    Returns ((manifest: WeightsManifestConfig, filePathPrefix?: string, weightNames?: string[]) => Promise<NamedTensorMap>)

    Weight loading function.

    +
diff --git a/typedoc/functions/tf.io.withSaveHandler.html b/typedoc/functions/tf.io.withSaveHandler.html index f829761..18a8b7d 100644 --- a/typedoc/functions/tf.io.withSaveHandler.html +++ b/typedoc/functions/tf.io.withSaveHandler.html @@ -1,6 +1,7 @@ -withSaveHandler | @vladmandic/face-api - v1.7.13
  • Creates an IOHandler that passes saved model artifacts to a callback.

    -
    function handleSave(artifacts) {
    // ... do something with the artifacts ...
    return {modelArtifactsInfo: {...}, ...};
    }

    const saveResult = model.save(tf.io.withSaveHandler(handleSave)); -
    -

    Parameters

    • saveHandler: ((artifacts) => Promise<SaveResult>)

      A function that accepts a ModelArtifacts and returns a - promise that resolves to a SaveResult.

      -

    Returns IOHandler

\ No newline at end of file +withSaveHandler | @vladmandic/face-api - v1.7.14
  • Creates an IOHandler that passes saved model artifacts to a callback.

    +
    function handleSave(artifacts) {
    // ... do something with the artifacts ...
    return {modelArtifactsInfo: {...}, ...};
    }

    const saveResult = model.save(tf.io.withSaveHandler(handleSave)); +
    + +

    Parameters

    Returns IOHandler

diff --git a/typedoc/functions/tf.io.withSaveHandlerSync.html b/typedoc/functions/tf.io.withSaveHandlerSync.html index 74be6ac..4f2029c 100644 --- a/typedoc/functions/tf.io.withSaveHandlerSync.html +++ b/typedoc/functions/tf.io.withSaveHandlerSync.html @@ -1,6 +1,7 @@ -withSaveHandlerSync | @vladmandic/face-api - v1.7.13
  • Creates an IOHandlerSync that passes saved model artifacts to a callback.

    -
    function handleSave(artifacts) {
    // ... do something with the artifacts ...
    return {modelArtifactsInfo: {...}, ...};
    }

    const saveResult = model.save(tf.io.withSaveHandler(handleSave)); -
    -

    Parameters

    Returns IOHandlerSync

\ No newline at end of file +withSaveHandlerSync | @vladmandic/face-api - v1.7.14
  • Creates an IOHandlerSync that passes saved model artifacts to a callback.

    +
    function handleSave(artifacts) {
    // ... do something with the artifacts ...
    return {modelArtifactsInfo: {...}, ...};
    }

    const saveResult = model.save(tf.io.withSaveHandler(handleSave)); +
    + +

    Parameters

    Returns IOHandlerSync

diff --git a/typedoc/functions/tf.matMul.html b/typedoc/functions/tf.matMul.html index a6af8fa..11615e2 100644 --- a/typedoc/functions/tf.matMul.html +++ b/typedoc/functions/tf.matMul.html @@ -1,8 +1,9 @@ -matMul | @vladmandic/face-api - v1.7.13
  • Computes the dot product of two matrices, A * B. These must be matrices.

    -
    const a = tf.tensor2d([1, 2], [1, 2]);
    const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);

    a.matMul(b).print(); // or tf.matMul(a, b) -
    -

    Type Parameters

    Parameters

    • a: TensorLike | Tensor<Rank>

      First matrix in dot product operation.

      -
    • b: TensorLike | Tensor<Rank>

      Second matrix in dot product operation.

      -
    • Optional transposeA: boolean

      If true, a is transposed before multiplication.

      -
    • Optional transposeB: boolean

      If true, b is transposed before multiplication.

      -

    Returns T

    Doc

\ No newline at end of file +matMul | @vladmandic/face-api - v1.7.14
  • Computes the dot product of two matrices, A * B. These must be matrices.

    +
    const a = tf.tensor2d([1, 2], [1, 2]);
    const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);

    a.matMul(b).print(); // or tf.matMul(a, b) +
    + +

    Type Parameters

    Parameters

    • a: TensorLike | Tensor<Rank>

      First matrix in dot product operation.

      +
    • b: TensorLike | Tensor<Rank>

      Second matrix in dot product operation.

      +
    • OptionaltransposeA: boolean

      If true, a is transposed before multiplication.

      +
    • OptionaltransposeB: boolean

      If true, b is transposed before multiplication.

      +

    Returns T

diff --git a/typedoc/functions/tf.maxPool.html b/typedoc/functions/tf.maxPool.html index 8f619f8..79cb403 100644 --- a/typedoc/functions/tf.maxPool.html +++ b/typedoc/functions/tf.maxPool.html @@ -1,19 +1,19 @@ -maxPool | @vladmandic/face-api - v1.7.13
  • Computes the 2D max pooling of an image.

    -

    Type Parameters

    Parameters

    Returns T

diff --git a/typedoc/functions/tf.mul.html b/typedoc/functions/tf.mul.html index aba7c3a..36e25e5 100644 --- a/typedoc/functions/tf.mul.html +++ b/typedoc/functions/tf.mul.html @@ -1,10 +1,12 @@ -mul | @vladmandic/face-api - v1.7.13
diff --git a/typedoc/functions/tf.pad.html b/typedoc/functions/tf.pad.html index 81b12ae..349f759 100644 --- a/typedoc/functions/tf.pad.html +++ b/typedoc/functions/tf.pad.html @@ -1,4 +1,4 @@ -pad | @vladmandic/face-api - v1.7.13
  • Pads a tf.Tensor with a given value and paddings.

    +pad | @vladmandic/face-api - v1.7.14
    • Pads a tf.Tensor with a given value and paddings.

      This operation implements CONSTANT mode. For REFLECT and SYMMETRIC, refer to tf.mirrorPad.

      Also available are stricter rank-specific methods with the same signature @@ -9,11 +9,12 @@ as this method that assert that paddings is of given length.

    • tf.pad3d
    • tf.pad4d
    -
    const x = tf.tensor1d([1, 2, 3, 4]);
    x.pad([[1, 2]]).print(); -
    -

    Type Parameters

    Parameters

    • x: TensorLike | T

      The tensor to pad.

      -
    • paddings: [number, number][]

      An array of length R (the rank of the tensor), where +

      const x = tf.tensor1d([1, 2, 3, 4]);
      x.pad([[1, 2]]).print(); +
      + +

      Type Parameters

      Parameters

      • x: TensorLike | T

        The tensor to pad.

        +
      • paddings: [number, number][]

        An array of length R (the rank of the tensor), where each element is a length-2 tuple of ints [padBefore, padAfter], specifying how much to pad along each dimension of the tensor.

        -
      • Optional constantValue: number

        The pad value to use. Defaults to 0.

        -

      Returns T

      Doc

\ No newline at end of file +
  • OptionalconstantValue: number

    The pad value to use. Defaults to 0.

    +
  • Returns T

    diff --git a/typedoc/functions/tf.relu.html b/typedoc/functions/tf.relu.html index 0adc7ed..580d2ef 100644 --- a/typedoc/functions/tf.relu.html +++ b/typedoc/functions/tf.relu.html @@ -1,6 +1,7 @@ -relu | @vladmandic/face-api - v1.7.13
    • Computes rectified linear element-wise: max(x, 0).

      -
      const x = tf.tensor1d([-1, 2, -3, 4]);

      x.relu().print(); // or tf.relu(x) -
      -

      Type Parameters

      Parameters

      • x: T | TensorLike

        The input tensor. If the dtype is bool, the output dtype will be - int32.

        -

      Returns T

      Doc

    \ No newline at end of file +relu | @vladmandic/face-api - v1.7.14
    • Computes rectified linear element-wise: max(x, 0).

      +
      const x = tf.tensor1d([-1, 2, -3, 4]);

      x.relu().print(); // or tf.relu(x) +
      + +

      Type Parameters

      Parameters

      • x: T | TensorLike

        The input tensor. If the dtype is bool, the output dtype will be +int32.

        +

      Returns T

    diff --git a/typedoc/functions/tf.reshape.html b/typedoc/functions/tf.reshape.html index 329c579..7f9a0da 100644 --- a/typedoc/functions/tf.reshape.html +++ b/typedoc/functions/tf.reshape.html @@ -1,4 +1,4 @@ -reshape | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/tf.scalar.html b/typedoc/functions/tf.scalar.html index 92df54a..9b28660 100644 --- a/typedoc/functions/tf.scalar.html +++ b/typedoc/functions/tf.scalar.html @@ -1,8 +1,9 @@ -scalar | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/tf.separableConv2d.html b/typedoc/functions/tf.separableConv2d.html index c021f1b..ad49790 100644 --- a/typedoc/functions/tf.separableConv2d.html +++ b/typedoc/functions/tf.separableConv2d.html @@ -1,28 +1,28 @@ -separableConv2d | @vladmandic/face-api - v1.7.13

    Returns T

    diff --git a/typedoc/functions/tf.sigmoid.html b/typedoc/functions/tf.sigmoid.html index 6dd392c..d7f7949 100644 --- a/typedoc/functions/tf.sigmoid.html +++ b/typedoc/functions/tf.sigmoid.html @@ -1,5 +1,6 @@ -sigmoid | @vladmandic/face-api - v1.7.13
    • Computes sigmoid element-wise, 1 / (1 + exp(-x))

      -
      const x = tf.tensor1d([0, -1, 2, -3]);

      x.sigmoid().print(); // or tf.sigmoid(x) -
      -

      Type Parameters

      Parameters

      Returns T

      Doc

    \ No newline at end of file +sigmoid | @vladmandic/face-api - v1.7.14
    • Computes sigmoid element-wise, 1 / (1 + exp(-x))

      +
      const x = tf.tensor1d([0, -1, 2, -3]);

      x.sigmoid().print(); // or tf.sigmoid(x) +
      + +

      Type Parameters

      Parameters

      Returns T

    diff --git a/typedoc/functions/tf.slice.html b/typedoc/functions/tf.slice.html index a8edfe2..064adb7 100644 --- a/typedoc/functions/tf.slice.html +++ b/typedoc/functions/tf.slice.html @@ -1,4 +1,4 @@ -slice | @vladmandic/face-api - v1.7.13
    • Extracts a slice from a tf.Tensor starting at coordinates begin +slice | @vladmandic/face-api - v1.7.14

      • Extracts a slice from a tf.Tensor starting at coordinates begin and is of size size.

        Also available are stricter rank-specific methods with the same signature as this method that assert that x is of the given rank:

        @@ -8,17 +8,19 @@ as this method that assert that x is of the given rank:

      • tf.slice3d
      • tf.slice4d
      -
      const x = tf.tensor1d([1, 2, 3, 4]);

      x.slice([1], [2]).print(); -
      -
      const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);

      x.slice([1, 0], [1, 2]).print(); -
      -

      Type Parameters

      Parameters

      • x: TensorLike | T

        The input tf.Tensor to slice from.

        -
      • begin: number | number[]

        The coordinates to start the slice from. The length can be - less than the rank of x - the rest of the axes will have implicit 0 as - start. Can also be a single number, in which case it specifies the - first axis.

        -
      • Optional size: number | number[]

        The size of the slice. The length can be less than the rank of - x - the rest of the axes will have implicit -1. A value of -1 requests - the rest of the dimensions in the axis. Can also be a single number, - in which case it specifies the size of the first axis.

        -

      Returns T

      Doc

    \ No newline at end of file +
    const x = tf.tensor1d([1, 2, 3, 4]);

    x.slice([1], [2]).print(); +
    + +
    const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);

    x.slice([1, 0], [1, 2]).print(); +
    + +

    Type Parameters

    Parameters

    • x: TensorLike | T

      The input tf.Tensor to slice from.

      +
    • begin: number | number[]

      The coordinates to start the slice from. The length can be +less than the rank of x - the rest of the axes will have implicit 0 as +start. Can also be a single number, in which case it specifies the +first axis.

      +
    • Optionalsize: number | number[]

      The size of the slice. The length can be less than the rank of +x - the rest of the axes will have implicit -1. A value of -1 requests +the rest of the dimensions in the axis. Can also be a single number, +in which case it specifies the size of the first axis.

      +

    Returns T

    diff --git a/typedoc/functions/tf.slice3d.html b/typedoc/functions/tf.slice3d.html index a22b9c5..fb08b27 100644 --- a/typedoc/functions/tf.slice3d.html +++ b/typedoc/functions/tf.slice3d.html @@ -1,3 +1,3 @@ -slice3d | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/tf.softmax.html b/typedoc/functions/tf.softmax.html index 3231842..950d2cf 100644 --- a/typedoc/functions/tf.softmax.html +++ b/typedoc/functions/tf.softmax.html @@ -1,9 +1,11 @@ -softmax | @vladmandic/face-api - v1.7.13
    • Computes the softmax normalized vector given the logits.

      -
      const a = tf.tensor1d([1, 2, 3]);

      a.softmax().print(); // or tf.softmax(a) -
      -
      const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);

      a.softmax().print(); // or tf.softmax(a) -
      -

      Type Parameters

      Parameters

      • logits: TensorLike | T

        The logits array.

        -
      • Optional dim: number

        The dimension softmax would be performed on. Defaults to -1 - which indicates the last dimension.

        -

      Returns T

      Doc

    \ No newline at end of file +softmax | @vladmandic/face-api - v1.7.14
    • Computes the softmax normalized vector given the logits.

      +
      const a = tf.tensor1d([1, 2, 3]);

      a.softmax().print(); // or tf.softmax(a) +
      + +
      const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);

      a.softmax().print(); // or tf.softmax(a) +
      + +

      Type Parameters

      Parameters

      • logits: TensorLike | T

        The logits array.

        +
      • Optionaldim: number

        The dimension softmax would be performed on. Defaults to -1 +which indicates the last dimension.

        +

      Returns T

    diff --git a/typedoc/functions/tf.stack.html b/typedoc/functions/tf.stack.html index f0746e9..f0ff3a5 100644 --- a/typedoc/functions/tf.stack.html +++ b/typedoc/functions/tf.stack.html @@ -1,6 +1,7 @@ -stack | @vladmandic/face-api - v1.7.13
    • Stacks a list of rank-R tf.Tensors into one rank-(R+1) tf.Tensor.

      -
      const a = tf.tensor1d([1, 2]);
      const b = tf.tensor1d([3, 4]);
      const c = tf.tensor1d([5, 6]);
      tf.stack([a, b, c]).print(); -
      -

      Type Parameters

      Parameters

      • tensors: (TensorLike | T)[]

        A list of tensor objects with the same shape and dtype.

        -
      • Optional axis: number

        The axis to stack along. Defaults to 0 (the first dim).

        -

      Returns Tensor

      Doc

    \ No newline at end of file +stack | @vladmandic/face-api - v1.7.14
    • Stacks a list of rank-R tf.Tensors into one rank-(R+1) tf.Tensor.

      +
      const a = tf.tensor1d([1, 2]);
      const b = tf.tensor1d([3, 4]);
      const c = tf.tensor1d([5, 6]);
      tf.stack([a, b, c]).print(); +
      + +

      Type Parameters

      Parameters

      • tensors: (TensorLike | T)[]

        A list of tensor objects with the same shape and dtype.

        +
      • Optionalaxis: number

        The axis to stack along. Defaults to 0 (the first dim).

        +

      Returns Tensor

    diff --git a/typedoc/functions/tf.sub.html b/typedoc/functions/tf.sub.html index 0d8509d..b233e2d 100644 --- a/typedoc/functions/tf.sub.html +++ b/typedoc/functions/tf.sub.html @@ -1,9 +1,11 @@ -sub | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/tf.tensor-2.html b/typedoc/functions/tf.tensor-2.html index 1d2f092..3bd2fe0 100644 --- a/typedoc/functions/tf.tensor-2.html +++ b/typedoc/functions/tf.tensor-2.html @@ -1,38 +1,46 @@ -tensor | @vladmandic/face-api - v1.7.13
    • Creates a tf.Tensor with the provided values, shape and dtype.

      -
      // Pass an array of values to create a vector.
      tf.tensor([1, 2, 3, 4]).print(); -
      -
      // Pass a nested array of values to make a matrix or a higher
      // dimensional tensor.
      tf.tensor([[1, 2], [3, 4]]).print(); -
      -
      // Pass a flat array and specify a shape yourself.
      tf.tensor([1, 2, 3, 4], [2, 2]).print(); -
      -
      // Pass a `WebGLData` object and specify a shape yourself.

      // This makes it possible for TF.js applications to avoid GPU / CPU sync.
      // For example, if your application includes a preprocessing step on the GPU,
      // you could upload the GPU output directly to TF.js, rather than first
      // downloading the values.

      // Example for WebGL2:
      if (tf.findBackend('custom-webgl') == null) {
      const customCanvas = document.createElement('canvas');
      const customBackend = new tf.MathBackendWebGL(customCanvas);
      tf.registerBackend('custom-webgl', () => customBackend);
      }
      const savedBackend = tf.getBackend();
      await tf.setBackend('custom-webgl');
      const gl = tf.backend().gpgpu.gl;
      const texture = gl.createTexture();
      const tex2d = gl.TEXTURE_2D;
      const width = 2;
      const height = 2;

      gl.bindTexture(tex2d, texture);
      gl.texParameteri(tex2d, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
      gl.texParameteri(tex2d, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
      gl.texParameteri(tex2d, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
      gl.texParameteri(tex2d, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
      gl.texImage2D(
      tex2d, 0, gl.RGBA32F, // internalFormat
      width, height, 0,
      gl.RGBA, // textureFormat
      gl.FLOAT, // textureType
      new Float32Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
      );

      // Currently, the `texture` has 4 pixels:
      // Pixel0 is {R:0, G:1, B:2, A:3}
      // Pixel1 is {R:4, G:5, B:6, A:7}
      // Pixel2 is {R:8, G:9, B:10, A:11}
      // Pixel3 is {R:12, G:13, B:14, A:15}

      const logicalShape = [height * width * 2];
      const a = tf.tensor({texture, height, width, channels: 'BR'}, logicalShape);
      a.print();
      // Tensor value will be [2, 0, 6, 4, 10, 8, 14, 12], since [2, 0] is the
      // values of 'B' and 'R' channels of Pixel0, [6, 4] is the values of 'B' and
      'R'
      // channels of Pixel1...

      // For postprocessing on the GPU, it's possible to retrieve the texture
      // backing any tensor by calling the tensor's `dataToGPU` method like
      // so:

      const tex = a.dataToGPU();
      await tf.setBackend(savedBackend); -
      -
      // Pass a `WebGPUData` object and specify a shape yourself.

      // This makes it possible for TF.js applications to avoid GPU / CPU sync.
      // For example, if your application includes a preprocessing step on the GPU,
      // you could upload the GPU output directly to TF.js, rather than first
      // downloading the values. Unlike WebGL, this optionally supports zero copy
      // by WebGPUData.zeroCopy. When zeroCopy is false or undefined(default), this
      // passing GPUBuffer can be destroyed after tensor is created. When zeroCopy
      // is true, this GPUBuffer is bound directly by the tensor, so do not destroy
      // this GPUBuffer until all access is done.

      // Example for WebGPU:
      function createGPUBufferFromData(device, data, dtype) {
      const bytesPerElement = 4;
      const sizeInBytes = data.length * bytesPerElement;

      const gpuWriteBuffer = device.createBuffer({
      mappedAtCreation: true,
      size: sizeInBytes,
      usage: GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC
      });
      const arrayBuffer = gpuWriteBuffer.getMappedRange();
      if (dtype === 'float32') {
      new Float32Array(arrayBuffer).set(data);
      } else if (dtype === 'int32') {
      new Int32Array(arrayBuffer).set(data);
      } else {
      throw new Error(
      `Creating tensor from GPUBuffer only supports` +
      `'float32'|'int32' dtype, while the dtype is ${dtype}.`);
      }
      gpuWriteBuffer.unmap();

      const gpuReadBuffer = device.createBuffer({
      mappedAtCreation: false,
      size: sizeInBytes,
      usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.STORAGE |
      GPUBufferUsage.COPY_SRC
      });

      const copyEncoder = device.createCommandEncoder();
      copyEncoder.copyBufferToBuffer(
      gpuWriteBuffer, 0, gpuReadBuffer, 0, sizeInBytes);
      const copyCommands = copyEncoder.finish();
      device.queue.submit([copyCommands]);
      gpuWriteBuffer.destroy();
      return gpuReadBuffer;
      }

      const savedBackend = tf.getBackend();
      await tf.setBackend('webgpu').catch(
      () => {throw new Error(
      'Failed to use WebGPU backend. Please use Chrome Canary to run.')});
      const dtype = 'float32';
      const device = tf.backend().device;
      const aData = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
      const bData = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4];
      const expected = [2, 4, 6, 8, 6, 8, 10, 12, 10, 12, 14, 16, 14, 16, 18, 20];
      const aBuffer = createGPUBufferFromData(device, aData, dtype);
      const shape = [aData.length];
      // To use zeroCopy, use {buffer: aBuffer, zeroCopy: true} instead and destroy
      // aBuffer untill all access is done.
      const a = tf.tensor({buffer: aBuffer}, shape, dtype);
      const b = tf.tensor(bData, shape, dtype);
      const result = tf.add(a, b);
      result.print();
      a.dispose();
      b.dispose();
      result.dispose();
      aBuffer.destroy();
      await tf.setBackend(savedBackend); -
      -

      Type Parameters

      Parameters

      • values: TensorLike | WebGLData | WebGPUData

        The values of the tensor. Can be nested array of numbers, - or a flat array, or a TypedArray, or a WebGLData object, or a -WebGPUData object. If the values are strings, they will be encoded as utf-8 -and kept as Uint8Array[]. If the values is a WebGLData object, the dtype -could only be 'float32' or 'int32' and the object has to have: 1. texture, a -WebGLTexture, the texture must share the same WebGLRenderingContext with -TFJS's WebGL backend (you could create a custom WebGL backend from your -texture's canvas) and the internal texture format for the input texture must -be floating point or normalized integer; 2. height, the height of the -texture; 3. width, the width of the texture; 4. channels, a non-empty subset -of 'RGBA', indicating the values of which channels will be passed to the -tensor, such as 'R' or 'BR' (The order of the channels affect the order of -tensor values. ). (If the values passed from texture is less than the tensor -size, zeros will be padded at the rear.). If the values is a WebGPUData -object, the dtype could only be 'float32' or 'int32 and the object has to -have: buffer, a GPUBuffer. The buffer must: 1. share the same GPUDevice -with TFJS's WebGPU backend; 2. buffer.usage should at least support -GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC; 3. buffer.size should not -be smaller than the byte size of tensor shape. WebGPUData optionally supports -zero copy by flag zeroCopy. When zeroCopy is false or undefined(default), -this passing GPUBuffer can be destroyed after tensor is created. When -zeroCopy is true, this GPUBuffer is bound directly by the tensor, so do not -destroy this GPUBuffer until all access is done.

        -
      • Optional shape: ShapeMap[R]

        The shape of the tensor. Optional. If not provided, - it is inferred from values.

        -
      • Optional dtype: keyof DataTypeMap

        The data type.

        -

      Returns Tensor<R>

      Doc

    \ No newline at end of file +tensor | @vladmandic/face-api - v1.7.14
    • Creates a tf.Tensor with the provided values, shape and dtype.

      +
      // Pass an array of values to create a vector.
      tf.tensor([1, 2, 3, 4]).print(); +
      + +
      // Pass a nested array of values to make a matrix or a higher
      // dimensional tensor.
      tf.tensor([[1, 2], [3, 4]]).print(); +
      + +
      // Pass a flat array and specify a shape yourself.
      tf.tensor([1, 2, 3, 4], [2, 2]).print(); +
      + +
      // Pass a `WebGLData` object and specify a shape yourself.

      // This makes it possible for TF.js applications to avoid GPU / CPU sync.
      // For example, if your application includes a preprocessing step on the GPU,
      // you could upload the GPU output directly to TF.js, rather than first
      // downloading the values.

      // Example for WebGL2:
      if (tf.findBackend('custom-webgl') == null) {
      const customCanvas = document.createElement('canvas');
      const customBackend = new tf.MathBackendWebGL(customCanvas);
      tf.registerBackend('custom-webgl', () => customBackend);
      }
      const savedBackend = tf.getBackend();
      await tf.setBackend('custom-webgl');
      const gl = tf.backend().gpgpu.gl;
      const texture = gl.createTexture();
      const tex2d = gl.TEXTURE_2D;
      const width = 2;
      const height = 2;

      gl.bindTexture(tex2d, texture);
      gl.texParameteri(tex2d, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
      gl.texParameteri(tex2d, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
      gl.texParameteri(tex2d, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
      gl.texParameteri(tex2d, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
      gl.texImage2D(
      tex2d, 0, gl.RGBA32F, // internalFormat
      width, height, 0,
      gl.RGBA, // textureFormat
      gl.FLOAT, // textureType
      new Float32Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
      );

      // Currently, the `texture` has 4 pixels:
      // Pixel0 is {R:0, G:1, B:2, A:3}
      // Pixel1 is {R:4, G:5, B:6, A:7}
      // Pixel2 is {R:8, G:9, B:10, A:11}
      // Pixel3 is {R:12, G:13, B:14, A:15}

      const logicalShape = [height * width * 2];
      const a = tf.tensor({texture, height, width, channels: 'BR'}, logicalShape);
      a.print();
      // Tensor value will be [2, 0, 6, 4, 10, 8, 14, 12], since [2, 0] is the
      // values of 'B' and 'R' channels of Pixel0, [6, 4] is the values of 'B' and
      'R'
      // channels of Pixel1...

      // For postprocessing on the GPU, it's possible to retrieve the texture
      // backing any tensor by calling the tensor's `dataToGPU` method like
      // so:

      const tex = a.dataToGPU();
      await tf.setBackend(savedBackend); +
      + +
      // Pass a `WebGPUData` object and specify a shape yourself.

      // This makes it possible for TF.js applications to avoid GPU / CPU sync.
      // For example, if your application includes a preprocessing step on the GPU,
      // you could upload the GPU output directly to TF.js, rather than first
      // downloading the values. Unlike WebGL, this optionally supports zero copy
      // by WebGPUData.zeroCopy. When zeroCopy is false or undefined(default), this
      // passing GPUBuffer can be destroyed after tensor is created. When zeroCopy
      // is true, this GPUBuffer is bound directly by the tensor, so do not destroy
      // this GPUBuffer until all access is done.

      // Example for WebGPU:
      function createGPUBufferFromData(device, data, dtype) {
      const bytesPerElement = 4;
      const sizeInBytes = data.length * bytesPerElement;

      const gpuWriteBuffer = device.createBuffer({
      mappedAtCreation: true,
      size: sizeInBytes,
      usage: GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC
      });
      const arrayBuffer = gpuWriteBuffer.getMappedRange();
      if (dtype === 'float32') {
      new Float32Array(arrayBuffer).set(data);
      } else if (dtype === 'int32') {
      new Int32Array(arrayBuffer).set(data);
      } else {
      throw new Error(
      `Creating tensor from GPUBuffer only supports` +
      `'float32'|'int32' dtype, while the dtype is ${dtype}.`);
      }
      gpuWriteBuffer.unmap();

      const gpuReadBuffer = device.createBuffer({
      mappedAtCreation: false,
      size: sizeInBytes,
      usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.STORAGE |
      GPUBufferUsage.COPY_SRC
      });

      const copyEncoder = device.createCommandEncoder();
      copyEncoder.copyBufferToBuffer(
      gpuWriteBuffer, 0, gpuReadBuffer, 0, sizeInBytes);
      const copyCommands = copyEncoder.finish();
      device.queue.submit([copyCommands]);
      gpuWriteBuffer.destroy();
      return gpuReadBuffer;
      }

      const savedBackend = tf.getBackend();
      await tf.setBackend('webgpu').catch(
      () => {throw new Error(
      'Failed to use WebGPU backend. Please use Chrome Canary to run.')});
      const dtype = 'float32';
      const device = tf.backend().device;
      const aData = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
      const bData = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4];
      const expected = [2, 4, 6, 8, 6, 8, 10, 12, 10, 12, 14, 16, 14, 16, 18, 20];
      const aBuffer = createGPUBufferFromData(device, aData, dtype);
      const shape = [aData.length];
      // To use zeroCopy, use {buffer: aBuffer, zeroCopy: true} instead and destroy
      // aBuffer untill all access is done.
      const a = tf.tensor({buffer: aBuffer}, shape, dtype);
      const b = tf.tensor(bData, shape, dtype);
      const result = tf.add(a, b);
      result.print();
      a.dispose();
      b.dispose();
      result.dispose();
      aBuffer.destroy();
      await tf.setBackend(savedBackend); +
      + +

      Type Parameters

      Parameters

      • values: TensorLike | WebGLData | WebGPUData

        The values of the tensor. Can be nested array of numbers, +or a flat array, or a TypedArray(At the moment it supports Uint8Array, +Uint8ClampedArray, Int32Array, Float32Array) data types, or a WebGLData +object, or a WebGPUData object. If the values are strings, they will be +encoded as utf-8 and kept as Uint8Array[]. If the values is a WebGLData +object, the dtype could only be 'float32' or 'int32' and the object has to +have: 1. texture, a WebGLTexture, the texture must share the same +WebGLRenderingContext with TFJS's WebGL backend (you could create a custom +WebGL backend from your texture's canvas) and the internal texture format +for the input texture must be floating point or normalized integer; 2. +height, the height of the texture; 3. width, the width of the texture; 4. +channels, a non-empty subset of 'RGBA', indicating the values of which +channels will be passed to the tensor, such as 'R' or 'BR' (The order of the +channels affect the order of tensor values. ). (If the values passed from +texture is less than the tensor size, zeros will be padded at the rear.). If +the values is a WebGPUData object, the dtype could only be 'float32' or +'int32 and the object has to have: buffer, a GPUBuffer. The buffer must:

        +
          +
        1. share the same GPUDevice with TFJS's WebGPU backend; 2. buffer.usage +should at least support GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC; 3. +buffer.size should not be smaller than the byte size of tensor shape. +WebGPUData optionally supports zero copy by flag zeroCopy. When zeroCopy is +false or undefined(default),this passing GPUBuffer can be destroyed after +tensor is created. When zeroCopy is true, this GPUBuffer is bound directly +by the tensor, so do not destroy this GPUBuffer until all access is done.
        2. +
        +
      • Optionalshape: ShapeMap[R]

        The shape of the tensor. Optional. If not provided, +it is inferred from values.

        +
      • Optionaldtype: keyof DataTypeMap

        The data type.

        +

      Returns Tensor<R>

    diff --git a/typedoc/functions/tf.tensor1d-1.html b/typedoc/functions/tf.tensor1d-1.html index f3f4ada..80c58a3 100644 --- a/typedoc/functions/tf.tensor1d-1.html +++ b/typedoc/functions/tf.tensor1d-1.html @@ -1,9 +1,10 @@ -tensor1d | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/tf.tensor2d-1.html b/typedoc/functions/tf.tensor2d-1.html index 49e493c..8ac6d2f 100644 --- a/typedoc/functions/tf.tensor2d-1.html +++ b/typedoc/functions/tf.tensor2d-1.html @@ -1,13 +1,15 @@ -tensor2d | @vladmandic/face-api - v1.7.13
    • Creates rank-2 tf.Tensor with the provided values, shape and dtype.

      +tensor2d | @vladmandic/face-api - v1.7.14
      • Creates rank-2 tf.Tensor with the provided values, shape and dtype.

        The same functionality can be achieved with tf.tensor, but in general we recommend using tf.tensor2d as it makes the code more readable.

        -
        // Pass a nested array.
        tf.tensor2d([[1, 2], [3, 4]]).print(); -
        -
        // Pass a flat array and specify a shape.
        tf.tensor2d([1, 2, 3, 4], [2, 2]).print(); -
        -

        Parameters

        • values: TensorLike2D

          The values of the tensor. Can be nested array of numbers, - or a flat array, or a TypedArray.

          -
        • Optional shape: [number, number]

          The shape of the tensor. If not provided, it is inferred from - values.

          -
        • Optional dtype: keyof DataTypeMap

          The data type.

          -

        Returns Tensor2D

        Doc

      \ No newline at end of file +
      // Pass a nested array.
      tf.tensor2d([[1, 2], [3, 4]]).print(); +
      + +
      // Pass a flat array and specify a shape.
      tf.tensor2d([1, 2, 3, 4], [2, 2]).print(); +
      + +

      Parameters

      • values: TensorLike2D

        The values of the tensor. Can be nested array of numbers, +or a flat array, or a TypedArray.

        +
      • Optionalshape: [number, number]

        The shape of the tensor. If not provided, it is inferred from +values.

        +
      • Optionaldtype: keyof DataTypeMap

        The data type.

        +

      Returns Tensor2D

    diff --git a/typedoc/functions/tf.tensor3d-1.html b/typedoc/functions/tf.tensor3d-1.html index fa9d68a..3cce6a8 100644 --- a/typedoc/functions/tf.tensor3d-1.html +++ b/typedoc/functions/tf.tensor3d-1.html @@ -1,13 +1,15 @@ -tensor3d | @vladmandic/face-api - v1.7.13
    • Creates rank-3 tf.Tensor with the provided values, shape and dtype.

      +tensor3d | @vladmandic/face-api - v1.7.14
      • Creates rank-3 tf.Tensor with the provided values, shape and dtype.

        The same functionality can be achieved with tf.tensor, but in general we recommend using tf.tensor3d as it makes the code more readable.

        -
        // Pass a nested array.
        tf.tensor3d([[[1], [2]], [[3], [4]]]).print(); -
        -
        // Pass a flat array and specify a shape.
        tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print(); -
        -

        Parameters

        • values: TensorLike3D

          The values of the tensor. Can be nested array of numbers, - or a flat array, or a TypedArray.

          -
        • Optional shape: [number, number, number]

          The shape of the tensor. If not provided, it is inferred from - values.

          -
        • Optional dtype: keyof DataTypeMap

          The data type.

          -

        Returns Tensor3D

        Doc

      \ No newline at end of file +
      // Pass a nested array.
      tf.tensor3d([[[1], [2]], [[3], [4]]]).print(); +
      + +
      // Pass a flat array and specify a shape.
      tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print(); +
      + +

      Parameters

      • values: TensorLike3D

        The values of the tensor. Can be nested array of numbers, +or a flat array, or a TypedArray.

        +
      • Optionalshape: [number, number, number]

        The shape of the tensor. If not provided, it is inferred from +values.

        +
      • Optionaldtype: keyof DataTypeMap

        The data type.

        +

      Returns Tensor3D

    diff --git a/typedoc/functions/tf.tensor4d-1.html b/typedoc/functions/tf.tensor4d-1.html index 8dc9c7d..c018ad3 100644 --- a/typedoc/functions/tf.tensor4d-1.html +++ b/typedoc/functions/tf.tensor4d-1.html @@ -1,13 +1,15 @@ -tensor4d | @vladmandic/face-api - v1.7.13
    • Creates rank-4 tf.Tensor with the provided values, shape and dtype.

      +tensor4d | @vladmandic/face-api - v1.7.14
      • Creates rank-4 tf.Tensor with the provided values, shape and dtype.

        The same functionality can be achieved with tf.tensor, but in general we recommend using tf.tensor4d as it makes the code more readable.

        -
        // Pass a nested array.
        tf.tensor4d([[[[1], [2]], [[3], [4]]]]).print(); -
        -
        // Pass a flat array and specify a shape.
        tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]).print(); -
        -

        Parameters

        • values: TensorLike4D

          The values of the tensor. Can be nested array of numbers, - or a flat array, or a TypedArray.

          -
        • Optional shape: [number, number, number, number]

          The shape of the tensor. Optional. If not provided, - it is inferred from values.

          -
        • Optional dtype: keyof DataTypeMap

          The data type.

          -

        Returns Tensor4D

        Doc

      \ No newline at end of file +
      // Pass a nested array.
      tf.tensor4d([[[[1], [2]], [[3], [4]]]]).print(); +
      + +
      // Pass a flat array and specify a shape.
      tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]).print(); +
      + +

      Parameters

      • values: TensorLike4D

        The values of the tensor. Can be nested array of numbers, +or a flat array, or a TypedArray.

        +
      • Optionalshape: [number, number, number, number]

        The shape of the tensor. Optional. If not provided, +it is inferred from values.

        +
      • Optionaldtype: keyof DataTypeMap

        The data type.

        +

      Returns Tensor4D

    diff --git a/typedoc/functions/tf.tidy.html b/typedoc/functions/tf.tidy.html index 30979ff..adc7250 100644 --- a/typedoc/functions/tf.tidy.html +++ b/typedoc/functions/tf.tidy.html @@ -1,4 +1,4 @@ -tidy | @vladmandic/face-api - v1.7.13
    • Executes the provided function fn and after it is executed, cleans up all +tidy | @vladmandic/face-api - v1.7.14

      • Executes the provided function fn and after it is executed, cleans up all intermediate tensors allocated by fn except those returned by fn. fn must not return a Promise (async functions not allowed). The returned result can be a complex object.

        @@ -7,11 +7,12 @@ operations in tf.tidy for automatic memory cleanup.

        NOTE: Variables do not get cleaned up when inside a tidy(). If you want to dispose variables, please use tf.disposeVariables or call dispose() directly on variables.

        -
        // y = 2 ^ 2 + 1
        const y = tf.tidy(() => {
        // a, b, and one will be cleaned up when the tidy ends.
        const one = tf.scalar(1);
        const a = tf.scalar(2);
        const b = a.square();

        console.log('numTensors (in tidy): ' + tf.memory().numTensors);

        // The value returned inside the tidy function will return
        // through the tidy, in this case to the variable y.
        return b.add(one);
        });

        console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
        y.print(); -
        -

        Type Parameters

        • T extends TensorContainer

        Parameters

        • nameOrFn: string | ScopeFn<T>

          The name of the closure, or the function to execute. - If a name is provided, the 2nd argument should be the function. - If debug mode is on, the timing and the memory usage of the function - will be tracked and displayed on the console using the provided name.

          -
        • Optional fn: ScopeFn<T>

          The function to execute.

          -

        Returns T

        Doc

      \ No newline at end of file +
      // y = 2 ^ 2 + 1
      const y = tf.tidy(() => {
      // a, b, and one will be cleaned up when the tidy ends.
      const one = tf.scalar(1);
      const a = tf.scalar(2);
      const b = a.square();

      console.log('numTensors (in tidy): ' + tf.memory().numTensors);

      // The value returned inside the tidy function will return
      // through the tidy, in this case to the variable y.
      return b.add(one);
      });

      console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
      y.print(); +
      + +

      Type Parameters

      • T extends TensorContainer

      Parameters

      • nameOrFn: string | ScopeFn<T>

        The name of the closure, or the function to execute. +If a name is provided, the 2nd argument should be the function. +If debug mode is on, the timing and the memory usage of the function +will be tracked and displayed on the console using the provided name.

        +
      • Optionalfn: ScopeFn<T>

        The function to execute.

        +

      Returns T

    diff --git a/typedoc/functions/tf.tile.html b/typedoc/functions/tf.tile.html index 09c91d9..d83f0aa 100644 --- a/typedoc/functions/tf.tile.html +++ b/typedoc/functions/tf.tile.html @@ -1,12 +1,14 @@ -tile | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/tf.transpose.html b/typedoc/functions/tf.transpose.html index cf2784e..00073c0 100644 --- a/typedoc/functions/tf.transpose.html +++ b/typedoc/functions/tf.transpose.html @@ -1,11 +1,12 @@ -transpose | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/tf.unstack.html b/typedoc/functions/tf.unstack.html index 668ff9f..68bf6bf 100644 --- a/typedoc/functions/tf.unstack.html +++ b/typedoc/functions/tf.unstack.html @@ -1,6 +1,7 @@ -unstack | @vladmandic/face-api - v1.7.13
    • Unstacks a tf.Tensor of rank-R into a list of rank-(R-1) tf.Tensors.

      -
      const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);

      tf.unstack(a).forEach(tensor => tensor.print()); -
      -

      Parameters

      • x: TensorLike | Tensor<Rank>

        A tensor object.

        -
      • Optional axis: number

        The axis to unstack along. Defaults to 0 (the first dim).

        -

      Returns Tensor[]

      Doc

    \ No newline at end of file +unstack | @vladmandic/face-api - v1.7.14
    • Unstacks a tf.Tensor of rank-R into a list of rank-(R-1) tf.Tensors.

      +
      const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);

      tf.unstack(a).forEach(tensor => tensor.print()); +
      + +

      Parameters

      • x: TensorLike | Tensor<Rank>

        A tensor object.

        +
      • Optionalaxis: number

        The axis to unstack along. Defaults to 0 (the first dim).

        +

      Returns Tensor[]

    diff --git a/typedoc/functions/tf.zeros.html b/typedoc/functions/tf.zeros.html index a43b88a..0b8ef84 100644 --- a/typedoc/functions/tf.zeros.html +++ b/typedoc/functions/tf.zeros.html @@ -1,7 +1,8 @@ -zeros | @vladmandic/face-api - v1.7.13
    • Creates a tf.Tensor with all elements set to 0.

      -
      tf.zeros([2, 2]).print();
      -
      -

      Type Parameters

      Parameters

      • shape: ShapeMap[R]

        An array of integers defining the output tensor shape.

        -
      • Optional dtype: keyof DataTypeMap

        The type of an element in the resulting tensor. Can - be 'float32', 'int32' or 'bool'. Defaults to 'float'.

        -

      Returns Tensor<R>

      Doc

    \ No newline at end of file +zeros | @vladmandic/face-api - v1.7.14
    • Creates a tf.Tensor with all elements set to 0.

      +
      tf.zeros([2, 2]).print();
      +
      + +

      Type Parameters

      Parameters

      • shape: ShapeMap[R]

        An array of integers defining the output tensor shape.

        +
      • Optionaldtype: keyof DataTypeMap

        The type of an element in the resulting tensor. Can +be 'float32', 'int32' or 'bool'. Defaults to 'float'.

        +

      Returns Tensor<R>

    diff --git a/typedoc/functions/tinyFaceDetector-1.html b/typedoc/functions/tinyFaceDetector-1.html index 78b2fcd..31dc1df 100644 --- a/typedoc/functions/tinyFaceDetector-1.html +++ b/typedoc/functions/tinyFaceDetector-1.html @@ -1,5 +1,5 @@ -tinyFaceDetector | @vladmandic/face-api - v1.7.13

    Function tinyFaceDetector

    diff --git a/typedoc/functions/tinyYolov2-1.html b/typedoc/functions/tinyYolov2-1.html index 73c3e40..0ef703d 100644 --- a/typedoc/functions/tinyYolov2-1.html +++ b/typedoc/functions/tinyYolov2-1.html @@ -1,5 +1,5 @@ -tinyYolov2 | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/toNetInput.html b/typedoc/functions/toNetInput.html index 5ba1728..12a1064 100644 --- a/typedoc/functions/toNetInput.html +++ b/typedoc/functions/toNetInput.html @@ -1,4 +1,4 @@ -toNetInput | @vladmandic/face-api - v1.7.13
    diff --git a/typedoc/functions/utils.computeReshapedDimensions.html b/typedoc/functions/utils.computeReshapedDimensions.html index ff0d027..af77d42 100644 --- a/typedoc/functions/utils.computeReshapedDimensions.html +++ b/typedoc/functions/utils.computeReshapedDimensions.html @@ -1 +1 @@ -computeReshapedDimensions | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +computeReshapedDimensions | @vladmandic/face-api - v1.7.14

    Function computeReshapedDimensions

    diff --git a/typedoc/functions/utils.getCenterPoint.html b/typedoc/functions/utils.getCenterPoint.html index 30ac2e2..4372d5b 100644 --- a/typedoc/functions/utils.getCenterPoint.html +++ b/typedoc/functions/utils.getCenterPoint.html @@ -1 +1 @@ -getCenterPoint | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +getCenterPoint | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isDimensions.html b/typedoc/functions/utils.isDimensions.html index cc80c72..2bfd97f 100644 --- a/typedoc/functions/utils.isDimensions.html +++ b/typedoc/functions/utils.isDimensions.html @@ -1 +1 @@ -isDimensions | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isDimensions | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isEven.html b/typedoc/functions/utils.isEven.html index 488f12f..41c02fb 100644 --- a/typedoc/functions/utils.isEven.html +++ b/typedoc/functions/utils.isEven.html @@ -1 +1 @@ -isEven | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isEven | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isFloat.html b/typedoc/functions/utils.isFloat.html index 452fe35..5c44d52 100644 --- a/typedoc/functions/utils.isFloat.html +++ b/typedoc/functions/utils.isFloat.html @@ -1 +1 @@ -isFloat | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isFloat | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isTensor.html b/typedoc/functions/utils.isTensor.html index d0d1557..803be42 100644 --- a/typedoc/functions/utils.isTensor.html +++ b/typedoc/functions/utils.isTensor.html @@ -1 +1 @@ -isTensor | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isTensor | @vladmandic/face-api - v1.7.14
    • Parameters

      • tensor: any
      • dim: number

      Returns boolean

    diff --git a/typedoc/functions/utils.isTensor1D.html b/typedoc/functions/utils.isTensor1D.html index 8243bc1..4cf8f55 100644 --- a/typedoc/functions/utils.isTensor1D.html +++ b/typedoc/functions/utils.isTensor1D.html @@ -1 +1 @@ -isTensor1D | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isTensor1D | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isTensor2D.html b/typedoc/functions/utils.isTensor2D.html index 76c9f83..7c8defb 100644 --- a/typedoc/functions/utils.isTensor2D.html +++ b/typedoc/functions/utils.isTensor2D.html @@ -1 +1 @@ -isTensor2D | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isTensor2D | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isTensor3D.html b/typedoc/functions/utils.isTensor3D.html index 11a0d14..1d85650 100644 --- a/typedoc/functions/utils.isTensor3D.html +++ b/typedoc/functions/utils.isTensor3D.html @@ -1 +1 @@ -isTensor3D | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isTensor3D | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isTensor4D.html b/typedoc/functions/utils.isTensor4D.html index 3e303e4..822cbd3 100644 --- a/typedoc/functions/utils.isTensor4D.html +++ b/typedoc/functions/utils.isTensor4D.html @@ -1 +1 @@ -isTensor4D | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isTensor4D | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isValidNumber.html b/typedoc/functions/utils.isValidNumber.html index 8b6cbfc..93f9b29 100644 --- a/typedoc/functions/utils.isValidNumber.html +++ b/typedoc/functions/utils.isValidNumber.html @@ -1 +1 @@ -isValidNumber | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isValidNumber | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.isValidProbablitiy.html b/typedoc/functions/utils.isValidProbablitiy.html index d795349..ff3bcb5 100644 --- a/typedoc/functions/utils.isValidProbablitiy.html +++ b/typedoc/functions/utils.isValidProbablitiy.html @@ -1 +1 @@ -isValidProbablitiy | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +isValidProbablitiy | @vladmandic/face-api - v1.7.14
    diff --git a/typedoc/functions/utils.range.html b/typedoc/functions/utils.range.html index 85e96b7..dd7cfa7 100644 --- a/typedoc/functions/utils.range.html +++ b/typedoc/functions/utils.range.html @@ -1 +1 @@ -range | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +range | @vladmandic/face-api - v1.7.14
    • Parameters

      • num: number
      • start: number
      • step: number

      Returns number[]

    diff --git a/typedoc/functions/utils.round.html b/typedoc/functions/utils.round.html index 16ab455..3add397 100644 --- a/typedoc/functions/utils.round.html +++ b/typedoc/functions/utils.round.html @@ -1 +1 @@ -round | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +round | @vladmandic/face-api - v1.7.14
    • Parameters

      • num: number
      • prec: number = 2

      Returns number

    diff --git a/typedoc/functions/validateConfig.html b/typedoc/functions/validateConfig.html index 13b0f7f..360a3fe 100644 --- a/typedoc/functions/validateConfig.html +++ b/typedoc/functions/validateConfig.html @@ -1 +1 @@ -validateConfig | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +validateConfig | @vladmandic/face-api - v1.7.14

    Function validateConfig

    diff --git a/typedoc/hierarchy.html b/typedoc/hierarchy.html index c421195..b06934e 100644 --- a/typedoc/hierarchy.html +++ b/typedoc/hierarchy.html @@ -1 +1 @@ -@vladmandic/face-api - v1.7.13
    \ No newline at end of file +@vladmandic/face-api - v1.7.14
    diff --git a/typedoc/index.html b/typedoc/index.html index fd6bdb2..038acad 100644 --- a/typedoc/index.html +++ b/typedoc/index.html @@ -1,155 +1,155 @@ -@vladmandic/face-api - v1.7.13

    @vladmandic/face-api - v1.7.13

    Index

    Namespaces

    Enumerations

    Classes

    Interfaces

    Type Aliases

    Variables

    Functions

    \ No newline at end of file +@vladmandic/face-api - v1.7.14

    @vladmandic/face-api - v1.7.14

    Index

    Namespaces

    Enumerations

    Classes

    Interfaces

    Type Aliases

    Variables

    Functions

    diff --git a/typedoc/interfaces/IBoundingBox.html b/typedoc/interfaces/IBoundingBox.html index 0772cd2..607b8db 100644 --- a/typedoc/interfaces/IBoundingBox.html +++ b/typedoc/interfaces/IBoundingBox.html @@ -1,5 +1,5 @@ -IBoundingBox | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IBoundingBox | @vladmandic/face-api - v1.7.14

    Interface IBoundingBox

    interface IBoundingBox {
        bottom: number;
        left: number;
        right: number;
        top: number;
    }

    Implemented by

    Properties

    Properties

    bottom: number
    left: number
    right: number
    top: number
    diff --git a/typedoc/interfaces/IDimensions.html b/typedoc/interfaces/IDimensions.html index 7be945e..ef1b49e 100644 --- a/typedoc/interfaces/IDimensions.html +++ b/typedoc/interfaces/IDimensions.html @@ -1,3 +1,3 @@ -IDimensions | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IDimensions | @vladmandic/face-api - v1.7.14

    Interface IDimensions

    interface IDimensions {
        height: number;
        width: number;
    }

    Implemented by

    Properties

    Properties

    height: number
    width: number
    diff --git a/typedoc/interfaces/IFaceDetecion.html b/typedoc/interfaces/IFaceDetecion.html index e9649b4..eb4c087 100644 --- a/typedoc/interfaces/IFaceDetecion.html +++ b/typedoc/interfaces/IFaceDetecion.html @@ -1,3 +1,3 @@ -IFaceDetecion | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IFaceDetecion | @vladmandic/face-api - v1.7.14

    Interface IFaceDetecion

    interface IFaceDetecion {
        box: Box<any>;
        score: number;
    }

    Implemented by

    Properties

    Properties

    box: Box<any>
    score: number
    diff --git a/typedoc/interfaces/IFaceLandmarks.html b/typedoc/interfaces/IFaceLandmarks.html index bbf3403..0749a19 100644 --- a/typedoc/interfaces/IFaceLandmarks.html +++ b/typedoc/interfaces/IFaceLandmarks.html @@ -1,3 +1,3 @@ -IFaceLandmarks | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IFaceLandmarks | @vladmandic/face-api - v1.7.14

    Interface IFaceLandmarks

    interface IFaceLandmarks {
        positions: Point[];
        shift: Point;
    }

    Implemented by

    Properties

    Properties

    positions: Point[]
    shift: Point
    diff --git a/typedoc/interfaces/IFaceMatch.html b/typedoc/interfaces/IFaceMatch.html index 5c10bbf..e5001c4 100644 --- a/typedoc/interfaces/IFaceMatch.html +++ b/typedoc/interfaces/IFaceMatch.html @@ -1,3 +1,3 @@ -IFaceMatch | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IFaceMatch | @vladmandic/face-api - v1.7.14

    Interface IFaceMatch

    interface IFaceMatch {
        distance: number;
        label: string;
    }

    Implemented by

    Properties

    Properties

    distance: number
    label: string
    diff --git a/typedoc/interfaces/IPoint.html b/typedoc/interfaces/IPoint.html index 773f259..1fdb763 100644 --- a/typedoc/interfaces/IPoint.html +++ b/typedoc/interfaces/IPoint.html @@ -1,3 +1,3 @@ -IPoint | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IPoint | @vladmandic/face-api - v1.7.14
    interface IPoint {
        x: number;
        y: number;
    }

    Implemented by

    Properties

    x +y +

    Properties

    x: number
    y: number
    diff --git a/typedoc/interfaces/IRect.html b/typedoc/interfaces/IRect.html index df90712..f238e42 100644 --- a/typedoc/interfaces/IRect.html +++ b/typedoc/interfaces/IRect.html @@ -1,5 +1,5 @@ -IRect | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IRect | @vladmandic/face-api - v1.7.14
    interface IRect {
        height: number;
        width: number;
        x: number;
        y: number;
    }

    Implemented by

    Properties

    Properties

    height: number
    width: number
    x: number
    y: number
    diff --git a/typedoc/interfaces/ISsdMobilenetv1Options.html b/typedoc/interfaces/ISsdMobilenetv1Options.html index 27b124b..5fc4337 100644 --- a/typedoc/interfaces/ISsdMobilenetv1Options.html +++ b/typedoc/interfaces/ISsdMobilenetv1Options.html @@ -1,3 +1,3 @@ -ISsdMobilenetv1Options | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +ISsdMobilenetv1Options | @vladmandic/face-api - v1.7.14

    Interface ISsdMobilenetv1Options

    interface ISsdMobilenetv1Options {
        maxResults?: number;
        minConfidence?: number;
    }

    Properties

    maxResults?: number
    minConfidence?: number
    diff --git a/typedoc/interfaces/ITinyYolov2Options.html b/typedoc/interfaces/ITinyYolov2Options.html index 4a81771..776e136 100644 --- a/typedoc/interfaces/ITinyYolov2Options.html +++ b/typedoc/interfaces/ITinyYolov2Options.html @@ -1,3 +1,3 @@ -ITinyYolov2Options | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +ITinyYolov2Options | @vladmandic/face-api - v1.7.14

    Interface ITinyYolov2Options

    interface ITinyYolov2Options {
        inputSize?: number;
        scoreThreshold?: number;
    }

    Properties

    inputSize?: number
    scoreThreshold?: number
    diff --git a/typedoc/interfaces/draw.IDrawBoxOptions.html b/typedoc/interfaces/draw.IDrawBoxOptions.html index 1f5ef2c..4e1b7a0 100644 --- a/typedoc/interfaces/draw.IDrawBoxOptions.html +++ b/typedoc/interfaces/draw.IDrawBoxOptions.html @@ -1,5 +1,5 @@ -IDrawBoxOptions | @vladmandic/face-api - v1.7.13
    \ No newline at end of file +IDrawBoxOptions | @vladmandic/face-api - v1.7.14
    interface IDrawBoxOptions {
        boxColor?: string;
        drawLabelOptions?: IDrawTextFieldOptions;
        label?: string;
        lineWidth?: number;
    }

    Properties

    boxColor?: string
    drawLabelOptions?: IDrawTextFieldOptions
    label?: string
    lineWidth?: number
    diff --git a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html index d8c2b4a..33929ac 100644 --- a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html +++ b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html @@ -1,7 +1,7 @@ -IDrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.13

    Interface IDrawFaceLandmarksOptions

    interface IDrawFaceLandmarksOptions {
        drawLines?: boolean;
        drawPoints?: boolean;
        lineColor?: string;
        lineWidth?: number;
        pointColor?: string;
        pointSize?: number;
    }

    Properties

    drawLines?: boolean
    drawPoints?: boolean
    lineColor?: string
    lineWidth?: number
    pointColor?: string
    pointSize?: number
    \ No newline at end of file +IDrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.14

    Interface IDrawFaceLandmarksOptions

    interface IDrawFaceLandmarksOptions {
        drawLines?: boolean;
        drawPoints?: boolean;
        lineColor?: string;
        lineWidth?: number;
        pointColor?: string;
        pointSize?: number;
    }

    Properties

    drawLines?: boolean
    drawPoints?: boolean
    lineColor?: string
    lineWidth?: number
    pointColor?: string
    pointSize?: number
    diff --git a/typedoc/interfaces/draw.IDrawTextFieldOptions.html b/typedoc/interfaces/draw.IDrawTextFieldOptions.html index 3256343..5f093eb 100644 --- a/typedoc/interfaces/draw.IDrawTextFieldOptions.html +++ b/typedoc/interfaces/draw.IDrawTextFieldOptions.html @@ -1,7 +1,7 @@ -IDrawTextFieldOptions | @vladmandic/face-api - v1.7.13

    Interface IDrawTextFieldOptions

    interface IDrawTextFieldOptions {
        anchorPosition?: AnchorPosition;
        backgroundColor?: string;
        fontColor?: string;
        fontSize?: number;
        fontStyle?: string;
        padding?: number;
    }

    Implemented by

    Properties

    anchorPosition?: AnchorPosition
    backgroundColor?: string
    fontColor?: string
    fontSize?: number
    fontStyle?: string
    padding?: number
    \ No newline at end of file +IDrawTextFieldOptions | @vladmandic/face-api - v1.7.14

    Interface IDrawTextFieldOptions

    interface IDrawTextFieldOptions {
        anchorPosition?: AnchorPosition;
        backgroundColor?: string;
        fontColor?: string;
        fontSize?: number;
        fontStyle?: string;
        padding?: number;
    }

    Implemented by

    Properties

    anchorPosition?: AnchorPosition
    backgroundColor?: string
    fontColor?: string
    fontSize?: number
    fontStyle?: string
    padding?: number
    diff --git a/typedoc/interfaces/tf.io.IOHandler.html b/typedoc/interfaces/tf.io.IOHandler.html index 68c2aa5..ee10757 100644 --- a/typedoc/interfaces/tf.io.IOHandler.html +++ b/typedoc/interfaces/tf.io.IOHandler.html @@ -1,6 +1,6 @@ -IOHandler | @vladmandic/face-api - v1.7.13

    Interface for a model import/export handler.

    +IOHandler | @vladmandic/face-api - v1.7.14

    Interface for a model import/export handler.

    The save and load handlers are both optional, in order to allow handlers that support only saving or loading.

    -
    interface IOHandler {
        load?: LoadHandler;
        save?: SaveHandler;
    }

    Properties

    Properties

    \ No newline at end of file +
    interface IOHandler {
        load?: LoadHandler;
        save?: SaveHandler;
    }

    Properties

    Properties

    diff --git a/typedoc/interfaces/tf.io.LoadOptions.html b/typedoc/interfaces/tf.io.LoadOptions.html index 08ff8c1..a65aac4 100644 --- a/typedoc/interfaces/tf.io.LoadOptions.html +++ b/typedoc/interfaces/tf.io.LoadOptions.html @@ -1,33 +1,32 @@ -LoadOptions | @vladmandic/face-api - v1.7.13

    Innamespace

    io

    -
    interface LoadOptions {
        fetchFunc?: {
            (input, init?): Promise<Response>;
            (input, init?): Promise<Response>;
            (input, init?): Promise<Response>;
        };
        fromTFHub?: boolean;
        onProgress?: OnProgressCallback;
        requestInit?: RequestInit;
        streamWeights?: boolean;
        strict?: boolean;
        weightPathPrefix?: string;
        weightUrlConverter?: ((weightFileName) => Promise<string>);
    }

    Properties

    fetchFunc?: {
        (input, init?): Promise<Response>;
        (input, init?): Promise<Response>;
        (input, init?): Promise<Response>;
    }

    A function used to override the window.fetch function.

    -

    Type declaration

      • (input, init?): Promise<Response>
      • A function used to override the window.fetch function.

        -

        Parameters

        • input: RequestInfo | URL
        • Optional init: RequestInit

        Returns Promise<Response>

      • (input, init?): Promise<Response>
      • A function used to override the window.fetch function.

        -

        Parameters

        • input: RequestInfo | URL
        • Optional init: RequestInit

        Returns Promise<Response>

      • (input, init?): Promise<Response>
      • A function used to override the window.fetch function.

        -

        Parameters

        • input: string | Request | URL
        • Optional init: RequestInit

        Returns Promise<Response>

    fromTFHub?: boolean

    Whether the module or model is to be loaded from TF Hub.

    +LoadOptions | @vladmandic/face-api - v1.7.14

    io

    +
    interface LoadOptions {
        fetchFunc?: {
            (input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
            (input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
            (input: string | Request | URL, init?: RequestInit): Promise<Response>;
        };
        fromTFHub?: boolean;
        onProgress?: OnProgressCallback;
        requestInit?: RequestInit;
        streamWeights?: boolean;
        strict?: boolean;
        weightPathPrefix?: string;
        weightUrlConverter?: ((weightFileName: string) => Promise<string>);
    }

    Properties

    fetchFunc?: {
        (input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
        (input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
        (input: string | Request | URL, init?: RequestInit): Promise<Response>;
    }

    A function used to override the window.fetch function.

    +

    Type declaration

      • (input, init?): Promise<Response>
      • Parameters

        • input: RequestInfo | URL
        • Optionalinit: RequestInit

        Returns Promise<Response>

      • (input, init?): Promise<Response>
      • Parameters

        • input: RequestInfo | URL
        • Optionalinit: RequestInit

        Returns Promise<Response>

      • (input, init?): Promise<Response>
      • Parameters

        • input: string | Request | URL
        • Optionalinit: RequestInit

        Returns Promise<Response>

    fromTFHub?: boolean

    Whether the module or model is to be loaded from TF Hub.

    Setting this to true allows passing a TF-Hub module URL, omitting the standard model file name and the query parameters.

    Default: false.

    -
    onProgress?: OnProgressCallback

    Progress callback.

    -
    requestInit?: RequestInit

    RequestInit (options) for HTTP requests.

    +
    onProgress?: OnProgressCallback

    Progress callback.

    +
    requestInit?: RequestInit

    RequestInit (options) for HTTP requests.

    For detailed information on the supported fields, see -https://developer.mozilla.org/en-US/docs/Web/API/Request/Request

    -
    streamWeights?: boolean

    Whether to stream the model directly to the backend or cache all its +https://developer.mozilla.org/en-US/docs/Web/API/Request/Request

    +
    streamWeights?: boolean

    Whether to stream the model directly to the backend or cache all its weights on CPU first. Useful for large models.

    -
    strict?: boolean

    Strict loading model: whether extraneous weights or missing +

    strict?: boolean

    Strict loading model: whether extraneous weights or missing weights should trigger an Error.

    If true, require that the provided weights exactly match those required by the layers. false means that both extra weights and missing weights will be silently ignored.

    Default: true.

    -
    weightPathPrefix?: string

    Path prefix for weight files, by default this is calculated from the +

    weightPathPrefix?: string

    Path prefix for weight files, by default this is calculated from the path of the model JSON file.

    For instance, if the path to the model JSON file is http://localhost/foo/model.json, then the default path prefix will be @@ -37,18 +36,11 @@ loaded from http://localhost/foo/group1-shard1of2 by default. Howev if you provide a weightPathPrefix value of http://localhost/foo/alt-weights, then the weight file will be loaded from the path http://localhost/foo/alt-weights/group1-shard1of2 instead.

    -
    weightUrlConverter?: ((weightFileName) => Promise<string>)

    An async function to convert weight file name to URL. The weight file -names are stored in model.json's weightsManifest.paths field. By default we +

    weightUrlConverter?: ((weightFileName: string) => Promise<string>)

    An async function to convert weight file name to URL. The weight file +names are stored in model.json's weightsManifest.paths field. By default we consider weight files are colocated with the model.json file. For example: - model.json URL: https://www.google.com/models/1/model.json - group1-shard1of1.bin url: - https://www.google.com/models/1/group1-shard1of1.bin

    +model.json URL: https://www.google.com/models/1/model.json +group1-shard1of1.bin url: +https://www.google.com/models/1/group1-shard1of1.bin

    With this func you can convert the weight file name to any URL.

    -

    Type declaration

      • (weightFileName): Promise<string>
      • An async function to convert weight file name to URL. The weight file -names are stored in model.json's weightsManifest.paths field. By default we -consider weight files are colocated with the model.json file. For example: - model.json URL: https://www.google.com/models/1/model.json - group1-shard1of1.bin url: - https://www.google.com/models/1/group1-shard1of1.bin

        -

        With this func you can convert the weight file name to any URL.

        -

        Parameters

        • weightFileName: string

        Returns Promise<string>

    \ No newline at end of file +
    diff --git a/typedoc/interfaces/tf.io.ModelArtifacts.html b/typedoc/interfaces/tf.io.ModelArtifacts.html index e4ce9aa..f8aa529 100644 --- a/typedoc/interfaces/tf.io.ModelArtifacts.html +++ b/typedoc/interfaces/tf.io.ModelArtifacts.html @@ -1,50 +1,47 @@ -ModelArtifacts | @vladmandic/face-api - v1.7.13

    The serialized artifacts of a model, including topology and weights.

    +ModelArtifacts | @vladmandic/face-api - v1.7.14

    The serialized artifacts of a model, including topology and weights.

    The modelTopology, trainingConfig, weightSpecs and weightData fields of this interface are optional, in order to support topology- or weights-only saving and loading.

    Note this interface is used internally in IOHandlers. For the file format written to disk as model.json, see ModelJSON.

    -
    interface ModelArtifacts {
        convertedBy?: null | string;
        format?: string;
        generatedBy?: string;
        getWeightStream?: (() => ReadableStream<ArrayBuffer>);
        initializerSignature?: {};
        modelInitializer?: {};
        modelTopology?: {} | ArrayBuffer;
        signature?: {};
        trainingConfig?: TrainingConfig;
        userDefinedMetadata?: {
            [key: string]: {};
        };
        weightData?: WeightData;
        weightSpecs?: WeightsManifestEntry[];
    }

    Properties

    convertedBy?: null | string

    What library or tool is responsible for converting the original model +

    interface ModelArtifacts {
        convertedBy?: null | string;
        format?: string;
        generatedBy?: string;
        getWeightStream?: (() => ReadableStream<ArrayBuffer>);
        initializerSignature?: {};
        modelInitializer?: {};
        modelTopology?: {} | ArrayBuffer;
        signature?: {};
        trainingConfig?: TrainingConfig;
        userDefinedMetadata?: {
            [key: string]: {};
        };
        weightData?: WeightData;
        weightSpecs?: WeightsManifestEntry[];
    }

    Properties

    convertedBy?: null | string

    What library or tool is responsible for converting the original model to this format, applicable only if the model is output by a converter.

    -

    Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.

    +

    Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.

    A value of null means the model artifacts are generated without any conversion process (e.g., saved directly from a TensorFlow.js tf.LayersModel instance.)

    -
    format?: string

    Hard-coded format name for models saved from TensorFlow.js or converted +

    format?: string

    Hard-coded format name for models saved from TensorFlow.js or converted by TensorFlow.js Converter.

    -
    generatedBy?: string

    What library is responsible for originally generating this artifact.

    -

    Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.

    -
    getWeightStream?: (() => ReadableStream<ArrayBuffer>)

    Returns a stream of the weights. Some models are too large to fit in -V8's memory heap, and getWeightStream loads their weights without storing +

    generatedBy?: string

    What library is responsible for originally generating this artifact.

    +

    Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.

    +
    getWeightStream?: (() => ReadableStream<ArrayBuffer>)

    Returns a stream of the weights. Some models are too large to fit in +V8's memory heap, and getWeightStream loads their weights without storing them all in memory at the same time.

    -

    Type declaration

      • (): ReadableStream<ArrayBuffer>
      • Returns a stream of the weights. Some models are too large to fit in -V8's memory heap, and getWeightStream loads their weights without storing -them all in memory at the same time.

        -

        Returns ReadableStream<ArrayBuffer>

    initializerSignature?: {}

    Inputs and outputs signature for model initializer.

    -

    Type declaration

      modelInitializer?: {}

      Initializer for the model.

      -

      Type declaration

        modelTopology?: {} | ArrayBuffer

        Model topology.

        +
        initializerSignature?: {}

        Inputs and outputs signature for model initializer.

        +
        modelInitializer?: {}

        Initializer for the model.

        +
        modelTopology?: {} | ArrayBuffer

        Model topology.

        For Keras-style tf.Models, this is a JSON object. For TensorFlow-style models (e.g., SavedModel), this is the JSON encoding of the GraphDef protocol buffer.

        -

        Type declaration

          signature?: {}

          Inputs and outputs signature for saved model.

          -

          Type declaration

            trainingConfig?: TrainingConfig

            Serialized configuration for the model's training.

            -
            userDefinedMetadata?: {
                [key: string]: {};
            }

            User-defined metadata about the model.

            -

            Type declaration

            • [key: string]: {}
              weightData?: WeightData

              Binary buffer(s) for all weight values in the order specified by +

              signature?: {}

              Inputs and outputs signature for saved model.

              +
              trainingConfig?: TrainingConfig

              Serialized configuration for the model's training.

              +
              userDefinedMetadata?: {
                  [key: string]: {};
              }

              User-defined metadata about the model.

              +
              weightData?: WeightData

              Binary buffer(s) for all weight values in the order specified by weightSpecs. This may be a single ArrayBuffer of all the weights concatenated together or an Array of ArrayBuffers containing the weights (weights may be sharded across multiple ArrayBuffers).

              -
              weightSpecs?: WeightsManifestEntry[]

              Weight specifications.

              +
              weightSpecs?: WeightsManifestEntry[]

              Weight specifications.

              This corresponds to the weightsData below.

              -
              \ No newline at end of file +
              diff --git a/typedoc/interfaces/tf.io.ModelArtifactsInfo.html b/typedoc/interfaces/tf.io.ModelArtifactsInfo.html index 723ea4d..4015255 100644 --- a/typedoc/interfaces/tf.io.ModelArtifactsInfo.html +++ b/typedoc/interfaces/tf.io.ModelArtifactsInfo.html @@ -1,24 +1,24 @@ -ModelArtifactsInfo | @vladmandic/face-api - v1.7.13

              Interface ModelArtifactsInfo

              interface ModelArtifactsInfo {
                  dateSaved: Date;
                  modelTopologyBytes?: number;
                  modelTopologyType: "JSON" | "GraphDef";
                  weightDataBytes?: number;
                  weightSpecsBytes?: number;
              }

              Properties

              dateSaved: Date

              Timestamp for when the model is saved.

              -
              modelTopologyBytes?: number

              Size of model topology (Keras JSON or GraphDef), in bytes.

              -
              modelTopologyType: "JSON" | "GraphDef"

              TODO (cais,yassogba) consider removing GraphDef as GraphDefs now +ModelArtifactsInfo | @vladmandic/face-api - v1.7.14

              Interface ModelArtifactsInfo

              interface ModelArtifactsInfo {
                  dateSaved: Date;
                  modelTopologyBytes?: number;
                  modelTopologyType: "JSON" | "GraphDef";
                  weightDataBytes?: number;
                  weightSpecsBytes?: number;
              }

              Properties

              dateSaved: Date

              Timestamp for when the model is saved.

              +
              modelTopologyBytes?: number

              Size of model topology (Keras JSON or GraphDef), in bytes.

              +
              modelTopologyType: "JSON" | "GraphDef"

              TODO (cais,yassogba) consider removing GraphDef as GraphDefs now come in a JSON format and none of our IOHandlers support a non json -format. We could conder replacing this with 'Binary' if we want to +format. We could conder replacing this with 'Binary' if we want to allow future handlers to save to non json formats (though they will -probably want more information than 'Binary'). +probably want more information than 'Binary'). Type of the model topology

              Type of the model topology

              Possible values:

              • JSON: JSON config (human-readable, e.g., Keras JSON).
              • GraphDef: TensorFlow -GraphDef +GraphDef protocol buffer (binary).
              -
              weightDataBytes?: number

              Size of weight value data, in bytes.

              -
              weightSpecsBytes?: number

              Size of weight specification or manifest, in bytes.

              -
              \ No newline at end of file +
              weightDataBytes?: number

              Size of weight value data, in bytes.

              +
              weightSpecsBytes?: number

              Size of weight specification or manifest, in bytes.

              +
              diff --git a/typedoc/interfaces/tf.io.ModelJSON.html b/typedoc/interfaces/tf.io.ModelJSON.html index 3941bd5..1a37b6d 100644 --- a/typedoc/interfaces/tf.io.ModelJSON.html +++ b/typedoc/interfaces/tf.io.ModelJSON.html @@ -1,38 +1,38 @@ -ModelJSON | @vladmandic/face-api - v1.7.13

              The on-disk format of the model.json file.

              +ModelJSON | @vladmandic/face-api - v1.7.14

              The on-disk format of the model.json file.

              TF.js 1.0 always populates the optional fields when writing model.json. Prior versions did not provide those fields.

              -
              interface ModelJSON {
                  convertedBy?: null | string;
                  format?: string;
                  generatedBy?: string;
                  initializerSignature?: {};
                  modelInitializer?: {};
                  modelTopology: {};
                  signature?: {};
                  trainingConfig?: TrainingConfig;
                  userDefinedMetadata?: {
                      [key: string]: {};
                  };
                  weightsManifest: WeightsManifestConfig;
              }

              Properties

              convertedBy?: null | string

              What library or tool is responsible for converting the original model +

              interface ModelJSON {
                  convertedBy?: null | string;
                  format?: string;
                  generatedBy?: string;
                  initializerSignature?: {};
                  modelInitializer?: {};
                  modelTopology: {};
                  signature?: {};
                  trainingConfig?: TrainingConfig;
                  userDefinedMetadata?: {
                      [key: string]: {};
                  };
                  weightsManifest: WeightsManifestConfig;
              }

              Properties

              convertedBy?: null | string

              What library or tool is responsible for converting the original model to this format, applicable only if the model is output by a converter.

              -

              Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.

              +

              Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.

              A value of null means the model artifacts are generated without any conversion process (e.g., saved directly from a TensorFlow.js tf.LayersModel instance.)

              -
              format?: string

              Hard-coded format name for models saved from TensorFlow.js or converted +

              format?: string

              Hard-coded format name for models saved from TensorFlow.js or converted by TensorFlow.js Converter.

              -
              generatedBy?: string

              What library is responsible for originally generating this artifact.

              -

              Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.

              -
              initializerSignature?: {}

              Inputs and outputs signature for model initializer.

              -

              Type declaration

                modelInitializer?: {}

                Initializer for the model.

                -

                Type declaration

                  modelTopology: {}

                  Model topology.

                  +
                  generatedBy?: string

                  What library is responsible for originally generating this artifact.

                  +

                  Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.

                  +
                  initializerSignature?: {}

                  Inputs and outputs signature for model initializer.

                  +
                  modelInitializer?: {}

                  Initializer for the model.

                  +
                  modelTopology: {}

                  Model topology.

                  For Keras-style tf.Models, this is a JSON object. For TensorFlow-style models (e.g., SavedModel), this is the JSON encoding of the GraphDef protocol buffer.

                  -

                  Type declaration

                    signature?: {}

                    Inputs and outputs signature for saved model.

                    -

                    Type declaration

                      trainingConfig?: TrainingConfig

                      Model training configuration.

                      -
                      userDefinedMetadata?: {
                          [key: string]: {};
                      }

                      User-defined metadata about the model.

                      -

                      Type declaration

                      • [key: string]: {}
                        weightsManifest: WeightsManifestConfig

                        Weights manifest.

                        +
                        signature?: {}

                        Inputs and outputs signature for saved model.

                        +
                        trainingConfig?: TrainingConfig

                        Model training configuration.

                        +
                        userDefinedMetadata?: {
                            [key: string]: {};
                        }

                        User-defined metadata about the model.

                        +
                        weightsManifest: WeightsManifestConfig

                        Weights manifest.

                        The weights manifest consists of an ordered list of weight-manifest groups. Each weight-manifest group consists of a number of weight values stored in a number of paths. See the documentation of WeightsManifestConfig for more details.

                        -
                        \ No newline at end of file +
                        diff --git a/typedoc/interfaces/tf.io.ModelStoreManager.html b/typedoc/interfaces/tf.io.ModelStoreManager.html index 2b6bc6a..6188cfa 100644 --- a/typedoc/interfaces/tf.io.ModelStoreManager.html +++ b/typedoc/interfaces/tf.io.ModelStoreManager.html @@ -1,4 +1,4 @@ -ModelStoreManager | @vladmandic/face-api - v1.7.13

                        An interface for the manager of a model store.

                        +ModelStoreManager | @vladmandic/face-api - v1.7.14

                        An interface for the manager of a model store.

                        A model store is defined as a storage medium on which multiple models can be stored. Each stored model has a unique path as its identifier. A ModelStoreManager for the store allows actions including

                        @@ -6,14 +6,14 @@ A ModelStoreManager for the store allows actions including

                      • Listing the models stored in the store.
                      • Deleting a model from the store.
                      • -
                        interface ModelStoreManager {
                            listModels(): Promise<{
                                [path: string]: ModelArtifactsInfo;
                            }>;
                            removeModel(path): Promise<ModelArtifactsInfo>;
                        }

                        Methods

                        • List all models in the model store.

                          +
                        interface ModelStoreManager {
                            listModels(): Promise<{
                                [path: string]: ModelArtifactsInfo;
                            }>;
                            removeModel(path: string): Promise<ModelArtifactsInfo>;
                        }

                        Methods

                        • List all models in the model store.

                          Returns Promise<{
                              [path: string]: ModelArtifactsInfo;
                          }>

                          A dictionary mapping paths of existing models to their - model artifacts info. Model artifacts info include type of the model's - topology, byte sizes of the topology, weights, etc.

                          -
                        • Remove a model specified by path.

                          -

                          Parameters

                          • path: string

                          Returns Promise<ModelArtifactsInfo>

                          ModelArtifactsInfo of the deleted model (if and only if deletion - is successful).

                          -

                          Throws

                          Error if deletion fails, e.g., if no model exists at path.

                          -
                        \ No newline at end of file +model artifacts info. Model artifacts info include type of the model's +topology, byte sizes of the topology, weights, etc.

                        +
                        • Remove a model specified by path.

                          +

                          Parameters

                          • path: string

                          Returns Promise<ModelArtifactsInfo>

                          ModelArtifactsInfo of the deleted model (if and only if deletion +is successful).

                          +

                          Error if deletion fails, e.g., if no model exists at path.

                          +
                        diff --git a/typedoc/interfaces/tf.io.RequestDetails.html b/typedoc/interfaces/tf.io.RequestDetails.html index 8ff23d2..b8fddf4 100644 --- a/typedoc/interfaces/tf.io.RequestDetails.html +++ b/typedoc/interfaces/tf.io.RequestDetails.html @@ -1,4 +1,4 @@ -RequestDetails | @vladmandic/face-api - v1.7.13

                        Additional options for Platform.fetch

                        -
                        interface RequestDetails {
                            isBinary?: boolean;
                        }

                        Properties

                        Properties

                        isBinary?: boolean

                        Is this request for a binary file (as opposed to a json file)

                        -
                        \ No newline at end of file +RequestDetails | @vladmandic/face-api - v1.7.14

                        Additional options for Platform.fetch

                        +
                        interface RequestDetails {
                            isBinary?: boolean;
                        }

                        Properties

                        Properties

                        isBinary?: boolean

                        Is this request for a binary file (as opposed to a json file)

                        +
                        diff --git a/typedoc/interfaces/tf.io.SaveConfig.html b/typedoc/interfaces/tf.io.SaveConfig.html index a5cb904..14cba3b 100644 --- a/typedoc/interfaces/tf.io.SaveConfig.html +++ b/typedoc/interfaces/tf.io.SaveConfig.html @@ -1,9 +1,9 @@ -SaveConfig | @vladmandic/face-api - v1.7.13

                        Options for saving a model.

                        -

                        Innamespace

                        io

                        -
                        interface SaveConfig {
                            includeOptimizer?: boolean;
                            trainableOnly?: boolean;
                        }

                        Properties

                        includeOptimizer?: boolean

                        Whether the optimizer will be saved (if exists).

                        +SaveConfig | @vladmandic/face-api - v1.7.14

                        Options for saving a model.

                        +

                        io

                        +
                        interface SaveConfig {
                            includeOptimizer?: boolean;
                            trainableOnly?: boolean;
                        }

                        Properties

                        includeOptimizer?: boolean

                        Whether the optimizer will be saved (if exists).

                        Default: false.

                        -
                        trainableOnly?: boolean

                        Whether to save only the trainable weights of the model, ignoring the +

                        trainableOnly?: boolean

                        Whether to save only the trainable weights of the model, ignoring the non-trainable ones.

                        -
                        \ No newline at end of file +
                        diff --git a/typedoc/interfaces/tf.io.SaveResult.html b/typedoc/interfaces/tf.io.SaveResult.html index 4da6f58..bb406b2 100644 --- a/typedoc/interfaces/tf.io.SaveResult.html +++ b/typedoc/interfaces/tf.io.SaveResult.html @@ -1,9 +1,9 @@ -SaveResult | @vladmandic/face-api - v1.7.13

                        Result of a saving operation.

                        -
                        interface SaveResult {
                            errors?: (string | {})[];
                            modelArtifactsInfo: ModelArtifactsInfo;
                            responses?: Response[];
                        }

                        Properties

                        errors?: (string | {})[]

                        Error messages and related data (if any).

                        -
                        modelArtifactsInfo: ModelArtifactsInfo

                        Information about the model artifacts saved.

                        -
                        responses?: Response[]

                        HTTP responses from the server that handled the model-saving request (if +SaveResult | @vladmandic/face-api - v1.7.14

                        Result of a saving operation.

                        +
                        interface SaveResult {
                            errors?: (string | {})[];
                            modelArtifactsInfo: ModelArtifactsInfo;
                            responses?: Response[];
                        }

                        Properties

                        errors?: (string | {})[]

                        Error messages and related data (if any).

                        +
                        modelArtifactsInfo: ModelArtifactsInfo

                        Information about the model artifacts saved.

                        +
                        responses?: Response[]

                        HTTP responses from the server that handled the model-saving request (if any). This is applicable only to server-based saving routes.

                        -
                        \ No newline at end of file +
                        diff --git a/typedoc/interfaces/tf.io.TrainingConfig.html b/typedoc/interfaces/tf.io.TrainingConfig.html index facb840..9713663 100644 --- a/typedoc/interfaces/tf.io.TrainingConfig.html +++ b/typedoc/interfaces/tf.io.TrainingConfig.html @@ -1,11 +1,11 @@ -TrainingConfig | @vladmandic/face-api - v1.7.13

                        Model training configuration.

                        -
                        interface TrainingConfig {
                            loss: string | string[] | {
                                [key: string]: string;
                            };
                            loss_weights?: number[] | {
                                [key: string]: number;
                            };
                            metrics?: string[] | {
                                [key: string]: string;
                            };
                            optimizer_config: {};
                            sample_weight_mode?: string;
                            weighted_metrics?: string[];
                        }

                        Properties

                        loss: string | string[] | {
                            [key: string]: string;
                        }

                        Loss function(s) for the model's output(s).

                        -

                        Type declaration

                        • [key: string]: string
                        loss_weights?: number[] | {
                            [key: string]: number;
                        }

                        Type declaration

                        • [key: string]: number
                        metrics?: string[] | {
                            [key: string]: string;
                        }

                        Metric function(s) for the model's output(s).

                        -

                        Type declaration

                        • [key: string]: string
                        optimizer_config: {}

                        Optimizer used for the model training.

                        -

                        Type declaration

                          sample_weight_mode?: string
                          weighted_metrics?: string[]
                          \ No newline at end of file +TrainingConfig | @vladmandic/face-api - v1.7.14

                          Model training configuration.

                          +
                          interface TrainingConfig {
                              loss: string | string[] | {
                                  [key: string]: string;
                              };
                              loss_weights?: number[] | {
                                  [key: string]: number;
                              };
                              metrics?: string[] | {
                                  [key: string]: string;
                              };
                              optimizer_config: {};
                              sample_weight_mode?: string;
                              weighted_metrics?: string[];
                          }

                          Properties

                          loss: string | string[] | {
                              [key: string]: string;
                          }

                          Loss function(s) for the model's output(s).

                          +
                          loss_weights?: number[] | {
                              [key: string]: number;
                          }
                          metrics?: string[] | {
                              [key: string]: string;
                          }

                          Metric function(s) for the model's output(s).

                          +
                          optimizer_config: {}

                          Optimizer used for the model training.

                          +
                          sample_weight_mode?: string
                          weighted_metrics?: string[]
                          diff --git a/typedoc/interfaces/tf.io.WeightsManifestEntry.html b/typedoc/interfaces/tf.io.WeightsManifestEntry.html index 0cd44dc..1a1e580 100644 --- a/typedoc/interfaces/tf.io.WeightsManifestEntry.html +++ b/typedoc/interfaces/tf.io.WeightsManifestEntry.html @@ -1,16 +1,16 @@ -WeightsManifestEntry | @vladmandic/face-api - v1.7.13

                          Interface WeightsManifestEntry

                          An entry in the weight manifest.

                          +WeightsManifestEntry | @vladmandic/face-api - v1.7.14

                          Interface WeightsManifestEntry

                          An entry in the weight manifest.

                          The entry contains specification of a weight.

                          -
                          interface WeightsManifestEntry {
                              dtype: "string" | "float32" | "int32" | "bool" | "complex64";
                              group?: WeightGroup;
                              name: string;
                              quantization?: {
                                  dtype: "uint16" | "uint8" | "float16";
                                  min?: number;
                                  scale?: number;
                              };
                              shape: number[];
                          }

                          Properties

                          dtype: "string" | "float32" | "int32" | "bool" | "complex64"

                          Data type of the weight.

                          -
                          group?: WeightGroup

                          Type of the weight.

                          +
                          interface WeightsManifestEntry {
                              dtype:
                                  | "string"
                                  | "float32"
                                  | "int32"
                                  | "bool"
                                  | "complex64";
                              group?: WeightGroup;
                              name: string;
                              quantization?: {
                                  dtype: "uint16" | "uint8" | "float16";
                                  min?: number;
                                  scale?: number;
                              };
                              shape: number[];
                          }

                          Properties

                          dtype:
                              | "string"
                              | "float32"
                              | "int32"
                              | "bool"
                              | "complex64"

                          Data type of the weight.

                          +
                          group?: WeightGroup

                          Type of the weight.

                          Optional.

                          -

                          The value 'optimizer' indicates the weight belongs to an optimizer +

                          The value 'optimizer' indicates the weight belongs to an optimizer (i.e., used only during model training and not during inference).

                          -
                          name: string

                          Name of the weight, e.g., 'Dense_1/bias'

                          -
                          quantization?: {
                              dtype: "uint16" | "uint8" | "float16";
                              min?: number;
                              scale?: number;
                          }

                          Information for dequantization of the weight.

                          -

                          Type declaration

                          • dtype: "uint16" | "uint8" | "float16"
                          • Optional min?: number
                          • Optional scale?: number
                          shape: number[]

                          Shape of the weight.

                          -
                          \ No newline at end of file +
                          name: string

                          Name of the weight, e.g., 'Dense_1/bias'

                          +
                          quantization?: {
                              dtype: "uint16" | "uint8" | "float16";
                              min?: number;
                              scale?: number;
                          }

                          Information for dequantization of the weight.

                          +
                          shape: number[]

                          Shape of the weight.

                          +
                          diff --git a/typedoc/modules/draw.html b/typedoc/modules/draw.html index 93597ba..4c1ca81 100644 --- a/typedoc/modules/draw.html +++ b/typedoc/modules/draw.html @@ -1,18 +1,18 @@ -draw | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +draw | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/modules/tf.Tensor.html b/typedoc/modules/tf.Tensor.html index e43367b..b3f2ceb 100644 --- a/typedoc/modules/tf.Tensor.html +++ b/typedoc/modules/tf.Tensor.html @@ -1 +1 @@ -Tensor | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +Tensor | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/modules/tf.browser.html b/typedoc/modules/tf.browser.html index 4c40fcb..5c01cf8 100644 --- a/typedoc/modules/tf.browser.html +++ b/typedoc/modules/tf.browser.html @@ -1,5 +1,5 @@ -browser | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +browser | @vladmandic/face-api - v1.7.14

                          Index

                          Functions

                          diff --git a/typedoc/modules/tf.html b/typedoc/modules/tf.html index 7f8b7e7..e964d7d 100644 --- a/typedoc/modules/tf.html +++ b/typedoc/modules/tf.html @@ -1,53 +1,53 @@ -tf | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +tf | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/modules/tf.io.html b/typedoc/modules/tf.io.html index 62bb3e4..2daeb82 100644 --- a/typedoc/modules/tf.io.html +++ b/typedoc/modules/tf.io.html @@ -1,46 +1,46 @@ -io | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +io | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/modules/utils.html b/typedoc/modules/utils.html index b908712..47a3eff 100644 --- a/typedoc/modules/utils.html +++ b/typedoc/modules/utils.html @@ -1,15 +1,15 @@ -utils | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +utils | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/types/AgeAndGenderPrediction.html b/typedoc/types/AgeAndGenderPrediction.html index 10ec8b8..0f323cb 100644 --- a/typedoc/types/AgeAndGenderPrediction.html +++ b/typedoc/types/AgeAndGenderPrediction.html @@ -1 +1 @@ -AgeAndGenderPrediction | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +AgeAndGenderPrediction | @vladmandic/face-api - v1.7.14

                          Type Alias AgeAndGenderPrediction

                          AgeAndGenderPrediction: {
                              age: number;
                              gender: Gender;
                              genderProbability: number;
                          }
                          diff --git a/typedoc/types/BatchNorm.html b/typedoc/types/BatchNorm.html index 87374db..86097f9 100644 --- a/typedoc/types/BatchNorm.html +++ b/typedoc/types/BatchNorm.html @@ -1 +1 @@ -BatchNorm | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +BatchNorm | @vladmandic/face-api - v1.7.14

                          Type Alias BatchNorm

                          BatchNorm: {
                              sub: Tensor1D;
                              truediv: Tensor1D;
                          }
                          diff --git a/typedoc/types/ConvWithBatchNorm.html b/typedoc/types/ConvWithBatchNorm.html index ee6ea4a..0c13435 100644 --- a/typedoc/types/ConvWithBatchNorm.html +++ b/typedoc/types/ConvWithBatchNorm.html @@ -1 +1 @@ -ConvWithBatchNorm | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +ConvWithBatchNorm | @vladmandic/face-api - v1.7.14

                          Type Alias ConvWithBatchNorm

                          ConvWithBatchNorm: {
                              bn: BatchNorm;
                              conv: ConvParams;
                          }
                          diff --git a/typedoc/types/DefaultTinyYolov2NetParams.html b/typedoc/types/DefaultTinyYolov2NetParams.html index d87df83..b18d5ab 100644 --- a/typedoc/types/DefaultTinyYolov2NetParams.html +++ b/typedoc/types/DefaultTinyYolov2NetParams.html @@ -1 +1 @@ -DefaultTinyYolov2NetParams | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +DefaultTinyYolov2NetParams | @vladmandic/face-api - v1.7.14

                          Type Alias DefaultTinyYolov2NetParams

                          DefaultTinyYolov2NetParams: {
                              conv0: ConvWithBatchNorm;
                              conv1: ConvWithBatchNorm;
                              conv2: ConvWithBatchNorm;
                              conv3: ConvWithBatchNorm;
                              conv4: ConvWithBatchNorm;
                              conv5: ConvWithBatchNorm;
                              conv6: ConvWithBatchNorm;
                              conv7: ConvWithBatchNorm;
                              conv8: ConvParams;
                          }
                          diff --git a/typedoc/types/Environment.html b/typedoc/types/Environment.html index c42eea9..a8ac0d0 100644 --- a/typedoc/types/Environment.html +++ b/typedoc/types/Environment.html @@ -1 +1 @@ -Environment | @vladmandic/face-api - v1.7.13

                          Type alias Environment

                          Environment: FileSystem & {
                              Canvas: typeof HTMLCanvasElement;
                              CanvasRenderingContext2D: typeof CanvasRenderingContext2D;
                              Image: typeof HTMLImageElement;
                              ImageData: typeof ImageData;
                              Video: typeof HTMLVideoElement;
                              createCanvasElement: (() => HTMLCanvasElement);
                              createImageElement: (() => HTMLImageElement);
                              createVideoElement: (() => HTMLVideoElement);
                              fetch: ((url, init?) => Promise<Response>);
                          }

                          Type declaration

                          • Canvas: typeof HTMLCanvasElement
                          • CanvasRenderingContext2D: typeof CanvasRenderingContext2D
                          • Image: typeof HTMLImageElement
                          • ImageData: typeof ImageData
                          • Video: typeof HTMLVideoElement
                          • createCanvasElement: (() => HTMLCanvasElement)
                              • (): HTMLCanvasElement
                              • Returns HTMLCanvasElement

                          • createImageElement: (() => HTMLImageElement)
                              • (): HTMLImageElement
                              • Returns HTMLImageElement

                          • createVideoElement: (() => HTMLVideoElement)
                              • (): HTMLVideoElement
                              • Returns HTMLVideoElement

                          • fetch: ((url, init?) => Promise<Response>)
                              • (url, init?): Promise<Response>
                              • Parameters

                                • url: string
                                • Optional init: RequestInit

                                Returns Promise<Response>

                          \ No newline at end of file +Environment | @vladmandic/face-api - v1.7.14

                          Type Alias Environment

                          Environment: FileSystem & {
                              Canvas: typeof HTMLCanvasElement;
                              CanvasRenderingContext2D: typeof CanvasRenderingContext2D;
                              createCanvasElement: (() => HTMLCanvasElement);
                              createImageElement: (() => HTMLImageElement);
                              createVideoElement: (() => HTMLVideoElement);
                              fetch: ((url: string, init?: RequestInit) => Promise<Response>);
                              Image: typeof HTMLImageElement;
                              ImageData: typeof ImageData;
                              Video: typeof HTMLVideoElement;
                          }
                          diff --git a/typedoc/types/FaceDetectionFunction.html b/typedoc/types/FaceDetectionFunction.html index 5c712cd..3ebfe99 100644 --- a/typedoc/types/FaceDetectionFunction.html +++ b/typedoc/types/FaceDetectionFunction.html @@ -1 +1 @@ -FaceDetectionFunction | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +FaceDetectionFunction | @vladmandic/face-api - v1.7.14

                          Type Alias FaceDetectionFunction

                          FaceDetectionFunction: ((input: TNetInput) => Promise<FaceDetection[]>)
                          diff --git a/typedoc/types/FaceDetectionOptions.html b/typedoc/types/FaceDetectionOptions.html index 06fcc0c..d2e6096 100644 --- a/typedoc/types/FaceDetectionOptions.html +++ b/typedoc/types/FaceDetectionOptions.html @@ -1 +1 @@ -FaceDetectionOptions | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +FaceDetectionOptions | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/types/FileSystem.html b/typedoc/types/FileSystem.html index 677e3af..178bb7d 100644 --- a/typedoc/types/FileSystem.html +++ b/typedoc/types/FileSystem.html @@ -1 +1 @@ -FileSystem | @vladmandic/face-api - v1.7.13

                          Type alias FileSystem

                          FileSystem: {
                              readFile: ((filePath) => Promise<string | Buffer>);
                          }

                          Type declaration

                          • readFile: ((filePath) => Promise<string | Buffer>)
                              • (filePath): Promise<string | Buffer>
                              • Parameters

                                • filePath: string

                                Returns Promise<string | Buffer>

                          \ No newline at end of file +FileSystem | @vladmandic/face-api - v1.7.14

                          Type Alias FileSystem

                          FileSystem: {
                              readFile: ((filePath: string) => Promise<string | Buffer>);
                          }
                          diff --git a/typedoc/types/ITinyFaceDetectorOptions.html b/typedoc/types/ITinyFaceDetectorOptions.html index cc12252..67be6e8 100644 --- a/typedoc/types/ITinyFaceDetectorOptions.html +++ b/typedoc/types/ITinyFaceDetectorOptions.html @@ -1 +1 @@ -ITinyFaceDetectorOptions | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +ITinyFaceDetectorOptions | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/types/MobilenetParams.html b/typedoc/types/MobilenetParams.html index eccb1ce..6eead84 100644 --- a/typedoc/types/MobilenetParams.html +++ b/typedoc/types/MobilenetParams.html @@ -1 +1 @@ -MobilenetParams | @vladmandic/face-api - v1.7.13

                          Type alias MobilenetParams

                          MobilenetParams: {
                              conv0: SeparableConvParams | ConvParams;
                              conv1: SeparableConvParams;
                              conv2: SeparableConvParams;
                              conv3: SeparableConvParams;
                              conv4: SeparableConvParams;
                              conv5: SeparableConvParams;
                              conv6?: SeparableConvParams;
                              conv7?: SeparableConvParams;
                              conv8: ConvParams;
                          }

                          Type declaration

                          • conv0: SeparableConvParams | ConvParams
                          • conv1: SeparableConvParams
                          • conv2: SeparableConvParams
                          • conv3: SeparableConvParams
                          • conv4: SeparableConvParams
                          • conv5: SeparableConvParams
                          • Optional conv6?: SeparableConvParams
                          • Optional conv7?: SeparableConvParams
                          • conv8: ConvParams
                          \ No newline at end of file +MobilenetParams | @vladmandic/face-api - v1.7.14

                          Type Alias MobilenetParams

                          MobilenetParams: {
                              conv0: SeparableConvParams | ConvParams;
                              conv1: SeparableConvParams;
                              conv2: SeparableConvParams;
                              conv3: SeparableConvParams;
                              conv4: SeparableConvParams;
                              conv5: SeparableConvParams;
                              conv6?: SeparableConvParams;
                              conv7?: SeparableConvParams;
                              conv8: ConvParams;
                          }
                          diff --git a/typedoc/types/NetOutput.html b/typedoc/types/NetOutput.html index e913115..9c10807 100644 --- a/typedoc/types/NetOutput.html +++ b/typedoc/types/NetOutput.html @@ -1 +1 @@ -NetOutput | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +NetOutput | @vladmandic/face-api - v1.7.14

                          Type Alias NetOutput

                          NetOutput: {
                              age: Tensor1D;
                              gender: Tensor2D;
                          }
                          diff --git a/typedoc/types/NetParams.html b/typedoc/types/NetParams.html index fc73deb..5ca428f 100644 --- a/typedoc/types/NetParams.html +++ b/typedoc/types/NetParams.html @@ -1 +1 @@ -NetParams | @vladmandic/face-api - v1.7.13

                          Type alias NetParams

                          NetParams: {
                              fc: {
                                  age: FCParams;
                                  gender: FCParams;
                              };
                          }

                          Type declaration

                          • fc: {
                                age: FCParams;
                                gender: FCParams;
                            }
                            • age: FCParams
                            • gender: FCParams
                          \ No newline at end of file +NetParams | @vladmandic/face-api - v1.7.14

                          Type Alias NetParams

                          NetParams: {
                              fc: {
                                  age: FCParams;
                                  gender: FCParams;
                              };
                          }
                          diff --git a/typedoc/types/TMediaElement.html b/typedoc/types/TMediaElement.html index a586e4c..15809dd 100644 --- a/typedoc/types/TMediaElement.html +++ b/typedoc/types/TMediaElement.html @@ -1 +1 @@ -TMediaElement | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +TMediaElement | @vladmandic/face-api - v1.7.14

                          Type Alias TMediaElement

                          TMediaElement: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement
                          diff --git a/typedoc/types/TNetInput.html b/typedoc/types/TNetInput.html index 855d1e0..5623127 100644 --- a/typedoc/types/TNetInput.html +++ b/typedoc/types/TNetInput.html @@ -1 +1 @@ -TNetInput | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +TNetInput | @vladmandic/face-api - v1.7.14

                          Type Alias TNetInput

                          TNetInput:
                              | string
                              | TResolvedNetInput
                              | (string | TResolvedNetInput)[]
                              | NetInput
                          diff --git a/typedoc/types/TResolvedNetInput.html b/typedoc/types/TResolvedNetInput.html index 99a09e2..9f26c6f 100644 --- a/typedoc/types/TResolvedNetInput.html +++ b/typedoc/types/TResolvedNetInput.html @@ -1 +1 @@ -TResolvedNetInput | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +TResolvedNetInput | @vladmandic/face-api - v1.7.14

                          Type Alias TResolvedNetInput

                          TResolvedNetInput: TMediaElement | Tensor3D | Tensor4D
                          diff --git a/typedoc/types/TinyYolov2Config.html b/typedoc/types/TinyYolov2Config.html index b1b6e6c..7760e8d 100644 --- a/typedoc/types/TinyYolov2Config.html +++ b/typedoc/types/TinyYolov2Config.html @@ -1 +1 @@ -TinyYolov2Config | @vladmandic/face-api - v1.7.13

                          Type alias TinyYolov2Config

                          TinyYolov2Config: {
                              anchors: Point[];
                              classes: string[];
                              filterSizes?: number[];
                              iouThreshold: number;
                              isFirstLayerConv2d?: boolean;
                              meanRgb?: [number, number, number];
                              withClassScores?: boolean;
                              withSeparableConvs: boolean;
                          }

                          Type declaration

                          • anchors: Point[]
                          • classes: string[]
                          • Optional filterSizes?: number[]
                          • iouThreshold: number
                          • Optional isFirstLayerConv2d?: boolean
                          • Optional meanRgb?: [number, number, number]
                          • Optional withClassScores?: boolean
                          • withSeparableConvs: boolean
                          \ No newline at end of file +TinyYolov2Config | @vladmandic/face-api - v1.7.14

                          Type Alias TinyYolov2Config

                          TinyYolov2Config: {
                              anchors: Point[];
                              classes: string[];
                              filterSizes?: number[];
                              iouThreshold: number;
                              isFirstLayerConv2d?: boolean;
                              meanRgb?: [number, number, number];
                              withClassScores?: boolean;
                              withSeparableConvs: boolean;
                          }
                          diff --git a/typedoc/types/TinyYolov2ExtractBoxesResult.html b/typedoc/types/TinyYolov2ExtractBoxesResult.html index a4c6cc2..230d365 100644 --- a/typedoc/types/TinyYolov2ExtractBoxesResult.html +++ b/typedoc/types/TinyYolov2ExtractBoxesResult.html @@ -1 +1 @@ -TinyYolov2ExtractBoxesResult | @vladmandic/face-api - v1.7.13

                          Type alias TinyYolov2ExtractBoxesResult

                          TinyYolov2ExtractBoxesResult: {
                              anchor: number;
                              box: BoundingBox;
                              classScore: number;
                              col: number;
                              label: number;
                              row: number;
                              score: number;
                          }

                          Type declaration

                          • anchor: number
                          • box: BoundingBox
                          • classScore: number
                          • col: number
                          • label: number
                          • row: number
                          • score: number
                          \ No newline at end of file +TinyYolov2ExtractBoxesResult | @vladmandic/face-api - v1.7.14

                          Type Alias TinyYolov2ExtractBoxesResult

                          TinyYolov2ExtractBoxesResult: {
                              anchor: number;
                              box: BoundingBox;
                              classScore: number;
                              col: number;
                              label: number;
                              row: number;
                              score: number;
                          }
                          diff --git a/typedoc/types/TinyYolov2NetParams.html b/typedoc/types/TinyYolov2NetParams.html index 21de7c6..75e81d7 100644 --- a/typedoc/types/TinyYolov2NetParams.html +++ b/typedoc/types/TinyYolov2NetParams.html @@ -1 +1 @@ -TinyYolov2NetParams | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +TinyYolov2NetParams | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/types/WithAge.html b/typedoc/types/WithAge.html index 3e580d1..080556d 100644 --- a/typedoc/types/WithAge.html +++ b/typedoc/types/WithAge.html @@ -1 +1 @@ -WithAge | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +WithAge | @vladmandic/face-api - v1.7.14

                          Type Alias WithAge<TSource>

                          WithAge<TSource>: TSource & {
                              age: number;
                          }

                          Type Parameters

                          • TSource
                          diff --git a/typedoc/types/WithFaceDescriptor.html b/typedoc/types/WithFaceDescriptor.html index 6b54ef5..47ea5ff 100644 --- a/typedoc/types/WithFaceDescriptor.html +++ b/typedoc/types/WithFaceDescriptor.html @@ -1 +1 @@ -WithFaceDescriptor | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +WithFaceDescriptor | @vladmandic/face-api - v1.7.14

                          Type Alias WithFaceDescriptor<TSource>

                          WithFaceDescriptor<TSource>: TSource & {
                              descriptor: Float32Array;
                          }

                          Type Parameters

                          • TSource
                          diff --git a/typedoc/types/WithFaceDetection.html b/typedoc/types/WithFaceDetection.html index 5f976a8..8f1871a 100644 --- a/typedoc/types/WithFaceDetection.html +++ b/typedoc/types/WithFaceDetection.html @@ -1 +1 @@ -WithFaceDetection | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +WithFaceDetection | @vladmandic/face-api - v1.7.14

                          Type Alias WithFaceDetection<TSource>

                          WithFaceDetection<TSource>: TSource & {
                              detection: FaceDetection;
                          }

                          Type Parameters

                          • TSource
                          diff --git a/typedoc/types/WithFaceExpressions.html b/typedoc/types/WithFaceExpressions.html index bdfd2f9..1460e62 100644 --- a/typedoc/types/WithFaceExpressions.html +++ b/typedoc/types/WithFaceExpressions.html @@ -1 +1 @@ -WithFaceExpressions | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +WithFaceExpressions | @vladmandic/face-api - v1.7.14

                          Type Alias WithFaceExpressions<TSource>

                          WithFaceExpressions<TSource>: TSource & {
                              expressions: FaceExpressions;
                          }

                          Type Parameters

                          • TSource
                          diff --git a/typedoc/types/WithFaceLandmarks.html b/typedoc/types/WithFaceLandmarks.html index 5133068..97bb709 100644 --- a/typedoc/types/WithFaceLandmarks.html +++ b/typedoc/types/WithFaceLandmarks.html @@ -1 +1 @@ -WithFaceLandmarks | @vladmandic/face-api - v1.7.13

                          Type alias WithFaceLandmarks<TSource, TFaceLandmarks>

                          WithFaceLandmarks<TSource, TFaceLandmarks>: TSource & {
                              alignedRect: FaceDetection;
                              angle: {
                                  pitch: number | undefined;
                                  roll: number | undefined;
                                  yaw: number | undefined;
                              };
                              landmarks: TFaceLandmarks;
                              unshiftedLandmarks: TFaceLandmarks;
                          }

                          Type Parameters

                          Type declaration

                          • alignedRect: FaceDetection
                          • angle: {
                                pitch: number | undefined;
                                roll: number | undefined;
                                yaw: number | undefined;
                            }
                            • pitch: number | undefined
                            • roll: number | undefined
                            • yaw: number | undefined
                          • landmarks: TFaceLandmarks
                          • unshiftedLandmarks: TFaceLandmarks
                          \ No newline at end of file +WithFaceLandmarks | @vladmandic/face-api - v1.7.14

                          Type Alias WithFaceLandmarks<TSource, TFaceLandmarks>

                          WithFaceLandmarks<TSource, TFaceLandmarks>: TSource & {
                              alignedRect: FaceDetection;
                              angle: {
                                  pitch: number | undefined;
                                  roll: number | undefined;
                                  yaw: number | undefined;
                              };
                              landmarks: TFaceLandmarks;
                              unshiftedLandmarks: TFaceLandmarks;
                          }

                          Type Parameters

                          diff --git a/typedoc/types/WithGender.html b/typedoc/types/WithGender.html index ae7d53f..5d374de 100644 --- a/typedoc/types/WithGender.html +++ b/typedoc/types/WithGender.html @@ -1 +1 @@ -WithGender | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +WithGender | @vladmandic/face-api - v1.7.14

                          Type Alias WithGender<TSource>

                          WithGender<TSource>: TSource & {
                              gender: Gender;
                              genderProbability: number;
                          }

                          Type Parameters

                          • TSource
                          diff --git a/typedoc/types/draw.DrawFaceExpressionsInput.html b/typedoc/types/draw.DrawFaceExpressionsInput.html index 8ccf05a..fdeef04 100644 --- a/typedoc/types/draw.DrawFaceExpressionsInput.html +++ b/typedoc/types/draw.DrawFaceExpressionsInput.html @@ -1 +1 @@ -DrawFaceExpressionsInput | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +DrawFaceExpressionsInput | @vladmandic/face-api - v1.7.14

                          Type Alias DrawFaceExpressionsInput

                          DrawFaceExpressionsInput: FaceExpressions | WithFaceExpressions<{}>
                          diff --git a/typedoc/types/draw.DrawFaceLandmarksInput.html b/typedoc/types/draw.DrawFaceLandmarksInput.html index 01c6f67..c2a3f1f 100644 --- a/typedoc/types/draw.DrawFaceLandmarksInput.html +++ b/typedoc/types/draw.DrawFaceLandmarksInput.html @@ -1 +1 @@ -DrawFaceLandmarksInput | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +DrawFaceLandmarksInput | @vladmandic/face-api - v1.7.14
                          diff --git a/typedoc/types/draw.TDrawDetectionsInput.html b/typedoc/types/draw.TDrawDetectionsInput.html index 0fc6ef8..2656fc6 100644 --- a/typedoc/types/draw.TDrawDetectionsInput.html +++ b/typedoc/types/draw.TDrawDetectionsInput.html @@ -1 +1 @@ -TDrawDetectionsInput | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +TDrawDetectionsInput | @vladmandic/face-api - v1.7.14

                          Type Alias TDrawDetectionsInput

                          TDrawDetectionsInput:
                              | IRect
                              | IBoundingBox
                              | FaceDetection
                              | WithFaceDetection<{}>
                          diff --git a/typedoc/types/tf.NamedTensorMap.html b/typedoc/types/tf.NamedTensorMap.html index dbf2678..ed23634 100644 --- a/typedoc/types/tf.NamedTensorMap.html +++ b/typedoc/types/tf.NamedTensorMap.html @@ -1 +1 @@ -NamedTensorMap | @vladmandic/face-api - v1.7.13

                          Type alias NamedTensorMap

                          NamedTensorMap: {
                              [name: string]: Tensor;
                          }

                          Type declaration

                          Docalias

                          \ No newline at end of file +NamedTensorMap | @vladmandic/face-api - v1.7.14

                          Type Alias NamedTensorMap

                          NamedTensorMap: {
                              [name: string]: Tensor;
                          }
                          diff --git a/typedoc/types/tf.Tensor1D.html b/typedoc/types/tf.Tensor1D.html index 95c6451..126cb9b 100644 --- a/typedoc/types/tf.Tensor1D.html +++ b/typedoc/types/tf.Tensor1D.html @@ -1,2 +1,2 @@ -Tensor1D | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +Tensor1D | @vladmandic/face-api - v1.7.14
                          Tensor1D: Tensor<R1>

                          Tensor

                          +
                          diff --git a/typedoc/types/tf.Tensor2D.html b/typedoc/types/tf.Tensor2D.html index 569e000..55b0f93 100644 --- a/typedoc/types/tf.Tensor2D.html +++ b/typedoc/types/tf.Tensor2D.html @@ -1,2 +1,2 @@ -Tensor2D | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +Tensor2D | @vladmandic/face-api - v1.7.14
                          Tensor2D: Tensor<R2>

                          Tensor

                          +
                          diff --git a/typedoc/types/tf.Tensor3D.html b/typedoc/types/tf.Tensor3D.html index 9aabb0f..9274bae 100644 --- a/typedoc/types/tf.Tensor3D.html +++ b/typedoc/types/tf.Tensor3D.html @@ -1,2 +1,2 @@ -Tensor3D | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +Tensor3D | @vladmandic/face-api - v1.7.14
                          Tensor3D: Tensor<R3>

                          Tensor

                          +
                          diff --git a/typedoc/types/tf.Tensor4D.html b/typedoc/types/tf.Tensor4D.html index 67af2bd..a219d78 100644 --- a/typedoc/types/tf.Tensor4D.html +++ b/typedoc/types/tf.Tensor4D.html @@ -1,2 +1,2 @@ -Tensor4D | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +Tensor4D | @vladmandic/face-api - v1.7.14
                          Tensor4D: Tensor<R4>

                          Tensor

                          +
                          diff --git a/typedoc/types/tf.Tensor5D.html b/typedoc/types/tf.Tensor5D.html index a6adbcf..2ab3025 100644 --- a/typedoc/types/tf.Tensor5D.html +++ b/typedoc/types/tf.Tensor5D.html @@ -1,2 +1,2 @@ -Tensor5D | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +Tensor5D | @vladmandic/face-api - v1.7.14
                          Tensor5D: Tensor<R5>

                          Tensor

                          +
                          diff --git a/typedoc/types/tf.TensorLike.html b/typedoc/types/tf.TensorLike.html index fb69f42..340cfb3 100644 --- a/typedoc/types/tf.TensorLike.html +++ b/typedoc/types/tf.TensorLike.html @@ -1,2 +1,2 @@ -TensorLike | @vladmandic/face-api - v1.7.13
                          TensorLike: TypedArray | number | boolean | string | RecursiveArray<number | number[] | TypedArray> | RecursiveArray<boolean> | RecursiveArray<string> | Uint8Array[]

                          Docalias

                          TypedArray|Array

                          -
                          \ No newline at end of file +TensorLike | @vladmandic/face-api - v1.7.14
                          TensorLike:
                              | TypedArray
                              | number
                              | boolean
                              | string
                              | RecursiveArray<number | number[] | TypedArray>
                              | RecursiveArray<boolean>
                              | RecursiveArray<string>
                              | Uint8Array[]

                          TypedArray|Array

                          +
                          diff --git a/typedoc/types/tf.io.IOHandlerSync.html b/typedoc/types/tf.io.IOHandlerSync.html index 9da62a8..9fe09f7 100644 --- a/typedoc/types/tf.io.IOHandlerSync.html +++ b/typedoc/types/tf.io.IOHandlerSync.html @@ -1,4 +1,4 @@ -IOHandlerSync | @vladmandic/face-api - v1.7.13
                          IOHandlerSync: {
                              load?: LoadHandlerSync;
                              save?: SaveHandlerSync;
                          }

                          Interface for a synchronous model import/export handler.

                          +IOHandlerSync | @vladmandic/face-api - v1.7.14
                          IOHandlerSync: {
                              load?: LoadHandlerSync;
                              save?: SaveHandlerSync;
                          }

                          Interface for a synchronous model import/export handler.

                          The save and load handlers are both optional, in order to allow handlers that support only saving or loading.

                          -

                          Type declaration

                          • Optional load?: LoadHandlerSync
                          • Optional save?: SaveHandlerSync
                          \ No newline at end of file +
                          diff --git a/typedoc/types/tf.io.LoadHandler.html b/typedoc/types/tf.io.LoadHandler.html index 4efaacc..a255a7a 100644 --- a/typedoc/types/tf.io.LoadHandler.html +++ b/typedoc/types/tf.io.LoadHandler.html @@ -1,2 +1,2 @@ -LoadHandler | @vladmandic/face-api - v1.7.13
                          LoadHandler: (() => Promise<ModelArtifacts>)

                          Type definition for handlers of loading operations.

                          -

                          Type declaration

                          \ No newline at end of file +LoadHandler | @vladmandic/face-api - v1.7.14
                          LoadHandler: (() => Promise<ModelArtifacts>)

                          Type definition for handlers of loading operations.

                          +
                          diff --git a/typedoc/types/tf.io.OnProgressCallback.html b/typedoc/types/tf.io.OnProgressCallback.html index 8bb27ad..75b84ea 100644 --- a/typedoc/types/tf.io.OnProgressCallback.html +++ b/typedoc/types/tf.io.OnProgressCallback.html @@ -1,5 +1,5 @@ -OnProgressCallback | @vladmandic/face-api - v1.7.13

                          Type alias OnProgressCallback

                          OnProgressCallback: ((fraction) => void)

                          Callback for the progress of a long-running action such as an HTTP +OnProgressCallback | @vladmandic/face-api - v1.7.14

                          Type Alias OnProgressCallback

                          OnProgressCallback: ((fraction: number) => void)

                          Callback for the progress of a long-running action such as an HTTP request for a large binary object.

                          fraction should be a number in the [0, 1] interval, indicating how much of the action has completed.

                          -

                          Type declaration

                            • (fraction): void
                            • Parameters

                              • fraction: number

                              Returns void

                          \ No newline at end of file +
                          diff --git a/typedoc/types/tf.io.SaveHandler.html b/typedoc/types/tf.io.SaveHandler.html index 57461c5..e5f169b 100644 --- a/typedoc/types/tf.io.SaveHandler.html +++ b/typedoc/types/tf.io.SaveHandler.html @@ -1,2 +1,2 @@ -SaveHandler | @vladmandic/face-api - v1.7.13
                          SaveHandler: ((modelArtifact) => Promise<SaveResult>)

                          Type definition for handlers of saving operations.

                          -

                          Type declaration

                          \ No newline at end of file +SaveHandler | @vladmandic/face-api - v1.7.14
                          SaveHandler: ((modelArtifact: ModelArtifacts) => Promise<SaveResult>)

                          Type definition for handlers of saving operations.

                          +
                          diff --git a/typedoc/types/tf.io.WeightData.html b/typedoc/types/tf.io.WeightData.html index 2a6eca4..9da676e 100644 --- a/typedoc/types/tf.io.WeightData.html +++ b/typedoc/types/tf.io.WeightData.html @@ -1 +1 @@ -WeightData | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +WeightData | @vladmandic/face-api - v1.7.14
                          WeightData: ArrayBuffer | ArrayBuffer[]
                          diff --git a/typedoc/types/tf.io.WeightGroup.html b/typedoc/types/tf.io.WeightGroup.html index 5f8d208..8eda845 100644 --- a/typedoc/types/tf.io.WeightGroup.html +++ b/typedoc/types/tf.io.WeightGroup.html @@ -1,5 +1,5 @@ -WeightGroup | @vladmandic/face-api - v1.7.13
                          WeightGroup: "model" | "optimizer"

                          Group to which the weight belongs.

                          +WeightGroup | @vladmandic/face-api - v1.7.14
                          WeightGroup: "model" | "optimizer"

                          Group to which the weight belongs.

                            -
                          • 'optimizer': Weight from a stateful optimizer.
                          • +
                          • 'optimizer': Weight from a stateful optimizer.
                          -
                          \ No newline at end of file +
                          diff --git a/typedoc/types/tf.io.WeightsManifestConfig.html b/typedoc/types/tf.io.WeightsManifestConfig.html index 9903b40..e0c42d4 100644 --- a/typedoc/types/tf.io.WeightsManifestConfig.html +++ b/typedoc/types/tf.io.WeightsManifestConfig.html @@ -1,6 +1,6 @@ -WeightsManifestConfig | @vladmandic/face-api - v1.7.13

                          Type alias WeightsManifestConfig

                          WeightsManifestConfig: WeightsManifestGroupConfig[]

                          A weight manifest.

                          +WeightsManifestConfig | @vladmandic/face-api - v1.7.14

                          Type Alias WeightsManifestConfig

                          WeightsManifestConfig: WeightsManifestGroupConfig[]

                          A weight manifest.

                          The weight manifest consists of an ordered list of weight-manifest groups. Each weight-manifest group ("group" for short hereafter) consists of a number of weight values stored in a number of paths. See the documentation of WeightManifestGroupConfig below for more details.

                          -
                          \ No newline at end of file +
                          diff --git a/typedoc/variables/FACE_EXPRESSION_LABELS.html b/typedoc/variables/FACE_EXPRESSION_LABELS.html index 6b82f36..fec5ac6 100644 --- a/typedoc/variables/FACE_EXPRESSION_LABELS.html +++ b/typedoc/variables/FACE_EXPRESSION_LABELS.html @@ -1 +1 @@ -FACE_EXPRESSION_LABELS | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +FACE_EXPRESSION_LABELS | @vladmandic/face-api - v1.7.14

                          Variable FACE_EXPRESSION_LABELSConst

                          FACE_EXPRESSION_LABELS: readonly ["neutral", "happy", "sad", "angry", "fearful", "disgusted", "surprised"] = ...
                          diff --git a/typedoc/variables/env.html b/typedoc/variables/env.html index 5be28c5..af3cfea 100644 --- a/typedoc/variables/env.html +++ b/typedoc/variables/env.html @@ -1 +1 @@ -env | @vladmandic/face-api - v1.7.13

                          Variable envConst

                          env: {
                              createBrowserEnv: (() => Environment);
                              createFileSystem: ((fs?) => FileSystem);
                              createNodejsEnv: (() => Environment);
                              getEnv: (() => Environment);
                              initialize: (() => null | void);
                              isBrowser: (() => boolean);
                              isNodejs: (() => boolean);
                              monkeyPatch: ((env) => void);
                              setEnv: ((env) => void);
                          } = ...

                          Type declaration

                          \ No newline at end of file +env | @vladmandic/face-api - v1.7.14

                          Variable envConst

                          env: {
                              createBrowserEnv: (() => Environment);
                              createFileSystem: ((fs?: any) => FileSystem);
                              createNodejsEnv: (() => Environment);
                              getEnv: (() => Environment);
                              initialize: (() => null | void);
                              isBrowser: (() => boolean);
                              isNodejs: (() => boolean);
                              monkeyPatch: ((env: Partial<Environment>) => void);
                              setEnv: ((env: Environment) => void);
                          } = ...
                          diff --git a/typedoc/variables/nets.html b/typedoc/variables/nets.html index 5801677..367646c 100644 --- a/typedoc/variables/nets.html +++ b/typedoc/variables/nets.html @@ -1 +1 @@ -nets | @vladmandic/face-api - v1.7.13

                          Variable netsConst

                          nets: {
                              ageGenderNet: AgeGenderNet;
                              faceExpressionNet: FaceExpressionNet;
                              faceLandmark68Net: FaceLandmark68Net;
                              faceLandmark68TinyNet: FaceLandmark68TinyNet;
                              faceRecognitionNet: FaceRecognitionNet;
                              ssdMobilenetv1: SsdMobilenetv1;
                              tinyFaceDetector: TinyFaceDetector;
                              tinyYolov2: TinyYolov2;
                          } = ...

                          Type declaration

                          \ No newline at end of file +nets | @vladmandic/face-api - v1.7.14

                          Variable netsConst

                          nets: {
                              ageGenderNet: AgeGenderNet;
                              faceExpressionNet: FaceExpressionNet;
                              faceLandmark68Net: FaceLandmark68Net;
                              faceLandmark68TinyNet: FaceLandmark68TinyNet;
                              faceRecognitionNet: FaceRecognitionNet;
                              ssdMobilenetv1: SsdMobilenetv1;
                              tinyFaceDetector: TinyFaceDetector;
                              tinyYolov2: TinyYolov2;
                          } = ...
                          diff --git a/typedoc/variables/tf.ENV.html b/typedoc/variables/tf.ENV.html index b84aefa..5c35ffe 100644 --- a/typedoc/variables/tf.ENV.html +++ b/typedoc/variables/tf.ENV.html @@ -1 +1 @@ -ENV | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +ENV | @vladmandic/face-api - v1.7.14
                          ENV: Environment
                          diff --git a/typedoc/variables/tf.image.html b/typedoc/variables/tf.image.html index f99d1e2..b577cb9 100644 --- a/typedoc/variables/tf.image.html +++ b/typedoc/variables/tf.image.html @@ -1 +1 @@ -image | @vladmandic/face-api - v1.7.13

                          Variable imageConst

                          image: {
                              cropAndResize: ((image, boxes, boxInd, cropSize, method?, extrapolationValue?) => Tensor4D);
                              flipLeftRight: ((image) => Tensor4D);
                              grayscaleToRGB: (<T>(image) => T);
                              nonMaxSuppression: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?) => Tensor1D);
                              nonMaxSuppressionAsync: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?) => Promise<Tensor1D>);
                              nonMaxSuppressionPadded: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, padToMaxOutputSize?) => NamedTensorMap);
                              nonMaxSuppressionPaddedAsync: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, padToMaxOutputSize?) => Promise<NamedTensorMap>);
                              nonMaxSuppressionWithScore: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, softNmsSigma?) => NamedTensorMap);
                              nonMaxSuppressionWithScoreAsync: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, softNmsSigma?) => Promise<NamedTensorMap>);
                              resizeBilinear: (<T_2>(images, size, alignCorners?, halfPixelCenters?) => T_2);
                              resizeNearestNeighbor: (<T_1>(images, size, alignCorners?, halfPixelCenters?) => T_1);
                              rgbToGrayscale: (<T_3>(image) => T_3);
                              rotateWithOffset: ((image, radians, fillValue?, center?) => Tensor4D);
                              threshold: ((image, method?, inverted?, threshValue?) => Tensor3D);
                              transform: ((image, transforms, interpolation?, fillMode?, fillValue?, outputShape?) => Tensor4D);
                          }

                          Type declaration

                          • cropAndResize: ((image, boxes, boxInd, cropSize, method?, extrapolationValue?) => Tensor4D)
                              • (image, boxes, boxInd, cropSize, method?, extrapolationValue?): Tensor4D
                              • Parameters

                                • image: TensorLike | Tensor4D
                                • boxes: TensorLike | Tensor2D
                                • boxInd: TensorLike | Tensor1D
                                • cropSize: [number, number]
                                • Optional method: "bilinear" | "nearest"
                                • Optional extrapolationValue: number

                                Returns Tensor4D

                          • flipLeftRight: ((image) => Tensor4D)
                              • (image): Tensor4D
                              • Parameters

                                • image: TensorLike | Tensor4D

                                Returns Tensor4D

                          • grayscaleToRGB: (<T>(image) => T)
                              • <T>(image): T
                              • Type Parameters

                                • T extends Tensor2D | Tensor3D | Tensor4D | Tensor5D | Tensor6D

                                Parameters

                                • image: TensorLike | T

                                Returns T

                          • nonMaxSuppression: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?) => Tensor1D)
                              • (boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?): Tensor1D
                              • Parameters

                                • boxes: TensorLike | Tensor2D
                                • scores: TensorLike | Tensor1D
                                • maxOutputSize: number
                                • Optional iouThreshold: number
                                • Optional scoreThreshold: number

                                Returns Tensor1D

                          • nonMaxSuppressionAsync: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?) => Promise<Tensor1D>)
                              • (boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?): Promise<Tensor1D>
                              • Parameters

                                • boxes: TensorLike | Tensor2D
                                • scores: TensorLike | Tensor1D
                                • maxOutputSize: number
                                • Optional iouThreshold: number
                                • Optional scoreThreshold: number

                                Returns Promise<Tensor1D>

                          • nonMaxSuppressionPadded: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, padToMaxOutputSize?) => NamedTensorMap)
                              • (boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, padToMaxOutputSize?): NamedTensorMap
                              • Parameters

                                • boxes: TensorLike | Tensor2D
                                • scores: TensorLike | Tensor1D
                                • maxOutputSize: number
                                • Optional iouThreshold: number
                                • Optional scoreThreshold: number
                                • Optional padToMaxOutputSize: boolean

                                Returns NamedTensorMap

                          • nonMaxSuppressionPaddedAsync: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, padToMaxOutputSize?) => Promise<NamedTensorMap>)
                              • (boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, padToMaxOutputSize?): Promise<NamedTensorMap>
                              • Parameters

                                • boxes: TensorLike | Tensor2D
                                • scores: TensorLike | Tensor1D
                                • maxOutputSize: number
                                • Optional iouThreshold: number
                                • Optional scoreThreshold: number
                                • Optional padToMaxOutputSize: boolean

                                Returns Promise<NamedTensorMap>

                          • nonMaxSuppressionWithScore: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, softNmsSigma?) => NamedTensorMap)
                              • (boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, softNmsSigma?): NamedTensorMap
                              • Parameters

                                • boxes: TensorLike | Tensor2D
                                • scores: TensorLike | Tensor1D
                                • maxOutputSize: number
                                • Optional iouThreshold: number
                                • Optional scoreThreshold: number
                                • Optional softNmsSigma: number

                                Returns NamedTensorMap

                          • nonMaxSuppressionWithScoreAsync: ((boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, softNmsSigma?) => Promise<NamedTensorMap>)
                              • (boxes, scores, maxOutputSize, iouThreshold?, scoreThreshold?, softNmsSigma?): Promise<NamedTensorMap>
                              • Parameters

                                • boxes: TensorLike | Tensor2D
                                • scores: TensorLike | Tensor1D
                                • maxOutputSize: number
                                • Optional iouThreshold: number
                                • Optional scoreThreshold: number
                                • Optional softNmsSigma: number

                                Returns Promise<NamedTensorMap>

                          • resizeBilinear: (<T_2>(images, size, alignCorners?, halfPixelCenters?) => T_2)
                              • <T_2>(images, size, alignCorners?, halfPixelCenters?): T_2
                              • Type Parameters

                                • T_2 extends Tensor3D | Tensor4D

                                Parameters

                                • images: TensorLike | T_2
                                • size: [number, number]
                                • Optional alignCorners: boolean
                                • Optional halfPixelCenters: boolean

                                Returns T_2

                          • resizeNearestNeighbor: (<T_1>(images, size, alignCorners?, halfPixelCenters?) => T_1)
                              • <T_1>(images, size, alignCorners?, halfPixelCenters?): T_1
                              • Type Parameters

                                • T_1 extends Tensor3D | Tensor4D

                                Parameters

                                • images: TensorLike | T_1
                                • size: [number, number]
                                • Optional alignCorners: boolean
                                • Optional halfPixelCenters: boolean

                                Returns T_1

                          • rgbToGrayscale: (<T_3>(image) => T_3)
                              • <T_3>(image): T_3
                              • Type Parameters

                                • T_3 extends Tensor2D | Tensor3D | Tensor4D | Tensor5D | Tensor6D

                                Parameters

                                • image: TensorLike | T_3

                                Returns T_3

                          • rotateWithOffset: ((image, radians, fillValue?, center?) => Tensor4D)
                              • (image, radians, fillValue?, center?): Tensor4D
                              • Parameters

                                • image: TensorLike | Tensor4D
                                • radians: number
                                • Optional fillValue: number | [number, number, number]
                                • Optional center: number | [number, number]

                                Returns Tensor4D

                          • threshold: ((image, method?, inverted?, threshValue?) => Tensor3D)
                              • (image, method?, inverted?, threshValue?): Tensor3D
                              • Parameters

                                • image: TensorLike | Tensor3D
                                • Optional method: string
                                • Optional inverted: boolean
                                • Optional threshValue: number

                                Returns Tensor3D

                          • transform: ((image, transforms, interpolation?, fillMode?, fillValue?, outputShape?) => Tensor4D)
                              • (image, transforms, interpolation?, fillMode?, fillValue?, outputShape?): Tensor4D
                              • Parameters

                                • image: TensorLike | Tensor4D
                                • transforms: TensorLike | Tensor2D
                                • Optional interpolation: "bilinear" | "nearest"
                                • Optional fillMode: "reflect" | "nearest" | "constant" | "wrap"
                                • Optional fillValue: number
                                • Optional outputShape: [number, number]

                                Returns Tensor4D

                          \ No newline at end of file +image | @vladmandic/face-api - v1.7.14

                          Variable imageConst

                          image: {
                              cropAndResize: ((image: TensorLike | Tensor4D, boxes: TensorLike | Tensor2D, boxInd: TensorLike | Tensor1D, cropSize: [number, number], method?: "bilinear" | "nearest", extrapolationValue?: number) => Tensor4D);
                              flipLeftRight: ((image: TensorLike | Tensor4D) => Tensor4D);
                              grayscaleToRGB: (<T>(image: TensorLike | T) => T);
                              nonMaxSuppression: ((boxes: TensorLike | Tensor2D, scores: TensorLike | Tensor1D, maxOutputSize: number, iouThreshold?: number, scoreThreshold?: number) => Tensor1D);
                              nonMaxSuppressionAsync: ((boxes: TensorLike | Tensor2D, scores: TensorLike | Tensor1D, maxOutputSize: number, iouThreshold?: number, scoreThreshold?: number) => Promise<Tensor1D>);
                              nonMaxSuppressionPadded: ((boxes: TensorLike | Tensor2D, scores: TensorLike | Tensor1D, maxOutputSize: number, iouThreshold?: number, scoreThreshold?: number, padToMaxOutputSize?: boolean) => NamedTensorMap);
                              nonMaxSuppressionPaddedAsync: ((boxes: TensorLike | Tensor2D, scores: TensorLike | Tensor1D, maxOutputSize: number, iouThreshold?: number, scoreThreshold?: number, padToMaxOutputSize?: boolean) => Promise<NamedTensorMap>);
                              nonMaxSuppressionWithScore: ((boxes: TensorLike | Tensor2D, scores: TensorLike | Tensor1D, maxOutputSize: number, iouThreshold?: number, scoreThreshold?: number, softNmsSigma?: number) => NamedTensorMap);
                              nonMaxSuppressionWithScoreAsync: ((boxes: TensorLike | Tensor2D, scores: TensorLike | Tensor1D, maxOutputSize: number, iouThreshold?: number, scoreThreshold?: number, softNmsSigma?: number) => Promise<NamedTensorMap>);
                              resizeBilinear: (<T_2>(images: TensorLike | T_2, size: [number, number], alignCorners?: boolean, halfPixelCenters?: boolean) => T_2);
                              resizeNearestNeighbor: (<T_1>(images: TensorLike | T_1, size: [number, number], alignCorners?: boolean, halfPixelCenters?: boolean) => T_1);
                              rgbToGrayscale: (<T_3>(image: TensorLike | T_3) => T_3);
                              rotateWithOffset: ((image: TensorLike | Tensor4D, radians: number, fillValue?: number | [number, number, number], center?: number | [number, number]) => Tensor4D);
                              threshold: ((image: TensorLike | Tensor3D, method?: string, inverted?: boolean, threshValue?: number) => Tensor3D);
                              transform: ((image: TensorLike | Tensor4D, transforms: TensorLike | Tensor2D, interpolation?: "bilinear" | "nearest", fillMode?:
                                  | "reflect"
                                  | "nearest"
                                  | "constant"
                                  | "wrap", fillValue?: number, outputShape?: [number, number]) => Tensor4D);
                          }
                          diff --git a/typedoc/variables/tf.version.html b/typedoc/variables/tf.version.html index 42955d7..2763662 100644 --- a/typedoc/variables/tf.version.html +++ b/typedoc/variables/tf.version.html @@ -1 +1 @@ -version | @vladmandic/face-api - v1.7.13

                          Variable versionConst

                          version: {
                              tfjs: string;
                              tfjs-backend-cpu: string;
                              tfjs-backend-webgl: string;
                              tfjs-converter: string;
                              tfjs-core: string;
                              tfjs-data: string;
                              tfjs-layers: string;
                          }

                          Type declaration

                          • tfjs: string
                          • tfjs-backend-cpu: string
                          • tfjs-backend-webgl: string
                          • tfjs-converter: string
                          • tfjs-core: string
                          • tfjs-data: string
                          • tfjs-layers: string
                          \ No newline at end of file +version | @vladmandic/face-api - v1.7.14

                          Variable versionConst

                          version: {
                              tfjs: string;
                              tfjs-backend-cpu: string;
                              tfjs-backend-webgl: string;
                              tfjs-converter: string;
                              tfjs-core: string;
                              tfjs-data: string;
                              tfjs-layers: string;
                          }
                          diff --git a/typedoc/variables/version.html b/typedoc/variables/version.html index 3238d9a..96a65db 100644 --- a/typedoc/variables/version.html +++ b/typedoc/variables/version.html @@ -1 +1 @@ -version | @vladmandic/face-api - v1.7.13
                          \ No newline at end of file +version | @vladmandic/face-api - v1.7.14

                          Variable versionConst

                          version: string = ...
                          diff --git a/types/face-api.d.ts b/types/face-api.d.ts index 7c5cd6a..df827c6 100644 --- a/types/face-api.d.ts +++ b/types/face-api.d.ts @@ -1,5 +1,4 @@ /// -/// declare const add: typeof add_; @@ -1903,7 +1902,7 @@ declare function isFloat(num: number): boolean; declare function isHTTPScheme(url: string): boolean; -export declare function isMediaElement(input: any): boolean; +export declare function isMediaElement(input: any): input is HTMLCanvasElement | HTMLImageElement | HTMLVideoElement; export declare function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement): boolean; @@ -2841,8 +2840,8 @@ export declare const predictAgeAndGender: (input: TNetInput) => Promise extends ComposableTask { protected parentTask: ComposableTask | Promise; protected input: TNetInput; - protected extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined; - constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined); + protected extractedFaces?: Array | undefined; + constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: Array | undefined); } declare class PredictAllAgeAndGenderTask> extends PredictAgeAndGenderTaskBase>[], TSource[]> { @@ -2877,8 +2876,8 @@ export declare class PredictedBox extends LabeledBox { declare class PredictFaceExpressionsTaskBase extends ComposableTask { protected parentTask: ComposableTask | Promise; protected input: TNetInput; - protected extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined; - constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined); + protected extractedFaces?: Array | undefined; + constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: Array | undefined); } declare type PredictionLayerParams = { @@ -3715,28 +3714,29 @@ declare class Tensor implements TensorInfo { * await tf.setBackend(savedBackend); * ``` * @param values The values of the tensor. Can be nested array of numbers, - * or a flat array, or a `TypedArray`, or a `WebGLData` object, or a - * `WebGPUData` object. If the values are strings, they will be encoded as utf-8 - * and kept as `Uint8Array[]`. If the values is a `WebGLData` object, the dtype - * could only be 'float32' or 'int32' and the object has to have: 1. texture, a - * `WebGLTexture`, the texture must share the same `WebGLRenderingContext` with - * TFJS's WebGL backend (you could create a custom WebGL backend from your - * texture's canvas) and the internal texture format for the input texture must - * be floating point or normalized integer; 2. height, the height of the - * texture; 3. width, the width of the texture; 4. channels, a non-empty subset - * of 'RGBA', indicating the values of which channels will be passed to the - * tensor, such as 'R' or 'BR' (The order of the channels affect the order of - * tensor values. ). (If the values passed from texture is less than the tensor - * size, zeros will be padded at the rear.). If the values is a `WebGPUData` - * object, the dtype could only be 'float32' or 'int32 and the object has to - * have: buffer, a `GPUBuffer`. The buffer must: 1. share the same `GPUDevice` - * with TFJS's WebGPU backend; 2. buffer.usage should at least support - * GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC; 3. buffer.size should not - * be smaller than the byte size of tensor shape. WebGPUData optionally supports - * zero copy by flag zeroCopy. When zeroCopy is false or undefined(default), - * this passing GPUBuffer can be destroyed after tensor is created. When - * zeroCopy is true, this GPUBuffer is bound directly by the tensor, so do not - * destroy this GPUBuffer until all access is done. + * or a flat array, or a `TypedArray`(At the moment it supports Uint8Array, + * Uint8ClampedArray, Int32Array, Float32Array) data types, or a `WebGLData` + * object, or a `WebGPUData` object. If the values are strings, they will be + * encoded as utf-8 and kept as `Uint8Array[]`. If the values is a `WebGLData` + * object, the dtype could only be 'float32' or 'int32' and the object has to + * have: 1. texture, a `WebGLTexture`, the texture must share the same + * `WebGLRenderingContext` with TFJS's WebGL backend (you could create a custom + * WebGL backend from your texture's canvas) and the internal texture format + * for the input texture must be floating point or normalized integer; 2. + * height, the height of the texture; 3. width, the width of the texture; 4. + * channels, a non-empty subset of 'RGBA', indicating the values of which + * channels will be passed to the tensor, such as 'R' or 'BR' (The order of the + * channels affect the order of tensor values. ). (If the values passed from + * texture is less than the tensor size, zeros will be padded at the rear.). If + * the values is a `WebGPUData` object, the dtype could only be 'float32' or + * 'int32 and the object has to have: buffer, a `GPUBuffer`. The buffer must: + * 1. share the same `GPUDevice` with TFJS's WebGPU backend; 2. buffer.usage + * should at least support GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC; 3. + * buffer.size should not be smaller than the byte size of tensor shape. + * WebGPUData optionally supports zero copy by flag zeroCopy. When zeroCopy is + * false or undefined(default),this passing GPUBuffer can be destroyed after + * tensor is created. When zeroCopy is true, this GPUBuffer is bound directly + * by the tensor, so do not destroy this GPUBuffer until all access is done. * @param shape The shape of the tensor. Optional. If not provided, * it is inferred from `values`. * @param dtype The data type. diff --git a/types/lib/src/dom/isMediaElement.d.ts b/types/lib/src/dom/isMediaElement.d.ts index 1d359c2..4e84a35 100644 --- a/types/lib/src/dom/isMediaElement.d.ts +++ b/types/lib/src/dom/isMediaElement.d.ts @@ -1 +1 @@ -export declare function isMediaElement(input: any): boolean; +export declare function isMediaElement(input: any): input is HTMLCanvasElement | HTMLImageElement | HTMLVideoElement; diff --git a/types/lib/src/env/types.d.ts b/types/lib/src/env/types.d.ts index e26e91a..5a03207 100644 --- a/types/lib/src/env/types.d.ts +++ b/types/lib/src/env/types.d.ts @@ -1,4 +1,3 @@ -/// export type FileSystem = { readFile: (filePath: string) => Promise; }; diff --git a/types/lib/src/globalApi/PredictAgeAndGenderTask.d.ts b/types/lib/src/globalApi/PredictAgeAndGenderTask.d.ts index fc03f3e..a3b7707 100644 --- a/types/lib/src/globalApi/PredictAgeAndGenderTask.d.ts +++ b/types/lib/src/globalApi/PredictAgeAndGenderTask.d.ts @@ -10,8 +10,8 @@ import { PredictAllFaceExpressionsTask, PredictAllFaceExpressionsWithFaceAlignme export declare class PredictAgeAndGenderTaskBase extends ComposableTask { protected parentTask: ComposableTask | Promise; protected input: TNetInput; - protected extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined; - constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined); + protected extractedFaces?: Array | undefined; + constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: Array | undefined); } export declare class PredictAllAgeAndGenderTask> extends PredictAgeAndGenderTaskBase>[], TSource[]> { run(): Promise>[]>; diff --git a/types/lib/src/globalApi/PredictFaceExpressionsTask.d.ts b/types/lib/src/globalApi/PredictFaceExpressionsTask.d.ts index 0834cb3..e8194dd 100644 --- a/types/lib/src/globalApi/PredictFaceExpressionsTask.d.ts +++ b/types/lib/src/globalApi/PredictFaceExpressionsTask.d.ts @@ -9,8 +9,8 @@ import { PredictAllAgeAndGenderTask, PredictAllAgeAndGenderWithFaceAlignmentTask export declare class PredictFaceExpressionsTaskBase extends ComposableTask { protected parentTask: ComposableTask | Promise; protected input: TNetInput; - protected extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined; - constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: (tf.Tensor3D | HTMLCanvasElement)[] | undefined); + protected extractedFaces?: Array | undefined; + constructor(parentTask: ComposableTask | Promise, input: TNetInput, extractedFaces?: Array | undefined); } export declare class PredictAllFaceExpressionsTask> extends PredictFaceExpressionsTaskBase[], TSource[]> { run(): Promise[]>;