@kubohiroya/turbowarp-teachable-machine 3.5.4 → 3.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/backend-wasm.js +1 -1
- package/dist/backend-webgpu.js +1 -1
- package/dist/composition.js +2 -2
- package/dist/posenet.js +2 -2
- package/dist/runtime.js +2 -2
- package/dist/tm.js +2 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -69,7 +69,7 @@ That download, and the artifact a composite runtime fetches, is the version-pinn
|
|
|
69
69
|
jsDelivr:
|
|
70
70
|
|
|
71
71
|
```text
|
|
72
|
-
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@3.5.
|
|
72
|
+
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@3.5.6/dist/tm.js
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
The standalone extension loads one reviewed browser runtime that contains one TensorFlow.js 4.22.0
|
|
@@ -81,13 +81,13 @@ Composite runtimes can load or embed the same artifact without rewriting a minif
|
|
|
81
81
|
bundle:
|
|
82
82
|
|
|
83
83
|
```text
|
|
84
|
-
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@3.5.
|
|
84
|
+
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@3.5.6/dist/runtime.js
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
To add the published package to another project:
|
|
88
88
|
|
|
89
89
|
```sh
|
|
90
|
-
pnpm add --save-exact @kubohiroya/turbowarp-teachable-machine@3.5.
|
|
90
|
+
pnpm add --save-exact @kubohiroya/turbowarp-teachable-machine@3.5.6
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
### Offline PoseNet bundle API
|
package/dist/backend-wasm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @license Includes TensorFlow.js WASM backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v3.5.
|
|
1
|
+
/*! @license Includes TensorFlow.js WASM backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v3.5.6/THIRD_PARTY_NOTICES.md. */
|
|
2
2
|
(function(i){var ki=Object.create,wr=Object.defineProperty,Si=Object.getOwnPropertyDescriptor,Mi=Object.getOwnPropertyNames,Ai=Object.getPrototypeOf,Fr=Object.prototype.hasOwnProperty,dn=(t,a)=>()=>(a||(t((a={exports:{}}).exports,a),t=null),a.exports),xi=(t,a,u,d)=>{if(a&&typeof a=="object"||typeof a=="function")for(var r=Mi(a),n=0,o=r.length,p;n<o;n++)p=r[n],!Fr.call(t,p)&&p!==u&&wr(t,p,{get:(l=>a[l]).bind(null,p),enumerable:!(d=Si(a,p))||d.enumerable});return t},Nr=(t,a,u)=>(u=t!=null?ki(Ai(t)):{},xi(a||!t||!t.__esModule||!Fr.call(t,"default")?wr(u,"default",{value:t,enumerable:!0}):u,t)),G;(function(t){t[t.float32=0]="float32",t[t.int32=1]="int32",t[t.bool=2]="bool",t[t.string=3]="string",t[t.complex64=4]="complex64"})(G||(G={}));var qe;(function(t){t[t.linear=0]="linear",t[t.relu=1]="relu",t[t.relu6=2]="relu6",t[t.prelu=3]="prelu",t[t.leakyrelu=4]="leakyrelu",t[t.sigmoid=5]="sigmoid",t[t.elu=6]="elu"})(qe||(qe={}));var Cr;function Di(t){Cr=t.wasm.cwrap(i._FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function wi(t){const{inputs:a,backend:u,attrs:d}=t,{a:r,b:n,bias:o,preluActivationWeights:p}=a;if(r.dtype!=="float32"||n.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");const{transposeA:l,transposeB:s,activation:e,leakyreluAlpha:m}=d,f=u.dataIdMap.get(r.dataId).id,g=u.dataIdMap.get(n.dataId).id;let h=0;if(o!=null){const B=u.dataIdMap.get(o.dataId);if(B.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${B.shape.length}.`);h=B.id}const b=p==null?0:u.dataIdMap.get(p.dataId).id,y=qe[e];if(y==null)throw new Error(`${e} activation not yet supported for FusedConv2D in the wasm backend.`);const k=l?r.shape[2]:r.shape[1],I=s?n.shape[1]:n.shape[2],M=i.broadcast_util.assertAndGetBroadcastShape(r.shape.slice(0,-2),n.shape.slice(0,-2)),D=u.makeOutput([...M,k,I],r.dtype),F=u.dataIdMap.get(D.dataId).id,E=new Uint8Array(new Int32Array(r.shape).buffer),O=new Uint8Array(new Int32Array(n.shape).buffer);return Cr(f,E,r.shape.length,g,O,n.shape.length,l,s,y,h,b,m||0,F),D}var Fi={kernelName:i._FusedMatMul,backendName:"wasm",setupFunc:Di,kernelFunc:wi};function W(t,a){let u;function d(n){u=n.wasm.cwrap(t,null,["number","number","number"])}function r(n){const{backend:o,inputs:{x:p}}=n,l=o.dataIdMap.get(p.dataId).id,s=o.makeOutput(p.shape,a||p.dtype),e=o.dataIdMap.get(s.dataId).id;return i.util.sizeFromShape(s.shape)===0||u(l,G[p.dtype],e),s}return{kernelName:t,backendName:"wasm",setupFunc:d,kernelFunc:r}}var Ni=W(i.Abs),Ci=W(i.Acos),Ri=W(i.Acosh);function Y(t,a,u){let d;function r(o){d=o.wasm.cwrap(t,null,["number","array","number","number","array","number","number","number"])}function n(o){const{backend:p,inputs:l}=o,{a:s,b:e}=l,m=p.dataIdMap.get(s.dataId).id,f=p.dataIdMap.get(e.dataId).id,g=u??s.dtype,h=i.backend_util.assertAndGetBroadcastShape(s.shape,e.shape),b=p.makeOutput(h,g);if(i.util.sizeFromShape(h)===0)return b;const y=new Uint8Array(new Int32Array(s.shape).buffer),k=new Uint8Array(new Int32Array(e.shape).buffer),I=p.dataIdMap.get(b.dataId).id;return d(m,y,s.shape.length,f,k,e.shape.length,G[s.dtype],I),b}return{kernelName:t,backendName:"wasm",setupFunc:r,kernelFunc:n}}var _i=!0,Pi=Y(i.Add,_i),Rr;function Ei(t){Rr=t.wasm.cwrap(i.AddN,null,["array","number","number","number"])}function Bi(t){const{inputs:a,backend:u}=t,d=u.makeOutput(a[0].shape,a[0].dtype);if(i.util.sizeFromShape(d.shape)===0)return d;const r=a.map(p=>u.dataIdMap.get(p.dataId).id),n=new Uint8Array(new Int32Array(r).buffer),o=u.dataIdMap.get(d.dataId).id;return Rr(n,r.length,G[d.dtype],o),d}var Ti={kernelName:i.AddN,backendName:"wasm",setupFunc:Ei,kernelFunc:Bi};function on(t){const{inputs:{x:a},backend:u}=t;if(a.dtype==="string")return(0,i.tensor)(u.readSync(a.dataId),a.shape,a.dtype);const d=u.makeOutput(a.shape,a.dtype),r=u.typedArrayFromHeap(a);return u.typedArrayFromHeap(d).set(r),d}var Oi={kernelName:i.Identity,backendName:"wasm",kernelFunc:on},_r;function Wi(t){_r=t.wasm.cwrap(i.Transpose,null,["number","array","number","number","number","array","number"])}function Ie(t){const{inputs:a,backend:u,attrs:d}=t,[r,n]=Hi(a.x.shape,d.perm);let o=!0;for(let h=0;h<n.length;h++)n[h]!==h&&(o=!1);const p=zi(a.x.shape,d.perm),l={dataId:a.x.dataId,shape:r,dtype:a.x.dtype};if(o){const h=on({inputs:a,backend:u});return h.shape=p,h}const s=u.makeOutput(p,l.dtype),e=u.dataIdMap.get(l.dataId).id,m=u.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(n).buffer),g=new Uint8Array(new Int32Array(l.shape).buffer);return _r(e,g,l.shape.length,G[l.dtype],m,f,n.length),s}function zi(t,a){const u=new Array(t.length);for(let d=0;d<u.length;d++)u[d]=t[a[d]];return u}function Hi(t,a){const u=[],d=[];for(let r=0;r<t.length;++r)t[r]!==1&&u.push(t[r]),t[a[r]]!==1&&d.push(a[r]);for(let r=0;r<d.length;++r){let n=-1;for(let o=0;o<d.length;++o)d[o]>=r&&(n===-1||d[n]>d[o])&&(n=o);d[n]=r}return[u,d]}var Li={kernelName:i.Transpose,backendName:"wasm",kernelFunc:Ie,setupFunc:Wi};function ke(t,a,u){const d=t.shape,r=t.shape.length,n=i.util.parseAxisParam(a,d);let o=n;const p=i.backend_util.getAxesPermutation(o,r);let l=null,s=!1;if(p!=null){const e=new Array(r);for(let f=0;f<e.length;f++)e[f]=d[p[f]];o=i.backend_util.getInnerMostAxes(o.length,r),l=Ie({inputs:{x:t},attrs:{perm:p},backend:u});const m=u.dataIdMap.get(t.dataId).id;u.dataIdMap.get(l.dataId).id!==m&&(s=!0)}return{transposed:l,originalAxes:n,axes:o,inputWasTransposed:s}}var Pr;function Gi(t){Pr=t.wasm.cwrap(i.All,null,["number, number, number"])}function $i(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u;let p=a.dataIdMap.get(o.dataId).id,l=o;const{transposed:s,axes:e,originalAxes:m,inputWasTransposed:f}=ke(o,r,a);if(f){const I=a.dataIdMap.get(s.dataId).id;l=s,p=I}const g=l.shape.length;i.backend_util.assertAxesAreInnerMostDims("all",e,g);const[h,b]=i.backend_util.computeOutAndReduceShapes(l.shape,e),y=i.util.sizeFromShape(b),k=a.makeOutput(h,o.dtype);if(i.util.sizeFromShape(l.shape)!==0){const I=a.dataIdMap.get(k.dataId).id;Pr(p,y,I)}return f&&a.disposeData(s.dataId),n&&(k.shape=i.backend_util.expandShapeToKeepDim(k.shape,m)),k}var Vi={kernelName:i.All,backendName:"wasm",setupFunc:Gi,kernelFunc:$i},Er;function Ui(t){Er=t.wasm.cwrap(i.Any,null,["number, number, number"])}function qi(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u;let p=a.dataIdMap.get(o.dataId).id,l=o;const{transposed:s,axes:e,originalAxes:m,inputWasTransposed:f}=ke(o,r,a);if(f){const I=a.dataIdMap.get(s.dataId).id;l=s,p=I}const g=l.shape.length;i.backend_util.assertAxesAreInnerMostDims("any",e,g);const[h,b]=i.backend_util.computeOutAndReduceShapes(l.shape,e),y=i.util.sizeFromShape(b),k=a.makeOutput(h,o.dtype);if(i.util.sizeFromShape(l.shape)!==0){const I=a.dataIdMap.get(k.dataId).id;Er(p,y,I)}return f&&a.disposeData(s.dataId),n&&(k.shape=i.backend_util.expandShapeToKeepDim(k.shape,m)),k}var Ki={kernelName:i.Any,backendName:"wasm",setupFunc:Ui,kernelFunc:qi};function Br(t){let a;function u(r){a=r.wasm.cwrap(t,null,["number","number","number","number","number"])}function d(r){const{backend:n,inputs:o,attrs:p}=r,{axis:l}=p,{x:s}=o,e=n.dataIdMap.get(s.dataId).id;let m=e,f=s;const{transposed:g,axes:h,inputWasTransposed:b}=ke(s,l,n);if(b){const F=n.dataIdMap.get(g.dataId).id;F!==e&&(f=g,m=F)}const y=f.shape.slice(0,-1),k=n.makeOutput(y,"int32"),I=n.dataIdMap.get(k.dataId).id,M=i.util.sizeFromShape(k.shape),D=f.shape[h[0]];return a(m,G[f.dtype],M,D,I),b&&n.disposeData(g.dataId),k}return{kernelName:t,backendName:"wasm",setupFunc:u,kernelFunc:d}}var Xi=Br(i.ArgMax),Ji=Br(i.ArgMin),Qi=W(i.Asin),Yi=W(i.Asinh),Zi=W(i.Atan),ji=Y(i.Atan2,!1),es=W(i.Atanh),Tr;function ns(t){Tr=t.wasm.cwrap(i.AvgPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ts(t){const{inputs:a,attrs:u,backend:d}=t,r=a.x,n=d.dataIdMap.get(r.dataId).id,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=u,e=i.backend_util.computePool2DInfo(r.shape,o,p,1,l,s),m=e.filterHeight,f=e.filterWidth,g=e.padInfo.top,h=e.padInfo.right,b=e.padInfo.bottom,y=e.padInfo.left,k=e.strideHeight,I=e.strideWidth,M=e.inChannels;if(e.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${e.dataFormat}'. Please use 'channelsLast'.`);if(e.dilationWidth!==1||e.dilationHeight!==1)throw new Error(`was backend only supports average pooling with dilation = [1, 1], got [${e.dilationHeight}, ${e.dilationWidth}].`);const D=d.makeOutput(e.outShape,"float32"),F=d.dataIdMap.get(D.dataId).id;return Tr(n,r.shape[0],r.shape[1],r.shape[2],m,f,g,h,b,y,k,I,M,F),D}var as={kernelName:i.AvgPool,backendName:"wasm",setupFunc:ns,kernelFunc:ts},Or;function rs(t){Or=t.wasm.cwrap("AvgPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function us(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{filterSize:n,strides:o,pad:p,dimRoundingMode:l,dataFormat:s}=d,e=i.backend_util.computePool3DInfo(r.shape,n,o,1,p,l,s),m=u.makeOutput(e.outShape,r.dtype);return Or(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left),m}var is={kernelName:i.AvgPool3D,backendName:"wasm",setupFunc:rs,kernelFunc:us},Wr;function ss(t){Wr=t.wasm.cwrap("AvgPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ds(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=d,e=i.backend_util.computePool3DInfo(n.shape,o,p,1,l,s),m=u.makeOutput(n.shape,n.dtype);return Wr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left,e.filterDepth,e.filterHeight,e.filterWidth),m}var os={kernelName:i.AvgPool3DGrad,backendName:"wasm",setupFunc:ss,kernelFunc:ds},zr;function ps(t){zr=t.wasm.cwrap("AvgPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ls(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l}=d,s=i.backend_util.computePool2DInfo(n.shape,o,p,1,l),e=u.makeOutput(n.shape,n.dtype);return zr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inChannels,s.inHeight,s.inWidth,s.outHeight,s.outWidth,s.strideHeight,s.strideWidth,s.dilationHeight,s.dilationWidth,s.effectiveFilterHeight,s.effectiveFilterWidth,s.padInfo.top,s.padInfo.left,s.filterHeight,s.filterWidth),e}var cs={kernelName:i.AvgPoolGrad,backendName:"wasm",setupFunc:ps,kernelFunc:ls};function ue(t){const{inputs:a,attrs:u}=t,{x:d}=a,{shape:r}=u,n=i.util.sizeFromShape(d.shape),o=i.util.inferFromImplicitShape(r,n);return i.util.assert(n===i.util.sizeFromShape(o),()=>`new shape: ${o}, old shape: ${d.shape}. New shape and old shape must have the same number of elements.`),t.backend.incRef(d.dataId),{dataId:d.dataId,shape:o,dtype:d.dtype}}var ms={kernelName:i.Reshape,backendName:"wasm",kernelFunc:ue},Hr;function hs(t){Hr=t.wasm.cwrap(i.BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function gs(t){const{inputs:a,backend:u,attrs:d}=t,{a:r,b:n}=a,{transposeA:o,transposeB:p}=d;if(r.dtype!=="float32"||n.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");const l=r.shape.length,s=n.shape.length,e=o?r.shape[l-2]:r.shape[l-1],m=p?n.shape[s-1]:n.shape[s-2],f=o?r.shape[l-1]:r.shape[l-2],g=p?n.shape[s-2]:n.shape[s-1],h=r.shape.slice(0,-2),b=n.shape.slice(0,-2),y=i.util.sizeFromShape(h),k=i.util.sizeFromShape(b),I=i.broadcast_util.assertAndGetBroadcastShape(r.shape.slice(0,-2),n.shape.slice(0,-2)).concat([f,g]);i.util.assert(e===m,()=>`Error in matMul: inner shapes (${e}) and (${m}) of Tensors with shapes ${r.shape} and ${n.shape} and transposeA=${o} and transposeB=${p} must match.`);const M=o?[y,e,f]:[y,f,e],D=p?[k,g,m]:[k,m,g],F=ue({inputs:{x:r},backend:u,attrs:{shape:M}}),E=ue({inputs:{x:n},backend:u,attrs:{shape:D}}),O=u.dataIdMap.get(F.dataId).id,B=u.dataIdMap.get(E.dataId).id,K=o?F.shape[2]:F.shape[1],X=p?E.shape[1]:E.shape[2],U=Math.max(y,k),q=u.makeOutput([U,K,X],F.dtype),Z=u.dataIdMap.get(q.dataId).id,ie=new Uint8Array(new Int32Array(F.shape).buffer),le=new Uint8Array(new Int32Array(E.shape).buffer);return Hr(O,ie,F.shape.length,B,le,E.shape.length,o,p,Z),u.disposeData(F.dataId),u.disposeData(E.dataId),q.shape=I,q}var fs={kernelName:i.BatchMatMul,backendName:"wasm",setupFunc:hs,kernelFunc:gs};function bs(t,a,u,d){const r=i.util.getArrayFromDType(u,i.util.sizeFromShape(a));if(d&&u!=="string"){let n=0;t.forEach(o=>{const p=i.util.sizeFromShape(o.shape);r.set(o.vals,n),n+=p})}else{let n=0;t.forEach(o=>{const p=u==="string"?i.backend_util.fromUint8ToStringArray(o.vals):o.vals;let l=0;for(let s=0;s<o.shape[0];++s){const e=s*a[1]+n;for(let m=0;m<o.shape[1];++m)r[e+m]=p[l++]}n+=o.shape[1]})}return r}function vs(t,a,u,d){if(t===a||t<a&&u<0||a<t&&u>1)return i.util.makeZerosTypedArray(0,d);const r=Math.abs(Math.ceil((a-t)/u)),n=i.util.makeZerosTypedArray(r,d);a<t&&u===1&&(u=-1),n[0]=t;for(let o=1;o<n.length;o++)n[o]=n[o-1]+u;return n}function Lr(t,a,u,d,r){const n=i.slice_util.isSliceContinous(d,a,u),o=i.util.sizeFromShape(u),p=i.util.computeStrides(d);if(n){const m=i.slice_util.computeFlatOffset(a,p);return r==="string"?t.slice(m,m+o):t.subarray(m,m+o)}const l=r==="string"?i.backend_util.fromUint8ToStringArray(t):t,s=(0,i.buffer)(d,r,l),e=(0,i.buffer)(u,r);for(let m=0;m<e.size;++m){const f=e.indexToLoc(m),g=f.map((h,b)=>h+a[b]);e.set(s.get(...g),...f)}return r==="string"?i.backend_util.fromStringArrayToUint8(e.values):e.values}var ys=class{constructor(t,a,u,d,r,n){this.separator=i.util.encodeString(t),this.nGramWidths=a,this.leftPad=i.util.encodeString(u),this.rightPad=i.util.encodeString(d),this.padWidth=r,this.preserveShort=n}getPadWidth(t){return Math.min(this.padWidth<0?t-1:this.padWidth,t-1)}getNumNGrams(t,a){const u=this.getPadWidth(a);return Math.max(0,t+2*u-a+1)}createNGrams(t,a,u,d,r,n){for(let o=0;o<r;++o){const p=this.getPadWidth(n),l=Math.max(0,p-o),s=Math.max(0,p-(r-(o+1))),e=n-(l+s),m=a+(l>0?0:o-p);let f=0;f+=l*this.leftPad.length;for(let k=0;k<e;++k)f+=t[m+k].length;f+=s*this.rightPad.length;const g=l+s+e-1;f+=g*this.separator.length,u[d+o]=new Uint8Array(f);const h=u[d+o];let b=0;const y=k=>k.forEach(I=>h[b++]=I);for(let k=0;k<l;++k)y(this.leftPad),y(this.separator);for(let k=0;k<e-1;++k)y(t[m+k]),y(this.separator);if(e>0){y(t[m+e-1]);for(let k=0;k<s;++k)y(this.separator),y(this.rightPad)}else{for(let k=0;k<s-1;++k)y(this.rightPad),y(this.separator);y(this.rightPad)}}}compute(t,a){const u=t.length,d=a.length;if(d>0){let p=a[0];if(p!==0)throw new Error(`First split value must be 0, got ${p}`);for(let l=1;l<d;++l){let s=a[l]>=p;if(s=s&&a[l]<=u,!s)throw new Error(`Invalid split value ${a[l]}, must be in [${p}, ${u}]`);p=a[l]}if(p!==u)throw new Error(`Last split value must be data size. Expected ${u}, got ${p}`)}const r=d-1,n=i.util.getArrayFromDType("int32",d);if(u===0||d===0){const p=new Array(u);for(let l=0;l<=r;++l)n[l]=0;return[p,n]}n[0]=0;for(let p=1;p<=r;++p){const l=a[p]-a[p-1];let s=0;this.nGramWidths.forEach(e=>{s+=this.getNumNGrams(l,e)}),this.preserveShort&&l>0&&s===0&&(s=1),n[p]=n[p-1]+s}const o=new Array(n[r]);for(let p=0;p<r;++p){const l=a[p];let s=n[p];if(this.nGramWidths.forEach(e=>{const m=a[p+1]-a[p],f=this.getNumNGrams(m,e);this.createNGrams(t,l,o,s,f,e),s+=f}),this.preserveShort&&s===n[p]){const e=a[p+1]-a[p];if(e===0)continue;const m=e+2*this.padWidth;this.createNGrams(t,l,o,s,1,m)}}return[o,n]}};function Is(t,a,u,d,r,n,o,p){return new ys(u,d,r,n,o,p).compute(t,a)}function ks(t,a,u,d){if(!t.length)return;if(a.length===0){for(let n=0;n<t.length;++n)d.push(t.subarray(n,n+1));return}if(a.length===1){const n=a[0];let o=t.indexOf(n);for(;o!==-1;){const p=t.subarray(0,o);(!u||p.length!==0)&&d.push(p),t=t.subarray(o+1),o=t.indexOf(n)}(!u||t.length!==0)&&d.push(t);return}let r=0;for(let n=0;n<t.length+1;n++)if(n===t.length||a.indexOf(t[n])!==-1){const o=t.subarray(r,n);(!u||o.length!==0)&&d.push(o),r=n+1}}function Ss(t,a,u){const d=t.length,r=[];let n=0,o=0;const p=new Array(d);for(let f=0;f<d;++f){const g=r.length;ks(t[f],a,u,r);const h=r.length-g;p[f]=h,n+=h,o=Math.max(o,h)}const l=i.util.getArrayFromDType("int32",n*2),s=new Array(n),e=[d,o];let m=0;for(let f=0;f<d;++f)for(let g=0;g<p[f];++g)l[m*2]=f,l[m*2+1]=g,s[m]=r[m],++m;return[l,s,e]}function Ms(t,a){const u=i.util.getArrayFromDType("int32",t.length);for(let d=0;d<t.length;++d)u[d]=i.util.fingerPrint64(t[d]).modulo(a).getLowBitsUnsigned();return u}function As(t,a,u,d){const r=i.util.parseAxisParam(a,u)[0],n=[1,u[0],1];for(let h=0;h<r;h++)n[0]*=u[h];n[1]=u[r];for(let h=r+1;h<u.length;h++)n[2]*=u[h];const o=new Map,p=new Int32Array(u[r]),l=new i.TensorBuffer(n,d,t),s=[],e=n[0]===1&&n[2]===1;for(let h=0;h<u[r];h++){let b;if(e)b=t[h].toString();else{const k=[];for(let I=0;I<n[0];I++)for(let M=0;M<n[2];M++)k.push(l.get(I,h,M));b=k.join(",")}const y=o.get(b);if(y!=null)p[h]=y;else{const k=o.size;o.set(b,k),p[h]=k,s.push(h)}}const m=n.slice();m[1]=o.size;const f=new i.TensorBuffer(m,d);s.forEach((h,b)=>{for(let y=0;y<n[0];y++)for(let k=0;k<n[2];k++)f.set(l.get(y,h,k),y,b,k)});const g=u.slice();return g[r]=m[1],{outputValues:f.values,outputShape:g,indices:p}}function De(t){const{inputs:{x:a},attrs:{begin:u,size:d},backend:r}=t,[n,o]=i.slice_util.parseSliceParams(a,u,d),p=i.slice_util.isSliceContinous(a.shape,n,o),l=r.readSync(a.dataId),s=r.makeOutput(o,a.dtype),e=i.util.computeStrides(a.shape),m=r.dataIdMap.get(s.dataId);if(p){const h=i.slice_util.computeFlatOffset(n,e);return a.dtype==="string"?m.stringBytes=l.slice(h,h+i.util.sizeFromShape(o)):r.typedArrayFromHeap(s).set(l.subarray(h,h+i.util.sizeFromShape(o))),s}if(a.dtype==="string")return m.stringBytes=Lr(l,n,o,a.shape,a.dtype),s;const f=r.typedArrayFromHeap(s),g=a.shape.length;if(g===2)xs(l,e[0],f,n,o);else if(g===3)Ds(l,e[0],e[1],f,n,o);else if(g===4)ws(l,e[0],e[1],e[2],f,n,o);else{const h=Lr(l,n,o,a.shape,a.dtype);f.set(h)}return s}function xs(t,a,u,d,r){let n=0;const o=d[0],p=d[1],l=o+r[0];for(let s=o;s<l;s++){const e=s*a+p;u.set(t.subarray(e,e+r[1]),n),n+=r[1]}}function Ds(t,a,u,d,r,n){let o=0;const p=r[0],l=r[1],s=r[2],e=p+n[0],m=l+n[1];for(let f=p;f<e;f++)for(let g=l;g<m;g++){const h=f*a+g*u+s;d.set(t.subarray(h,h+n[2]),o),o+=n[2]}}function ws(t,a,u,d,r,n,o){let p=0;const l=n[0],s=n[1],e=n[2],m=l+o[0],f=s+o[1],g=e+o[2],h=n[3];for(let b=l;b<m;b++)for(let y=s;y<f;y++)for(let k=e;k<g;k++){const I=b*a+y*u+k*d+h;r.set(t.subarray(I,I+o[3]),p),p+=o[3]}}var Fs={kernelName:i.Slice,backendName:"wasm",kernelFunc:De};function Ns(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{blockShape:n,crops:o}=d,p=n.reduce((k,I)=>k*I),l=i.backend_util.getReshaped(r.shape,n,p),s=i.backend_util.getPermuted(l.length,n.length),e=i.backend_util.getReshapedPermuted(r.shape,n,p),m=i.backend_util.getSliceBeginCoords(o,n.length),f=i.backend_util.getSliceSize(e,o,n.length),g=ue({inputs:{x:r},backend:u,attrs:{shape:l}}),h=Ie({inputs:{x:g},backend:u,attrs:{perm:s}}),b=ue({inputs:{x:h},backend:u,attrs:{shape:e}}),y=De({inputs:{x:b},backend:u,attrs:{begin:m,size:f}});return u.disposeData(g.dataId),u.disposeData(h.dataId),u.disposeData(b.dataId),y}var Cs={kernelName:i.BatchToSpaceND,backendName:"wasm",kernelFunc:Ns},Gr;function Rs(t){Gr=t.wasm.cwrap(i.Bincount,null,["number","number","boolean","number","number","number"])}function _s(t){const{backend:a,inputs:u,attrs:d}=t,{x:r,weights:n}=u,{size:o}=d,p=n.shape.reduce((m,f)=>m*f,1)!==0,l=r.shape.length===1?[o]:[r.shape[0],o],s=a.makeOutput(l,n.dtype);function e(m){return a.dataIdMap.get(m.dataId).id}return Gr(e(r),o,p,e(n),G[n.dtype],e(s)),s}var Ps={kernelName:i.Bincount,backendName:"wasm",setupFunc:Rs,kernelFunc:_s},Es=!0,Bs=Y(i.BitwiseAnd,Es);function Ts(t){const{inputs:a,backend:u}=t,{s0:d,s1:r}=a,n=u.typedArrayFromHeap(d),o=u.typedArrayFromHeap(r),p=i.backend_util.assertAndGetBroadcastShape(Array.from(n),Array.from(o));return u.makeOutput([p.length],"int32",void 0,new Int32Array(p))}var Os={kernelName:i.BroadcastArgs,backendName:"wasm",kernelFunc:Ts};function Se(t){const{inputs:{x:a},attrs:{dtype:u},backend:d}=t,r=d.makeOutput(a.shape,u),n=d.typedArrayFromHeap(a);return d.typedArrayFromHeap(r).set(n),r}var Ws={kernelName:i.Cast,backendName:"wasm",kernelFunc:Se},zs=W(i.Ceil),$r;function Hs(t){$r=t.wasm.cwrap(i.ClipByValue,null,["number","number","number","number"])}function Ls(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{clipValueMin:n,clipValueMax:o}=d,p=u.dataIdMap.get(r.dataId).id,l=u.makeOutput(r.shape,r.dtype),s=u.dataIdMap.get(l.dataId).id;return $r(p,n,o,s),l}var Gs={kernelName:i.ClipByValue,backendName:"wasm",setupFunc:Hs,kernelFunc:Ls};function Vr(t){const{inputs:a,backend:u}=t,d=i.util.parseAxisParam(t.attrs.axis,a[0].shape)[0],r=a.map(g=>g.shape);i.backend_util.assertParamsConsistent(r,d);let n=i.backend_util.computeOutShape(a.map(g=>g.shape),d);const o=a.filter(g=>i.util.sizeFromShape(g.shape)>0);if(o.length===1)return on({inputs:{x:o[0]},backend:u});const p=u.makeOutput(n,a[0].dtype);if(i.util.sizeFromShape(n)===0)return p;if(o[0].dtype==="string"){const g=o.map(I=>{const M=[-1,i.util.sizeFromShape(I.shape.slice(d))];return ue({inputs:{x:I},backend:u,attrs:{shape:M}})}),h=g.map(I=>({vals:u.readSync(I.dataId),shape:I.shape}));n=i.backend_util.computeOutShape(g.map(I=>I.shape),1);const b=g[0].shape[0]===1,y=bs(h,n,a[0].dtype,b);p.shape=i.backend_util.computeOutShape(o.map(I=>I.shape),d);const k=u.dataIdMap.get(p.dataId);return k.stringBytes=i.backend_util.fromStringArrayToUint8(y),g.forEach(I=>u.disposeData(I.dataId)),p}const l=i.util.sizeFromShape(o[0].shape.slice(0,d));let s=0;const e=o.map(g=>{const h=i.util.sizeFromShape(g.shape.slice(d));return s+=h,h}),m=o.map(g=>u.typedArrayFromHeap(g)),f=u.typedArrayFromHeap(p);for(let g=0;g<l;g++){let h=g*s;for(let b=0;b<m.length;b++){const y=e[b],k=g*y,I=m[b].subarray(k,k+y);f.set(I,h),h+=y}}return p}var $s={kernelName:i.Concat,backendName:"wasm",kernelFunc:Vr},Ur;function Vs(t){Ur=t.wasm.cwrap(i.Conv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Us(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n}=a,o=d.dataIdMap.get(r.dataId).id,p=d.dataIdMap.get(n.dataId).id,{strides:l,dilations:s,pad:e,dimRoundingMode:m,dataFormat:f}=u,g=i.backend_util.convertConv2DDataFormat(f),h=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,s,e,m,!1,g),b=h.filterHeight,y=h.filterWidth,k=h.padInfo.top,I=h.padInfo.right,M=h.padInfo.bottom,D=h.padInfo.left,F=h.dilationHeight,E=h.dilationWidth,O=h.strideHeight,B=h.strideWidth,K=h.inChannels,X=h.outChannels,U=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend Conv2D does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);const q=d.makeOutput(h.outShape,"float32"),Z=d.dataIdMap.get(q.dataId).id;return Ur(o,r.shape[0],r.shape[1],r.shape[2],p,b,y,k,I,M,D,U,F,E,O,B,K,X,Z),q}var qs={kernelName:i.Conv2D,backendName:"wasm",setupFunc:Vs,kernelFunc:Us},qr;function Ks(t){qr=t.wasm.cwrap(i.Conv2DBackpropInput,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Xs(t){const{backend:a,inputs:u,attrs:d}=t,{dy:r,filter:n}=u,{strides:o,pad:p,dataFormat:l,dimRoundingMode:s,inputShape:e}=d,m=1,f=i.backend_util.convertConv2DDataFormat(l),g=i.backend_util.computeConv2DInfo(e,n.shape,o,m,p,s,!1,f),{batchSize:h,filterHeight:b,filterWidth:y,inChannels:k,inHeight:I,inWidth:M,outChannels:D,outHeight:F,outWidth:E,strideHeight:O,strideWidth:B}=g,K=b-1-g.padInfo.top,X=y-1-g.padInfo.left,U=g.dataFormat==="channelsLast",q=i.util.computeStrides(g.inShape),Z=i.util.computeStrides(r.shape),[ie,le,Q]=i.util.computeStrides(n.shape),j=q[0],ge=U?q[1]:q[2],$=U?q[2]:1,ce=U?1:q[1],me=Z[0],se=U?Z[1]:Z[2],ee=U?Z[2]:1,Te=U?1:Z[1],Fe=a.makeOutput(g.inShape,"float32"),Oe=a.dataIdMap.get(Fe.dataId).id,Je=a.dataIdMap.get(r.dataId).id,Qe=a.dataIdMap.get(n.dataId).id;return qr(Je,Qe,h,b,y,I,M,k,F,E,D,O,B,K,X,ie,le,Q,j,ge,$,ce,me,se,ee,Te,Oe),Fe}var Js={kernelName:i.Conv2DBackpropInput,backendName:"wasm",setupFunc:Ks,kernelFunc:Xs},Kr;function Qs(t){Kr=t.wasm.cwrap(i.Conv3D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ys(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n}=a,{strides:o,pad:p,dilations:l}=d;if(r.dtype!=="float32")throw new Error(`Tensor x must have dtype float32, got ${r.dtype}`);if(n.dtype!=="float32")throw new Error(`Tensor filter must have dtype float32, got ${n.dtype}`);const s=i.backend_util.computeConv3DInfo(r.shape,n.shape,o,l,p),e=u.makeOutput(s.outShape,r.dtype);return Kr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inDepth,s.inHeight,s.inWidth,s.inChannels,s.outDepth,s.outHeight,s.outWidth,s.outChannels,s.strideDepth,s.strideHeight,s.strideWidth,s.dilationDepth,s.dilationHeight,s.dilationWidth,s.filterDepth,s.filterHeight,s.filterWidth,s.padInfo.front,s.padInfo.top,s.padInfo.left),e}var Zs={kernelName:i.Conv3D,backendName:"wasm",setupFunc:Qs,kernelFunc:Ys},Xr;function js(t){Xr=t.wasm.cwrap(i.Conv3DBackpropFilterV2,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ed(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,dy:n}=a,{strides:o,pad:p,filterShape:l}=d;if(r.dtype!=="float32")throw new Error(`Tensor dy must have dtype float32, got ${r.dtype}`);if(n.dtype!=="float32")throw new Error(`Tensor filter must have dtype float32, got ${n.dtype}`);const s=i.backend_util.computeConv3DInfo(r.shape,l,o,1,p),e=u.makeOutput(s.filterShape,n.dtype);return Xr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inDepth,s.inHeight,s.inWidth,s.inChannels,s.outDepth,s.outHeight,s.outWidth,s.outChannels,s.strideDepth,s.strideHeight,s.strideWidth,s.dilationDepth,s.dilationHeight,s.dilationWidth,s.filterDepth,s.filterHeight,s.filterWidth,s.padInfo.front,s.padInfo.top,s.padInfo.left),e}var nd={kernelName:i.Conv3DBackpropFilterV2,backendName:"wasm",setupFunc:js,kernelFunc:ed},Jr;function td(t){Jr=t.wasm.cwrap(i.Conv3DBackpropInputV2,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ad(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,filter:n}=a,{pad:o,strides:p,inputShape:l}=d;if(r.dtype!=="float32")throw new Error(`Tensor dy must have dtype float32, got ${r.dtype}`);if(n.dtype!=="float32")throw new Error(`Tensor filter must have dtype float32, got ${n.dtype}`);const s=i.backend_util.computeConv3DInfo(l,n.shape,p,1,o),e=u.makeOutput(s.inShape,r.dtype);return Jr(u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inDepth,s.inHeight,s.inWidth,s.inChannels,s.outDepth,s.outHeight,s.outWidth,s.outChannels,s.strideDepth,s.strideHeight,s.strideWidth,s.dilationDepth,s.dilationHeight,s.dilationWidth,s.filterDepth,s.filterHeight,s.filterWidth,s.padInfo.front,s.padInfo.top,s.padInfo.left),e}var rd={kernelName:i.Conv3DBackpropInputV2,backendName:"wasm",setupFunc:td,kernelFunc:ad},ud=W(i.Cos),id=W(i.Cosh),Un;(function(t){t[t.bilinear=0]="bilinear",t[t.nearest=1]="nearest"})(Un||(Un={}));var Qr;function sd(t){Qr=t.wasm.cwrap(i.CropAndResize,null,["number","number","number","number","array","number","number","number","number","number"])}function dd(t){const{backend:a,inputs:u,attrs:d}=t,{method:r,extrapolationValue:n,cropSize:o}=d,{image:p,boxes:l,boxInd:s}=u,e=l.shape[0],[m,f]=o,g=[e,m,f,p.shape[3]];let h=a.dataIdMap.get(p.dataId),b;p.dtype!=="float32"&&(b=Se({backend:a,inputs:{x:p},attrs:{dtype:"float32"}}),h=a.dataIdMap.get(b.dataId));const y=h.id,k=a.dataIdMap.get(l.dataId).id,I=a.dataIdMap.get(s.dataId).id,M=a.makeOutput(g,"float32"),D=a.dataIdMap.get(M.dataId).id,F=new Uint8Array(new Int32Array(p.shape).buffer);return Qr(y,k,I,e,F,m,f,Un[r],n,D),b!=null&&a.disposeData(b.dataId),M}var od={kernelName:i.CropAndResize,backendName:"wasm",setupFunc:sd,kernelFunc:dd},Yr;function pd(t){Yr=t.wasm.cwrap(i.Cumprod,null,["number","number","number","number","number","number"])}function ld(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{axis:n,exclusive:o,reverse:p}=d,l=r.shape.length;i.util.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumprod does not support ${r.dtype} tensors in the WASM backend`);const s=i.backend_util.getAxesPermutation([n],l);let e=r;s!==null&&(e=Ie({inputs:{x:r},attrs:{perm:s},backend:u}));const m=i.backend_util.getInnerMostAxes(1,l)[0];i.backend_util.assertAxesAreInnerMostDims("cumprod",[m],l);const f=u.makeOutput(e.shape,e.dtype),g=e.shape[m],h=u.dataIdMap.get(e.dataId).id,b=u.dataIdMap.get(f.dataId).id;Yr(h,o?1:0,p?1:0,g,b,G[r.dtype]);let y=f;if(s!==null){const k=i.backend_util.getUndoAxesPermutation(s);y=Ie({inputs:{x:f},attrs:{perm:k},backend:u}),u.disposeData(e.dataId),u.disposeData(f.dataId)}return y}var cd={kernelName:i.Cumprod,backendName:"wasm",setupFunc:pd,kernelFunc:ld},Zr;function md(t){Zr=t.wasm.cwrap(i.Cumsum,null,["number","number","number","number","number","number"])}function hd(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{axis:n,exclusive:o,reverse:p}=d,l=r.shape.length;i.util.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);const s=i.backend_util.getAxesPermutation([n],l);let e=r;s!==null&&(e=Ie({inputs:{x:r},attrs:{perm:s},backend:u}));const m=i.backend_util.getInnerMostAxes(1,l)[0];i.backend_util.assertAxesAreInnerMostDims("cumsum",[m],l);const f=u.makeOutput(e.shape,e.dtype),g=e.shape[m],h=u.dataIdMap.get(e.dataId).id,b=u.dataIdMap.get(f.dataId).id;Zr(h,o?1:0,p?1:0,g,b,G[r.dtype]);let y=f;if(s!==null){const k=i.backend_util.getUndoAxesPermutation(s);y=Ie({inputs:{x:f},attrs:{perm:k},backend:u}),u.disposeData(e.dataId),u.disposeData(f.dataId)}return y}var gd={kernelName:i.Cumsum,backendName:"wasm",setupFunc:md,kernelFunc:hd},jr;function fd(t){jr=t.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function bd(t){const{backend:a,inputs:u,attrs:d}=t,{x:r,weights:n}=u,{size:o,binaryOutput:p}=d,l=n.shape.reduce((f,g)=>f*g,1)!==0,s=r.shape.length===1?[o]:[r.shape[0],o],e=a.makeOutput(s,n.dtype);function m(f){return a.dataIdMap.get(f.dataId).id}return jr(m(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,o,l,m(n),G[n.dtype],p,m(e)),e}var vd={kernelName:i.DenseBincount,backendName:"wasm",setupFunc:fd,kernelFunc:bd},eu;function yd(t){eu=t.wasm.cwrap(i.DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function Id(t){const{backend:a,inputs:u,attrs:d}=t,{x:r}=u,{blockSize:n,dataFormat:o}=d,p=r.shape[0],l=o==="NHWC"?r.shape[1]:r.shape[2],s=o==="NHWC"?r.shape[2]:r.shape[3],e=o==="NHWC"?r.shape[3]:r.shape[1],m=l*n,f=s*n,g=e/(n*n),h=o==="NHWC"?[p,m,f,g]:[p,g,m,f],b=a.makeOutput(h,"float32"),y=a.dataIdMap.get(r.dataId).id,k=new Uint8Array(new Int32Array(i.util.computeStrides(r.shape)).buffer),I=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(i.util.computeStrides(h)).buffer),D=a.dataIdMap.get(b.dataId).id;return eu(y,n,o==="NHWC"?1:0,k,r.shape.length-1,I,M,h.length,D),b}var kd={kernelName:i.DepthToSpace,backendName:"wasm",setupFunc:yd,kernelFunc:Id},nu;function Sd(t){nu=t.wasm.cwrap(i.DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Md(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n}=a,o=d.dataIdMap.get(r.dataId).id,p=d.dataIdMap.get(n.dataId).id,{strides:l,dilations:s,pad:e,dimRoundingMode:m}=u,f=s??[1,1],g=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,f,e,m,!0),h=g.filterHeight,b=g.filterWidth,y=g.padInfo.top,k=g.padInfo.right,I=g.padInfo.bottom,M=g.padInfo.left,D=g.dilationHeight,F=g.dilationWidth,E=g.strideHeight,O=g.strideWidth,B=g.inChannels,K=g.outChannels,X=g.padInfo.type==="SAME"?1:0;if(g.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${g.dataFormat}'. Please use 'channelsLast'.`);const U=d.makeOutput(g.outShape,"float32"),q=d.dataIdMap.get(U.dataId).id;return nu(o,r.shape[0],r.shape[1],r.shape[2],p,h,b,y,k,I,M,X,D,F,E,O,B,K,q),U}var Ad={kernelName:i.DepthwiseConv2dNative,backendName:"wasm",setupFunc:Sd,kernelFunc:Md},tu;function xd(t){tu=t.wasm.cwrap("Diag",null,["number","number","number","number"])}function Dd(t){const{inputs:a,backend:u}=t,{x:d}=a,r=i.util.sizeFromShape(d.shape),n=u.makeOutput([...d.shape,...d.shape],d.dtype);return tu(u.dataIdMap.get(d.dataId).id,G[d.dtype],r,u.dataIdMap.get(n.dataId).id),n}var wd={kernelName:i.Diag,backendName:"wasm",setupFunc:xd,kernelFunc:Dd},au;function Fd(t){au=t.wasm.cwrap(i.Dilation2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Nd(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n}=a,{strides:o,pad:p,dilations:l}=d;if(r.dtype!==n.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${n.dtype}`);const s=i.backend_util.computeDilation2DInfo(r.shape,n.shape,o,p,"NHWC",l),e=u.makeOutput(s.outShape,r.dtype);return au(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(e.dataId).id,G[r.dtype],s.batchSize,s.inChannels,s.inHeight,s.inWidth,s.outHeight,s.outWidth,s.strideHeight,s.strideWidth,s.dilationHeight,s.dilationWidth,s.filterHeight,s.filterWidth,s.padInfo.top,s.padInfo.left),e}var Cd={kernelName:i.Dilation2D,backendName:"wasm",setupFunc:Fd,kernelFunc:Nd},ru;function Rd(t){ru=t.wasm.cwrap(i.Dilation2DBackpropFilter,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function _d(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n,dy:o}=a,{strides:p,pad:l,dilations:s}=d;if(r.dtype!==n.dtype||r.dtype!==o.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${n.dtype}, and ${o.dtype}`);const e=i.backend_util.computeDilation2DInfo(r.shape,n.shape,p,l,"NHWC",s),m=u.makeOutput(n.shape,n.dtype);return ru(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(o.dataId).id,u.dataIdMap.get(m.dataId).id,G[r.dtype],e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.filterHeight,e.filterWidth,e.padInfo.top,e.padInfo.left),m}var Pd={kernelName:i.Dilation2DBackpropFilter,backendName:"wasm",setupFunc:Rd,kernelFunc:_d},uu;function Ed(t){uu=t.wasm.cwrap(i.Dilation2DBackpropInput,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Bd(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n,dy:o}=a,{strides:p,pad:l,dilations:s}=d;if(r.dtype!==n.dtype||r.dtype!==o.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${n.dtype}, and ${o.dtype}`);const e=i.backend_util.computeDilation2DInfo(r.shape,n.shape,p,l,"NHWC",s),m=u.makeOutput(r.shape,r.dtype);return uu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(o.dataId).id,u.dataIdMap.get(m.dataId).id,G[r.dtype],e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.filterHeight,e.filterWidth,e.padInfo.top,e.padInfo.left),m}var Td={kernelName:i.Dilation2DBackpropInput,backendName:"wasm",setupFunc:Ed,kernelFunc:Bd},Od=W(i.Elu),iu;function Wd(t){iu=t.wasm.cwrap(i.EluGrad,null,["number","number","number"])}function zd(t){const{inputs:a,backend:u}=t,{dy:d,y:r}=a,n=u.makeOutput(r.shape,"float32"),o=p=>u.dataIdMap.get(p.dataId).id;return iu(o(r),o(d),o(n)),n}var Hd={kernelName:i.EluGrad,backendName:"wasm",setupFunc:Wd,kernelFunc:zd},Ld=!1,Gd=Y(i.Equal,Ld,"bool"),$d=W(i.Erf),Vd=W(i.Exp,"float32");function qn(t){const{inputs:a,attrs:u,backend:d}=t,{input:r}=a,{dim:n}=u,o=r.shape.length,p=r.shape.slice();let l=n;return n<0&&(i.util.assert(-(o+1)<=n,()=>`Axis must be in the interval [${-(o+1)}, ${o}]`),l=o+n+1),p.splice(l,0,1),ue({inputs:{x:r},backend:d,attrs:{shape:p}})}var Ud={kernelName:i.ExpandDims,backendName:"wasm",kernelFunc:qn},qd=W(i.Expm1,"float32");function su(t){const{attrs:{shape:a,value:u},backend:d}=t;let{attrs:{dtype:r}}=t;r=r||i.util.inferDtype(u);const n=d.makeOutput(a,r);return d.typedArrayFromHeap(n).fill(u),n}var Kd={kernelName:i.Fill,backendName:"wasm",kernelFunc:su},du;function Xd(t){du=t.wasm.cwrap(i.FlipLeftRight,null,["number","number","number","number","number","number"])}function Jd(t){const{inputs:a,backend:u}=t,{image:d}=a,r=u.makeOutput(d.shape,d.dtype),n=u.dataIdMap.get(d.dataId).id,o=u.dataIdMap.get(r.dataId).id,[p,l,s,e]=d.shape;return du(n,p,l,s,e,o),r}var Qd={kernelName:i.FlipLeftRight,backendName:"wasm",kernelFunc:Jd,setupFunc:Xd},Yd=W(i.Floor),Zd=!1,jd=Y(i.FloorDiv,Zd),ou;function eo(t){ou=t.wasm.cwrap(i.FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function no(t){const{backend:a,inputs:u,attrs:d}=t,{varianceEpsilon:r}=d,{x:n,mean:o,variance:p,offset:l,scale:s}=u,e=a.dataIdMap.get(n.dataId).id,m=a.dataIdMap.get(o.dataId).id,f=a.dataIdMap.get(p.dataId).id,g=l!=null?a.dataIdMap.get(l.dataId).id:0,h=s!=null?a.dataIdMap.get(s.dataId).id:0,b=a.makeOutput(n.shape,n.dtype);if(i.util.sizeFromShape(n.shape)===0)return b;const y=a.dataIdMap.get(b.dataId).id;return ou(e,m,f,g,h,r,y),b}var to={kernelName:i.FusedBatchNorm,backendName:"wasm",setupFunc:eo,kernelFunc:no},pu;function ao(t){pu=t.wasm.cwrap(i.FusedConv2D,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 ro(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n,bias:o,preluActivationWeights:p}=a,{strides:l,pad:s,dilations:e,dataFormat:m,dimRoundingMode:f,activation:g,leakyreluAlpha:h}=u,b=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,e,s,f),y=qe[g];if(y==null)throw new Error(`${g} activation not yet supported for FusedConv2D in the wasm backend.`);const k=d.dataIdMap.get(r.dataId).id,I=d.dataIdMap.get(n.dataId).id,M=b.outChannels;let D=0;if(o!=null){const ee=d.dataIdMap.get(o.dataId);if(ee.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==M)throw new Error(`FusedConv2D bias shape (${ee.shape}) does not match the number of output channels (${M})`);D=ee.id}const F=b.filterHeight,E=b.filterWidth,O=b.padInfo.top,B=b.padInfo.right,K=b.padInfo.bottom,X=b.padInfo.left,U=b.dilationHeight,q=b.dilationWidth,Z=b.strideHeight,ie=b.strideWidth,le=b.inChannels,Q=b.padInfo.type==="SAME"?1:0,j=b.batchSize,ge=b.inHeight,$=b.inWidth;if(m!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${m}'. Please use 'NHWC'.`);const ce=d.makeOutput(b.outShape,"float32"),me=d.dataIdMap.get(ce.dataId).id,se=p==null?0:d.dataIdMap.get(p.dataId).id;return pu(k,j,ge,$,I,F,E,D,O,B,K,X,Q,U,q,Z,ie,le,M,y,se,h||0,me),ce}var uo={kernelName:i.FusedConv2D,backendName:"wasm",setupFunc:ao,kernelFunc:ro},lu;function io(t){lu=t.wasm.cwrap(i.FusedDepthwiseConv2D,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 so(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n,bias:o,preluActivationWeights:p}=a,{strides:l,pad:s,dilations:e,dataFormat:m,dimRoundingMode:f,activation:g,leakyreluAlpha:h}=u,b=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,e,s,f,!0),y=qe[g];if(y==null)throw new Error(`${g} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);const k=d.dataIdMap.get(r.dataId).id,I=d.dataIdMap.get(n.dataId).id,M=b.outChannels;let D=0;if(o!=null){const ee=d.dataIdMap.get(o.dataId);if(ee.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==M)throw new Error(`FusedDepthwiseConv2D bias shape (${ee.shape}) does not match the number of output channels (${M})`);D=ee.id}const F=b.filterHeight,E=b.filterWidth,O=b.padInfo.top,B=b.padInfo.right,K=b.padInfo.bottom,X=b.padInfo.left,U=b.dilationHeight,q=b.dilationWidth,Z=b.strideHeight,ie=b.strideWidth,le=b.inChannels,Q=b.padInfo.type==="SAME"?1:0,j=b.batchSize,ge=b.inHeight,$=b.inWidth;if(m!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${m}'. Please use 'NHWC'.`);const ce=d.makeOutput(b.outShape,"float32"),me=d.dataIdMap.get(ce.dataId).id,se=p==null?0:d.dataIdMap.get(p.dataId).id;return lu(k,j,ge,$,I,F,E,D,O,B,K,X,Q,U,q,Z,ie,le,M,y,se,h||0,me),ce}var oo={kernelName:i.FusedDepthwiseConv2D,backendName:"wasm",setupFunc:io,kernelFunc:so},cu;function po(t){cu=t.wasm.cwrap(i.GatherNd,null,["number","number","number","number","number","number","array","number"])}function lo(t){const{backend:a,inputs:u}=t,{params:d,indices:r}=u,[n,o,p,l]=i.gather_util.prepareAndValidate(d,r),s=a.makeOutput(n,d.dtype);if(o===0)return s;const e=r.shape,m=e[e.length-1],f=a.dataIdMap.get(d.dataId).id,g=a.dataIdMap.get(r.dataId).id,h=new Uint8Array(new Int32Array(l).buffer),b=a.dataIdMap.get(s.dataId).id;return cu(f,G[d.dtype],g,o,m,p,h,b),s}var co={kernelName:i.GatherNd,backendName:"wasm",setupFunc:po,kernelFunc:lo},mu;function mo(t){mu=t.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function ho(t){const{backend:a,inputs:u,attrs:d}=t,{x:r,indices:n}=u,{axis:o,batchDims:p}=d,l=i.util.parseAxisParam(o,r.shape)[0],s=a.readSync(n.dataId),e=r.shape[l];for(let O=0;O<s.length;++O){const B=s[O];i.util.assert(B<=e-1&&B>=0,()=>`GatherV2: the index value ${B} is not in [0, ${e-1}]`)}const m=i.backend_util.segment_util.collectGatherOpShapeInfo(r,n,l,p),f=ue({inputs:{x:r},attrs:{shape:[m.batchSize,m.outerSize,m.dimSize,m.sliceSize]},backend:a}),g=i.util.sizeFromShape(n.shape),h=ue({inputs:{x:n},attrs:{shape:[m.batchSize,g/m.batchSize]},backend:a}),b=[m.batchSize,m.outerSize,g/m.batchSize,m.sliceSize],y=a.makeOutput(b,r.dtype);if(i.util.sizeFromShape(r.shape)===0)return y;const k=f.shape.length-1,I=a.dataIdMap.get(f.dataId).id,M=a.dataIdMap.get(h.dataId).id,D=a.dataIdMap.get(y.dataId).id,F=new Uint8Array(new Int32Array(i.util.computeStrides(f.shape)).buffer),E=new Uint8Array(new Int32Array(i.util.computeStrides(b)).buffer);return mu(I,G[r.dtype],F,k,M,m.batchSize,E,D),a.disposeData(f.dataId),a.disposeData(h.dataId),y.shape=m.outputShape,y}var go={kernelName:i.GatherV2,backendName:"wasm",setupFunc:mo,kernelFunc:ho},fo=!1,bo=Y(i.Greater,fo,"bool"),vo=!1,yo=Y(i.GreaterEqual,vo,"bool"),Io=W(i.IsFinite,"bool"),ko=W(i.IsInf,"bool"),So=W(i.IsNan,"bool"),hu;function Mo(t){hu=t.wasm.cwrap(i.LeakyRelu,null,["number","number","number","number"])}function Ao(t){const{inputs:{x:a},attrs:{alpha:u},backend:d}=t,r=d.dataIdMap.get(a.dataId).id,n=d.makeOutput(a.shape,"float32");if(i.util.sizeFromShape(a.shape)!==0){const o=d.dataIdMap.get(n.dataId).id;hu(r,G[a.dtype],u,o)}return n}var xo={kernelName:i.LeakyRelu,backendName:"wasm",setupFunc:Mo,kernelFunc:Ao},Do=!1,wo=Y(i.Less,Do,"bool"),Fo=!1,No=Y(i.LessEqual,Fo,"bool"),gu;function Co(t){gu=t.wasm.cwrap(i.LinSpace,null,["number","number","number","number"])}function Ro(t){const{attrs:a,backend:u}=t,{start:d,stop:r,num:n}=a,o=Math.floor(n),p=u.makeOutput([o],"float32");return gu(u.dataIdMap.get(p.dataId).id,d,r,o),p}var _o={kernelName:i.LinSpace,backendName:"wasm",setupFunc:Co,kernelFunc:Ro},Po=W(i.Log),Eo=W(i.Log1p),Bo=!1,To=Y(i.LogicalAnd,Bo,"bool"),Oo=W(i.LogicalNot),Wo=!1,zo=Y(i.LogicalOr,Wo,"bool"),Ho=!1,Lo=Y(i.LogicalXor,Ho,"bool"),fu;function Go(t){fu=t.wasm.cwrap(i.LRN,null,["number","number","number","number","number","number","number"])}function $o(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{depthRadius:n,bias:o,alpha:p,beta:l}=d;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");const s=u.makeOutput(r.shape,r.dtype);return fu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(s.dataId).id,r.shape[3],n,o,p,l),s}var Vo={kernelName:i.LRN,backendName:"wasm",setupFunc:Go,kernelFunc:$o},bu;function Uo(t){bu=t.wasm.cwrap(i.LRNGrad,null,["number","number","number","number","number","number","number","number","number"])}function qo(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,y:n,dy:o}=a,{depthRadius:p,bias:l,alpha:s,beta:e}=d;if(r.dtype!=="float32"||n.dtype!=="float32"||o.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");const m=u.makeOutput(r.shape,r.dtype);return bu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(o.dataId).id,u.dataIdMap.get(m.dataId).id,o.shape[3],p,l,s,e),m}var Ko={kernelName:i.LRNGrad,backendName:"wasm",setupFunc:Uo,kernelFunc:qo},vu;function Xo(t){vu=t.wasm.cwrap(i.Max,null,["number","number","number","number"])}function Jo(t){const{backend:a,inputs:u,attrs:d}=t,{reductionIndices:r,keepDims:n}=d,{x:o}=u;let p=a.dataIdMap.get(o.dataId).id,l=o;const{transposed:s,axes:e,originalAxes:m,inputWasTransposed:f}=ke(o,r,a);if(f){const I=a.dataIdMap.get(s.dataId).id;l=s,p=I}const g=l.shape.length;i.backend_util.assertAxesAreInnerMostDims("max",e,g);const[h,b]=i.backend_util.computeOutAndReduceShapes(l.shape,e),y=i.util.sizeFromShape(b),k=a.makeOutput(h,o.dtype);if(i.util.sizeFromShape(l.shape)!==0){const I=a.dataIdMap.get(k.dataId).id;vu(p,G[o.dtype],y,I)}return f&&a.disposeData(s.dataId),n&&(k.shape=i.backend_util.expandShapeToKeepDim(k.shape,m)),k}var Qo={kernelName:i.Max,backendName:"wasm",setupFunc:Xo,kernelFunc:Jo},Yo=!1,Zo=Y(i.Maximum,Yo),yu;function jo(t){yu=t.wasm.cwrap(i.MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ep(t){const{inputs:a,attrs:u,backend:d}=t,r=a.x,n=d.dataIdMap.get(r.dataId).id;i.util.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);const{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=u,e=i.backend_util.computePool2DInfo(r.shape,o,p,1,l,s),m=e.filterHeight,f=e.filterWidth,g=e.padInfo.top,h=e.padInfo.right,b=e.padInfo.bottom,y=e.padInfo.left,k=e.dilationHeight,I=e.dilationWidth,M=e.strideHeight,D=e.strideWidth,F=e.inChannels,E=e.outChannels;if(e.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${e.dataFormat}'. Please use 'channelsLast'.`);const O=d.makeOutput(e.outShape,"float32"),B=d.dataIdMap.get(O.dataId).id;return yu(n,r.shape[0],r.shape[1],r.shape[2],m,f,g,h,b,y,k,I,M,D,F,E,B),O}var np={kernelName:i.MaxPool,backendName:"wasm",setupFunc:jo,kernelFunc:ep},Iu;function tp(t){Iu=t.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 ap(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{filterSize:n,strides:o,pad:p,dimRoundingMode:l,dataFormat:s}=d,e=i.backend_util.computePool3DInfo(r.shape,n,o,1,p,l,s),m=u.makeOutput(e.outShape,r.dtype);return Iu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left),m}var rp={kernelName:i.MaxPool3D,backendName:"wasm",setupFunc:tp,kernelFunc:ap},ku;function up(t){ku=t.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 ip(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=d,e=i.backend_util.computePool3DInfo(n.shape,o,p,1,l,s),m=u.makeOutput(n.shape,n.dtype);return ku(u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left),m}var sp={kernelName:i.MaxPool3DGrad,backendName:"wasm",setupFunc:up,kernelFunc:ip},Su;function dp(t){Su=t.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function op(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=d,e=i.backend_util.computePool2DInfo(n.shape,o,p,1,l,s),m=u.makeOutput(n.shape,n.dtype);return Su(u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.top,e.padInfo.left),m}var pp={kernelName:i.MaxPoolGrad,backendName:"wasm",setupFunc:dp,kernelFunc:op},Mu;function lp(t){Mu=t.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function cp(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{filterSize:n,strides:o,pad:p,includeBatchInIndex:l}=d;i.util.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);const s=[1,1];i.util.assert(i.backend_util.eitherStridesOrDilationsAreOne(o,s),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${s}'`);const e=i.backend_util.computePool2DInfo(r.shape,n,o,[1,1],p),m=u.makeOutput(e.outShape,r.dtype),f=u.makeOutput(e.outShape,"int32");return Mu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,u.dataIdMap.get(f.dataId).id,G[r.dtype],l,e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.top,e.padInfo.left),[m,f]}var mp={kernelName:i.MaxPoolWithArgmax,backendName:"wasm",setupFunc:lp,kernelFunc:cp},Au;function hp(t){Au=t.wasm.cwrap(i.Mean,null,["number, number, number"])}function gp(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);let h=m;if(g){const D=a.dataIdMap.get(e.dataId).id;D!==p&&(s=e,l=D,h=i.backend_util.getInnerMostAxes(h.length,s.shape.length))}i.backend_util.assertAxesAreInnerMostDims("mean",h,s.shape.length);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,h),k=i.util.sizeFromShape(y);let I=s;s.dtype!=="float32"&&(I=Se({backend:a,inputs:{x:s},attrs:{dtype:"float32"}}),l=a.dataIdMap.get(I.dataId).id);const M=a.makeOutput(b,"float32");if(i.util.sizeFromShape(s.shape)!==0){const D=a.dataIdMap.get(M.dataId).id;Au(l,k,D)}return g&&a.disposeData(e.dataId),n&&(M.shape=i.backend_util.expandShapeToKeepDim(M.shape,f)),s.dtype!=="float32"&&a.disposeData(I.dataId),M}var fp={kernelName:i.Mean,backendName:"wasm",setupFunc:hp,kernelFunc:gp},xu;function bp(t){xu=t.wasm.cwrap(i.Min,null,["number","number","number","number"])}function vp(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);if(g){const M=a.dataIdMap.get(e.dataId).id;M!==p&&(s=e,l=M)}const h=s.shape.length;i.backend_util.assertAxesAreInnerMostDims("min",m,h);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,m),k=i.util.sizeFromShape(y),I=a.makeOutput(b,s.dtype);if(i.util.sizeFromShape(s.shape)!==0){const M=a.dataIdMap.get(I.dataId).id;xu(l,G[o.dtype],k,M)}return g&&a.disposeData(e.dataId),n&&(I.shape=i.backend_util.expandShapeToKeepDim(I.shape,f)),I}var yp={kernelName:i.Min,backendName:"wasm",setupFunc:bp,kernelFunc:vp},Ip=!1,kp=Y(i.Minimum,Ip),Kn;(function(t){t[t.reflect=0]="reflect",t[t.symmetric=1]="symmetric"})(Kn||(Kn={}));var Du;function Sp(t){Du=t.wasm.cwrap(i.MirrorPad,null,["number","array","number","number","array","array","number","number"])}function Mp(t){const{inputs:{x:a},backend:u,attrs:{paddings:d,mode:r}}=t,n=d.map((h,b)=>h[0]+a.shape[b]+h[1]),o=u.dataIdMap.get(a.dataId).id,p=u.makeOutput(n,a.dtype),l=u.dataIdMap.get(p.dataId).id,s=new Uint8Array(new Int32Array(a.shape).buffer),e=d.map(h=>h[0]),m=d.map(h=>h[1]),f=new Uint8Array(new Int32Array(e).buffer),g=new Uint8Array(new Int32Array(m).buffer);return Du(o,s,a.shape.length,G[a.dtype],f,g,Kn[r],l),p}var Ap={kernelName:i.MirrorPad,backendName:"wasm",kernelFunc:Mp,setupFunc:Sp},wu;function xp(t){wu=t.wasm.cwrap(i.Softmax,null,["number","number","number","number"])}function Fu(t){const{backend:a,inputs:{logits:u},attrs:{dim:d}}=t,r=a.dataIdMap.get(u.dataId).id,n=a.makeOutput(u.shape,u.dtype),o=a.dataIdMap.get(n.dataId).id,p=u.shape[d],l=i.util.sizeFromShape(u.shape)/p;return i.util.sizeFromShape(n.shape)===0||wu(r,o,p,l),n}var Dp={kernelName:i.Softmax,backendName:"wasm",setupFunc:xp,kernelFunc:Fu},Nu;function wp(t){Nu=t.wasm.cwrap(i.Multinomial,null,["number","number","number","number","number","number"])}function Fp(t){const{inputs:a,backend:u,attrs:d}=t,{logits:r}=a,{numSamples:n,seed:o,normalized:p}=d;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);const l=p?r:Fu({inputs:{logits:r},backend:u,attrs:{dim:r.shape.length-1}}),[s,e]=l.shape,m=u.makeOutput([s,n],"int32");return Nu(u.dataIdMap.get(l.dataId).id,s,e,n,o,u.dataIdMap.get(m.dataId).id),p||u.disposeData(l.dataId),m}var Np={kernelName:i.Multinomial,backendName:"wasm",setupFunc:wp,kernelFunc:Fp},Cp=Y(i.Mod,!0),Rp=!0,_p=Y(i.Multiply,Rp),Pp=W(i.Neg);function Xn(t,a){const u=new Int32Array(t.wasm.HEAPU8.buffer,a,4),d=u[0],r=u[1],n=u[2],o=u[3];return t.wasm._free(a),{pSelectedIndices:d,selectedSize:r,pSelectedScores:n,pValidOutputs:o}}var Cu;function Ep(t){Cu=t.wasm.cwrap(i.NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function Bp(t){const{backend:a,inputs:u,attrs:d}=t,{iouThreshold:r,maxOutputSize:n,scoreThreshold:o}=d,{boxes:p,scores:l}=u,s=a.dataIdMap.get(p.dataId).id,e=a.dataIdMap.get(l.dataId).id,m=Cu(s,e,n,r,o),{pSelectedIndices:f,selectedSize:g,pSelectedScores:h,pValidOutputs:b}=Xn(a,m);return a.wasm._free(h),a.wasm._free(b),a.makeOutput([g],"int32",f)}var Tp={kernelName:i.NonMaxSuppressionV3,backendName:"wasm",setupFunc:Ep,kernelFunc:Bp},Ru;function Op(t){Ru=t.wasm.cwrap(i.NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function Wp(t){const{backend:a,inputs:u,attrs:d}=t,{iouThreshold:r,maxOutputSize:n,scoreThreshold:o,padToMaxOutputSize:p}=d,{boxes:l,scores:s}=u,e=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(s.dataId).id,f=Ru(e,m,n,r,o,p),{pSelectedIndices:g,selectedSize:h,pSelectedScores:b,pValidOutputs:y}=Xn(a,f);return a.wasm._free(b),[a.makeOutput([h],"int32",g),a.makeOutput([],"int32",y)]}var zp={kernelName:i.NonMaxSuppressionV4,backendName:"wasm",setupFunc:Op,kernelFunc:Wp},_u;function Hp(t){_u=t.wasm.cwrap(i.NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function Lp(t){const{backend:a,inputs:u,attrs:d}=t,{iouThreshold:r,maxOutputSize:n,scoreThreshold:o,softNmsSigma:p}=d,{boxes:l,scores:s}=u,e=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(s.dataId).id,f=_u(e,m,n,r,o,p),{pSelectedIndices:g,selectedSize:h,pSelectedScores:b,pValidOutputs:y}=Xn(a,f);return a.wasm._free(y),[a.makeOutput([h],"int32",g),a.makeOutput([h],"float32",b)]}var Gp={kernelName:i.NonMaxSuppressionV5,backendName:"wasm",setupFunc:Hp,kernelFunc:Lp},$p=!1,Vp=Y(i.NotEqual,$p,"bool"),Pu;function Up(t){Pu=t.wasm.cwrap(i.OneHot,null,["number","number","number","number","number"])}function qp(t){const{inputs:a,backend:u,attrs:d}=t,{indices:r}=a,{dtype:n,depth:o,onValue:p,offValue:l}=d,s=u.makeOutput([...r.shape,o],n),e=u.dataIdMap.get(s.dataId).id,m=u.dataIdMap.get(r.dataId).id;return Pu(m,o,p,l,e),s}var Kp={kernelName:i.OneHot,backendName:"wasm",setupFunc:Up,kernelFunc:qp};function Xp(t){const{inputs:{x:a},backend:u}=t,d=u.makeOutput(a.shape,a.dtype);return u.typedArrayFromHeap(d).fill(1),d}var Jp={kernelName:i.OnesLike,backendName:"wasm",kernelFunc:Xp};function Qp(t){const{inputs:a,backend:u,attrs:d}=t,{axis:r}=d;if(a.length===1)return qn({inputs:{input:a[0]},backend:u,attrs:{dim:r}});const n=a[0].shape,o=a[0].dtype;a.forEach(e=>{i.util.assertShapesMatch(n,e.shape,"All tensors passed to stack must have matching shapes"),i.util.assert(o===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});const p=[],l=a.map(e=>{const m=qn({inputs:{input:e},backend:u,attrs:{dim:r}});return p.push(m),m}),s=Vr({inputs:l,backend:u,attrs:{axis:r}});return p.forEach(e=>u.disposeData(e.dataId)),s}var Yp={kernelName:i.Pack,backendName:"wasm",kernelFunc:Qp},Eu;function Zp(t){Eu=t.wasm.cwrap(i.PadV2,null,["number","array","number","number","array","array","number","number"])}function jp(t){const{inputs:{x:a},backend:u,attrs:{paddings:d,constantValue:r}}=t,n=d.map((h,b)=>h[0]+a.shape[b]+h[1]);if(i.util.sizeFromShape(a.shape)===0)return su({backend:u,attrs:{shape:n,value:r,dtype:a.dtype}});const o=u.dataIdMap.get(a.dataId).id,p=u.makeOutput(n,a.dtype),l=u.dataIdMap.get(p.dataId).id,s=new Uint8Array(new Int32Array(a.shape).buffer),e=d.map(h=>h[0]),m=d.map(h=>h[1]),f=new Uint8Array(new Int32Array(e).buffer),g=new Uint8Array(new Int32Array(m).buffer);return Eu(o,s,a.shape.length,G[a.dtype],f,g,r,l),p}var Bu={kernelName:i.PadV2,backendName:"wasm",kernelFunc:jp,setupFunc:Zp},el=!1,nl=Y(i.Pow,el),Tu;function tl(t){Tu=t.wasm.cwrap(i.Prelu,null,["number","number","number"])}function al(t){const{inputs:a,backend:u}=t,{x:d,alpha:r}=a,n=u.dataIdMap.get(d.dataId).id,o=u.dataIdMap.get(r.dataId).id;let p=n;const l=d;let s=l;l.dtype!=="float32"&&(s=Se({backend:u,inputs:{x:d},attrs:{dtype:"float32"}}),p=u.dataIdMap.get(s.dataId).id);const e=u.makeOutput(d.shape,"float32"),m=u.dataIdMap.get(e.dataId).id;return Tu(p,o,m),l.dtype!=="float32"&&u.disposeData(s.dataId),e}var rl={kernelName:i.Prelu,backendName:"wasm",setupFunc:tl,kernelFunc:al},Ou;function ul(t){Ou=t.wasm.cwrap(i.Prod,null,["number","number","number","number"])}function il(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);let h=m;if(g){const M=a.dataIdMap.get(e.dataId).id;M!==p&&(s=e,l=M,h=i.backend_util.getInnerMostAxes(h.length,s.shape.length))}i.backend_util.assertAxesAreInnerMostDims("prod",h,s.shape.length);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,h),k=i.util.sizeFromShape(y),I=a.makeOutput(b,s.dtype);if(i.util.sizeFromShape(s.shape)!==0){const M=a.dataIdMap.get(I.dataId).id;Ou(l,k,G[I.dtype],M)}return g&&a.disposeData(e.dataId),n&&(I.shape=i.backend_util.expandShapeToKeepDim(I.shape,f)),I}var sl={kernelName:i.Prod,backendName:"wasm",setupFunc:ul,kernelFunc:il},dl=t=>{const{backend:a,attrs:u}=t,{start:d,stop:r,step:n,dtype:o}=u,p=vs(d,r,n,o),l=a.makeOutput([p.length],o);return a.typedArrayFromHeap(l).set(p),l},ol={kernelName:i.Range,backendName:"wasm",kernelFunc:dl},pl=!0,ll=Y(i.RealDiv,pl),cl=W(i.Reciprocal),ml=W(i.Relu),hl=W(i.Relu6),Wu;function gl(t){Wu=t.wasm.cwrap(i.ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function fl(t){const{backend:a,inputs:u,attrs:d}=t,{images:r}=u,{alignCorners:n,halfPixelCenters:o,size:p}=d,[l,s]=p,[e,m,f,g]=r.shape,h=[e,l,s,g];let b=a.dataIdMap.get(r.dataId),y;b.dtype!=="float32"&&(y=Se({backend:a,inputs:{x:r},attrs:{dtype:"float32"}}),b=a.dataIdMap.get(y.dataId));const k=b.id,I=a.makeOutput(h,"float32");if(i.util.sizeFromShape(r.shape)===0)return I;const M=a.dataIdMap.get(I.dataId).id;return Wu(k,e,m,f,g,l,s,n?1:0,o?1:0,M),y!=null&&a.disposeData(y.dataId),I}var bl={kernelName:i.ResizeBilinear,backendName:"wasm",setupFunc:gl,kernelFunc:fl},zu;function vl(t){zu=t.wasm.cwrap(i.ResizeBilinearGrad,null,["number","number","number","array","array","boolean"])}function yl(t){const{inputs:a,backend:u,attrs:d}=t,{images:r,dy:n}=a,{alignCorners:o}=d,p=u.makeOutput(r.shape,"float32");let l=u.dataIdMap.get(r.dataId),s;return l.dtype!=="float32"&&(s=Se({backend:u,inputs:{x:r},attrs:{dtype:"float32"}}),l=u.dataIdMap.get(s.dataId)),zu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(p.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(n.shape).buffer),o),s!=null&&u.disposeData(s.dataId),p}var Il={kernelName:i.ResizeBilinearGrad,backendName:"wasm",setupFunc:vl,kernelFunc:yl},Hu;function kl(t){Hu=t.wasm.cwrap(i.ResizeNearestNeighbor,null,["number","number","number","number","number","number","number","number","number","number"])}function Sl(t){const{backend:a,inputs:u,attrs:d}=t,{images:r}=u,{alignCorners:n,halfPixelCenters:o,size:p}=d,[l,s]=p,[e,m,f,g]=r.shape,h=[e,l,s,g],b=a.makeOutput(h,"float32");if(i.util.sizeFromShape(r.shape)===0)return b;let y=a.dataIdMap.get(r.dataId),k;y.dtype!=="float32"&&(k=Se({backend:a,inputs:{x:r},attrs:{dtype:"float32"}}),y=a.dataIdMap.get(k.dataId));const I=y.id,M=a.dataIdMap.get(b.dataId).id;return Hu(I,e,m,f,g,l,s,n?1:0,o?1:0,M),k!=null&&a.disposeData(k.dataId),b}var Ml={kernelName:i.ResizeNearestNeighbor,backendName:"wasm",setupFunc:kl,kernelFunc:Sl},Lu;function Al(t){Lu=t.wasm.cwrap(i.ResizeNearestNeighborGrad,null,["number","number","number","array","array","boolean"])}function xl(t){const{inputs:a,backend:u,attrs:d}=t,{images:r,dy:n}=a,{alignCorners:o}=d,p=u.makeOutput(r.shape,"float32");let l=u.dataIdMap.get(r.dataId),s;return l.dtype!=="float32"&&(s=Se({backend:u,inputs:{x:r},attrs:{dtype:"float32"}}),l=u.dataIdMap.get(s.dataId)),Lu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(p.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(n.shape).buffer),o),s!=null&&u.disposeData(s.dataId),p}var Dl={kernelName:i.ResizeNearestNeighborGrad,backendName:"wasm",setupFunc:Al,kernelFunc:xl},Gu;function wl(t){Gu=t.wasm.cwrap(i.Reverse,null,["number","array","number","array","number","number"])}function Fl(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{dims:n}=d,o=i.util.parseAxisParam(n,r.shape);if(r.shape.length===0)return on({inputs:{x:r},backend:u});const p=u.makeOutput(r.shape,r.dtype),l=u.dataIdMap.get(r.dataId).id,s=u.dataIdMap.get(p.dataId).id,e=new Uint8Array(new Int32Array(o).buffer),m=new Uint8Array(new Int32Array(r.shape).buffer);Gu(l,e,o.length,m,r.shape.length,s);const f=ue({inputs:{x:p},attrs:{shape:r.shape},backend:u});return u.disposeData(p.dataId),f}var Nl={kernelName:i.Reverse,backendName:"wasm",kernelFunc:Fl,setupFunc:wl},$u;function Cl(t){$u=t.wasm.cwrap(i.RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Rl(t){const{inputs:a,backend:u,attrs:d}=t,{image:r}=a,{radians:n,fillValue:o,center:p}=d,l=u.makeOutput(r.shape,r.dtype),s=u.dataIdMap.get(r.dataId).id,e=u.dataIdMap.get(l.dataId).id,[m,f,g,h]=r.shape,[b,y]=i.backend_util.getImageCenter(p,f,g),k=o===0,I=255,M=typeof o=="number"?[o,o,o,k?0:I]:[...o,I],D=new Uint8Array(new Int32Array(M).buffer);return $u(s,m,f,g,h,n,b,y,D,M.length,e),l}var _l={kernelName:i.RotateWithOffset,backendName:"wasm",kernelFunc:Rl,setupFunc:Cl},Pl=W(i.Round),El=W(i.Rsqrt),Vu;function Bl(t){Vu=t.wasm.cwrap(i.ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function Tl(t){const{backend:a,inputs:u,attrs:d}=t,{indices:r,updates:n}=u,{shape:o}=d,p=a.makeOutput(o,n.dtype);if(i.util.sizeFromShape(o)===0)return p;const{sliceRank:l,numUpdates:s,sliceSize:e,strides:m,outputSize:f}=i.scatter_util.calculateShapes(n,r,o),g=a.dataIdMap.get(r.dataId).id,h=a.dataIdMap.get(n.dataId).id,b=new Uint8Array(new Int32Array(m).buffer),y=a.dataIdMap.get(p.dataId).id;return Vu(g,h,G[n.dtype],l,s,e,b,f,y),p}var Ol={kernelName:i.ScatterNd,backendName:"wasm",setupFunc:Bl,kernelFunc:Tl},Uu;function Wl(t){Uu=t.wasm.cwrap(i.SearchSorted,null,["number","number","number","number","number","number","bool","number"])}function zl(t){const{inputs:a,backend:u,attrs:d}=t,{sortedSequence:r,values:n}=a,{side:o}=d;if(r.dtype!==n.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${n.dtype}`);const p=u.makeOutput(n.shape,"int32");function l(s){return u.dataIdMap.get(s.dataId).id}return Uu(l(r),l(n),r.shape[0],r.shape[1],n.shape[1],G[r.dtype],o==="left",l(p)),p}var Hl={kernelName:i.SearchSorted,backendName:"wasm",setupFunc:Wl,kernelFunc:zl},qu;function Ll(t){qu=t.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Gl(t){const{inputs:a,backend:u}=t,{condition:d,t:r,e:n}=a,o=u.dataIdMap.get(d.dataId).id,p=u.dataIdMap.get(r.dataId).id,l=u.dataIdMap.get(n.dataId).id,s=u.makeOutput(r.shape,r.dtype),e=u.dataIdMap.get(s.dataId).id,m=d.shape.length,f=r.shape.length,g=m===0||m>1||f===1?1:i.util.sizeFromShape(r.shape.slice(1));return qu(o,p,l,g,e),s}var $l={kernelName:i.Select,backendName:"wasm",kernelFunc:Gl,setupFunc:Ll},Vl=W(i.Selu),Ku;function Ul(t){Ku=t.wasm.cwrap(i.Sigmoid,null,["number","number"])}function ql(t){const{backend:a,inputs:{x:u}}=t,d=a.dataIdMap.get(u.dataId).id,r=a.makeOutput(u.shape,u.dtype),n=a.dataIdMap.get(r.dataId).id;return i.util.sizeFromShape(r.shape)===0||Ku(d,n),r}var Kl={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Ul,kernelFunc:ql},Xl=W(i.Sign),Jl=W(i.Sin),Ql=W(i.Sinh),Yl=W(i.Softplus);function Zl(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{blockShape:n,paddings:o}=d,p=i.util.sizeFromShape(n),l=[[0,0]];l.push(...o);for(let y=1+n.length;y<r.shape.length;++y)l.push([0,0]);const s=Bu.kernelFunc({inputs:{x:r},backend:u,attrs:{paddings:l,constantValue:0}}),e=i.backend_util.getReshaped(s.shape,n,p,!1),m=i.backend_util.getPermuted(e.length,n.length,!1),f=i.backend_util.getReshapedPermuted(s.shape,n,p,!1),g=ue({inputs:{x:s},backend:u,attrs:{shape:e}}),h=Ie({inputs:{x:g},backend:u,attrs:{perm:m}}),b=ue({inputs:{x:h},backend:u,attrs:{shape:f}});return u.disposeData(s.dataId),u.disposeData(g.dataId),u.disposeData(h.dataId),b}var jl={kernelName:i.SpaceToBatchND,backendName:"wasm",kernelFunc:Zl},Xu;function ec(t){Xu=t.wasm.cwrap("SparseFillEmptyRows","number",["number","number","number","number","number","number","number","number","number","number","number","number"])}function nc(t){const{backend:a,inputs:u}=t,{indices:d,values:r,denseShape:n,defaultValue:o}=u,p=d.shape[0],l=d.shape[1],s=a.readSync(n.dataId)[0],e=[p+s,l],m=a.dataIdMap.get(d.dataId).id,f=a.dataIdMap.get(r.dataId).id,g=a.dataIdMap.get(o.dataId).id,h=a.makeOutput(e,d.dtype),b=a.dataIdMap.get(h.dataId).id,y=a.makeOutput(e.slice(0,1),r.dtype),k=a.dataIdMap.get(y.dataId).id,I=a.makeOutput([s],"bool"),M=a.dataIdMap.get(I.dataId).id,D=a.makeOutput([p],d.dtype),F=a.dataIdMap.get(D.dataId).id,E=a.makeOutput([4],"int32"),O=a.dataIdMap.get(E.dataId).id,B=Xu(m,f,G[r.dtype],p,s,l,g,b,k,M,F,O),K=a.readSync(E.dataId);let X;switch(K[0]){case 1:X=i.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(K[1]);break;case 2:X=i.backend_util.getSparseFillEmptyRowsNegativeIndexErrorMessage(K[1],K[2]);break;case 3:X=i.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(K[1],K[2],K[3]);break;default:X=""}if(a.disposeData(E.dataId),X)throw a.disposeData(h.dataId),a.disposeData(y.dataId),a.disposeData(I.dataId),a.disposeData(D.dataId),new Error(X);let U=h,q=y;return B!==e[0]&&(U=De({inputs:{x:h},attrs:{begin:0,size:[B,l]},backend:a}),q=De({inputs:{x:y},attrs:{begin:0,size:B},backend:a}),a.disposeData(h.dataId),a.disposeData(y.dataId)),[U,q,I,D]}var tc={kernelName:i.SparseFillEmptyRows,backendName:"wasm",setupFunc:ec,kernelFunc:nc},Ju;function ac(t){Ju=t.wasm.cwrap(i.SparseReshape,null,["number","number","number","number","number","number","number"])}function rc(t){const{backend:a,inputs:u}=t,{inputIndices:d,inputShape:r,newShape:n}=u;if(d.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape
|
|
3
3
|
${d.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape
|
|
4
4
|
${r.shape}`);if(n.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${n.shape}`);const o=a.dataIdMap.get(d.dataId).id,p=a.dataIdMap.get(r.dataId).id,l=a.dataIdMap.get(n.dataId).id,s=d.shape[0],e=i.util.sizeFromShape(n.shape),m=a.makeOutput([s,e],d.dtype),f=a.dataIdMap.get(m.dataId).id,g=a.makeOutput([e],n.dtype),h=a.dataIdMap.get(g.dataId).id,b=a.makeOutput([3],"int32"),y=a.dataIdMap.get(b.dataId).id;Ju(o,p,l,s,f,h,y);const k=a.readSync(b.dataId);let I;switch(k[0]){case 0:I=i.backend_util.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(k[1],k[2]);break;case 1:I=i.backend_util.getSparseReshapeNegativeOutputDimErrorMessage(k[1],k[2]);break;case 2:I=i.backend_util.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{const M=Array.from(a.readSync(r.dataId)),D=Array.from(a.readSync(g.dataId));I=i.backend_util.getSparseReshapeInputOutputMultipleErrorMessage(M,D);break}case 4:{const M=Array.from(a.readSync(r.dataId)),D=Array.from(a.readSync(g.dataId));I=i.backend_util.getSparseReshapeInputOutputMismatchErrorMessage(M,D);break}default:I=""}if(a.disposeData(b.dataId),I)throw a.disposeData(m.dataId),a.disposeData(g.dataId),new Error(I);return[m,g]}var uc={kernelName:i.SparseReshape,backendName:"wasm",setupFunc:ac,kernelFunc:rc},Qu;function Yu(t){Qu=t.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function Zu(t,a){const{backend:u,inputs:d}=t,{data:r,indices:n,segmentIds:o}=d,p=n.shape[0],l=u.readSync(o.dataId,p-1,p)[0],s=p>0?l+1:0;if(s<0)throw new Error(i.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());const e=r.shape.slice();e[0]=s;const m=u.dataIdMap.get(r.dataId).id,f=u.dataIdMap.get(n.dataId).id,g=u.dataIdMap.get(o.dataId).id,h=u.makeOutput(e,r.dtype),b=u.dataIdMap.get(h.dataId).id,y=u.makeOutput([4],"int32"),k=u.dataIdMap.get(y.dataId).id;Qu(m,G[r.dtype],r.shape[0],f,g,b,k,a,0);const I=u.readSync(y.dataId);let M;switch(I[0]){case 0:M=i.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break;case 1:M=i.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break;case 2:M=i.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(I[1],I[2]);break;case 3:M=i.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I[1],I[2],I[3]);break;default:M=""}if(u.disposeData(y.dataId),M)throw u.disposeData(h.dataId),new Error(M);return h}function ic(t){return Zu(t,!0)}var sc={kernelName:i.SparseSegmentMean,backendName:"wasm",setupFunc:Yu,kernelFunc:ic};function dc(t){return Zu(t,!1)}var oc={kernelName:i.SparseSegmentSum,backendName:"wasm",setupFunc:Yu,kernelFunc:dc},ju;function pc(t){ju=t.wasm.cwrap(i.SparseToDense,null,["number","number","number","number","number","number","number","number","array","number","number"])}function lc(t){const{backend:a,inputs:u,attrs:d}=t,{sparseIndices:r,sparseValues:n,defaultValue:o}=u,{outputShape:p}=d,l=a.makeOutput(p,o.dtype);if(i.util.sizeFromShape(p)===0)return l;const{sliceRank:s,numUpdates:e,sliceSize:m,strides:f,outputSize:g}=i.backend_util.calculateShapes(n,r,p),h=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(n.dataId).id,y=a.dataIdMap.get(o.dataId).id,k=new Uint8Array(new Int32Array(f).buffer),I=a.dataIdMap.get(l.dataId).id;return ju(h,b,n.shape.length,y,G[o.dtype],s,e,m,k,g,I),l}var cc={kernelName:i.SparseToDense,backendName:"wasm",setupFunc:pc,kernelFunc:lc};function mc(t){const{inputs:a,attrs:u,backend:d}=t,{x:r}=a,{numOrSizeSplits:n,axis:o}=u,p=i.util.parseAxisParam(o,r.shape)[0],l=i.backend_util.prepareSplitSize(r,n,p),s=new Array(r.shape.length).fill(0),e=r.shape.slice();return l.map(m=>{const f=[...e];f[p]=m;const g=De({inputs:{x:r},attrs:{begin:s,size:f},backend:d});return s[p]+=m,g})}var hc={kernelName:i.SplitV,backendName:"wasm",kernelFunc:mc},gc=W(i.Sqrt),fc=W(i.Square),bc=!0,vc=Y(i.SquaredDifference,bc),ei;function yc(t){ei=t.wasm.cwrap(i.Step,null,["number","number","number","number"])}function Ic(t){const{backend:a,inputs:u,attrs:d}=t,{alpha:r}=d,{x:n}=u,o=a.dataIdMap.get(n.dataId).id,p=a.makeOutput(n.shape,n.dtype),l=a.dataIdMap.get(p.dataId).id;return ei(o,r,G[n.dtype],l),p}var kc={kernelName:i.Step,backendName:"wasm",setupFunc:yc,kernelFunc:Ic},ni;function Sc(t){ni=t.wasm.cwrap(i.StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function Mc(t){const{backend:a,inputs:u,attrs:d}=t,{x:r}=u,{begin:n,end:o,strides:p,beginMask:l,endMask:s,ellipsisMask:e,newAxisMask:m,shrinkAxisMask:f}=d,{finalShapeSparse:g,finalShape:h,isIdentity:b,sliceDim0:y,isSimpleSlice:k,begin:I,end:M,strides:D}=i.slice_util.sliceInfo(r.shape,n,o,p,l,s,e,m,f);let F;if(b)F=ue({inputs:{x:r},backend:a,attrs:{shape:h}});else if(y||k){i.util.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);const E=i.slice_util.computeOutShape(I,M,D),O=De({inputs:{x:r},backend:a,attrs:{begin:I,size:E}});F=ue({inputs:{x:O},backend:a,attrs:{shape:h}}),a.disposeData(O.dataId)}else{const E=a.makeOutput(g,"float32"),O=a.dataIdMap.get(r.dataId).id,B=new Uint8Array(new Int32Array(i.util.computeStrides(r.shape)).buffer),K=new Uint8Array(new Int32Array(I).buffer),X=new Uint8Array(new Int32Array(M).buffer),U=new Uint8Array(new Int32Array(D).buffer),q=new Uint8Array(new Int32Array(g).buffer),Z=new Uint8Array(new Int32Array(i.util.computeStrides(g)).buffer),ie=a.dataIdMap.get(E.dataId).id;ni(O,B,r.shape.length,K,X,U,q,Z,g.length,ie),F=ue({inputs:{x:E},backend:a,attrs:{shape:h}}),a.disposeData(E.dataId)}return F}var Ac={kernelName:i.StridedSlice,backendName:"wasm",setupFunc:Sc,kernelFunc:Mc};function xc(t){const{backend:a,inputs:u,attrs:d}=t,{data:r,dataSplits:n}=u,{separator:o,nGramWidths:p,leftPad:l,rightPad:s,padWidth:e,preserveShortSequences:m}=d,f=a.readSync(r.dataId),g=a.readSync(n.dataId),[h,b]=Is(f,g,o,p,l,s,e,m),y=a.makeOutput([h.length],"string"),k=a.dataIdMap.get(y.dataId);k.stringBytes=h;const I=a.makeOutput(n.shape,"int32");return a.typedArrayFromHeap(I).set(b),[y,I]}var Dc={kernelName:i.StringNGrams,backendName:"wasm",kernelFunc:xc};function wc(t){const{backend:a,inputs:u,attrs:d}=t,{input:r,delimiter:n}=u,{skipEmpty:o}=d,p=a.readSync(r.dataId),l=a.readSync(n.dataId),[s,e,m]=Ss(p,l[0],o),f=e.length,g=a.makeOutput([f,2],"int32");a.typedArrayFromHeap(g).set(s);const h=a.makeOutput([f],"string"),b=a.dataIdMap.get(h.dataId);b.stringBytes=e;const y=a.makeOutput([2],"int32");return a.typedArrayFromHeap(y).set(m),[g,h,y]}var Fc={kernelName:i.StringSplit,backendName:"wasm",kernelFunc:wc};function Nc(t){const{backend:a,inputs:u,attrs:d}=t,{input:r}=u,{numBuckets:n}=d,o=a.readSync(r.dataId),p=Ms(o,n),l=a.makeOutput(r.shape,"int32");return a.typedArrayFromHeap(l).set(p),l}var Cc={kernelName:i.StringToHashBucketFast,backendName:"wasm",kernelFunc:Nc},Rc=!0,_c=Y(i.Sub,Rc),ti;function Pc(t){ti=t.wasm.cwrap(i.Sum,null,["number","number","number","number"])}function Ec(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);let h=m;if(g){const M=a.dataIdMap.get(e.dataId).id;M!==p&&(s=e,l=M,h=i.backend_util.getInnerMostAxes(h.length,s.shape.length))}i.backend_util.assertAxesAreInnerMostDims("sum",h,s.shape.length);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,h),k=i.util.sizeFromShape(y),I=a.makeOutput(b,s.dtype);if(i.util.sizeFromShape(s.shape)!==0){const M=a.dataIdMap.get(I.dataId).id;ti(l,k,G[I.dtype],M)}return g&&a.disposeData(e.dataId),n&&(I.shape=i.backend_util.expandShapeToKeepDim(I.shape,f)),I}var Bc={kernelName:i.Sum,backendName:"wasm",setupFunc:Pc,kernelFunc:Ec},Tc=W(i.Tan),Oc=W(i.Tanh),ai;function Wc(t){ai=t.wasm.cwrap(i.TensorScatterUpdate,null,["number","number","number","number","number","number","array","number","number","number"])}function zc(t){const{backend:a,inputs:u,attrs:d}=t,{tensor:r,indices:n,updates:o}=u,{}=d,p=a.makeOutput(r.shape,r.dtype);if(i.util.sizeFromShape(r.shape)===0)return p;const{sliceRank:l,numUpdates:s,sliceSize:e,strides:m,outputSize:f}=i.scatter_util.calculateShapes(o,n,r.shape),g=a.dataIdMap.get(n.dataId).id,h=a.dataIdMap.get(o.dataId).id,b=a.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(m).buffer),k=a.dataIdMap.get(p.dataId).id;return ai(g,h,G[o.dtype],l,s,e,y,f,k,b),p}var Hc={kernelName:i.TensorScatterUpdate,backendName:"wasm",setupFunc:Wc,kernelFunc:zc},ri;function Lc(t){ri=t.wasm.cwrap(i.Tile,null,["number","array","number","array","number","number"])}function Gc(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,n=u.dataIdMap.get(r.dataId).id,{reps:o}=d,p=new Array(r.shape.length);for(let f=0;f<p.length;f++)p[f]=r.shape[f]*o[f];const l=new Uint8Array(new Int32Array(r.shape).buffer),s=new Uint8Array(new Int32Array(p).buffer),e=u.makeOutput(p,r.dtype),m=u.dataIdMap.get(e.dataId).id;return ri(n,l,r.shape.length,s,p.length,G[e.dtype],m),e}var $c={kernelName:i.Tile,backendName:"wasm",setupFunc:Lc,kernelFunc:Gc},ui;function Vc(t){ui=t.wasm.cwrap(i.TopK,null,["number","array","number","number","number","bool","number","number"])}var Uc=({inputs:t,backend:a,attrs:u})=>{const{x:d}=t,{k:r,sorted:n}=u,o=a.dataIdMap.get(d.dataId).id,p=new Uint8Array(new Int32Array(d.shape).buffer),l=d.shape.slice();l[l.length-1]=r;const s=a.makeOutput(l,d.dtype),e=a.dataIdMap.get(s.dataId).id,m=a.makeOutput(l,"int32"),f=a.dataIdMap.get(m.dataId).id;return ui(o,p,d.shape.length,G[d.dtype],r,n,e,f),[s,m]},qc={kernelName:i.TopK,backendName:"wasm",setupFunc:Vc,kernelFunc:Uc},ii;function Kc(t){ii=t.wasm.cwrap(i.Transform,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Xc(t){const{backend:a,inputs:u,attrs:d}=t,{image:r,transforms:n}=u,{interpolation:o,fillMode:p,fillValue:l,outputShape:s}=d,[e,m,f,g]=r.shape,[h,b]=s??[m,f],y=[e,h,b,g],k=new Uint8Array(new Int32Array(i.util.computeStrides(r.shape)).buffer),I=new Uint8Array(new Int32Array(i.util.computeStrides(y)).buffer),M=a.makeOutput(y,r.dtype),D=a.dataIdMap.get(M.dataId).id,F=a.dataIdMap.get(r.dataId).id,E=a.dataIdMap.get(n.dataId).id,O=o==="nearest"?1:2;let B;switch(p){case"constant":B=1;break;case"reflect":B=2;break;case"wrap":B=3;break;case"nearest":B=4;break;default:B=1}return ii(F,E,n.shape[0]>1,e,h,b,g,f,m,k,r.shape.length-1,I,y.length-1,O,B,l,D),M}var Jc={kernelName:i.Transform,backendName:"wasm",setupFunc:Kc,kernelFunc:Xc};function Qc(t){const{inputs:a,attrs:u,backend:d}=t,{axis:r}=u,{x:n}=a,{outputValues:o,outputShape:p,indices:l}=As(d.readSync(n.dataId),r,n.shape,n.dtype);return[d.makeOutput(p,n.dtype,void 0,o),d.makeOutput([l.length],"int32",void 0,l)]}var Yc={kernelName:i.Unique,backendName:"wasm",kernelFunc:Qc};function Zc(t){const{inputs:a,backend:u,attrs:d}=t,{value:r}=a;let{axis:n}=d;n<0&&(n+=r.shape.length);const o=r.shape[n],p=r.shape.length,l=new Array(p-1);let s=0;for(let g=0;g<p;g++)g!==n&&(l[s++]=r.shape[g]);const e=new Array(o),m=new Array(p).fill(0),f=r.shape.slice();f[n]=1;for(let g=0;g<e.length;g++)m[n]=g,e[g]=De({inputs:{x:r},attrs:{begin:m,size:f},backend:u});return e.map(({dataId:g,dtype:h})=>({dataId:g,dtype:h,shape:l}))}var jc={kernelName:i.Unpack,backendName:"wasm",kernelFunc:Zc};function em(t){const{inputs:{x:a},backend:u}=t,d=u.makeOutput(a.shape,a.dtype);return u.typedArrayFromHeap(d).fill(0),d}var nm={kernelName:i.ZerosLike,backendName:"wasm",kernelFunc:em},tm=[Fi,Ni,Ci,Ri,Pi,Ti,Vi,Ki,Xi,Ji,Qi,Yi,Zi,ji,es,as,cs,is,os,fs,Cs,Ps,Bs,Os,Ws,zs,Gs,$s,qs,Js,Zs,nd,rd,ud,id,od,cd,gd,vd,kd,Ad,wd,Cd,Pd,Td,Od,Hd,Gd,$d,Vd,Ud,qd,Kd,Qd,Yd,jd,to,uo,oo,co,go,bo,yo,Oi,Io,ko,So,xo,wo,No,_o,Eo,Po,To,Oo,zo,Lo,Vo,Ko,Qo,Zo,np,rp,sp,pp,mp,fp,yp,kp,Ap,Np,Cp,_p,Pp,Tp,zp,Gp,Vp,Kp,Jp,Yp,Bu,nl,rl,sl,ol,ll,cl,ml,hl,ms,bl,Il,Ml,Dl,Nl,_l,Pl,El,Ol,Hl,$l,Vl,Kl,Xl,Jl,Ql,Fs,Dp,Yl,jl,tc,uc,sc,oc,cc,hc,gc,fc,vc,kc,Ac,Dc,Fc,Cc,_c,Bc,Tc,Oc,Hc,$c,qc,Jc,Li,Yc,jc,nm];for(const t of tm)(0,i.registerKernel)(t);var Jn=(0,i.env)();Jn.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{return!1}}),Jn.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Jn.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{return!1}});var we=dn(((t,a)=>{a.exports={}})),am=dn(((t,a)=>{var u=(()=>{var d=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(d=d||__filename),(function(r){r=r||{};function n(){return $.buffer!=de&&he($.buffer),fe}function o(){return $.buffer!=de&&he($.buffer),We}function p(){return $.buffer!=de&&he($.buffer),Me}function l(){return $.buffer!=de&&he($.buffer),ln}function s(){return $.buffer!=de&&he($.buffer),cn}var e=typeof r<"u"?r:{},m,f;e.ready=new Promise(function(c,v){m=c,f=v});var g;typeof process<"u"&&process.listeners&&(g={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var h=Object.assign({},e),b=[],y=(c,v)=>{throw v},k=typeof window=="object",I=typeof importScripts=="function",M=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",D=e.ENVIRONMENT_IS_PTHREAD||!1,F="";function E(c){return e.locateFile?e.locateFile(c,F):F+c}var O,B,K;function X(c){c instanceof _e||Q("exiting due to exception: "+c)}if(M){var U=we(),q=we();I?F=q.dirname(F)+"/":F=__dirname+"/",O=(v,A)=>(v=He(v)?new URL(v):q.normalize(v),U.readFileSync(v,A?void 0:"utf8")),K=v=>{var A=O(v,!0);return A.buffer||(A=new Uint8Array(A)),A},B=(v,A,_)=>{v=He(v)?new URL(v):q.normalize(v),U.readFile(v,function(R,w){R?_(R):A(w.buffer)})},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),b=process.argv.slice(2),process.on("uncaughtException",function(v){if(!(v instanceof _e))throw v}),process.on("unhandledRejection",function(v){throw v}),y=(v,A)=>{if(ze())throw process.exitCode=v,A;X(A),process.exit(v)},e.inspect=function(){return"[Emscripten Module object]"};let c;try{c=we()}catch(v){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),v}global.Worker=c.Worker}else(k||I)&&(I?F=self.location.href:typeof document<"u"&&document.currentScript&&(F=document.currentScript.src),typeof d<"u"&&d&&(F=d),F.indexOf("blob:")!==0?F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1):F="",M||(O=c=>{var v=new XMLHttpRequest;return v.open("GET",c,!1),v.send(null),v.responseText},I&&(K=c=>{var v=new XMLHttpRequest;return v.open("GET",c,!1),v.responseType="arraybuffer",v.send(null),new Uint8Array(v.response)}),B=(c,v,A)=>{var _=new XMLHttpRequest;_.open("GET",c,!0),_.responseType="arraybuffer",_.onload=()=>{if(_.status==200||_.status==0&&_.response){v(_.response);return}A()},_.onerror=A,_.send(null)}));M&&typeof performance>"u"&&(global.performance=we().performance);var Z=console.log.bind(console),ie=console.warn.bind(console);M&&(Z=c=>U.writeSync(1,c+`
|
package/dist/backend-webgpu.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @license Includes TensorFlow.js WebGPU backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v3.5.
|
|
1
|
+
/*! @license Includes TensorFlow.js WebGPU backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v3.5.6/THIRD_PARTY_NOTICES.md. */
|
|
2
2
|
(function(u){var gi=Object.create,Se=Object.defineProperty,xi=Object.getOwnPropertyDescriptor,vi=Object.getOwnPropertyNames,Ci=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty,_e=(e,i)=>{let t={};for(var s in e)Se(t,s,{get:e[s],enumerable:!0});return i||Se(t,Symbol.toStringTag,{value:"Module"}),t},bi=(e,i,t,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(var a=vi(i),r=0,n=a.length,o;r<n;r++)o=a[r],!je.call(e,o)&&o!==t&&Se(e,o,{get:(l=>i[l]).bind(null,o),enumerable:!(s=xi(i,o))||s.enumerable});return e},yi=(e,i,t)=>(t=e!=null?gi(Ci(e)):{},bi(i||!e||!e.__esModule||!je.call(e,"default")?Se(t,"default",{value:e,enumerable:!0}):t,e));u=yi(u);var K=(0,u.env)();K.registerFlag("WEBGPU_DEFERRED_SUBMIT_BATCH_SIZE",()=>15),K.registerFlag("WEBGPU_CPU_FORWARD",()=>!0),K.registerFlag("WEBGPU_MATMUL_PROGRAM_TYPE",()=>-1),K.registerFlag("WEBGPU_USE_NAIVE_CONV2D_TRANSPOSE",()=>!0),K.registerFlag("WEBGPU_USE_LOW_POWER_GPU",()=>!1),K.registerFlag("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e3),K.registerFlag("WEBGPU_USE_PROFILE_TOOL",()=>!1),K.registerFlag("WEBGPU_IMPORT_EXTERNAL_TEXTURE",()=>!0),K.registerFlag("WEBGPU_USE_NAIVE_CONV2D_DEBUG",()=>!1),K.registerFlag("WEBGPU_THRESHOLD_TO_INCREASE_WORKGROUPS_FOR_MATMUL",()=>-1),K.registerFlag("WEBGPU_CONV_SEPARATE_IM2COL_SHADER",()=>!1),K.registerFlag("WEBGPU_PRINT_SHADER",()=>""),K.registerFlag("WEBGPU_ENGINE_COMPILE_ONLY",()=>!1);var Si=class{constructor(e){e&&(this.vendor=e.vendor,this.architecture=e.architecture,this.intelGPUGeneration=this.getIntelGPUGeneration())}getIntelGPUGeneration(){if(this.isIntel()){if(this.architecture.startsWith("gen"))return Number(this.architecture.match(/\d+/));if(this.architecture.startsWith("xe"))return 12}return 0}isIntel(){return this.vendor==="intel"}},Ii=class{constructor(e){this.device=e,this.numUsedBuffers=0,this.numFreeBuffers=0,this.freeBuffers=new Map,this.usedBuffers=new Map,this.numBytesUsed=0,this.numBytesAllocated=0}acquireBuffer(e,i,t=!1,s=!0){let a;const r=et(e,i);return s?(this.freeBuffers.has(r)||this.freeBuffers.set(r,[]),this.freeBuffers.get(r).length>0?(a=this.freeBuffers.get(r).pop(),this.numFreeBuffers--):(a=this.device.createBuffer({size:e,usage:i,mappedAtCreation:t}),this.numBytesAllocated+=e)):(a=this.device.createBuffer({size:e,usage:i,mappedAtCreation:t}),this.numBytesAllocated+=e),this.usedBuffers.has(r)||this.usedBuffers.set(r,[]),this.usedBuffers.get(r).push(a),this.numUsedBuffers++,this.numBytesUsed+=e,a}releaseBuffer(e,i=!0){if(this.freeBuffers.size===0)return;const t=e.size,s=e.usage,a=et(t,s),r=this.usedBuffers.get(a),n=r.indexOf(e);if(n<0)throw new Error("Cannot find the buffer in buffer manager");r[n]=r[r.length-1],r.pop(),this.numUsedBuffers--,this.numBytesUsed-=t,i?(this.freeBuffers.get(a).push(e),this.numFreeBuffers++):(e.destroy(),this.numBytesAllocated-=t)}getNumUsedBuffers(){return this.numUsedBuffers}getNumFreeBuffers(){return this.numFreeBuffers}dispose(){this.freeBuffers.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.usedBuffers.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.freeBuffers=new Map,this.usedBuffers=new Map,this.numUsedBuffers=0,this.numFreeBuffers=0,this.numBytesUsed=0,this.numBytesAllocated=0}};function et(e,i){return`${e}_${i}`}var ki=class{constructor(e){this.device=e,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures=new Map,this.usedTextures=new Map,this.numBytesUsed=0,this.numBytesAllocated=0}acquireTexture(e,i,t,s){const a=it(t),r=e*i*a,n=tt(e,i,t,s);if(this.freeTextures.has(n)||this.freeTextures.set(n,[]),this.usedTextures.has(n)||this.usedTextures.set(n,[]),this.numBytesUsed+=r,this.numUsedTextures++,this.freeTextures.get(n).length>0){this.numFreeTextures--;const l=this.freeTextures.get(n).shift();return this.usedTextures.get(n).push(l),l}this.numBytesAllocated+=r;const o=this.device.createTexture({size:[e,i],format:t,usage:s});return this.usedTextures.get(n).push(o),o}releaseTexture(e){if(this.freeTextures.size===0)return;const i=e.width,t=e.height,s=e.format,a=e.usage,r=tt(i,t,s,a);this.freeTextures.has(r)||this.freeTextures.set(r,[]),this.freeTextures.get(r).push(e),this.numFreeTextures++,this.numUsedTextures--;const n=this.usedTextures.get(r),o=n.indexOf(e);if(o<0)throw new Error("Cannot release a texture that was never provided by this texture manager");n.splice(o,1);const l=it(s),d=i*t*l;this.numBytesUsed-=d}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){this.freeTextures.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.usedTextures.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.freeTextures=new Map,this.usedTextures=new Map,this.numUsedTextures=0,this.numFreeTextures=0,this.numBytesUsed=0,this.numBytesAllocated=0}};function tt(e,i,t,s){return`${e}_${i}_${t}_${s}`}function it(e){if(e==="rgba8unorm")return 16;throw new Error(`${e} is not supported!`)}function wi(e,i){if(Math.max(...e)>5)throw new Error("Cannot symbolically compute strides for rank > 6 tensor.");const t=e.length,s="xyzwuv",a=e.map(n=>`${i}.${s[n]}`),r=new Array(t-1);r[t-2]=a[t-1];for(let n=t-3;n>=0;--n)r[n]=`(${r[n+1]} * ${a[n+1]})`;return r}var ee=(e,i,t)=>t==="int32"?`atomicAdd(${e}, bitcast<i32>(${i}));`:`
|
|
3
3
|
{
|
|
4
4
|
var oldValue = 0;
|
package/dist/composition.js
CHANGED
|
@@ -1187,7 +1187,7 @@ function confidenceMultiplier(value) {
|
|
|
1187
1187
|
}
|
|
1188
1188
|
var package_default = {
|
|
1189
1189
|
name: "@kubohiroya/turbowarp-teachable-machine",
|
|
1190
|
-
version: "3.5.
|
|
1190
|
+
version: "3.5.6",
|
|
1191
1191
|
description: "A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",
|
|
1192
1192
|
author: "Hiroya Kubo <hiroya@cuc.ac.jp>",
|
|
1193
1193
|
license: "MPL-2.0",
|
|
@@ -1257,7 +1257,7 @@ var package_default = {
|
|
|
1257
1257
|
"prepack": "npm run build && npm run release:consistency:check"
|
|
1258
1258
|
},
|
|
1259
1259
|
devDependencies: {
|
|
1260
|
-
"@kubohiroya/turbowarp-camera-source": "0.19.
|
|
1260
|
+
"@kubohiroya/turbowarp-camera-source": "0.19.3",
|
|
1261
1261
|
"@kubohiroya/vite-plugin-turbowarp-extension": "0.6.1",
|
|
1262
1262
|
"@teachablemachine/image": "0.8.5",
|
|
1263
1263
|
"@teachablemachine/pose": "0.8.6",
|
package/dist/posenet.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var package_default = {
|
|
2
2
|
name: "@kubohiroya/turbowarp-teachable-machine",
|
|
3
|
-
version: "3.5.
|
|
3
|
+
version: "3.5.6",
|
|
4
4
|
description: "A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",
|
|
5
5
|
author: "Hiroya Kubo <hiroya@cuc.ac.jp>",
|
|
6
6
|
license: "MPL-2.0",
|
|
@@ -70,7 +70,7 @@ var package_default = {
|
|
|
70
70
|
"prepack": "npm run build && npm run release:consistency:check"
|
|
71
71
|
},
|
|
72
72
|
devDependencies: {
|
|
73
|
-
"@kubohiroya/turbowarp-camera-source": "0.19.
|
|
73
|
+
"@kubohiroya/turbowarp-camera-source": "0.19.3",
|
|
74
74
|
"@kubohiroya/vite-plugin-turbowarp-extension": "0.6.1",
|
|
75
75
|
"@teachablemachine/image": "0.8.5",
|
|
76
76
|
"@teachablemachine/pose": "0.8.6",
|
package/dist/runtime.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @license Includes TensorFlow.js 4.22.0, Speech Commands 0.5.4, Teachable Machine Pose 0.8.6, Teachable Machine Image 0.8.5, and PoseNet 2.2.2 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v3.5.
|
|
1
|
+
/*! @license Includes TensorFlow.js 4.22.0, Speech Commands 0.5.4, Teachable Machine Pose 0.8.6, Teachable Machine Image 0.8.5, and PoseNet 2.2.2 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v3.5.6/THIRD_PARTY_NOTICES.md. */
|
|
2
2
|
(function(){var LK=Object.create,pd=Object.defineProperty,PK=Object.getOwnPropertyDescriptor,MK=Object.getOwnPropertyNames,zK=Object.getPrototypeOf,xx=Object.prototype.hasOwnProperty,m=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}},Ye=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),Te=(e,t)=>{let n={};for(var r in e)pd(n,r,{get:e[r],enumerable:!0});return t||pd(n,Symbol.toStringTag,{value:"Module"}),n},UN=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(var s=MK(t),a=0,i=s.length,o;a<i;a++)o=s[a],!xx.call(e,o)&&o!==n&&pd(e,o,{get:(l=>t[l]).bind(null,o),enumerable:!(r=PK(t,o))||r.enumerable});return e},Co=(e,t,n)=>(n=e!=null?LK(zK(e)):{},UN(t||!e||!e.__esModule||!xx.call(e,"default")?pd(n,"default",{value:e,enumerable:!0}):n,e)),or=e=>xx.call(e,"module.exports")?e["module.exports"]:UN(pd({},"__esModule",{value:!0}),e);function lr(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`)}var GN,HN,fd,Gu,jN=m((()=>{GN=1e-7,HN=1e-4,fd=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}},Gu=class{refCount(e){return lr("refCount")}incRef(e){return lr("incRef")}timerAvailable(){return!0}time(e){return lr("time")}read(e){return lr("read")}readSync(e){return lr("readSync")}readToGPU(e,t){return lr("readToGPU")}numDataIds(){return lr("numDataIds")}disposeData(e,t){return lr("disposeData")}write(e,t,n){return lr("write")}move(e,t,n,r,s){return lr("move")}createTensorFromGPUData(e,t,n){return lr("createTensorFromGPUData")}memory(){return lr("memory")}floatPrecision(){return lr("floatPrecision")}epsilon(){return this.floatPrecision()===32?GN:HN}dispose(){return lr("dispose")}}}));function $o(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Xs(e,t,n)}function BK(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,r=0;for(;n>0;)r=Math.random()*n|0,n--,Xs(e,n,r),Xs(t,n,r)}function Aa(e,t,n){return Math.max(e,Math.min(t,n))}function _m(e){return e%2===0?e:e+1}function Xs(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function qN(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t}function VK(e,t){const n=Math.random();return t*n+(1-n)*e}function WK(e,t){let n=0;for(let r=0;r<e.length;r++){const s=Number(e[r])-Number(t[r]);n+=s*s}return n}function E(e,t){if(!e)throw new Error(typeof t=="string"?t:t())}function bn(e,t,n=""){E(Ue(e,t),()=>n+` Shapes ${e} and ${t} must match`)}function ko(e){E(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function te(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n<e.length;n++)t*=e[n];return t}function UK(e){return e.length===0}function KN(e,t){if(e===t)return!0;if(e==null||t==null||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==null&&t[n]!==null&&e[n]!==t[n])return!1;return!0}function Ue(e,t){if(e===t)return!0;if(e==null||t==null||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function To(e){return e%1===0}function GK(e){if(Math.tanh!=null)return Math.tanh(e);if(e===1/0)return 1;if(e===-1/0)return-1;{const t=Math.exp(2*e);return(t-1)/(t+1)}}function Sm(e){const t=Math.ceil(Math.sqrt(e));return[t,Math.ceil(e/t)]}function HK(e){const t=new Uint32Array(e);for(let n=0;n<e;++n)t[n]=n;return $o(t),t}function Eo(e,t){return t<=e.length?e:e+" ".repeat(t-e.length)}function wx(e,t=s=>0,n,r){return new Promise((s,a)=>{let i=0;const o=()=>{if(e()){s();return}i++;const l=t(i);if(n!=null&&i>=n){a();return}r!=null?r(o,l):setTimeout(o,l)};o()})}function _x(e,t){let n=1,r=-1;for(let a=0;a<e.length;++a)if(e[a]>=0)n*=e[a];else if(e[a]===-1){if(r!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${r} and dim ${a}`);r=a}else if(e[a]<0)throw Error(`Shapes can not be < 0. Found ${e[a]} at dim ${a}`);if(r===-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}`);const s=e.slice();return s[r]=t/n,s}function Be(e,t){const n=t.length;return e=e==null?t.map((r,s)=>s):[].concat(e),E(e.every(r=>r>=-n&&r<n),()=>`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),E(e.every(r=>To(r)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(r=>r<0?n+r:r)}function Ys(e,t){const n=[],r=[],s=t!=null&&Array.isArray(t)&&t.length===0,a=t==null||s?null:Be(t,e).sort();let i=0;for(let o=0;o<e.length;++o){if(a!=null){if(a[i]===o&&e[o]!==1)throw new Error(`Can't squeeze axis ${o} since its dim '${e[o]}' is not 1`);(a[i]==null||a[i]>o)&&e[o]===1&&(n.push(e[o]),r.push(o)),a[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),r.push(o))}return{newShape:n,keptDims:r}}function un(e,t){return Dt(e,t)}function Dt(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 XN(e,t){for(let n=0;n<e.length;n++){const r=e[n];if(isNaN(r)||!isFinite(r))throw Error(`A tensor of type ${t} being uploaded contains ${r}.`)}}function YN(e){return e==="bool"||e==="complex64"||e==="float32"||e==="int32"||e==="string"}function Sx(e,t){return!(t==="complex64"||t==="float32"&&e!=="complex64"||t==="int32"&&e!=="float32"&&e!=="complex64"||t==="bool"&&e==="bool")}function md(e){if(e==="float32"||e==="int32")return 4;if(e==="complex64")return 8;if(e==="bool")return 1;throw new Error(`Unknown dtype ${e}`)}function ZN(e){if(e==null)return 0;let t=0;return e.forEach(n=>t+=n.length),t}function bs(e){return typeof e=="string"||e instanceof String}function JN(e){return typeof e=="boolean"}function Im(e){return typeof e=="number"}function Ao(e){return Array.isArray(e)?Ao(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":Im(e)?"float32":bs(e)?"string":JN(e)?"bool":"float32"}function Ra(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Nm(e,t){for(let n=t;n<e;++n)if(e%n===0)return n;return e}function Ie(e){const t=e.length;if(t<2)return[];const n=new Array(t-1);n[t-2]=e[t-1];for(let r=t-3;r>=0;--r)n[r]=n[r+1]*e[r+1];return n}function QN(e,t,n,r=!1){const s=new Array;if(t.length===1){const a=t[0]*(r?2:1);for(let i=0;i<a;i++)s[i]=n[e+i]}else{const a=t[0],i=t.slice(1),o=i.reduce((l,u)=>l*u)*(r?2:1);for(let l=0;l<a;l++)s[l]=QN(e+l*o,i,n,r)}return s}function xr(e,t,n=!1){if(e.length===0)return t[0];const r=e.reduce((s,a)=>s*a)*(n?2:1);if(r===0)return[];if(r!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return QN(0,e,t,n)}function eC(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 Cm(e,t){const n=xn(e,t);for(let r=0;r<n.length;r++)n[r]=1;return n}function xn(e,t){if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool")return new Uint8Array(e);throw new Error(`Unknown data type ${t}`)}function Ix(e,t){const n=e.reduce((r,s)=>r*s,1);if(t==null||t==="float32")return xr(e,new Float32Array(n));if(t==="int32")return xr(e,new Int32Array(n));if(t==="bool")return xr(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ur(e){e.forEach(t=>{E(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function Xr(e,t,n){if(t===0)return 0;if(t===1)return e[0];let r=e[e.length-1];for(let s=0;s<e.length-1;++s)r+=n[s]*e[s];return r}function Ro(e,t,n){if(t===0)return[];if(t===1)return[e];const r=new Array(t);for(let s=0;s<r.length-1;++s)r[s]=Math.floor(e/n[s]),e-=r[s]*n[s];return r[r.length-1]=e,r}function Zs(e){return e&&e.then&&typeof e.then=="function"}var cn=m((()=>{}));function jK(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...r)=>(qK(t,r[0],r[1]),r.join("="))),t}function qK(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function KK(e,t){const n=t.toLowerCase();return n==="true"||n==="false"?n==="true":`${+n}`===n?+n:t}function Z(){return gd}function XK(e){gd=e}var Nx,$m,gd,wn=m((()=>{cn(),Nx="tfjsflags",$m=class{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.getQueryParams=jK,this.populateURLFlags()}setPlatform(e,t){this.platform!=null&&(Z().getBool("IS_TEST")||Z().getBool("PROD")||console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${e}.`)),this.platformName=e,this.platform=t}registerFlag(e,t,n){if(this.flagRegistry[e]={evaluationFn:t,setHook:n},this.urlFlags[e]!=null){const r=this.urlFlags[e];Z().getBool("IS_TEST")||Z().getBool("PROD")||console.warn(`Setting feature override from URL ${e}: ${r}.`),this.set(e,r)}}async getAsync(e){return e in this.flags?this.flags[e]:(this.flags[e]=await this.evaluateFlag(e),this.flags[e])}get(e){if(e in this.flags)return this.flags[e];const t=this.evaluateFlag(e);if(Zs(t))throw new Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getString(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(this.flagRegistry[e]==null)throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,this.flagRegistry[e].setHook!=null&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(this.flagRegistry[e]==null)throw new Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(typeof this.global>"u"||typeof this.global.location>"u"||typeof this.global.location.search>"u")return;const e=this.getQueryParams(this.global.location.search);Nx in e&&e[Nx].split(",").forEach(t=>{const[n,r]=t.split(":");this.urlFlags[n]=KK(n,r)})}},gd=null}));function tC(){if($x==null){let e;if(typeof window<"u")e=window;else if(typeof global<"u")e=global;else if(typeof process<"u")e=process;else if(typeof self<"u")e=self;else throw new Error("Could not find a global object");$x=e}return $x}function YK(){const e=tC();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Cx(e,t){const n=YK();if(n.has(e))return n.get(e);{const r=t();return n.set(e,r),n.get(e)}}var $x,kx=m((()=>{})),ZK,Da,Oa,JK,Do,QK,eX,Oo,Fo,Fa,La,Pa,Ma,za,Lo,Hu,Po,ju,Mo,zo,qu,Bo,km,Ku,Ba,Va,Wa,Xu,Vo,Wo,Uo,Yu,Go,Ho,Zu,Ju,tX,Ua,Qu,jo,ec,tc,nc,qo,rc,sc,ac,Ko,ic,oc,vd,Ga,lc,nX,uc,rX,Xo,sX,Yo,Ha,aX,cc,hc,ja,qa,Zo,Jo,dc,Qo,Ka,Xa,pc,fc,Ya,Za,Ja,el,tl,nl,mc,iX,Qa,rl,sl,al,Tx,Tm,Ex,oX,gc,Ax,lX,ei,il,vc,ol,yc,bc,ll,uX,ti,ul,cX,xc,ni,hX,cl,wc,_c,Sc,hl,dl,pl,fl,Rx,dX,ml,gl,Ic,Nc,Cc,$c,kc,ri,si,vl,yl,Tc,bl,Ec,ai,xl,ii,oi,Ac,Rc,Dc,wl,li,_l,pX,ui,ci,hi,di,pi,fX,Sl,Il,Nl,Oc,Fc,Lc,Pc,Mc,fi,zc,Cl,Bc,Vc,Wc,Uc,mX,gX,mi,gi,Gc,Hc,Js,jc,$l,kl,Dx,Tl,vi,yd,qc,El,Al,Rl,P=m((()=>{ZK="Abs",Da="Acos",Oa="Acosh",JK="Add",Do="AddN",QK="All",eX="Any",Oo="ArgMax",Fo="ArgMin",Fa="Asin",La="Asinh",Pa="Atan",Ma="Atanh",za="Atan2",Lo="AvgPool",Hu="AvgPoolGrad",Po="AvgPool3D",ju="AvgPool3DGrad",Mo="BatchMatMul",zo="BatchToSpaceND",qu="Bincount",Bo="BitwiseAnd",km="BroadcastTo",Ku="BroadcastArgs",Ba="Cast",Va="Ceil",Wa="ClipByValue",Xu="Complex",Vo="ComplexAbs",Wo="Concat",Uo="Conv2D",Yu="Conv2DBackpropFilter",Go="Conv2DBackpropInput",Ho="Conv3D",Zu="Conv3DBackpropFilterV2",Ju="Conv3DBackpropInputV2",tX="Cos",Ua="Cosh",Qu="Cumprod",jo="Cumsum",ec="CropAndResize",tc="DenseBincount",nc="DepthToSpace",qo="DepthwiseConv2dNative",rc="DepthwiseConv2dNativeBackpropFilter",sc="DepthwiseConv2dNativeBackpropInput",ac="Diag",Ko="Dilation2D",ic="Dilation2DBackpropInput",oc="Dilation2DBackpropFilter",vd="Draw",Ga="RealDiv",lc="Einsum",nX="Elu",uc="EluGrad",rX="Erf",Xo="Equal",sX="Exp",Yo="ExpandDims",Ha="Expm1",aX="FFT",cc="Fill",hc="FlipLeftRight",ja="Floor",qa="FloorDiv",Zo="FusedBatchNorm",Jo="GatherV2",dc="GatherNd",Qo="Greater",Ka="GreaterEqual",Xa="Identity",pc="IFFT",fc="Imag",Ya="IsFinite",Za="IsInf",Ja="IsNan",el="LeakyRelu",tl="Less",nl="LessEqual",mc="LinSpace",iX="Log",Qa="Log1p",rl="LogicalAnd",sl="LogicalNot",al="LogicalOr",Tx="LogicalXor",Tm="LogSoftmax",Ex="LowerBound",oX="LRN",gc="LRNGrad",Ax="MatrixBandPart",lX="Max",ei="Maximum",il="MaxPool",vc="MaxPoolGrad",ol="MaxPool3D",yc="MaxPool3DGrad",bc="MaxPoolWithArgmax",ll="Mean",uX="Min",ti="Minimum",ul="MirrorPad",cX="Mod",xc="Multinomial",ni="Multiply",hX="Neg",cl="NotEqual",wc="NonMaxSuppressionV3",_c="NonMaxSuppressionV4",Sc="NonMaxSuppressionV5",hl="OnesLike",dl="OneHot",pl="Pack",fl="PadV2",Rx="Pool",dX="Pow",ml="Prelu",gl="Prod",Ic="RaggedGather",Nc="RaggedRange",Cc="RaggedTensorToTensor",$c="Range",kc="Real",ri="Reciprocal",si="Relu",vl="Reshape",yl="ResizeNearestNeighbor",Tc="ResizeNearestNeighborGrad",bl="ResizeBilinear",Ec="ResizeBilinearGrad",ai="Relu6",xl="Reverse",ii="Round",oi="Rsqrt",Ac="ScatterNd",Rc="TensorScatterUpdate",Dc="SearchSorted",wl="Select",li="Selu",_l="Slice",pX="Sin",ui="Sinh",ci="Sign",hi="Sigmoid",di="Softplus",pi="Sqrt",fX="Sum",Sl="SpaceToBatchND",Il="SplitV",Nl="Softmax",Oc="SparseFillEmptyRows",Fc="SparseReshape",Lc="SparseSegmentMean",Pc="SparseSegmentSum",Mc="SparseToDense",fi="SquaredDifference",zc="Square",Cl="StaticRegexReplace",Bc="StridedSlice",Vc="StringNGrams",Wc="StringSplit",Uc="StringToHashBucketFast",mX="Sub",gX="Tan",mi="Tanh",gi="Tile",Gc="TopK",Hc="Transform",Js="Transpose",jc="Unique",$l="Unpack",kl="UnsortedSegmentSum",Dx="UpperBound",Tl="ZerosLike",vi="Step",yd="FromPixels",qc="RotateWithOffset",El="_FusedMatMul",Al="FusedConv2D",Rl="FusedDepthwiseConv2D"}));function wr(...e){Z().getBool("IS_TEST")||Z().getBool("PROD")||console.warn(...e)}function vX(...e){Z().getBool("IS_TEST")||Z().getBool("PROD")||console.log(...e)}var Ox=m((()=>{wn()}));function Kc(e,t){const n=Lx(e,t);return Dl.get(n)}function Em(e){return Xc.get(e)}function bd(e){const t=Dl.entries(),n=[];for(;;){const{done:r,value:s}=t.next();if(r)break;const[a,i]=s,[o]=a.split("_");o===e&&n.push(i)}return n}function xd(e){const{kernelName:t,backendName:n}=e,r=Lx(t,n);Dl.has(r)&&wr(`The kernel '${t}' for backend '${n}' is already registered`),Dl.set(r,e)}function Fx(e){const{kernelName:t}=e;Xc.has(t)&&Z().getBool("DEBUG")&&wr(`Overriding the gradient for '${t}'`),Xc.set(t,e)}function nC(e,t){const n=Lx(e,t);if(!Dl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Dl.delete(n)}function rC(e){if(!Xc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Xc.delete(e)}function sC(e,t){bd(e).forEach(n=>{xd(Object.assign({},n,{backendName:t}))})}function Lx(e,t){return`${t}_${e}`}var Dl,Xc,Am=m((()=>{wn(),kx(),Ox(),Dl=Cx("kernelRegistry",()=>new Map),Xc=Cx("gradRegistry",()=>new Map)}));function aC(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}var iC=m((()=>{})),yX=Ye(((e,t)=>{t.exports=r;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function r(T,S,F){this.low=T|0,this.high=S|0,this.unsigned=!!F}r.prototype.__isLong__,Object.defineProperty(r.prototype,"__isLong__",{value:!0});function s(T){return(T&&T.__isLong__)===!0}r.isLong=s;var a={},i={};function o(T,S){var F,M,L;return S?(T>>>=0,(L=0<=T&&T<256)&&(M=i[T],M)?M:(F=u(T,(T|0)<0?-1:0,!0),L&&(i[T]=F),F)):(T|=0,(L=-128<=T&&T<128)&&(M=a[T],M)?M:(F=u(T,T<0?-1:0,!1),L&&(a[T]=F),F))}r.fromInt=o;function l(T,S){if(isNaN(T))return S?x:w;if(S){if(T<0)return x;if(T>=v)return A}else{if(T<=-y)return O;if(T+1>=y)return k}return T<0?l(-T,S).neg():u(T%g|0,T/g|0,S)}r.fromNumber=l;function u(T,S,F){return new r(T,S,F)}r.fromBits=u;var c=Math.pow;function h(T,S,F){if(T.length===0)throw Error("empty string");if(T==="NaN"||T==="Infinity"||T==="+Infinity"||T==="-Infinity")return w;if(typeof S=="number"?(F=S,S=!1):S=!!S,F=F||10,F<2||36<F)throw RangeError("radix");var M;if((M=T.indexOf("-"))>0)throw Error("interior hyphen");if(M===0)return h(T.substring(1),S,F).neg();for(var L=l(c(F,8)),z=w,q=0;q<T.length;q+=8){var J=Math.min(8,T.length-q),re=parseInt(T.substring(q,q+J),F);if(J<8){var Y=l(c(F,J));z=z.mul(Y).add(l(re))}else z=z.mul(L),z=z.add(l(re))}return z.unsigned=S,z}r.fromString=h;function d(T,S){return typeof T=="number"?l(T,S):typeof T=="string"?h(T,S):u(T.low,T.high,typeof S=="boolean"?S:T.unsigned)}r.fromValue=d;var p=65536,f=1<<24,g=p*p,v=g*g,y=v/2,b=o(f),w=o(0);r.ZERO=w;var x=o(0,!0);r.UZERO=x;var _=o(1);r.ONE=_;var $=o(1,!0);r.UONE=$;var N=o(-1);r.NEG_ONE=N;var k=u(-1,2147483647,!1);r.MAX_VALUE=k;var A=u(-1,-1,!0);r.MAX_UNSIGNED_VALUE=A;var O=u(0,-2147483648,!1);r.MIN_VALUE=O;var R=r.prototype;R.toInt=function(){return this.unsigned?this.low>>>0:this.low},R.toNumber=function(){return this.unsigned?(this.high>>>0)*g+(this.low>>>0):this.high*g+(this.low>>>0)},R.toString=function(S){if(S=S||10,S<2||36<S)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(O)){var F=l(S),M=this.div(F),L=M.mul(F).sub(this);return M.toString(S)+L.toInt().toString(S)}else return"-"+this.neg().toString(S);for(var z=l(c(S,6),this.unsigned),q=this,J="";;){var re=q.div(z),Y=(q.sub(re.mul(z)).toInt()>>>0).toString(S);if(q=re,q.isZero())return Y+J;for(;Y.length<6;)Y="0"+Y;J=""+Y+J}},R.getHighBits=function(){return this.high},R.getHighBitsUnsigned=function(){return this.high>>>0},R.getLowBits=function(){return this.low},R.getLowBitsUnsigned=function(){return this.low>>>0},R.getNumBitsAbs=function(){if(this.isNegative())return this.eq(O)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,F=31;F>0&&(S&1<<F)==0;F--);return this.high!=0?F+33:F+1},R.isZero=function(){return this.high===0&&this.low===0},R.eqz=R.isZero,R.isNegative=function(){return!this.unsigned&&this.high<0},R.isPositive=function(){return this.unsigned||this.high>=0},R.isOdd=function(){return(this.low&1)===1},R.isEven=function(){return(this.low&1)===0},R.equals=function(S){return s(S)||(S=d(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},R.eq=R.equals,R.notEquals=function(S){return!this.eq(S)},R.neq=R.notEquals,R.ne=R.notEquals,R.lessThan=function(S){return this.comp(S)<0},R.lt=R.lessThan,R.lessThanOrEqual=function(S){return this.comp(S)<=0},R.lte=R.lessThanOrEqual,R.le=R.lessThanOrEqual,R.greaterThan=function(S){return this.comp(S)>0},R.gt=R.greaterThan,R.greaterThanOrEqual=function(S){return this.comp(S)>=0},R.gte=R.greaterThanOrEqual,R.ge=R.greaterThanOrEqual,R.compare=function(S){if(s(S)||(S=d(S)),this.eq(S))return 0;var F=this.isNegative(),M=S.isNegative();return F&&!M?-1:!F&&M?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},R.comp=R.compare,R.negate=function(){return!this.unsigned&&this.eq(O)?O:this.not().add(_)},R.neg=R.negate,R.add=function(S){s(S)||(S=d(S));var F=this.high>>>16,M=this.high&65535,L=this.low>>>16,z=this.low&65535,q=S.high>>>16,J=S.high&65535,re=S.low>>>16,Y=S.low&65535,ae=0,ne=0,oe=0,ce=0;return ce+=z+Y,oe+=ce>>>16,ce&=65535,oe+=L+re,ne+=oe>>>16,oe&=65535,ne+=M+J,ae+=ne>>>16,ne&=65535,ae+=F+q,ae&=65535,u(oe<<16|ce,ae<<16|ne,this.unsigned)},R.subtract=function(S){return s(S)||(S=d(S)),this.add(S.neg())},R.sub=R.subtract,R.multiply=function(S){if(this.isZero())return w;if(s(S)||(S=d(S)),n)return u(n.mul(this.low,this.high,S.low,S.high),n.get_high(),this.unsigned);if(S.isZero())return w;if(this.eq(O))return S.isOdd()?O:w;if(S.eq(O))return this.isOdd()?O:w;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(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var F=this.high>>>16,M=this.high&65535,L=this.low>>>16,z=this.low&65535,q=S.high>>>16,J=S.high&65535,re=S.low>>>16,Y=S.low&65535,ae=0,ne=0,oe=0,ce=0;return ce+=z*Y,oe+=ce>>>16,ce&=65535,oe+=L*Y,ne+=oe>>>16,oe&=65535,oe+=z*re,ne+=oe>>>16,oe&=65535,ne+=M*Y,ae+=ne>>>16,ne&=65535,ne+=L*re,ae+=ne>>>16,ne&=65535,ne+=z*J,ae+=ne>>>16,ne&=65535,ae+=F*Y+M*re+L*J+z*q,ae&=65535,u(oe<<16|ce,ae<<16|ne,this.unsigned)},R.mul=R.multiply,R.divide=function(S){if(s(S)||(S=d(S)),S.isZero())throw Error("division by zero");if(n)return!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1?this:u((this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high),n.get_high(),this.unsigned);if(this.isZero())return this.unsigned?x:w;var F,M,L;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return x;if(S.gt(this.shru(1)))return $;L=x}else{if(this.eq(O))return S.eq(_)||S.eq(N)?O:S.eq(O)?_:(F=this.shr(1).div(S).shl(1),F.eq(w)?S.isNegative()?_:N:(M=this.sub(S.mul(F)),L=F.add(M.div(S)),L));if(S.eq(O))return this.unsigned?x:w;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();L=w}for(M=this;M.gte(S);){F=Math.max(1,Math.floor(M.toNumber()/S.toNumber()));for(var z=Math.ceil(Math.log(F)/Math.LN2),q=z<=48?1:c(2,z-48),J=l(F),re=J.mul(S);re.isNegative()||re.gt(M);)F-=q,J=l(F,this.unsigned),re=J.mul(S);J.isZero()&&(J=_),L=L.add(J),M=M.sub(re)}return L},R.div=R.divide,R.modulo=function(S){return s(S)||(S=d(S)),n?u((this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high),n.get_high(),this.unsigned):this.sub(this.div(S).mul(S))},R.mod=R.modulo,R.rem=R.modulo,R.not=function(){return u(~this.low,~this.high,this.unsigned)},R.and=function(S){return s(S)||(S=d(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},R.or=function(S){return s(S)||(S=d(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},R.xor=function(S){return s(S)||(S=d(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},R.shiftLeft=function(S){return s(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<<S,this.high<<S|this.low>>>32-S,this.unsigned):u(0,this.low<<S-32,this.unsigned)},R.shl=R.shiftLeft,R.shiftRight=function(S){return s(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low>>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},R.shr=R.shiftRight,R.shiftRightUnsigned=function(S){if(s(S)&&(S=S.toInt()),S&=63,S===0)return this;var F=this.high;if(S<32){var M=this.low;return u(M>>>S|F<<32-S,F>>>S,this.unsigned)}else return S===32?u(F,0,this.unsigned):u(F>>>S-32,0,this.unsigned)},R.shru=R.shiftRightUnsigned,R.shr_u=R.shiftRightUnsigned,R.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},R.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},R.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},R.toBytesLE=function(){var S=this.high,F=this.low;return[F&255,F>>>8&255,F>>>16&255,F>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},R.toBytesBE=function(){var S=this.high,F=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,F>>>24,F>>>16&255,F>>>8&255,F&255]},r.fromBytes=function(S,F,M){return M?r.fromBytesLE(S,F):r.fromBytesBE(S,F)},r.fromBytesLE=function(S,F){return new r(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,F)},r.fromBytesBE=function(S,F){return new r(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],F)}}));function wd(e){return bi.fromString(e,!0,16)}function Px(e){return e.xor(e.shru(47))}function oC(e,t,n){const r=e.slice(t,t+n);return bi.fromBytes(Array.from(r),!0,!0)}function ft(e,t){return oC(e,t,8)}function lC(e,t){return oC(e,t,4)}function hn(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function yi(e,t,n=wd("9ddfea08eb382d69")){let r=e.xor(t).mul(n);r=r.xor(r.shru(47));let s=t.xor(r).mul(n);return s=s.xor(s.shru(47)),s=s.mul(n),s}function bX(e,t,n,r,s,a){s=s.add(e),a=hn(a.add(s).add(r),21);const i=s;return s=s.add(t),s=s.add(n),a=a.add(hn(s,44)),[s.add(r),a.add(i)]}function Rm(e,t,n,r){return bX(ft(e,t),ft(e,t+8),ft(e,t+16),ft(e,t+24),n,r)}function xX(e,t=e.length){if(t>=8){const n=Dn.add(t*2),r=ft(e,0).add(Dn),s=ft(e,t-8);return yi(hn(s,37).mul(n).add(r),hn(r,25).add(s).mul(n),n)}if(t>=4){const n=Dn.add(t*2);return yi(lC(e,0).shl(3).add(t),lC(e,t-4),n)}if(t>0){const n=e[0],r=e[t>>1],s=e[t-1],a=n+(r<<8),i=t+(s<<2);return Px(Dn.mul(a).xor(zx.mul(i))).mul(Dn)}return Dn}function wX(e,t=e.length){const n=Dn.add(t*2),r=ft(e,0).mul(xi),s=ft(e,8),a=ft(e,t-8).mul(n),i=ft(e,t-16).mul(Dn);return yi(hn(r.add(s),43).add(hn(a,30)).add(i),r.add(hn(s.add(Dn),18)).add(a),n)}function _X(e,t=e.length){const n=Dn.add(t*2),r=ft(e,0).mul(Dn),s=ft(e,8),a=ft(e,t-8).mul(n),i=ft(e,t-16).mul(Dn),o=hn(r.add(s),43).add(hn(a,30)).add(i),l=yi(o,r.add(hn(s.add(Dn),18)).add(a),n),u=ft(e,16).mul(n),c=ft(e,24),h=o.add(ft(e,t-32)).mul(n),d=l.add(ft(e,t-24)).mul(n);return yi(hn(u.add(c),43).add(hn(h,30)).add(d),u.add(hn(c.add(r),18)).add(h),n)}function uC(e,t=e.length){const n=bi.fromNumber(81,!0);if(t<=32)return t<=16?xX(e,t):wX(e,t);if(t<=64)return _X(e,t);let r=n,s=n.mul(xi).add(113),a=Px(s.mul(Dn).add(113)).mul(Dn),i=[bi.UZERO,bi.UZERO],o=[bi.UZERO,bi.UZERO];r=r.mul(Dn).add(ft(e,0));let l=0;const u=(t-1>>6)*64,c=u+(t-1&63)-63;do r=hn(r.add(s).add(i[0]).add(ft(e,l+8)),37).mul(xi),s=hn(s.add(i[1]).add(ft(e,l+48)),42).mul(xi),r=r.xor(o[1]),s=s.add(i[0]).add(ft(e,l+40)),a=hn(a.add(o[0]),33).mul(xi),i=Rm(e,l,i[1].mul(xi),r.add(o[0])),o=Rm(e,l+32,a.add(o[1]),s.add(ft(e,l+16))),[a,r]=[r,a],l+=64;while(l!==u);const h=xi.add(a.and(255).shl(1));return l=c,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),r=hn(r.add(s).add(i[0]).add(ft(e,l+8)),37).mul(h),s=hn(s.add(i[1]).add(ft(e,l+48)),42).mul(h),r=r.xor(o[1].mul(9)),s=s.add(i[0].mul(9).add(ft(e,l+40))),a=hn(a.add(o[0]),33).mul(h),i=Rm(e,l,i[1].mul(h),r.add(o[0])),o=Rm(e,l+32,a.add(o[1]),s.add(ft(e,l+16))),[a,r]=[r,a],yi(yi(i[0],o[0],h).add(Px(s).mul(zx)).add(a),yi(i[1],o[1],h).add(r),h)}var Mx,bi,zx,xi,Dn,SX=m((()=>{Mx=Co(yX()),bi=Mx.default||Mx,zx=wd("c3a5c85c97cb3127"),xi=wd("b492b66fbe98f273"),Dn=wd("9ae16a3b2f90404f")})),cC=Te({arraysEqual:()=>Ue,arraysEqualWithNull:()=>KN,assert:()=>E,assertNonNegativeIntegerDimensions:()=>ur,assertNonNull:()=>ko,assertShapesMatch:()=>bn,bytesFromStringArray:()=>ZN,bytesPerElement:()=>md,checkConversionForErrors:()=>XN,clamp:()=>Aa,computeStrides:()=>Ie,convertBackendValuesAndArrayBuffer:()=>eC,createScalarValue:()=>Qs,createShuffledIndices:()=>HK,decodeString:()=>ea,distSquared:()=>WK,encodeString:()=>xs,fetch:()=>hC,fingerPrint64:()=>uC,flatten:()=>ws,getArrayFromDType:()=>Dt,getTypedArrayFromDType:()=>un,hasEncodingLoss:()=>Sx,hexToLong:()=>wd,indexToLoc:()=>Ro,inferDtype:()=>Ao,inferFromImplicitShape:()=>_x,isBoolean:()=>JN,isFunction:()=>Ra,isInt:()=>To,isNumber:()=>Im,isPromise:()=>Zs,isScalarShape:()=>UK,isString:()=>bs,isTypedArray:()=>en,isValidDtype:()=>YN,locToIndex:()=>Xr,makeOnesTypedArray:()=>Cm,makeZerosNestedTypedArray:()=>Ix,makeZerosTypedArray:()=>xn,nearestDivisor:()=>Nm,nearestLargerEven:()=>_m,now:()=>Bt,parseAxisParam:()=>Be,randUniform:()=>VK,repeatedTry:()=>wx,rightPad:()=>Eo,shuffle:()=>$o,shuffleCombo:()=>BK,sizeFromShape:()=>te,sizeToSquarishShape:()=>Sm,squeezeShape:()=>Ys,sum:()=>qN,swap:()=>Xs,tanh:()=>GK,toNestedArray:()=>xr,toTypedArray:()=>wi});function Qs(e,t){return t==="string"?xs(e):wi([e],t)}function IX(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function wi(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ws(e)),Z().getBool("DEBUG")&&XN(e,t),IX(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"){const n=new Uint8Array(e.length);for(let r=0;r<n.length;++r)Math.round(e[r])!==0&&(n[r]=1);return n}else throw new Error(`Unknown data type ${t}`)}function Bt(){return Z().platform.now()}function hC(e,t){return Z().platform.fetch(e,t)}function xs(e,t="utf-8"){return t=t||"utf-8",Z().platform.encode(e,t)}function ea(e,t="utf-8"){return t=t||"utf-8",Z().platform.decode(e,t)}function en(e){return Z().platform.isTypedArray!=null?Z().platform.isTypedArray(e):aC(e)}function ws(e,t=[],n=!1){if(t==null&&(t=[]),typeof e=="boolean"||typeof e=="number"||typeof e=="string"||Zs(e)||e==null||en(e)&&n)t.push(e);else if(Array.isArray(e)||en(e))for(let r=0;r<e.length;++r)ws(e[r],t,n);else{let r=-1;for(const s of Object.keys(e))/^([1-9]+[0-9]*|0)$/.test(s)&&(r=Math.max(r,Number(s)));for(let s=0;s<=r;s++)ws(e[s],t,n)}return t}var Q=m((()=>{wn(),iC(),cn(),cn(),SX()}));function NX(e,t,n){if(t!=="float32")return!1;for(let r=0;r<e.length;r++){const s=e[r];if(isNaN(s)||!isFinite(s))return console.warn(`Found ${s} in the result of '${n}'`),!0}return!1}var dC,pC,CX=m((()=>{wn(),Q(),dC=class{constructor(e,t){this.backendTimer=e,this.logger=t,t==null&&(this.logger=new pC)}profileKernel(e,t,n){let r;const s=()=>{r=n()};let a;const i=Bt();if(this.backendTimer.timerAvailable())a=this.backendTimer.time(s);else{s();for(const o of r)o.dataSync();a=Promise.resolve({kernelMs:Bt()-i})}if(Z().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o<r.length;o++){const l=r[o];l.data().then(u=>{NX(u,l.dtype,e)})}return{kernelName:e,outputs:r,inputs:t,timeMs:a.then(o=>o.kernelMs),extraInfo:a.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:r,inputs:s,extraInfo:a}=e;n.forEach(i=>{Promise.all([i.data(),r,a]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],s,o[2])})})}},pC=class{logKernelProfile(e,t,n,r,s,a){const i=typeof r=="number"?Eo(`${r}ms`,9):r.error,o=Eo(e,25),l=t.rank,u=t.size,c=Eo(t.shape.toString(),14);let h="";for(const d in s){const p=s[d];if(p!=null){const f=p.shape||t.shape,g=f.length;h+=`${d}: ${g}D ${g>0?f:""} `}}console.log(`%c${o} %c${i} %c${l}D ${c} %c${u} %c${h} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}}));function $X(e,t,n){const r={},s={};for(let l=0;l<t.length;l++)r[t[l].id]=!0;for(let l=0;l<e.length;l++){const u=e[l],c=u.inputs;for(const h in c){const d=c[h];let p=!1;for(let f=0;f<t.length;f++)if(r[d.id]){u.outputs.forEach(g=>r[g.id]=!0),p=!0,s[u.id]=!0;break}if(p)break}}const a={};a[n.id]=!0;const i={};for(let l=e.length-1;l>=0;l--){const u=e[l],c=u.inputs;for(let h=0;h<u.outputs.length;h++)if(a[u.outputs[h].id]){for(const d in c)a[c[d].id]=!0,i[u.id]=!0;break}}const o=[];for(let l=0;l<e.length;l++){const u=e[l];if(s[u.id]&&i[u.id]){const c={};for(const d in u.inputs){const p=u.inputs[d];r[p.id]&&(c[d]=p)}const h=Object.assign({},u);h.inputs=c,h.outputs=u.outputs,o.push(h)}}return o}function kX(e,t,n,r){for(let s=t.length-1;s>=0;s--){const a=t[s],i=[];if(a.outputs.forEach(l=>{const u=e[l.id];u!=null?i.push(u):i.push(null)}),a.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${a.kernelName}.`);const o=a.gradient(i);for(const l in a.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);const u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${a.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);const c=a.inputs[l];if(!Ue(u.shape,c.shape))throw new Error(`Error in gradient for op ${a.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(e[c.id]==null)e[c.id]=u;else{const h=e[c.id];e[c.id]=r(h,u),h.dispose()}}}}var TX=m((()=>{Q()}));function EX(e,t,n,r){const s=Ie(t),a=AX(e,t,n,s),i=t.length,o=Dm(e,t,n,s,a),l=["Tensor"];return r&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(`
|
|
3
3
|
`)),l.join(`
|
|
4
4
|
`)}function AX(e,t,n,r){const s=te(t),a=r[r.length-1],i=new Array(a).fill(0),o=t.length,l=n==="complex64"?Sd(e):e;if(o>1)for(let u=0;u<s/a;u++){const c=u*a;for(let h=0;h<a;h++)i[h]=Math.max(i[h],_d(l[c+h],0,n).length)}return i}function _d(e,t,n){let r;return Array.isArray(e)?r=`${parseFloat(e[0].toFixed(Om))} + ${parseFloat(e[1].toFixed(Om))}j`:bs(e)?r=`'${e}'`:n==="bool"?r=fC(e):r=parseFloat(e.toFixed(Om)).toString(),Eo(r,t)}function fC(e){return e===0?"false":"true"}function Dm(e,t,n,r,s,a=!0){const i=n==="complex64"?2:1,o=t[0],l=t.length;if(l===0)return n==="complex64"?[_d(Sd(e)[0],0,n)]:n==="bool"?[fC(e[0])]:[e[0].toString()];if(l===1){if(o>Bx){const g=Yc*i;let v=Array.from(e.slice(0,g)),y=Array.from(e.slice((o-Yc)*i,o*i));return n==="complex64"&&(v=Sd(v),y=Sd(y)),["["+v.map((b,w)=>_d(b,s[w],n)).join(", ")+", ..., "+y.map((b,w)=>_d(b,s[o-Yc+w],n)).join(", ")+"]"]}return["["+(n==="complex64"?Sd(e):Array.from(e)).map((g,v)=>_d(g,s[v],n)).join(", ")+"]"]}const u=t.slice(1),c=r.slice(1),h=r[0]*i,d=[];if(o>Bx){for(let g=0;g<Yc;g++){const v=g*h,y=v+h;d.push(...Dm(e.slice(v,y),u,n,c,s,!1))}d.push("...");for(let g=o-Yc;g<o;g++){const v=g*h,y=v+h;d.push(...Dm(e.slice(v,y),u,n,c,s,g===o-1))}}else for(let g=0;g<o;g++){const v=g*h,y=v+h;d.push(...Dm(e.slice(v,y),u,n,c,s,g===o-1))}const p=l===2?",":"";d[0]="["+(o>0?d[0]+p:"");for(let g=1;g<d.length-1;g++)d[g]=" "+d[g]+p;let f=`,
|
|
@@ -4998,4 +4998,4 @@ return a / b;`,Fj=`
|
|
|
4998
4998
|
}
|
|
4999
4999
|
`}}}));function f0e(e){const{inputs:t,backend:n,attrs:r}=e,{x:s,segmentIds:a}=t,{numSegments:i}=r,o=s.shape.length,l=[];let u=0;const c=kt([u],o);let h=s;c!=null&&(h=Jn({inputs:{x:s},backend:n,attrs:{perm:c}}),l.push(h),u=Wt(1,o)[0]);const d=m2(h.shape,u,i),p=te([h.shape[u]]),f=he({inputs:{x:h},backend:n,attrs:{shape:[-1,p]}});l.push(f);const g=Id(s.dtype),v=(x,_,$,N,k)=>{const A=x.shape[0],O=x.shape[1],R=f2(O,k),T=new d5({windowSize:R,inSize:O,batchSize:A,numSegments:k},_),S=n.compileAndRun(T,[x,$],N);if(l.push(S),S.shape[1]===k)return S;const F=YI({backend:n,attrs:{start:0,stop:k,step:1,dtype:"float32"}}),M=t5({inputs:{x:F},backend:n,attrs:{reps:[O/R]}});return l.push(F),l.push(M),v(S,_,M,N,k)},y=v(f,"unsortedSegmentSum",a,g,i),b=he({inputs:{x:y},backend:n,attrs:{shape:d}});let w=b;if(c!=null){l.push(b);const x=Li(c);w=Jn({inputs:{x:w},backend:n,attrs:{perm:x}})}return l.forEach(x=>n.disposeIntermediateTensorInfo(x)),w}var p5,m0e=m((()=>{C(),p0e(),xq(),tt(),r5(),Dr(),p5={kernelName:kl,backendName:"webgl",kernelFunc:f0e}})),f5,g0e=m((()=>{C(),Yve(),Jve(),Qve(),eye(),tye(),sye(),iye(),lye(),dye(),fye(),mye(),gye(),vye(),yye(),bye(),wye(),Sye(),Nye(),$ye(),Tye(),Rye(),Pye(),zye(),Vye(),Uye(),jye(),qye(),Zye(),bo(),ebe(),bU(),obe(),ube(),dbe(),fbe(),gbe(),ybe(),bbe(),xbe(),_be(),Ibe(),Cbe(),kbe(),Abe(),Dbe(),Fbe(),Pbe(),Bbe(),Ube(),Hbe(),jbe(),qbe(),Kbe(),Xbe(),AG(),DG(),Ybe(),Qbe(),mm(),nxe(),rxe(),sxe(),lxe(),cxe(),dxe(),mxe(),aH(),yxe(),bxe(),Kr(),wxe(),ex(),_xe(),Sxe(),Ixe(),L4(),Nxe(),Cxe(),kxe(),Txe(),Exe(),Axe(),Rxe(),Dxe(),Lxe(),Mxe(),ij(),Vxe(),Uxe(),Hxe(),qxe(),Xxe(),Jxe(),twe(),rwe(),swe(),owe(),lwe(),hwe(),CI(),pwe(),mwe(),vwe(),bwe(),nU(),wwe(),_we(),Iwe(),cq(),$we(),M4(),Twe(),Awe(),Dwe(),Fwe(),xq(),hm(),Pj(),Lwe(),Pwe(),Mwe(),tt(),Wwe(),Hwe(),Xwe(),Jwe(),n1e(),s1e(),a1e(),i1e(),u1e(),d1e(),m1e(),g1e(),v1e(),y1e(),b1e(),x1e(),od(),Wj(),w1e(),_1e(),I1e(),C1e(),k1e(),E1e(),R1e(),O1e(),F1e(),L1e(),P1e(),z1e(),V1e(),G1e(),j1e(),K1e(),Y1e(),zj(),qb(),Z1e(),J1e(),e0e(),r5(),a0e(),l0e(),Dr(),c0e(),d0e(),m0e(),rq(),f5=[q4,K4,Z4,eW,nW,aW,iW,oW,fW,mW,yW,wW,IW,kW,AW,RW,DW,PW,MW,zW,UW,KW,XW,JW,QW,aU,oU,cU,O4,pU,yU,CU,AU,DU,OU,FU,LU,BU,UU,jU,ZU,JU,QU,tG,sG,lG,uG,hG,pG,fG,gG,xG,IG,$G,EG,RG,FG,MG,BG,WG,GG,KG,ZG,JG,QG,tH,sH,uH,pH,D4,fH,gU,vH,xH,SH,F4,$H,AH,RH,LH,zH,UH,jH,YH,ej,rj,aj,cj,hj,dj,gj,vj,yj,bj,xj,Ij,kj,Rj,Uj,B4,jj,Kj,Yj,Jj,tU,tq,aq,iq,uq,fq,P4,mq,gq,vq,yq,bq,rU,Lj,Sq,$q,Aq,V4,Oq,Lq,zq,Vq,Gq,jq,Xq,Jq,e6,n6,s6,o6,h6,f6,y6,w6,jW,Vj,I6,C6,$6,k6,T6,E6,A6,R6,O6,P6,z6,B6,V6,U6,G6,H6,j6,Mj,H4,X6,J6,Q6,n5,o5,u5,j4,c5,h5,p5,nq];for(const e of f5)xd(e)})),m5=m((()=>{Ove(),g0e()})),g5,v0e=m((()=>{g5="4.22.0"})),gs=Te({Abs:()=>"Abs",Acos:()=>Da,Acosh:()=>Oa,AdadeltaOptimizer:()=>Gp,AdagradOptimizer:()=>Hp,AdamOptimizer:()=>jp,AdamaxOptimizer:()=>qp,Add:()=>"Add",AddN:()=>Do,All:()=>"All",Any:()=>"Any",ArgMax:()=>Oo,ArgMin:()=>Fo,Asin:()=>Fa,Asinh:()=>La,Atan:()=>Pa,Atan2:()=>za,Atanh:()=>Ma,AvgPool:()=>Lo,AvgPool3D:()=>Po,AvgPool3DGrad:()=>ju,AvgPoolGrad:()=>Hu,BatchMatMul:()=>Mo,BatchToSpaceND:()=>zo,Bincount:()=>qu,BitwiseAnd:()=>Bo,BroadcastArgs:()=>Ku,BroadcastTo:()=>km,Callback:()=>p_,CallbackList:()=>h0,Cast:()=>Ba,Ceil:()=>Va,ClipByValue:()=>Wa,Complex:()=>Xu,ComplexAbs:()=>Vo,Concat:()=>Wo,Conv2D:()=>Uo,Conv2DBackpropFilter:()=>Yu,Conv2DBackpropInput:()=>Go,Conv3D:()=>Ho,Conv3DBackpropFilterV2:()=>Zu,Conv3DBackpropInputV2:()=>Ju,Cos:()=>"Cos",Cosh:()=>Ua,CropAndResize:()=>ec,Cumprod:()=>Qu,Cumsum:()=>jo,CustomCallback:()=>p0,DataStorage:()=>fd,DenseBincount:()=>tc,DepthToSpace:()=>nc,DepthwiseConv2dNative:()=>qo,DepthwiseConv2dNativeBackpropFilter:()=>rc,DepthwiseConv2dNativeBackpropInput:()=>sc,Diag:()=>ac,Dilation2D:()=>Ko,Dilation2DBackpropFilter:()=>oc,Dilation2DBackpropInput:()=>ic,Draw:()=>vd,ENV:()=>gd,EarlyStopping:()=>f_,Einsum:()=>lc,Elu:()=>"Elu",EluGrad:()=>uc,Environment:()=>$m,Equal:()=>Xo,Erf:()=>"Erf",Exp:()=>"Exp",ExpandDims:()=>Yo,Expm1:()=>Ha,FFT:()=>"FFT",Fill:()=>cc,FlipLeftRight:()=>hc,Floor:()=>ja,FloorDiv:()=>qa,FromPixels:()=>yd,FusedBatchNorm:()=>Zo,FusedConv2D:()=>Al,FusedDepthwiseConv2D:()=>Rl,GPGPUContext:()=>im,GatherNd:()=>dc,GatherV2:()=>Jo,GraphModel:()=>gb,Greater:()=>Qo,GreaterEqual:()=>Ka,History:()=>d0,IFFT:()=>pc,Identity:()=>Xa,Imag:()=>fc,InputSpec:()=>jt,IsFinite:()=>Ya,IsInf:()=>Za,IsNan:()=>Ja,KernelBackend:()=>Gu,LRN:()=>"LRN",LRNGrad:()=>gc,LayerVariable:()=>o0,LayersModel:()=>Ms,LeakyRelu:()=>el,Less:()=>tl,LessEqual:()=>nl,LinSpace:()=>mc,Log:()=>"Log",Log1p:()=>Qa,LogSoftmax:()=>Tm,LogicalAnd:()=>rl,LogicalNot:()=>sl,LogicalOr:()=>al,LogicalXor:()=>Tx,LowerBound:()=>Ex,MathBackendCPU:()=>wb,MathBackendWebGL:()=>Wb,MatrixBandPart:()=>Ax,Max:()=>"Max",MaxPool:()=>il,MaxPool3D:()=>ol,MaxPool3DGrad:()=>yc,MaxPoolGrad:()=>vc,MaxPoolWithArgmax:()=>bc,Maximum:()=>ei,Mean:()=>ll,Min:()=>"Min",Minimum:()=>ti,MirrorPad:()=>ul,Mod:()=>"Mod",MomentumOptimizer:()=>Kp,Multinomial:()=>xc,Multiply:()=>ni,Neg:()=>"Neg",NonMaxSuppressionV3:()=>wc,NonMaxSuppressionV4:()=>_c,NonMaxSuppressionV5:()=>Sc,NotEqual:()=>cl,OP_SCOPE_SUFFIX:()=>kd,OneHot:()=>dl,OnesLike:()=>hl,Optimizer:()=>rs,OptimizerConstructors:()=>wv,Pack:()=>pl,PadV2:()=>fl,Pool:()=>Rx,Pow:()=>"Pow",Prelu:()=>ml,Prod:()=>gl,RMSPropOptimizer:()=>Xp,RNN:()=>Bs,RaggedGather:()=>Ic,RaggedRange:()=>Nc,RaggedTensorToTensor:()=>Cc,Range:()=>$c,Rank:()=>Fm,Real:()=>kc,RealDiv:()=>Ga,Reciprocal:()=>ri,Reduction:()=>Pn,Relu:()=>si,Relu6:()=>ai,Reshape:()=>vl,ResizeBilinear:()=>bl,ResizeBilinearGrad:()=>Ec,ResizeNearestNeighbor:()=>yl,ResizeNearestNeighborGrad:()=>Tc,Reverse:()=>xl,RotateWithOffset:()=>qc,Round:()=>ii,Rsqrt:()=>oi,SGDOptimizer:()=>Oh,ScatterNd:()=>Ac,SearchSorted:()=>Dc,Select:()=>wl,Selu:()=>li,Sequential:()=>Ef,Sigmoid:()=>hi,Sign:()=>ci,Sin:()=>"Sin",Sinh:()=>ui,Slice:()=>_l,Softmax:()=>Nl,Softplus:()=>di,SpaceToBatchND:()=>Sl,SparseFillEmptyRows:()=>Oc,SparseReshape:()=>Fc,SparseSegmentMean:()=>Lc,SparseSegmentSum:()=>Pc,SparseToDense:()=>Mc,SplitV:()=>Il,Sqrt:()=>pi,Square:()=>zc,SquaredDifference:()=>fi,StaticRegexReplace:()=>Cl,Step:()=>vi,StridedSlice:()=>Bc,StringNGrams:()=>Vc,StringSplit:()=>Wc,StringToHashBucketFast:()=>Uc,Sub:()=>"Sub",Sum:()=>"Sum",SymbolicTensor:()=>jr,Tan:()=>"Tan",Tanh:()=>mi,Tensor:()=>Ve,TensorBuffer:()=>Ot,TensorScatterUpdate:()=>Rc,Tile:()=>gi,TopK:()=>Gc,Transform:()=>Hc,Transpose:()=>Js,Unique:()=>jc,Unpack:()=>$l,UnsortedSegmentSum:()=>kl,UpperBound:()=>Dx,Variable:()=>Fl,ZerosLike:()=>Tl,_FusedMatMul:()=>El,abs:()=>Ft,acos:()=>Rd,acosh:()=>Dd,add:()=>ie,addN:()=>jm,all:()=>nh,any:()=>Vl,argMax:()=>zr,argMin:()=>Od,asin:()=>Fd,asinh:()=>Ld,atan:()=>Pd,atan2:()=>Md,atanh:()=>zd,avgPool:()=>Ul,avgPool3d:()=>Ud,backend:()=>Zc,backend_util:()=>z1,basicLSTMCell:()=>qm,batchNorm:()=>Ri,batchNorm2d:()=>jd,batchNorm3d:()=>qd,batchNorm4d:()=>Kd,batchToSpaceND:()=>Gl,bincount:()=>Xd,bitwiseAnd:()=>Xm,booleanMaskAsync:()=>Wg,broadcastArgs:()=>Ym,broadcastTo:()=>oa,broadcast_util:()=>T$,browser:()=>$T,buffer:()=>Fe,callbacks:()=>tD,cast:()=>ue,ceil:()=>Yd,clipByValue:()=>On,clone:()=>Mr,complex:()=>Yr,concat:()=>St,concat1d:()=>Jd,concat2d:()=>Qd,concat3d:()=>ep,concat4d:()=>tp,constraints:()=>Cie,conv1d:()=>ah,conv2d:()=>Zr,conv2dTranspose:()=>ih,conv3d:()=>np,conv3dTranspose:()=>rp,copyRegisteredKernels:()=>sC,cos:()=>Hl,cosh:()=>oh,cosineWindow:()=>Bp,cumprod:()=>jl,cumsum:()=>lh,customGrad:()=>Qr,data:()=>tde,denseBincount:()=>uh,deprecationWarn:()=>EC,depthToSpace:()=>sp,depthwiseConv2d:()=>Oi,deregisterOp:()=>tce,device_util:()=>_C,diag:()=>Qm,dilation2d:()=>ap,disableDeprecationWarnings:()=>TC,dispose:()=>ke,disposeVariables:()=>AC,div:()=>me,divNoNan:()=>ip,dot:()=>op,dropout:()=>zp,einsum:()=>la,elu:()=>Fi,enableDebugMode:()=>kC,enableProdMode:()=>$C,enclosingPowerOfTwo:()=>qg,engine:()=>Lr,ensureShape:()=>tg,env:()=>Z,equal:()=>Un,erf:()=>ch,euclideanNorm:()=>up,exp:()=>Fn,expandDims:()=>Lt,expm1:()=>hp,eye:()=>hh,fft:()=>lu,fill:()=>Di,findBackend:()=>LC,findBackendFactory:()=>PC,floor:()=>zi,floorDiv:()=>eh,forceHalfFloat:()=>E4,fused:()=>Jw,gather:()=>Gr,gatherND:()=>jg,gather_util:()=>ET,getBackend:()=>Zx,getGradient:()=>Em,getKernel:()=>Kc,getKernelsForBackend:()=>bd,gpgpu_util:()=>xve,grad:()=>z$,grads:()=>B$,greater:()=>In,greaterEqual:()=>Jr,ifft:()=>ji,imag:()=>Xl,image:()=>nr,inTopKAsync:()=>Xg,initializers:()=>Rie,input:()=>RR,io:()=>mv,irfft:()=>$h,isFinite:()=>pp,isInf:()=>fp,isNaN:()=>mp,keep:()=>Xt,kernel_impls:()=>v2,layers:()=>ple,leakyRelu:()=>Yl,less:()=>Bi,lessEqual:()=>ks,linalg:()=>Up,linspace:()=>Sw,loadGraphModel:()=>D_,loadGraphModelSync:()=>Che,loadLayersModel:()=>Tf,localResponseNormalization:()=>gp,log:()=>Hn,log1p:()=>Jl,logSigmoid:()=>yp,logSoftmax:()=>ph,logSumExp:()=>Ql,logicalAnd:()=>pr,logicalNot:()=>eu,logicalOr:()=>mh,logicalXor:()=>bp,losses:()=>ov,lowerBound:()=>kw,matMul:()=>Pe,math:()=>CT,max:()=>Gn,maxPool:()=>tu,maxPool3d:()=>wp,maxPoolWithArgmax:()=>lg,maximum:()=>Hr,mean:()=>yt,memory:()=>Td,meshgrid:()=>Ew,metrics:()=>Nue,min:()=>Pi,minimum:()=>Ts,mirrorPad:()=>Sp,mod:()=>Ip,model:()=>T0,models:()=>Uue,moments:()=>da,movingAverage:()=>Ug,mul:()=>U,multiRNNCell:()=>dg,multinomial:()=>pg,neg:()=>ct,nextFrame:()=>_v,norm:()=>Mi,notEqual:()=>pa,oneHot:()=>es,ones:()=>jn,onesLike:()=>qn,op:()=>V,outerProduct:()=>fg,pad:()=>ts,pad1d:()=>mg,pad2d:()=>gg,pad3d:()=>Np,pad4d:()=>vg,pool:()=>Cp,pow:()=>Ur,prelu:()=>su,print:()=>Hm,prod:()=>$p,profile:()=>RC,raggedGather:()=>bg,raggedRange:()=>xg,raggedTensorToTensor:()=>wg,rand:()=>_g,randomGamma:()=>Cg,randomNormal:()=>yh,randomStandardNormal:()=>$g,randomUniform:()=>Es,randomUniformInt:()=>kg,range:()=>Wi,ready:()=>Yx,real:()=>Ui,reciprocal:()=>Tp,registerBackend:()=>zm,registerCallbackConstructor:()=>Foe,registerGradient:()=>Fx,registerKernel:()=>xd,registerOp:()=>ece,regularizers:()=>Hue,relu:()=>_r,relu6:()=>bh,removeBackend:()=>FC,reshape:()=>H,reverse:()=>tr,reverse1d:()=>Eg,reverse2d:()=>Ag,reverse3d:()=>Rg,reverse4d:()=>Dg,rfft:()=>uu,round:()=>xh,rsqrt:()=>wh,scalar:()=>ye,scatterND:()=>Gg,scatter_util:()=>hk,searchSorted:()=>gh,selu:()=>_h,separableConv2d:()=>Sh,sequential:()=>AR,serialization:()=>aT,setBackend:()=>OC,setPlatform:()=>MC,setWebGLContext:()=>cB,setdiff1dAsync:()=>Og,shared:()=>oP,sigmoid:()=>hr,sign:()=>Ap,signal:()=>iv,sin:()=>Ih,sinh:()=>Nh,slice:()=>We,slice1d:()=>au,slice2d:()=>Ch,slice3d:()=>iu,slice4d:()=>Hi,slice_util:()=>g1,softmax:()=>ou,softplus:()=>ha,spaceToBatchND:()=>ru,sparse:()=>lv,sparseToDense:()=>Hg,spectral:()=>av,split:()=>Ln,sqrt:()=>Ut,square:()=>rt,squaredDifference:()=>Th,squeeze:()=>Sr,stack:()=>mn,step:()=>fa,stridedSlice:()=>Dp,string:()=>uv,sub:()=>pe,sum:()=>ge,sumOutType:()=>Id,tan:()=>Op,tanh:()=>Ns,tensor:()=>Vn,tensor1d:()=>Mt,tensor2d:()=>ns,tensor3d:()=>du,tensor4d:()=>Lg,tensor5d:()=>Uw,tensor6d:()=>Gw,tensorScatterUpdate:()=>zg,tensor_util:()=>yC,test_util:()=>X$,tidy:()=>K,tile:()=>er,time:()=>DC,topk:()=>Fp,train:()=>ga,transpose:()=>Ge,truncatedNormal:()=>Eh,unique:()=>Lp,unregisterGradient:()=>rC,unregisterKernel:()=>nC,unsortedSegmentSum:()=>Ah,unstack:()=>Kn,upcastType:()=>zn,upperBound:()=>qw,util:()=>cC,valueAndGrad:()=>V$,valueAndGrads:()=>W$,variable:()=>Bg,variableGrads:()=>Iw,version:()=>v5,version_converter:()=>O_,version_core:()=>xv,version_cpu:()=>OS,version_layers:()=>$f,version_webgl:()=>gI,webgl:()=>R4,webgl_util:()=>_ge,where:()=>Zt,whereAsync:()=>Mp,zeros:()=>Pt,zerosLike:()=>je}),v5,ka=m((()=>{C(),bA(),Zae(),C(),m_(),F_(),UO(),uB(),m5(),uB(),m5(),m_(),F_(),v0e(),v5={"tfjs-core":xv,"tfjs-backend-cpu":OS,"tfjs-backend-webgl":gI,"tfjs-data":Q_,"tfjs-layers":$f,"tfjs-converter":O_,tfjs:g5}})),y5=Te({MobileNet:()=>oN,PoseNet:()=>ux,decodeMultiplePoses:()=>C5,decodeSinglePose:()=>$5,getAdjacentKeyPoints:()=>D0e,getBoundingBox:()=>k5,getBoundingBoxPoints:()=>O0e,load:()=>D5,partChannels:()=>P5,partIds:()=>ud,partNames:()=>Uu,poseChain:()=>lN,scaleAndFlipPoses:()=>sN,scalePose:()=>T5,version:()=>W5});function b5(e,t){function n(){this.constructor=e}aN(e,t),e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function xo(e,t,n,r){return new(n||(n=Promise))(function(s,a){function i(u){try{l(r.next(u))}catch(c){a(c)}}function o(u){try{l(r.throw(u))}catch(c){a(c)}}function l(u){u.done?s(u.value):new n(function(c){c(u.value)}).then(i,o)}l((r=r.apply(e,t||[])).next())})}function wo(e,t){var n,r,s,a,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(l){return function(u){return(function(c){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(s=2&c[0]?r.return:c[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,c[1])).done)return s;switch(r=0,s&&(c=[2&c[0],s.value]),c[0]){case 0:case 1:s=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(s=(s=i.trys).length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){i=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){i.label=c[1];break}if(c[0]===6&&i.label<s[1]){i.label=s[1],s=c;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(c);break}s[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(h){c=[6,h],r=0}finally{n=s=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}})([l,u])}}}function eN(e){return Math.floor(e/2)}function y0e(e,t,n,r,s,a){for(var i=a.shape,o=i[0],l=i[1],u=!0,c=Math.max(n-s,0),h=Math.min(n+s+1,o),d=c;d<h;++d){for(var p=Math.max(r-s,0),f=Math.min(r+s+1,l),g=p;g<f;++g)if(a.get(d,g,e)>t){u=!1;break}if(!u)break}return u}function b0e(e,t,n){for(var r=n.shape,s=r[0],a=r[1],i=r[2],o=new O5(s*a*i,function(d){return d.score}),l=0;l<s;++l)for(var u=0;u<a;++u)for(var c=0;c<i;++c){var h=n.get(l,u,c);h<e||y0e(c,h,l,u,t,n)&&o.enqueue({score:h,part:{heatmapY:l,heatmapX:u,id:c}})}return o}function x5(e,t,n,r){return{y:r.get(e,t,n),x:r.get(e,t,n+gm)}}function w5(e,t,n){var r=x5(e.heatmapY,e.heatmapX,e.id,n),s=r.y,a=r.x;return{x:e.heatmapX*t+a,y:e.heatmapY*t+s}}function _5(e,t,n){return e<t?t:e>n?n:e}function x0e(e,t,n,r){var s=n-e,a=r-t;return s*s+a*a}function S5(e,t){return{x:e.x+t.x,y:e.y+t.y}}function w0e(e,t,n){var r=n.shape[2]/2;return{y:n.get(t.y,t.x,e),x:n.get(t.y,t.x,r+e)}}function tN(e,t,n,r){return{y:_5(Math.round(e.y/t),0,n-1),x:_5(Math.round(e.x/t),0,r-1)}}function I5(e,t,n,r,s,a,i,o){o===void 0&&(o=2);for(var l=r.shape,u=l[0],c=l[1],h=w0e(e,tN(t.position,a,u,c),i),d=S5(t.position,h),p=0;p<o;p++){var f=tN(d,a,u,c),g=x5(f.y,f.x,n,s);d=S5({x:f.x*a,y:f.y*a},{x:g.x,y:g.y})}var v=tN(d,a,u,c),y=r.get(v.y,v.x,n);return{position:d,part:Uu[n],score:y}}function _0e(e,t,n,r,s,a){var i=t.shape[2],o=lx.length,l=new Array(i),u=e.part,c=e.score,h=w5(u,r,n);l[u.id]={score:c,part:Uu[u.id],position:h};for(var d=o-1;d>=0;--d){var p=lx[d],f=cN[d];l[p]&&!l[f]&&(l[f]=I5(d,l[p],f,t,n,r,a))}for(d=0;d<o;++d)p=cN[d],f=lx[d],l[p]&&!l[f]&&(l[f]=I5(d,l[p],f,t,n,r,s));return l}function N5(e,t,n,r){var s=n.x,a=n.y;return e.some(function(i){var o=i.keypoints[r].position;return x0e(a,s,o.y,o.x)<=t})}function S0e(e,t,n){return n.reduce(function(r,s,a){var i=s.position,o=s.score;return N5(e,t,i,a)||(r+=o),r},0)/n.length}function C5(e,t,n,r,s,a,i,o){i===void 0&&(i=.5),o===void 0&&(o=20);for(var l=[],u=b0e(i,M5,e),c=o*o;l.length<a&&!u.empty();){var h=u.dequeue();if(!N5(l,c,w5(h.part,s,t),h.part.id)){var d=_0e(h,e,t,s,n,r),p=S0e(l,c,d);l.push({keypoints:d,score:p})}}return l}function I0e(e,t){return K(function(){var n=me(e,ye(t,"int32"));return pe(e,U(n,ye(t,"int32")))})}function N0e(e){var t=e.shape,n=t[0],r=t[1],s=t[2];return K(function(){var a=H(e,[n*r,s]),i=zr(a,0),o=Lt(me(i,ye(r,"int32")),1),l=Lt(I0e(i,r),1);return St([o,l],1)})}function C0e(e,t){for(var n=t.shape[0],r=new Float32Array(n),s=0;s<n;s++){var a=t.get(s,0),i=t.get(s,1);r[s]=e.get(a,i,s)}return r}function $0e(e,t,n,r){return{y:r.get(e,t,n),x:r.get(e,t,n+gm)}}function k0e(e,t){for(var n=[],r=0;r<gm;r++){var s=$0e(e.get(r,0).valueOf(),e.get(r,1).valueOf(),r,t),a=s.x,i=s.y;n.push(i),n.push(a)}return ns(n,[gm,2])}function T0e(e,t,n){return K(function(){var r=k0e(e,n);return ie(ue(U(e.toTensor(),ye(t,"int32")),"float32"),r)})}function $5(e,t,n){return xo(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d;return wo(this,function(p){switch(p.label){case 0:return r=0,s=N0e(e),[4,Promise.all([e.buffer(),t.buffer(),s.buffer()])];case 1:return a=p.sent(),i=a[0],o=a[1],l=a[2],[4,(u=T0e(l,n,o)).buffer()];case 2:return c=p.sent(),h=Array.from(C0e(i,l)),d=h.map(function(f,g){return r+=f,{position:{y:c.get(g,0),x:c.get(g,1)},part:Uu[g],score:f}}),s.dispose(),u.dispose(),[2,{keypoints:d,score:r/d.length}]}})})}function E0e(e,t){var n="model-stride"+e+".json";return t===4?dN+"float/"+n:dN+"quant"+t+"/"+n}function A0e(e,t,n){var r={1:"100",.75:"075",.5:"050"},s="model-stride"+e+".json";return n===4?hN+"float/"+r[t]+"/"+s:hN+"quant"+n+"/"+r[t]+"/"+s}function R0e(e,t,n){return e<n||t<n}function D0e(e,t){return L5.reduce(function(n,r){var s=r[0],a=r[1];return R0e(e[s].score,e[a].score,t)||n.push([e[s],e[a]]),n},[])}function k5(e){return e.reduce(function(t,n){var r=t.maxX,s=t.maxY,a=t.minX,i=t.minY,o=n.position,l=o.x,u=o.y;return{maxX:Math.max(r,l),maxY:Math.max(s,u),minX:Math.min(a,l),minY:Math.min(i,u)}},{maxX:pN,maxY:pN,minX:fN,minY:fN})}function O0e(e){var t=k5(e),n=t.minX,r=t.minY,s=t.maxX,a=t.maxY;return[{x:n,y:r},{x:s,y:r},{x:s,y:a},{x:n,y:a}]}function F0e(e){return xo(this,void 0,void 0,function(){return wo(this,function(t){return[2,Promise.all(e.map(function(n){return n.buffer()}))]})})}function T5(e,t,n,r,s){return r===void 0&&(r=0),s===void 0&&(s=0),{score:e.score,keypoints:e.keypoints.map(function(a){var i=a.score,o=a.part,l=a.position;return{score:i,part:o,position:{x:l.x*n+s,y:l.y*t+r}}})}}function L0e(e,t,n,r,s){return r===void 0&&(r=0),s===void 0&&(s=0),n===1&&t===1&&r===0&&s===0?e:e.map(function(a){return T5(a,t,n,r,s)})}function P0e(e,t){return{score:e.score,keypoints:e.keypoints.map(function(n){var r=n.score,s=n.part,a=n.position;return{score:r,part:s,position:{x:t-1-a.x,y:a.y}}})}}function M0e(e,t){return t<=0?e:e.map(function(n){return P0e(n,t)})}function ix(e,t){return nN(e,t)?e:Math.floor(e/t)*t+1}function E5(e){E(typeof e=="number"||typeof e=="object",function(){return"Invalid inputResolution "+e+". Should be a number or an object with width and height"}),typeof e=="object"&&(E(typeof e.width=="number",function(){return"inputResolution.width has a value of "+e.width+" which is invalid; it must be a number"}),E(typeof e.height=="number",function(){return"inputResolution.height has a value of "+e.height+" which is invalid; it must be a number"}))}function A5(e,t){return E5(e),typeof e=="object"?[ix(e.height,t),ix(e.width,t)]:[ix(e,t),ix(e,t)]}function z0e(e){E(typeof e=="number",function(){return"outputStride is not a number"}),E(V5.indexOf(e)>=0,function(){return"outputStride of "+e+" is invalid. It must be either 8, 16, or 32"})}function nN(e,t){return(e-1)%t==0}function B0e(e,t){E(typeof e[0]=="number"&&typeof e[1]=="number",function(){return"both resolution values must be a number but had values "+e}),E(nN(e[0],t),function(){return"height of "+e[0]+" is invalid for output stride "+t+"."}),E(nN(e[1],t),function(){return"width of "+e[1]+" is invalid for output stride "+t+"."})}function rN(e){return e instanceof Ve?[e.shape[0],e.shape[1]]:[e.height,e.width]}function V0e(e){return e instanceof Ve?e:gv(e)}function R5(e,t){var n=t[0],r=t[1],s=rN(e),a=s[0],i=s[1],o=r/n,l=[0,0,0,0],u=l[0],c=l[1],h=l[2],d=l[3];return i/a<o?(u=0,c=0,h=Math.round(.5*(o*a-i)),d=Math.round(.5*(o*a-i))):(u=Math.round(.5*(1/o*i-a)),c=Math.round(.5*(1/o*i-a)),h=0,d=0),{resized:K(function(){var p=V0e(e);return p=Np(p,[[u,c],[h,d],[0,0]]),nr.resizeBilinear(p,[n,r])}),padding:{top:u,left:h,right:d,bottom:c}}}function sN(e,t,n,r,s){var a=t[0],i=t[1],o=n[0],l=n[1],u=L0e(e,(a+r.top+r.bottom)/o,(i+r.left+r.right)/l,-r.top,-r.left);return s?M0e(u,i):u}function W0e(e){if((e=e||mN).architecture??(e.architecture="MobileNetV1"),gN.indexOf(e.architecture)<0)throw new Error("Invalid architecture "+e.architecture+". Should be one of "+gN);if(e.inputResolution??(e.inputResolution=257),E5(e.inputResolution),e.outputStride??(e.outputStride=16),vN[e.architecture].indexOf(e.outputStride)<0)throw new Error("Invalid outputStride "+e.outputStride+". Should be one of "+vN[e.architecture]+" for architecture "+e.architecture+".");if(e.multiplier??(e.multiplier=1),yN[e.architecture].indexOf(e.multiplier)<0)throw new Error("Invalid multiplier "+e.multiplier+". Should be one of "+yN[e.architecture]+" for architecture "+e.architecture+".");if(e.quantBytes??(e.quantBytes=4),bN.indexOf(e.quantBytes)<0)throw new Error("Invalid quantBytes "+e.quantBytes+". Should be one of "+bN+" for architecture "+e.architecture+".");if(e.architecture==="MobileNetV1"&&e.outputStride===32&&e.multiplier!==1)throw new Error("When using an output stride of 32, you must select 1 as the multiplier.");return e}function U0e(e){var t=e.maxDetections,n=e.scoreThreshold,r=e.nmsRadius;if(t<=0)throw new Error("Invalid maxDetections "+t+". Should be > 0");if(n<0||n>1)throw new Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(r<=0)throw new Error("Invalid nmsRadius "+r+".")}function G0e(e){return xo(this,void 0,void 0,function(){var t,n,r,s,a,i,o;return wo(this,function(l){switch(l.label){case 0:if(t=e.outputStride,n=e.quantBytes,r=e.multiplier,B1==null)throw new Error(`Cannot find TensorFlow.js. If you are using a <script> tag, please also include @tensorflow/tfjs on the page before using this
|
|
5000
5000
|
model.`);return s=A0e(t,r,n),[4,D_(e.modelUrl||s)];case 1:return a=l.sent(),i=new oN(a,t),o=A5(e.inputResolution,i.outputStride),[2,new ux(i,o)]}})})}function H0e(e){return xo(this,void 0,void 0,function(){var t,n,r,s,a,i;return wo(this,function(o){switch(o.label){case 0:if(t=e.outputStride,n=e.quantBytes,B1==null)throw new Error(`Cannot find TensorFlow.js. If you are using a <script> tag, please also include @tensorflow/tfjs on the page before using this
|
|
5001
|
-
model.`);return r=E0e(t,n),[4,D_(e.modelUrl||r)];case 1:return s=o.sent(),a=new B5(s,t),i=A5(e.inputResolution,a.outputStride),[2,new ux(a,i)]}})})}function D5(e){return e===void 0&&(e=mN),xo(this,void 0,void 0,function(){return wo(this,function(t){return(e=W0e(e)).architecture==="ResNet50"?[2,H0e(e)]:e.architecture==="MobileNetV1"?[2,G0e(e)]:[2,null]})})}var aN,ox,iN,oN,O5,Uu,gm,ud,F5,lN,L5,P5,uN,lx,cN,M5,hN,dN,z5,B5,pN,fN,V5,mN,gN,vN,yN,bN,xN,wN,ux,W5,_N=m((()=>{C(),F_(),aN=function(e,t){return(aN=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)r.hasOwnProperty(s)&&(n[s]=r[s])})(e,t)},ox=function(){return(ox=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var s in t=arguments[n])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)},iN=(function(){function e(t,n){this.model=t,this.outputStride=n;var r=this.model.inputs[0].shape;E(r[1]===-1&&r[2]===-1,function(){return"Input shape ["+r[1]+", "+r[2]+"] must both be equal to or -1"})}return e.prototype.predict=function(t){var n=this;return K(function(){var r=n.preprocessInput(ue(t,"float32")),s=Lt(r,0),a=n.model.predict(s).map(function(o){return Sr(o,[0])}),i=n.nameOutputResults(a);return{heatmapScores:hr(i.heatmap),offsets:i.offsets,displacementFwd:i.displacementFwd,displacementBwd:i.displacementBwd}})},e.prototype.dispose=function(){this.model.dispose()},e})(),oN=(function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return b5(t,e),t.prototype.preprocessInput=function(n){return K(function(){return pe(me(n,127.5),1)})},t.prototype.nameOutputResults=function(n){return{offsets:n[0],heatmap:n[1],displacementFwd:n[2],displacementBwd:n[3]}},t})(iN),O5=(function(){function e(t,n){this.priorityQueue=new Array(t),this.numberOfElements=-1,this.getElementValue=n}return e.prototype.enqueue=function(t){this.priorityQueue[++this.numberOfElements]=t,this.swim(this.numberOfElements)},e.prototype.dequeue=function(){var t=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,t},e.prototype.empty=function(){return this.numberOfElements===-1},e.prototype.size=function(){return this.numberOfElements+1},e.prototype.all=function(){return this.priorityQueue.slice(0,this.numberOfElements+1)},e.prototype.max=function(){return this.priorityQueue[0]},e.prototype.swim=function(t){for(;t>0&&this.less(eN(t),t);)this.exchange(t,eN(t)),t=eN(t)},e.prototype.sink=function(t){for(;2*t<=this.numberOfElements;){var n=2*t;if(n<this.numberOfElements&&this.less(n,n+1)&&n++,!this.less(t,n))break;this.exchange(t,n),t=n}},e.prototype.getValueAt=function(t){return this.getElementValue(this.priorityQueue[t])},e.prototype.less=function(t,n){return this.getValueAt(t)<this.getValueAt(n)},e.prototype.exchange=function(t,n){var r=this.priorityQueue[t];this.priorityQueue[t]=this.priorityQueue[n],this.priorityQueue[n]=r},e})(),Uu=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],gm=Uu.length,ud=Uu.reduce(function(e,t,n){return e[t]=n,e},{}),F5=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]],lN=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]],L5=F5.map(function(e){var t=e[0],n=e[1];return[ud[t],ud[n]]}),P5=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"],uN=lN.map(function(e){var t=e[0],n=e[1];return[ud[t],ud[n]]}),lx=uN.map(function(e){return e[1]}),cN=uN.map(function(e){return e[0]}),M5=1,hN="https://storage.googleapis.com/tfjs-models/savedmodel/posenet/mobilenet/",dN="https://storage.googleapis.com/tfjs-models/savedmodel/posenet/resnet50/",z5=[-123.15,-115.9,-103.06],B5=(function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return b5(t,e),t.prototype.preprocessInput=function(n){return ie(n,z5)},t.prototype.nameOutputResults=function(n){var r=n[0],s=n[1];return{offsets:n[2],heatmap:n[3],displacementFwd:r,displacementBwd:s}},t})(iN),pN=Number.NEGATIVE_INFINITY,fN=Number.POSITIVE_INFINITY,V5=[8,16,32],mN={architecture:"MobileNetV1",outputStride:16,multiplier:.75,inputResolution:257},gN=["MobileNetV1","ResNet50"],vN={MobileNetV1:[8,16,32],ResNet50:[32,16]},yN={MobileNetV1:[.5,.75,1],ResNet50:[1]},bN=[1,2,4],xN={flipHorizontal:!1},wN={flipHorizontal:!1,maxDetections:5,scoreThreshold:.5,nmsRadius:20},ux=(function(){function e(t,n){z0e(t.outputStride),B0e(n,t.outputStride),this.baseModel=t,this.inputResolution=n}return e.prototype.estimateMultiplePoses=function(t,n){return n===void 0&&(n=wN),xo(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d,p,f,g,v,y,b,w,x,_,$,N;return wo(this,function(k){switch(k.label){case 0:return r=ox({},wN,n),U0e(n),s=this.baseModel.outputStride,a=this.inputResolution,i=rN(t),o=i[0],l=i[1],u=R5(t,a),c=u.resized,h=u.padding,d=this.baseModel.predict(c),p=d.heatmapScores,f=d.offsets,g=d.displacementFwd,v=d.displacementBwd,[4,F0e([p,f,g,v])];case 1:return y=k.sent(),b=y[0],w=y[1],x=y[2],_=y[3],[4,C5(b,w,x,_,s,r.maxDetections,r.scoreThreshold,r.nmsRadius)];case 2:return $=k.sent(),N=sN($,[o,l],a,h,r.flipHorizontal),p.dispose(),f.dispose(),g.dispose(),v.dispose(),c.dispose(),[2,N]}})})},e.prototype.estimateSinglePose=function(t,n){return n===void 0&&(n=xN),xo(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d,p,f,g,v,y,b;return wo(this,function(w){switch(w.label){case 0:return r=ox({},xN,n),s=this.baseModel.outputStride,a=this.inputResolution,i=rN(t),o=i[0],l=i[1],u=R5(t,a),c=u.resized,h=u.padding,d=this.baseModel.predict(c),p=d.heatmapScores,f=d.offsets,g=d.displacementFwd,v=d.displacementBwd,[4,$5(p,f,s)];case 1:return y=w.sent(),b=sN([y],[o,l],a,h,r.flipHorizontal),p.dispose(),f.dispose(),g.dispose(),v.dispose(),c.dispose(),[2,b[0]]}})})},e.prototype.estimatePoses=function(t,n){return xo(this,void 0,void 0,function(){return wo(this,function(r){switch(r.label){case 0:return n.decodingMethod!=="single-person"?[3,2]:[4,this.estimateSinglePose(t,n)];case 1:return[2,[r.sent()]];case 2:return[2,this.estimateMultiplePoses(t,n)]}})})},e.prototype.dispose=function(){this.baseModel.dispose()},e})(),W5="2.2.2"}));ka(),_N();var U5=Te({BACKGROUND_NOISE_TAG:()=>px,Dataset:()=>CN,UNKNOWN_TAG:()=>l_e,create:()=>eK,deleteSavedTransferModel:()=>d_e,getMaxIntensityFrameIndex:()=>J5,listSavedTransferModels:()=>h_e,spectrogram2IntensityCurve:()=>Z5,utils:()=>p_e,version:()=>$N});C(),d$(),UO(),m_();var G5=function(e,t){return(G5=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)r.hasOwnProperty(s)&&(n[s]=r[s])})(e,t)};function j0e(e,t){function n(){this.constructor=e}G5(e,t),e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var SN=function(){return(SN=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var s in t=arguments[n])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function wt(e,t,n,r){return new(n||(n=Promise))(function(s,a){function i(u){try{l(r.next(u))}catch(c){a(c)}}function o(u){try{l(r.throw(u))}catch(c){a(c)}}function l(u){var c;u.done?s(u.value):(c=u.value,c instanceof n?c:new n(function(h){h(c)})).then(i,o)}l((r=r.apply(e,t||[])).next())})}function _t(e,t){var n,r,s,a,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(l){return function(u){return(function(c){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(s=2&c[0]?r.return:c[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,c[1])).done)return s;switch(r=0,s&&(c=[2&c[0],s.value]),c[0]){case 0:case 1:s=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(s=(s=i.trys).length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){i=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){i.label=c[1];break}if(c[0]===6&&i.label<s[1]){i.label=s[1],s=c;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(c);break}s[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(h){c=[6,h],r=0}finally{n=s=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}})([l,u])}}}function ir(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function IN(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r,s,a=n.call(e),i=[];try{for(;(t===void 0||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(o){s={error:o}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(s)throw s.error}}return i}function vm(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(IN(arguments[t]));return e}function q0e(e){return wt(this,void 0,void 0,function(){var t,n,r,s,a,i,o;return _t(this,function(l){switch(l.label){case 0:return t="http://",n="https://",r="file://",e.indexOf(t)!==0&&e.indexOf(n)!==0?[3,3]:[4,fetch(e)];case 1:return[4,l.sent().json()];case 2:return[2,l.sent()];case 3:return e.indexOf(r)!==0?[3,5]:(s=Bl(),a=h$(s.readFile),o=(i=JSON).parse,[4,a(e.slice(r.length),{encoding:"utf-8"})]);case 4:return[2,o.apply(i,[l.sent()])];case 5:throw new Error("Unsupported URL scheme in metadata URL: "+e+". Supported schemes are: http://, https://, and (node.js-only) file://")}})})}var cx=null;function cd(e){return cx??=Zc().epsilon(),K(function(){var t=da(e),n=t.mean,r=t.variance;return me(pe(e,n),ie(Ut(r),cx))})}function H5(e){if(e.length<2)throw new Error("Cannot normalize a Float32Array with fewer than 2 elements.");return cx??=Zc().epsilon(),K(function(){var t=da(Mt(e)),n=t.mean,r=t.variance,s=n.arraySync(),a=Math.sqrt(r.arraySync()),i=Array.from(e).map(function(o){return(o-s)/(a+cx)});return new Float32Array(i)})}function K0e(){return window.AudioContext||window.webkitAudioContext}function X0e(e){return wt(this,void 0,void 0,function(){return _t(this,function(t){return[2,navigator.mediaDevices.getUserMedia({audio:e==null||e,video:!1})]})})}function Y0e(e,t){var n=new(window.AudioContext||window.webkitAudioContext),r=n.createBuffer(1,e.data.length,e.sampleRateHz);r.getChannelData(0).set(e.data);var s=n.createBufferSource();s.buffer=r,s.connect(n.destination),s.start(),s.onended=function(){t?.()}}var NN=(function(){function e(t){var n=this;if(t==null)throw new Error("Required configuration object is missing for BrowserFftFeatureExtractor constructor");if(t.spectrogramCallback==null)throw new Error("spectrogramCallback cannot be null or undefined");if(!(t.numFramesPerSpectrogram>0))throw new Error("Invalid value in numFramesPerSpectrogram: "+t.numFramesPerSpectrogram);if(t.suppressionTimeMillis<0)throw new Error("Expected suppressionTimeMillis to be >= 0, but got "+t.suppressionTimeMillis);if(this.suppressionTimeMillis=t.suppressionTimeMillis,this.spectrogramCallback=t.spectrogramCallback,this.numFrames=t.numFramesPerSpectrogram,this.sampleRateHz=t.sampleRateHz||44100,this.fftSize=t.fftSize||1024,this.frameDurationMillis=this.fftSize/this.sampleRateHz*1e3,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.overlapFactor=t.overlapFactor,this.includeRawAudio=t.includeRawAudio,E(this.overlapFactor>=0&&this.overlapFactor<1,function(){return"Expected overlapFactor to be >= 0 and < 1, but got "+n.overlapFactor}),this.columnTruncateLength>this.fftSize)throw new Error("columnTruncateLength "+this.columnTruncateLength+" exceeds fftSize ("+this.fftSize+").");this.audioContextConstructor=K0e()}return e.prototype.start=function(t){return wt(this,void 0,void 0,function(){var n,r,s;return _t(this,function(a){switch(a.label){case 0:if(this.frameIntervalTask!=null)throw new Error("Cannot start already-started BrowserFftFeatureExtractor");return n=this,[4,X0e(t)];case 1:return n.stream=a.sent(),this.audioContext=new this.audioContextConstructor({sampleRate:this.sampleRateHz}),r=this.audioContext.createMediaStreamSource(this.stream),this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2*this.fftSize,this.analyser.smoothingTimeConstant=0,r.connect(this.analyser),this.freqDataQueue=[],this.freqData=new Float32Array(this.fftSize),this.includeRawAudio&&(this.timeDataQueue=[],this.timeData=new Float32Array(this.fftSize)),s=Math.max(1,Math.round(this.numFrames*(1-this.overlapFactor))),this.tracker=new Z0e(s,Math.round(this.suppressionTimeMillis/this.frameDurationMillis)),this.frameIntervalTask=setInterval(this.onAudioFrame.bind(this),this.fftSize/this.sampleRateHz*1e3),[2]}})})},e.prototype.onAudioFrame=function(){return wt(this,void 0,void 0,function(){var t,n,r,s;return _t(this,function(a){switch(a.label){case 0:return this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0?[2]:(this.freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength)),this.includeRawAudio&&(this.analyser.getFloatTimeDomainData(this.timeData),this.timeDataQueue.push(this.timeData.slice())),this.freqDataQueue.length>this.numFrames&&this.freqDataQueue.shift(),this.tracker.tick()?(t=j5(this.freqDataQueue),n=q5(t,[1,this.numFrames,this.columnTruncateLength,1]),r=void 0,this.includeRawAudio&&(s=j5(this.timeDataQueue),r=q5(s,[1,this.numFrames*this.fftSize])),[4,this.spectrogramCallback(n,r)]):[3,2]);case 1:a.sent()&&this.tracker.suppress(),ke([n,r]),a.label=2;case 2:return[2]}})})},e.prototype.stop=function(){return wt(this,void 0,void 0,function(){return _t(this,function(t){if(this.frameIntervalTask==null)throw new Error("Cannot stop because there is no ongoing streaming activity.");return clearInterval(this.frameIntervalTask),this.frameIntervalTask=null,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop(),[2]})})},e.prototype.setConfig=function(t){throw new Error("setConfig() is not implemented for BrowserFftFeatureExtractor.")},e.prototype.getFeatures=function(){throw new Error("getFeatures() is not implemented for BrowserFftFeatureExtractor. Use the spectrogramCallback field of the constructor config instead.")},e})();function j5(e){var t=e[0].length,n=new Float32Array(e.length*t);return e.forEach(function(r,s){return n.set(r,s*t)}),n}function q5(e,t){var n=new Float32Array(te(t));return n.set(e,n.length-e.length),Vn(n,t)}var Z0e=(function(){function e(t,n){var r=this;this.period=t,this.suppressionTime=n??0,this.counter=0,E(this.period>0,function(){return"Expected period to be positive, but got "+r.period})}return e.prototype.tick=function(){return this.counter++,this.counter%this.period==0&&(this.suppressionOnset==null||this.counter-this.suppressionOnset>this.suppressionTime)},e.prototype.suppress=function(){this.suppressionOnset=this.counter},e})();function hx(e){var t=0;e.forEach(function(s){t+=s.byteLength});var n=new Uint8Array(t),r=0;return e.forEach(function(s){n.set(new Uint8Array(s),r),r+=s.byteLength}),n.buffer}function K5(e){var t=0;e.forEach(function(s){return t+=s.length});var n=new Float32Array(t),r=0;return e.forEach(function(s){n.set(s,r),r+=s.length}),n}function X5(e){if(e==null)throw new Error("Received null or undefind string");for(var t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length),r=0;r<t.length;++r)n[r]=t.charCodeAt(r);return n.buffer}function Y5(e){if(e==null)throw new Error("Received null or undefind buffer");var t=new Uint8Array(e);return decodeURIComponent(escape(String.fromCharCode.apply(String,vm(t))))}function J0e(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}function Q0e(e,t){return Math.floor((t-e)*Math.random())+e}function e_e(e,t,n){return E(n>0&&n<1,function(){return"validationSplit is expected to be >0 and <1, but got "+n}),K(function(){for(var r=zr(t,-1).dataSync(),s=[],a=0;a<r.length;++a){var i=r[a];s[i]??(s[i]=[]),s[i].push(a)}var o=s.length,l=[],u=[];for(s.map(function(p){return $o(p)}),a=0;a<o;++a)for(var c=s[a],h=Math.round(c.length*(1-n)),d=0;d<c.length;++d)d<h?l.push(c[d]):u.push(c[d]);return{trainXs:Gr(e,l),trainYs:Gr(t,l),valXs:Gr(e,u),valYs:Gr(t,u)}})}function t_e(e,t,n){var r,s,a,i,o,l,u,c;E(n>0&&n<1,function(){return"validationSplit is expected to be >0 and <1, but got "+n});for(var h=!Array.isArray(e[0]),d=t,p=[],f=0;f<d.length;++f){var g=d[f];p[g]??(p[g]=[]),p[g].push(f)}var v=p.length,y=[],b=[];for(p.map(function(J){return $o(J)}),f=0;f<v;++f)for(var w=p[f],x=Math.round(w.length*(1-n)),_=0;_<w.length;++_)_<x?y.push(w[_]):b.push(w[_]);if(h){var $=[],N=[],k=[],A=[];try{for(var O=ir(y),R=O.next();!R.done;R=O.next()){var T=R.value;$.push(e[T]),N.push(t[T])}}catch(J){r={error:J}}finally{try{R&&!R.done&&(s=O.return)&&s.call(O)}finally{if(r)throw r.error}}try{for(var S=ir(b),F=S.next();!F.done;F=S.next())T=F.value,k.push(e[T]),A.push(t[T])}catch(J){a={error:J}}finally{try{F&&!F.done&&(i=S.return)&&i.call(S)}finally{if(a)throw a.error}}return{trainXs:$,trainYs:N,valXs:k,valYs:A}}$=[],N=[],k=[],A=[];try{for(var M=ir(y),L=M.next();!L.done;L=M.next())T=L.value,$.push(e[T]),N.push(t[T])}catch(J){o={error:J}}finally{try{L&&!L.done&&(l=M.return)&&l.call(M)}finally{if(o)throw o.error}}try{for(var z=ir(b),q=z.next();!q.done;q=z.next())T=q.value,k.push(e[T]),A.push(t[T])}catch(J){u={error:J}}finally{try{q&&!q.done&&(c=z.return)&&c.call(z)}finally{if(u)throw u.error}}return{trainXs:$,trainYs:N,valXs:k,valYs:A}}var dx="TFJSSCDS",n_e=1,px="_background_noise_",CN=(function(){function e(t){if(this.examples={},this.label2Ids={},t!=null)for(var n=i_e(t),r=0,s=0;s<n.manifest.length;++s){var a=n.manifest[s],i=a.spectrogramNumFrames*a.spectrogramFrameSize;a.rawAudioNumSamples!=null&&(i+=a.rawAudioNumSamples),i*=4,this.addExample(s_e({spec:a,data:n.data.slice(r,r+i)})),r+=i}}return e.prototype.addExample=function(t){E(t!=null,function(){return"Got null or undefined example"}),E(t.label!=null&&t.label.length>0,function(){return"Expected label to be a non-empty string, but got "+JSON.stringify(t.label)});var n=J0e();return this.examples[n]=t,t.label in this.label2Ids||(this.label2Ids[t.label]=[]),this.label2Ids[t.label].push(n),n},e.prototype.merge=function(t){var n,r,s,a;E(t!==this,function(){return"Cannot merge a dataset into itself"});var i=t.getVocabulary();try{for(var o=ir(i),l=o.next();!l.done;l=o.next()){var u=l.value,c=t.getExamples(u);try{for(var h=(s=void 0,ir(c)),d=h.next();!d.done;d=h.next()){var p=d.value;this.addExample(p.example)}}catch(f){s={error:f}}finally{try{d&&!d.done&&(a=h.return)&&a.call(h)}finally{if(s)throw s.error}}}}catch(f){n={error:f}}finally{try{l&&!l.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}},e.prototype.getExampleCounts=function(){var t={};for(var n in this.examples){var r=this.examples[n];r.label in t||(t[r.label]=0),t[r.label]++}return t},e.prototype.getExamples=function(t){var n=this;E(t!=null,function(){return"Expected label to be a string, but got "+JSON.stringify(t)}),E(t in this.label2Ids,function(){return'No example of label "'+t+'" exists in dataset'});var r=[];return this.label2Ids[t].forEach(function(s){r.push({uid:s,example:n.examples[s]})}),r},e.prototype.getData=function(t,n){var r=this;E(this.size()>0,function(){return"Cannot get spectrograms as tensors because the dataset is empty"});var s=this.getVocabulary();t!=null?E(s.indexOf(t)!==-1,function(){return"Label "+t+" is not in the vocabulary ("+JSON.stringify(s)+")"}):E(s.length>1,function(){return"One-hot encoding of labels requires the vocabulary to have at least two words, but it has only "+s.length+" word."}),n??={};var a,i,o=this.getSortedUniqueNumFrames();o.length===1?(a=n.numFrames==null?o[0]:n.numFrames,i=n.hopFrames==null?1:n.hopFrames):(a=n.numFrames,E(a!=null&&Number.isInteger(a)&&a>0,function(){return"There are "+o.length+" unique lengths among the "+r.size()+" examples of this Dataset, hence numFrames is required. But it is not provided."}),E(a<=o[0],function(){return"numFrames ("+a+") exceeds the minimum numFrames ("+o[0]+") among the examples of the Dataset."}),i=n.hopFrames,E(i!=null&&Number.isInteger(i)&&i>0,function(){return"There are "+o.length+" unique lengths among the "+r.size()+" examples of this Dataset, hence hopFrames is required. But it is not provided."}));var l=n.normalize==null||n.normalize;return K(function(){for(var u,c,h,d=[],p=[],f=[],g=0;g<s.length;++g){var v=s[g];if(t==null||v===t){var y=r.label2Ids[v],b=function(ne){var oe,ce,ve=r.examples[ne].spectrogram,_e=ve.frameSize;h==null?h=_e:E(_e===h,function(){return"Mismatch in frameSize ("+_e+" vs "+h+")"});var $e=ve.data.length/_e,Re=null;v!=="_background_noise_"&&(Re=ve.keyFrameIndex==null?J5(ve).dataSync()[0]:ve.keyFrameIndex);var Oe=du(ve.data,[$e,_e,1]),He=o_e($e,Re,a,i),Xe=function(Qe){var lt=K(function(){var at=We(Oe,[Qe[0],0,0],[Qe[1]-Qe[0],-1,-1]);return l?cd(at):at});n.getDataset?p.push(lt.dataSync()):d.push(lt),t??f.push(g)};try{for(var dt=(oe=void 0,ir(He)),nt=dt.next();!nt.done;nt=dt.next())Xe(nt.value)}catch(Qe){oe={error:Qe}}finally{try{nt&&!nt.done&&(ce=dt.return)&&ce.call(dt)}finally{if(oe)throw oe.error}}ke(Oe)};try{for(var w=(u=void 0,ir(y)),x=w.next();!x.done;x=w.next())b(x.value)}catch(ne){u={error:ne}}finally{try{x&&!x.done&&(c=w.return)&&c.call(w)}finally{if(u)throw u.error}}}}n.augmentByMixingNoiseRatio!=null&&r.augmentByMixingNoise(n.getDataset?p:d,f,n.augmentByMixingNoiseRatio);var _=n.shuffle==null||n.shuffle;if(n.getDataset){var $=n.datasetBatchSize==null?32:n.datasetBatchSize,N=n.datasetValidationSplit==null?.15:n.datasetValidationSplit;E(N>0&&N<1,function(){return"Invalid dataset validation split: "+N});var k=p.map(function(ne,oe){return[ne,f[oe]]});$o(k),p=k.map(function(ne){return ne[0]});var A=k.map(function(ne){return ne[1]}),O=t_e(p,A,N),R=O.trainXs,T=O.trainYs,S=O.valXs,F=O.valYs,M=Gf(R).map(function(ne){return du(ne,[a,h,1])}),L=Gf(T).map(function(ne){return Sr(es([ne],s.length),[0])}),z=U_({xs:M,ys:L});_&&(z=z.shuffle(p.length)),z=z.batch($).prefetch(4);var q=Gf(S).map(function(ne){return du(ne,[a,h,1])}),J=Gf(F).map(function(ne){return Sr(es([ne],s.length),[0])}),re=U_({xs:q,ys:J});return[z,re=re.batch($).prefetch(4)]}if(_){var Y=[];d.forEach(function(ne,oe){Y.push({x:ne,y:f[oe]})}),$o(Y),d=Y.map(function(ne){return ne.x}),f=Y.map(function(ne){return ne.y})}var ae=t==null?ue(es(Mt(f,"int32"),s.length),"float32"):void 0;return{xs:mn(d),ys:ae}})},e.prototype.augmentByMixingNoise=function(t,n,r){var s,a;if(t==null||t.length===0)throw new Error("Cannot perform augmentation because data is null or empty");for(var i=t[0]instanceof Float32Array,o=this.getVocabulary(),l=[],u=[],c=0;c<n.length;++c)o[n[c]]==="_background_noise_"?l.push(c):u.push(c);if(l.length===0)throw new Error("Cannot perform augmentation by mixing with noise when there is no example with label "+px);var h=[],d=[],p=function(v){var y=l[Q0e(0,l.length)],b=i?Mt(t[v]):t[v],w=i?Mt(t[y]):t[y],x=K(function(){return cd(ie(b,U(w,r)))});i?h.push(x.dataSync()):h.push(x),d.push(n[v])};try{for(var f=ir(u),g=f.next();!g.done;g=f.next())p(g.value)}catch(v){s={error:v}}finally{try{g&&!g.done&&(a=f.return)&&a.call(f)}finally{if(s)throw s.error}}console.log("Data augmentation: mixing noise: added "+h.length+" examples"),h.forEach(function(v){return t.push(v)}),n.push.apply(n,vm(d))},e.prototype.getSortedUniqueNumFrames=function(){for(var t,n,r=new Set,s=this.getVocabulary(),a=0;a<s.length;++a){var i=s[a],o=this.label2Ids[i];try{for(var l=(t=void 0,ir(o)),u=l.next();!u.done;u=l.next()){var c=u.value,h=this.examples[c].spectrogram,d=h.data.length/h.frameSize;r.add(d)}}catch(f){t={error:f}}finally{try{u&&!u.done&&(n=l.return)&&n.call(l)}finally{if(t)throw t.error}}}var p=vm(r);return p.sort(),p},e.prototype.removeExample=function(t){if(!(t in this.examples))throw new Error("Nonexistent example UID: "+t);var n=this.examples[t].label;delete this.examples[t];var r=this.label2Ids[n].indexOf(t);this.label2Ids[n].splice(r,1),this.label2Ids[n].length===0&&delete this.label2Ids[n]},e.prototype.setExampleKeyFrameIndex=function(t,n){if(!(t in this.examples))throw new Error("Nonexistent example UID: "+t);var r=this.examples[t].spectrogram,s=r.data.length/r.frameSize;E(n>=0&&n<s&&Number.isInteger(n),function(){return"Invalid keyFrameIndex: "+n+". Must be >= 0, < "+s+", and an integer."}),r.keyFrameIndex=n},e.prototype.size=function(){return Object.keys(this.examples).length},e.prototype.durationMillis=function(){var t=0;for(var n in this.examples){var r=this.examples[n].spectrogram,s=23.22|r.frameDurationMillis;t+=r.data.length/r.frameSize*s}return t},e.prototype.empty=function(){return this.size()===0},e.prototype.clear=function(){this.examples={}},e.prototype.getVocabulary=function(){var t=new Set;for(var n in this.examples){var r=this.examples[n];t.add(r.label)}var s=vm(t);return s.sort(),s},e.prototype.serialize=function(t){var n,r,s,a,i=this.getVocabulary();E(!this.empty(),function(){return"Cannot serialize empty Dataset"}),t!=null&&(Array.isArray(t)||(t=[t]),t.forEach(function(y){if(i.indexOf(y)===-1)throw new Error('Word label "'+y+'" does not exist in the vocabulary of this dataset. The vocabulary is: '+JSON.stringify(i)+".")}));var o=[],l=[];try{for(var u=ir(i),c=u.next();!c.done;c=u.next()){var h=c.value;if(t==null||t.indexOf(h)!==-1){var d=this.label2Ids[h];try{for(var p=(s=void 0,ir(d)),f=p.next();!f.done;f=p.next()){var g=f.value,v=r_e(this.examples[g]);o.push(v.spec),l.push(v.data)}}catch(y){s={error:y}}finally{try{f&&!f.done&&(a=p.return)&&a.call(p)}finally{if(s)throw s.error}}}}}catch(y){n={error:y}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}return a_e({manifest:o,data:hx(l)})},e})();function r_e(e){var t=e.rawAudio!=null,n={label:e.label,spectrogramNumFrames:e.spectrogram.data.length/e.spectrogram.frameSize,spectrogramFrameSize:e.spectrogram.frameSize};e.spectrogram.keyFrameIndex!=null&&(n.spectrogramKeyFrameIndex=e.spectrogram.keyFrameIndex);var r=e.spectrogram.data.buffer.slice(0);return t&&(n.rawAudioNumSamples=e.rawAudio.data.length,n.rawAudioSampleRateHz=e.rawAudio.sampleRateHz,r=hx([r,e.rawAudio.data.buffer])),{spec:n,data:r}}function s_e(e){var t={frameSize:e.spec.spectrogramFrameSize,data:new Float32Array(e.data.slice(0,4*e.spec.spectrogramFrameSize*e.spec.spectrogramNumFrames))};e.spec.spectrogramKeyFrameIndex!=null&&(t.keyFrameIndex=e.spec.spectrogramKeyFrameIndex);var n={label:e.spec.label,spectrogram:t};return e.spec.rawAudioNumSamples!=null&&(n.rawAudio={sampleRateHz:e.spec.rawAudioSampleRateHz,data:new Float32Array(e.data.slice(4*e.spec.spectrogramFrameSize*e.spec.spectrogramNumFrames))}),n}function a_e(e){var t=X5(JSON.stringify(e.manifest)),n=X5(dx),r=new Uint32Array([n_e]),s=new Uint32Array([t.byteLength]);return hx([hx([n,r.buffer,s.buffer]),t,e.data])}function i_e(e){E(e!=null,function(){return"Received null or undefined buffer"});var t=0,n=Y5(e.slice(t,dx.length));E(n===dx,function(){return"Deserialization error: Invalid descriptor"}),t+=dx.length,t+=4;var r=new Uint32Array(e,t,1),s=t+=4;t=s+r[0];var a=Y5(e.slice(s,t));return{manifest:JSON.parse(a),data:e.slice(t)}}function o_e(e,t,n,r){if(E(Number.isInteger(e)&&e>0,function(){return"snippetLength must be a positive integer, but got "+e}),t!=null&&E(Number.isInteger(t)&&t>=0,function(){return"focusIndex must be a non-negative integer, but got "+t}),E(Number.isInteger(n)&&n>0,function(){return"windowLength must be a positive integer, but got "+n}),E(Number.isInteger(r)&&r>0,function(){return"windowHop must be a positive integer, but got "+r}),E(n<=e,function(){return"windowLength ("+n+") exceeds snippetLength ("+e+")"}),E(t<e,function(){return"focusIndex ("+t+") equals or exceeds snippetLength ("+e+")"}),n===e)return[[0,e]];var s=[];if(t==null){for(var a=0;a+n<=e;)s.push([a,a+n]),a+=r;return s}var i=t-Math.floor(n/2);for(i<0?i=0:i+n>e&&(i=e-n);!(i-r<0||t>=i-r+n);)i-=r;for(;i+n<=e&&!(t<i);)s.push([i,i+n]),i+=r;return s}function Z5(e){return K(function(){var t=e.data.length/e.frameSize,n=ns(e.data,[t,e.frameSize]);return yt(n,-1)})}function J5(e){return K(function(){return zr(Z5(e))})}var $N="0.5.4",l_e="_unknown_",ym="tfjs-speech-commands-saved-model-metadata",kN="indexeddb://tfjs-speech-commands-model/",bm={localStorage:typeof window>"u"?null:window.localStorage};function u_e(e){return e.split(".").slice(0,2).join(".")}var fx=.25,Q5=(function(){function e(t,n,r){this.MODEL_URL_PREFIX="https://storage.googleapis.com/tfjs-models/tfjs/speech-commands/v"+u_e($N)+"/browser_fft",this.SAMPLE_RATE_HZ=44100,this.FFT_SIZE=1024,this.DEFAULT_SUPPRESSION_TIME_MILLIS=0,this.streaming=!1,this.transferRecognizers={},E(n==null&&r==null||n!=null&&r!=null,function(){return"modelURL and metadataURL must be both provided or both not provided."}),n==null?(t==null?t=e.DEFAULT_VOCABULARY_NAME:E(e.VALID_VOCABULARY_NAMES.indexOf(t)!==-1,function(){return"Invalid vocabulary name: '"+t+"'"}),this.vocabulary=t,this.modelArtifactsOrURL=this.MODEL_URL_PREFIX+"/"+this.vocabulary+"/model.json",this.metadataOrURL=this.MODEL_URL_PREFIX+"/"+this.vocabulary+"/metadata.json"):(E(t==null,function(){return"vocabulary name must be null or undefined when modelURL is provided"}),this.modelArtifactsOrURL=n,this.metadataOrURL=r),this.parameters={sampleRateHz:this.SAMPLE_RATE_HZ,fftSize:this.FFT_SIZE}}return e.prototype.listen=function(t,n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l=this;return _t(this,function(u){switch(u.label){case 0:if(this.streaming)throw new Error("Cannot start streaming again when streaming is ongoing.");return[4,this.ensureModelLoaded()];case 1:if(u.sent(),n??={},r=n.probabilityThreshold==null?0:n.probabilityThreshold,n.includeEmbedding&&(r=0),E(r>=0&&r<=1,function(){return"Invalid probabilityThreshold value: "+r}),s=n.invokeCallbackOnNoiseAndUnknown!=null&&n.invokeCallbackOnNoiseAndUnknown,n.includeEmbedding&&(s=!0),n.suppressionTimeMillis<0)throw new Error("suppressionTimeMillis is expected to be >= 0, but got "+n.suppressionTimeMillis);return a=n.overlapFactor==null?.5:n.overlapFactor,E(a>=0&&a<1,function(){return"Expected overlapFactor to be >= 0 and < 1, but got "+a}),i=function(c,h){return wt(l,void 0,void 0,function(){var d,p,f,g,v,y,b,w,x,_,$;return _t(this,function(N){switch(N.label){case 0:return d=cd(c),n.includeEmbedding?[4,this.ensureModelWithEmbeddingOutputCreated()]:[3,2];case 1:return N.sent(),$=IN(this.modelWithEmbeddingOutput.predict(d),2),p=$[0],f=$[1],[3,3];case 2:p=this.model.predict(d),N.label=3;case 3:return[4,p.data()];case 4:return g=N.sent(),[4,(v=p.argMax(-1)).data()];case 5:return y=N.sent()[0],b=Math.max.apply(Math,vm(g)),ke([p,v,d]),b<r?[2,!1]:[3,6];case 6:return w=void 0,n.includeSpectrogram?(x={},[4,c.data()]):[3,8];case 7:x.data=N.sent(),x.frameSize=this.nonBatchInputShape[1],w=x,N.label=8;case 8:return _=!0,s||this.words[y]!=="_background_noise_"&&this.words[y]!=="_unknown_"||(_=!1),_&&t({scores:g,spectrogram:w,embedding:f}),[2,_]}})})},o=n.suppressionTimeMillis==null?this.DEFAULT_SUPPRESSION_TIME_MILLIS:n.suppressionTimeMillis,this.audioDataExtractor=new NN({sampleRateHz:this.parameters.sampleRateHz,numFramesPerSpectrogram:this.nonBatchInputShape[0],columnTruncateLength:this.nonBatchInputShape[1],suppressionTimeMillis:o,spectrogramCallback:i,overlapFactor:a}),[4,this.audioDataExtractor.start(n.audioTrackConstraints)];case 2:return u.sent(),this.streaming=!0,[2]}})})},e.prototype.ensureModelLoaded=function(){return wt(this,void 0,void 0,function(){var t,n,r,s,a=this;return _t(this,function(i){switch(i.label){case 0:return this.model!=null?[2]:[4,this.ensureMetadataLoaded()];case 1:return i.sent(),typeof this.modelArtifactsOrURL!="string"?[3,3]:[4,Tf(this.modelArtifactsOrURL)];case 2:return t=i.sent(),[3,5];case 3:return[4,Tf(ST(this.modelArtifactsOrURL.modelTopology,this.modelArtifactsOrURL.weightSpecs,this.modelArtifactsOrURL.weightData))];case 4:t=i.sent(),i.label=5;case 5:if(t.inputs.length!==1)throw new Error("Expected model to have 1 input, but got a model with "+t.inputs.length+" inputs");if(t.inputs[0].shape.length!==4)throw new Error("Expected model to have an input shape of rank 4, but got an input shape of rank "+t.inputs[0].shape.length);if(t.inputs[0].shape[3]!==1)throw new Error("Expected model to have an input shape with 1 as the last dimension, but got input shape"+JSON.stringify(t.inputs[0].shape[3])+"}");if((n=t.outputShape).length!==2)throw new Error("Expected loaded model to have an output shape of rank 2,but received shape "+JSON.stringify(n));if(n[1]!==this.words.length)throw new Error("Mismatch between the last dimension of model's output shape ("+n[1]+") and number of words ("+this.words.length+").");return this.model=t,this.freezeModel(),this.nonBatchInputShape=t.inputs[0].shape.slice(1),this.elementsPerExample=1,t.inputs[0].shape.slice(1).forEach(function(o){return a.elementsPerExample*=o}),this.warmUpModel(),r=this.parameters.fftSize/this.parameters.sampleRateHz*1e3,s=t.inputs[0].shape[1],this.parameters.spectrogramDurationMillis=s*r,[2]}})})},e.prototype.ensureModelWithEmbeddingOutputCreated=function(){return wt(this,void 0,void 0,function(){var t,n;return _t(this,function(r){switch(r.label){case 0:return this.modelWithEmbeddingOutput!=null?[2]:[4,this.ensureModelLoaded()];case 1:for(r.sent(),n=this.model.layers.length-2;n>=0;--n)if(this.model.layers[n].getClassName()==="Dense"){t=this.model.layers[n];break}if(t==null)throw new Error("Failed to find second last dense layer in the original model.");return this.modelWithEmbeddingOutput=T0({inputs:this.model.inputs,outputs:[this.model.outputs[0],t.output]}),[2]}})})},e.prototype.warmUpModel=function(){var t=this;K(function(){for(var n=Pt([1].concat(t.nonBatchInputShape)),r=0;r<3;++r)t.model.predict(n)})},e.prototype.ensureMetadataLoaded=function(){return wt(this,void 0,void 0,function(){var t,n,r;return _t(this,function(s){switch(s.label){case 0:return this.words!=null?[2]:typeof this.metadataOrURL!="string"?[3,2]:[4,q0e(this.metadataOrURL)];case 1:return n=s.sent(),[3,3];case 2:n=this.metadataOrURL,s.label=3;case 3:if((t=n).wordLabels==null){if((r=t.words)==null)throw new Error('Cannot find field "words" or "wordLabels" in metadata JSON file');this.words=r}else this.words=t.wordLabels;return[2]}})})},e.prototype.stopListening=function(){return wt(this,void 0,void 0,function(){return _t(this,function(t){switch(t.label){case 0:if(!this.streaming)throw new Error("Cannot stop streaming when streaming is not ongoing.");return[4,this.audioDataExtractor.stop()];case 1:return t.sent(),this.streaming=!1,[2]}})})},e.prototype.isListening=function(){return this.streaming},e.prototype.wordLabels=function(){return this.words},e.prototype.params=function(){return this.parameters},e.prototype.modelInputShape=function(){if(this.model==null)throw new Error("Model has not been loaded yet. Load model by calling ensureModelLoaded(), recognize(), or listen().");return this.model.inputs[0].shape},e.prototype.recognize=function(t,n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d,p,f,g;return _t(this,function(v){switch(v.label){case 0:return n??={},[4,this.ensureModelLoaded()];case 1:return v.sent(),t!=null?[3,3]:[4,this.recognizeOnline()];case 2:r=v.sent(),t=r.data,v.label=3;case 3:if(t instanceof Ve)this.checkInputTensorShape(t),a=t,s=t.shape[0];else{if(t.length%this.elementsPerExample)throw new Error("The length of the input Float32Array "+t.length+" is not divisible by the number of tensor elements per per example expected by the model "+this.elementsPerExample+".");s=t.length/this.elementsPerExample,a=Lg(t,[s].concat(this.nonBatchInputShape))}return o={scores:null},n.includeEmbedding?[4,this.ensureModelWithEmbeddingOutputCreated()]:[3,5];case 4:return v.sent(),l=this.modelWithEmbeddingOutput.predict(a),i=l[0],o.embedding=l[1],[3,6];case 5:i=this.model.predict(a),v.label=6;case 6:return s!==1?[3,8]:(u=o,[4,i.data()]);case 7:return u.scores=v.sent(),[3,10];case 8:return c=Kn(i),h=c.map(function(y){return y.data()}),d=o,[4,Promise.all(h)];case 9:d.scores=v.sent(),ke(c),v.label=10;case 10:return n.includeSpectrogram?(p=o,f={},t instanceof Ve?[4,t.data()]:[3,12]):[3,14];case 11:return g=v.sent(),[3,13];case 12:g=t,v.label=13;case 13:p.spectrogram=(f.data=g,f.frameSize=this.nonBatchInputShape[1],f),v.label=14;case 14:return ke(i),[2,o]}})})},e.prototype.recognizeOnline=function(){return wt(this,void 0,void 0,function(){var t=this;return _t(this,function(n){return[2,new Promise(function(r,s){t.audioDataExtractor=new NN({sampleRateHz:t.parameters.sampleRateHz,numFramesPerSpectrogram:t.nonBatchInputShape[0],columnTruncateLength:t.nonBatchInputShape[1],suppressionTimeMillis:0,spectrogramCallback:function(a){return wt(t,void 0,void 0,function(){var i,o,l;return _t(this,function(u){switch(u.label){case 0:return i=cd(a),[4,this.audioDataExtractor.stop()];case 1:return u.sent(),o=r,l={},[4,i.data()];case 2:return o.apply(void 0,[(l.data=u.sent(),l.frameSize=this.nonBatchInputShape[1],l)]),i.dispose(),[2,!1]}})})},overlapFactor:0}),t.audioDataExtractor.start()})]})})},e.prototype.createTransfer=function(t){if(this.model==null)throw new Error("Model has not been loaded yet. Load model by calling ensureModelLoaded(), recognizer(), or listen().");E(t!=null&&typeof t=="string"&&t.length>1,function(){return"Expected the name for a transfer-learning recognized to be a non-empty string, but got "+JSON.stringify(t)}),E(this.transferRecognizers[t]==null,function(){return"There is already a transfer-learning model named '"+t+"'"});var n=new c_e(t,this.parameters,this.model);return this.transferRecognizers[t]=n,n},e.prototype.freezeModel=function(){var t,n;try{for(var r=ir(this.model.layers),s=r.next();!s.done;s=r.next())s.value.trainable=!1}catch(a){t={error:a}}finally{try{s&&!s.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}},e.prototype.checkInputTensorShape=function(t){var n=this.model.inputs[0].shape.length;if(t.shape.length!==n)throw new Error("Expected input Tensor to have rank "+n+", but got rank "+t.shape.length+" that differs ");var r=t.shape.slice(1),s=this.model.inputs[0].shape.slice(1);if(!Ue(r,s))throw new Error("Expected input to have shape [null,"+s+"], but got shape [null,"+r+"]")},e.VALID_VOCABULARY_NAMES=["18w","directional4w"],e.DEFAULT_VOCABULARY_NAME="18w",e})(),c_e=(function(e){function t(n,r,s){var a=e.call(this)||this;return a.name=n,a.parameters=r,a.baseModel=s,E(n!=null&&typeof n=="string"&&n.length>0,function(){return"The name of a transfer model must be a non-empty string, but got "+JSON.stringify(n)}),a.nonBatchInputShape=a.baseModel.inputs[0].shape.slice(1),a.words=null,a.dataset=new CN,a}return j0e(t,e),t.prototype.collectExample=function(n,r){return wt(this,void 0,void 0,function(){var s,a,i,o,l=this;return _t(this,function(u){if(E(!this.streaming,function(){return"Cannot start collection of transfer-learning example because a streaming recognition or transfer-learning example collection is ongoing"}),E(n!=null&&typeof n=="string"&&n.length>0,function(){return"Must provide a non-empty string when collecting transfer-learning example"}),r??={},r.durationMultiplier!=null&&r.durationSec!=null)throw new Error("durationMultiplier and durationSec are mutually exclusive, but are both specified.");return r.durationSec!=null?(E(r.durationSec>0,function(){return"Expected durationSec to be > 0, but got "+r.durationSec}),a=this.parameters.fftSize/this.parameters.sampleRateHz,s=Math.ceil(r.durationSec/a)):r.durationMultiplier!=null?(E(r.durationMultiplier>=1,function(){return"Expected duration multiplier to be >= 1, but got "+r.durationMultiplier}),s=Math.round(this.nonBatchInputShape[0]*r.durationMultiplier)):s=this.nonBatchInputShape[0],r.snippetDurationSec!=null&&(E(r.snippetDurationSec>0,function(){return"snippetDurationSec is expected to be > 0, but got "+r.snippetDurationSec}),E(r.onSnippet!=null,function(){return"onSnippet must be provided if snippetDurationSec is provided."})),r.onSnippet!=null&&E(r.snippetDurationSec!=null,function(){return"snippetDurationSec must be provided if onSnippet is provided."}),i=this.parameters.fftSize/this.parameters.sampleRateHz,o=i*s,this.streaming=!0,[2,new Promise(function(c){var h=r.snippetDurationSec==null?1:r.snippetDurationSec/o,d=1-h,p=Math.round(1/h),f=0,g=-1,v=[];l.audioDataExtractor=new NN({sampleRateHz:l.parameters.sampleRateHz,numFramesPerSpectrogram:s,columnTruncateLength:l.nonBatchInputShape[1],suppressionTimeMillis:0,spectrogramCallback:function(y,b){return wt(l,void 0,void 0,function(){var w,x,_,$,N,k,A,O,R,T,S,F,M,L,z,q,J,re,Y,ae;return _t(this,function(ne){switch(ne.label){case 0:return r.onSnippet!=null?[3,7]:(w=cd(y),_=(x=this.dataset).addExample,$={label:n},N={},[4,w.data()]);case 1:return $.spectrogram=(N.data=ne.sent(),N.frameSize=this.nonBatchInputShape[1],N),r.includeRawAudio?(A={},[4,b.data()]):[3,3];case 2:return A.data=ne.sent(),A.sampleRateHz=this.audioDataExtractor.sampleRateHz,k=A,[3,4];case 3:k=void 0,ne.label=4;case 4:return _.apply(x,[($.rawAudio=k,$)]),w.dispose(),[4,this.audioDataExtractor.stop()];case 5:return ne.sent(),this.streaming=!1,this.collateTransferWords(),O=c,R={},[4,y.data()];case 6:return O.apply(void 0,[(R.data=ne.sent(),R.frameSize=this.nonBatchInputShape[1],R)]),[3,13];case 7:return[4,y.data()];case 8:for(T=ne.sent(),g===-1&&(g=T.length),S=g-1;T[S]!==0&&S>=0;)S--;return F=g-S-1,g=S+1,M=T.slice(T.length-F,T.length),v.push(M),r.onSnippet!=null&&r.onSnippet({data:M,frameSize:this.nonBatchInputShape[1]}),f++!==p?[3,13]:[4,this.audioDataExtractor.stop()];case 9:return ne.sent(),this.streaming=!1,this.collateTransferWords(),L=H5(K5(v)),z={data:L,frameSize:this.nonBatchInputShape[1]},J=(q=this.dataset).addExample,re={label:n,spectrogram:z},r.includeRawAudio?(ae={},[4,b.data()]):[3,11];case 10:return ae.data=ne.sent(),ae.sampleRateHz=this.audioDataExtractor.sampleRateHz,Y=ae,[3,12];case 11:Y=void 0,ne.label=12;case 12:J.apply(q,[(re.rawAudio=Y,re)]),c(z),ne.label=13;case 13:return[2,!1]}})})},overlapFactor:d,includeRawAudio:r.includeRawAudio}),l.audioDataExtractor.start(r.audioTrackConstraints)})]})})},t.prototype.clearExamples=function(){var n=this;E(this.words!=null&&this.words.length>0&&!this.dataset.empty(),function(){return"No transfer learning examples exist for model name "+n.name}),this.dataset.clear(),this.words=null},t.prototype.countExamples=function(){if(this.dataset.empty())throw new Error("No examples have been collected for transfer-learning model named '"+this.name+"' yet.");return this.dataset.getExampleCounts()},t.prototype.getExamples=function(n){return this.dataset.getExamples(n)},t.prototype.setExampleKeyFrameIndex=function(n,r){this.dataset.setExampleKeyFrameIndex(n,r)},t.prototype.removeExample=function(n){this.dataset.removeExample(n),this.collateTransferWords()},t.prototype.isDatasetEmpty=function(){return this.dataset.empty()},t.prototype.loadExamples=function(n,r){var s,a,i,o;r===void 0&&(r=!1);var l=new CN(n);r&&this.clearExamples();var u=l.getVocabulary();try{for(var c=ir(u),h=c.next();!h.done;h=c.next()){var d=h.value,p=l.getExamples(d);try{for(var f=(i=void 0,ir(p)),g=f.next();!g.done;g=f.next()){var v=g.value;this.dataset.addExample(v.example)}}catch(y){i={error:y}}finally{try{g&&!g.done&&(o=f.return)&&o.call(f)}finally{if(i)throw i.error}}}}catch(y){s={error:y}}finally{try{h&&!h.done&&(a=c.return)&&a.call(c)}finally{if(s)throw s.error}}this.collateTransferWords()},t.prototype.serializeExamples=function(n){return this.dataset.serialize(n)},t.prototype.collateTransferWords=function(){this.words=this.dataset.getVocabulary()},t.prototype.collectTransferDataAsTensors=function(n,r){var s=this.nonBatchInputShape[0];n=n||fx;var a=Math.round(n*s),i=this.dataset.getData(null,SN({numFrames:s,hopFrames:a},r));return{xs:i.xs,ys:i.ys}},t.prototype.collectTransferDataAsTfDataset=function(n,r,s,a){r===void 0&&(r=.15),s===void 0&&(s=32);var i=this.nonBatchInputShape[0];n=n||fx;var o=Math.round(n*i);return this.dataset.getData(null,SN({numFrames:i,hopFrames:o,getDataset:!0,datasetBatchSize:s,datasetValidationSplit:r},a))},t.prototype.train=function(n){return wt(this,void 0,void 0,function(){var r,s=this;return _t(this,function(a){return E(this.words!=null&&this.words.length>0,function(){return"Cannot train transfer-learning model '"+s.name+"' because no transfer learning example has been collected."}),E(this.words.length>1,function(){return"Cannot train transfer-learning model '"+s.name+"' because only 1 word label ('"+JSON.stringify(s.words)+"') has been collected for transfer learning. Requires at least 2."}),n.fineTuningEpochs!=null&&E(n.fineTuningEpochs>=0&&Number.isInteger(n.fineTuningEpochs),function(){return"If specified, fineTuningEpochs must be a non-negative integer, but received "+n.fineTuningEpochs}),n??={},this.model??this.createTransferModelFromBaseModel(),this.secondLastBaseDenseLayer.trainable=!1,this.model.compile({loss:"categoricalCrossentropy",optimizer:n.optimizer||"sgd",metrics:["acc"]}),r=n.fitDatasetDurationMillisThreshold==null?6e4:n.fitDatasetDurationMillisThreshold,this.dataset.durationMillis()>r?(console.log("Detected large dataset: total duration = "+this.dataset.durationMillis()+" ms > "+r+" ms. Training transfer model using fitDataset() instead of fit()"),[2,this.trainOnDataset(n)]):[2,this.trainOnTensors(n)]})})},t.prototype.trainOnDataset=function(n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h;return _t(this,function(d){switch(d.label){case 0:return E(n.epochs>0,function(){return"Invalid config.epochs"}),r=n.batchSize==null?32:n.batchSize,s=n.windowHopRatio||fx,a=IN(this.collectTransferDataAsTfDataset(s,n.validationSplit,r,{augmentByMixingNoiseRatio:n.augmentByMixingNoiseRatio}),2),i=a[0],o=a[1],l=Bt(),[4,this.model.fitDataset(i,{epochs:n.epochs,validationData:n.validationSplit>0?o:null,callbacks:n.callback==null?null:[n.callback]})];case 1:return u=d.sent(),console.log("fitDataset() took "+(Bt()-l).toFixed(2)+" ms"),n.fineTuningEpochs!=null&&n.fineTuningEpochs>0?(c=Bt(),[4,this.fineTuningUsingTfDatasets(n,i,o)]):[3,3];case 2:return h=d.sent(),console.log("fitDataset() (fine-tuning) took "+(Bt()-c).toFixed(2)+" ms"),[2,[u,h]];case 3:return[2,u]}})})},t.prototype.trainOnTensors=function(n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d;return _t(this,function(p){switch(p.label){case 0:r=n.windowHopRatio||fx,s=this.collectTransferDataAsTensors(r,{augmentByMixingNoiseRatio:n.augmentByMixingNoiseRatio}),a=s.xs,i=s.ys,console.log("Training data: xs.shape = "+a.shape+", ys.shape = "+i.shape),p.label=1;case 1:return p.trys.push([1,,6,7]),n.validationSplit!=null?(c=e_e(a,i,n.validationSplit),o=c.trainXs,l=c.trainYs,u=[c.valXs,c.valYs]):(o=a,l=i),[4,this.model.fit(o,l,{epochs:n.epochs==null?20:n.epochs,validationData:u,batchSize:n.batchSize,callbacks:n.callback==null?null:[n.callback]})];case 2:return h=p.sent(),n.fineTuningEpochs!=null&&n.fineTuningEpochs>0?[4,this.fineTuningUsingTensors(n,o,l,u)]:[3,4];case 3:return d=p.sent(),[2,[h,d]];case 4:return[2,h];case 5:return[3,7];case 6:return ke([a,i,o,l,u]),[7];case 7:return[2]}})})},t.prototype.fineTuningUsingTfDatasets=function(n,r,s){return wt(this,void 0,void 0,function(){var a,i,o;return _t(this,function(l){switch(l.label){case 0:return a=this.secondLastBaseDenseLayer.trainable,this.secondLastBaseDenseLayer.trainable=!0,i=n.fineTuningOptimizer==null?"sgd":n.fineTuningOptimizer,this.model.compile({loss:"categoricalCrossentropy",optimizer:i,metrics:["acc"]}),[4,this.model.fitDataset(r,{epochs:n.fineTuningEpochs,validationData:s,callbacks:n.callback==null?null:[n.callback]})];case 1:return o=l.sent(),this.secondLastBaseDenseLayer.trainable=a,[2,o]}})})},t.prototype.fineTuningUsingTensors=function(n,r,s,a){return wt(this,void 0,void 0,function(){var i,o,l;return _t(this,function(u){switch(u.label){case 0:return i=this.secondLastBaseDenseLayer.trainable,this.secondLastBaseDenseLayer.trainable=!0,o=n.fineTuningOptimizer==null?"sgd":n.fineTuningOptimizer,this.model.compile({loss:"categoricalCrossentropy",optimizer:o,metrics:["acc"]}),[4,this.model.fit(r,s,{epochs:n.fineTuningEpochs,validationData:a,batchSize:n.batchSize,callbacks:n.fineTuningCallback==null?null:[n.fineTuningCallback]})];case 1:return l=u.sent(),this.secondLastBaseDenseLayer.trainable=i,[2,l]}})})},t.prototype.evaluate=function(n){return wt(this,void 0,void 0,function(){var r,s=this;return _t(this,function(a){return E(n.wordProbThresholds!=null&&n.wordProbThresholds.length>0,function(){return"Received null or empty wordProbThresholds"}),r=0,E(this.words[r]===px,function(){return"Cannot perform evaluation when the first tag is not "+px}),[2,K(function(){for(var i=[],o=0,l=s.collectTransferDataAsTensors(n.windowHopRatio),u=l.xs,c=l.ys.argMax(-1).dataSync(),h=s.model.predict(u),d=Gn(We(h,[0,1],[h.shape[0],h.shape[1]-1]),-1),p=h.shape[0],f=0;f<n.wordProbThresholds.length;++f){for(var g=n.wordProbThresholds[f],v=d.greater(ye(g)).dataSync(),y=0,b=0,w=0,x=0,_=0;_<p;++_)c[_]===r?(y++,v[_]&&w++):(b++,v[_]&&x++);var $=w/y,N=x/b;i.push({probThreshold:g,fpr:$,tpr:N}),console.log("ROC thresh="+g+": fpr="+$.toFixed(4)+", tpr="+N.toFixed(4)),f>0&&(o+=Math.abs(i[f-1].fpr-i[f].fpr)*(i[f-1].tpr+i[f].tpr)/2)}return{rocCurve:i,auc:o}})]})})},t.prototype.createTransferModelFromBaseModel=function(){var n=this;E(this.words!=null,function(){return"No word example is available for tranfer-learning model of name "+n.name});for(var r=this.baseModel.layers,s=r.length-2;s>=0&&r[s].getClassName().toLowerCase()!=="dense";)s--;if(s<0)throw new Error("Cannot find a hidden dense layer in the base model.");this.secondLastBaseDenseLayer=r[s];var a=this.secondLastBaseDenseLayer.output;this.transferHead=AR(),this.transferHead.add(HR({units:this.words.length,activation:"softmax",inputShape:a.shape.slice(1),name:"NewHeadDense"}));var i=this.transferHead.apply(a);this.model=T0({inputs:this.baseModel.inputs,outputs:i})},t.prototype.modelInputShape=function(){return this.baseModel.inputs[0].shape},t.prototype.getMetadata=function(){return{tfjsSpeechCommandsVersion:$N,modelName:this.name,timeStamp:new Date().toISOString(),wordLabels:this.wordLabels()}},t.prototype.save=function(n){return wt(this,void 0,void 0,function(){var r,s,a;return _t(this,function(i){return r=n!=null,n=n||TN(this.name),r||(s=bm.localStorage.getItem(ym),(a=s==null?{}:JSON.parse(s))[this.name]=this.getMetadata(),bm.localStorage.setItem(ym,JSON.stringify(a))),console.log("Saving model to "+n),[2,this.model.save(n)]})})},t.prototype.load=function(n){return wt(this,void 0,void 0,function(){var r,s,a;return _t(this,function(i){switch(i.label){case 0:if(r=n!=null,n=n||TN(this.name),!r){if((s=JSON.parse(bm.localStorage.getItem(ym)))==null||s[this.name]==null)throw new Error("Cannot find metadata for transfer model named "+this.name+'"');this.words=s[this.name].wordLabels,console.log("Loaded word list for model named "+this.name+": "+this.words)}return a=this,[4,Tf(n)];case 1:return a.model=i.sent(),console.log("Loaded model from "+n+":"),this.model.summary(),[2]}})})},t.prototype.createTransfer=function(n){throw new Error("Creating transfer-learned recognizer from a transfer-learned recognizer is not supported.")},t})(Q5);function TN(e){return""+kN+e}function h_e(){return wt(this,void 0,void 0,function(){var e,t,n;return _t(this,function(r){switch(r.label){case 0:return[4,o$()];case 1:for(n in e=r.sent(),t=[],e)n.startsWith(kN)&&t.push(n.slice(kN.length));return[2,t]}})})}function d_e(e){return wt(this,void 0,void 0,function(){var t;return _t(this,function(n){switch(n.label){case 0:return(t=JSON.parse(bm.localStorage.getItem(ym)))??(t={}),t[e]!=null&&delete t[e],bm.localStorage.setItem(ym,JSON.stringify(t)),[4,l$(TN(e))];case 1:return n.sent(),[2]}})})}function eK(e,t,n,r){if(E(n==null&&r==null||n!=null&&r!=null,function(){return"customModelURL and customMetadataURL must be both provided or both not provided."}),n!=null&&E(t==null,function(){return"vocabulary name must be null or undefined when modelURL is provided."}),e==="BROWSER_FFT")return new Q5(t,n,r);throw e==="SOFT_FFT"?new Error("SOFT_FFT SpeechCommandRecognizer has not been implemented yet."):new Error("Invalid fftType: '"+e+"'")}var p_e={concatenateFloat32Arrays:K5,normalizeFloat32Array:H5,normalize:cd,playRawAudio:Y0e},tK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.cropTensor=e.capture=void 0;var t=(ka(),or(gs));function n(s,a){return t.tidy(function(){return r(t.browser.fromPixels(s),a).expandDims(0).toFloat().div(t.scalar(127)).sub(t.scalar(1))})}e.capture=n;function r(s,a,i){var o=Math.min(s.shape[0],s.shape[1]),l=s.shape[0]/2-o/2,u=s.shape[1]/2-o/2;if(a&&!i){var c=s.slice([l,u,0],[o,o,3]);return c=c.reshape([o*o,1,3]),c=t.mul(c,[.2989,.587,.114]),c=c.reshape([o,o,3]),c=t.sum(c,-1),c=t.expandDims(c,-1),c}return s.slice([l,u,0],[o,o,3])}e.cropTensor=r})),nK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.cropTo=e.resizeMinTo=e.resizeMaxTo=e.resize=void 0;var t=function(){return document.createElement("canvas")};function n(i,o,l){return l===void 0&&(l=t()),l.width=i.width*o,l.height=i.height*o,l.getContext("2d").drawImage(i,0,0,l.width,l.height),l}e.resize=n;function r(i,o,l){return l===void 0&&(l=t()),n(i,o/Math.max(i.width,i.height),l)}e.resizeMaxTo=r;function s(i,o,l){return l===void 0&&(l=t()),n(i,o/Math.min(i.width,i.height),l)}e.resizeMinTo=s;function a(i,o,l,u){l===void 0&&(l=!1),u===void 0&&(u=t());var c=i.width,h=i.height;i instanceof HTMLVideoElement&&(c=i.videoWidth,h=i.videoHeight);var d=o/Math.min(c,h),p=Math.ceil(c*d),f=Math.ceil(h*d),g=p-o,v=f-o;u.width=u.height=o;var y=u.getContext("2d");return y.drawImage(i,~~(g/2)*-1,~~(v/2)*-1,p,f),l&&(y.scale(-1,1),y.drawImage(u,o*-1,0)),u}e.cropTo=a})),rK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.version=void 0;var t="0.8.4-alpha2";e.version=t})),sK=Ye((e=>{var t=e&&e.__awaiter||function(N,k,A,O){function R(T){return T instanceof A?T:new A(function(S){S(T)})}return new(A||(A=Promise))(function(T,S){function F(z){try{L(O.next(z))}catch(q){S(q)}}function M(z){try{L(O.throw(z))}catch(q){S(q)}}function L(z){z.done?T(z.value):R(z.value).then(F,M)}L((O=O.apply(N,k||[])).next())})},n=e&&e.__generator||function(N,k){var A={label:0,sent:function(){if(T[0]&1)throw T[1];return T[1]},trys:[],ops:[]},O,R,T,S={next:F(0),throw:F(1),return:F(2)};return typeof Symbol=="function"&&(S[Symbol.iterator]=function(){return this}),S;function F(L){return function(z){return M([L,z])}}function M(L){if(O)throw new TypeError("Generator is already executing.");for(;A;)try{if(O=1,R&&(T=L[0]&2?R.return:L[0]?R.throw||((T=R.return)&&T.call(R),0):R.next)&&!(T=T.call(R,L[1])).done)return T;switch(R=0,T&&(L=[L[0]&2,T.value]),L[0]){case 0:case 1:T=L;break;case 4:return A.label++,{value:L[1],done:!1};case 5:A.label++,R=L[1],L=[0];continue;case 7:L=A.ops.pop(),A.trys.pop();continue;default:if(T=A.trys,!(T=T.length>0&&T[T.length-1])&&(L[0]===6||L[0]===2)){A=0;continue}if(L[0]===3&&(!T||L[1]>T[0]&&L[1]<T[3])){A.label=L[1];break}if(L[0]===6&&A.label<T[1]){A.label=T[1],T=L;break}if(T&&A.label<T[2]){A.label=T[2],A.ops.push(L);break}T[2]&&A.ops.pop(),A.trys.pop();continue}L=k.call(N,A)}catch(z){L=[6,z],R=0}finally{O=T=0}if(L[0]&5)throw L[1];return{value:L[0]?L[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0}),e.loadFromFiles=e.load=e.loadTruncatedMobileNet=e.CustomMobileNet=e.getTopKClasses=e.IMAGE_SIZE=void 0;var r=(ka(),or(gs)),s=(ka(),or(gs)),a=tK(),i=nK(),o=rK(),l=1,u="conv_pw_13_relu",c="out_relu",h=.25,d=.35;e.IMAGE_SIZE=224;var p=function(N){return N.packageVersion=N.packageVersion||o.version,N.packageName=N.packageName||"@teachablemachine/image",N.timeStamp=N.timeStamp||new Date().toISOString(),N.userMetadata=N.userMetadata||{},N.modelName=N.modelName||"untitled",N.labels=N.labels||[],N.imageSize=N.imageSize||e.IMAGE_SIZE,N},f=function(N){return!!N&&Array.isArray(N.labels)},g=function(N,k){if(N===1){if(k!==.25&&k!==.5&&k!==.75&&k!==1)return console.warn("Invalid alpha. Options are: 0.25, 0.50, 0.75 or 1.00."),console.log("Loading model with alpha: ",h.toFixed(2)),h}else if(k!==.35&&k!==.5&&k!==.75&&k!==1)return console.warn("Invalid alpha. Options are: 0.35, 0.50, 0.75 or 1.00."),console.log("Loading model with alpha: ",d.toFixed(2)),d;return k},v=function(N){if(N=N||{},N.checkpointUrl&&N.trainingLayer)return(N.alpha||N.version)&&console.warn("Checkpoint URL passed to modelOptions, alpha options are ignored"),[N.checkpointUrl,N.trainingLayer];if(N.version=N.version||l,N.version===1){N.alpha=N.alpha||h,N.alpha=g(N.version,N.alpha),console.log("Loading mobilenet "+N.version+" and alpha "+N.alpha);var k=N.alpha.toFixed(2);return k==="1.00"&&(k="1.0"),["https://storage.googleapis.com/tfjs-models/tfjs/mobilenet_v1_"+k+"_"+e.IMAGE_SIZE+"/model.json",u]}else{if(N.version===2)return N.alpha=N.alpha||d,N.alpha=g(N.version,N.alpha),console.log("Loading mobilenet "+N.version+" and alpha "+N.alpha),["https://storage.googleapis.com/teachable-machine-models/mobilenet_v2_weights_tf_dim_ordering_tf_kernels_"+N.alpha.toFixed(2)+"_"+e.IMAGE_SIZE+"_no_top/model.json",c];throw new Error("MobileNet V"+N.version+" doesn't exist")}},y=function(N){return t(void 0,void 0,void 0,function(){var k,A;return n(this,function(O){switch(O.label){case 0:return typeof N!="string"?[3,3]:[4,fetch(N)];case 1:return A=O.sent(),[4,A.json()];case 2:return k=O.sent(),[3,4];case 3:if(f(N))k=N;else throw new Error("Invalid Metadata provided");O.label=4;case 4:return[2,p(k)]}})})};function b(N,k,A){return A===void 0&&(A=3),t(this,void 0,void 0,function(){var O;return n(this,function(R){switch(R.label){case 0:return[4,k.data()];case 1:return O=R.sent(),[2,r.tidy(function(){A=Math.min(A,O.length);for(var T=[],S=0;S<O.length;S++)T.push({value:O[S],index:S});T.sort(function(z,q){return q.value-z.value});for(var F=new Float32Array(A),M=new Int32Array(A),S=0;S<A;S++)F[S]=T[S].value,M[S]=T[S].index;for(var L=[],S=0;S<M.length;S++)L.push({className:N[M[S]],probability:F[S]});return L})]}})})}e.getTopKClasses=b;var w=(function(){function N(k,A){this.model=k,this._metadata=p(A)}return Object.defineProperty(N,"EXPECTED_IMAGE_SIZE",{get:function(){return e.IMAGE_SIZE},enumerable:!1,configurable:!0}),N.prototype.getMetadata=function(){return this._metadata},N.prototype.getTotalClasses=function(){return this.model.output.shape[1]},N.prototype.getClassLabels=function(){return this._metadata.labels},N.prototype.predictTopK=function(k,A,O){return A===void 0&&(A=10),O===void 0&&(O=!1),t(this,void 0,void 0,function(){var R,T,S,F=this;return n(this,function(M){switch(M.label){case 0:return R=i.cropTo(k,this._metadata.imageSize,O),T=r.tidy(function(){var L=a.capture(R,F._metadata.grayscale);return F.model.predict(L)}),[4,b(this._metadata.labels,T,A)];case 1:return S=M.sent(),s.dispose(T),[2,S]}})})},N.prototype.predict=function(k,A){return A===void 0&&(A=!1),t(this,void 0,void 0,function(){var O,R,T,S,F,M=this;return n(this,function(L){switch(L.label){case 0:return O=i.cropTo(k,this._metadata.imageSize,A),R=r.tidy(function(){var z=a.capture(O,M._metadata.grayscale);return M.model.predict(z)}),[4,R.data()];case 1:for(T=L.sent(),S=[],F=0;F<T.length;F++)S.push({className:this._metadata.labels[F],probability:T[F]});return s.dispose(R),[2,S]}})})},N.prototype.dispose=function(){this.truncatedModel.dispose()},N})();e.CustomMobileNet=w;function x(N){return t(this,void 0,void 0,function(){var k,A,O,R,T,S,F,T,S,F;return n(this,function(M){switch(M.label){case 0:return k=v(N),A=k[0],O=k[1],[4,r.loadLayersModel(A)];case 1:return R=M.sent(),N&&N.version===1?(T=R.getLayer(O),S=r.model({inputs:R.inputs,outputs:T.output}),F=r.sequential(),F.add(S),F.add(r.layers.flatten()),[2,F]):(T=R.getLayer(O),S=r.model({inputs:R.inputs,outputs:T.output}),F=r.sequential(),F.add(S),F.add(r.layers.globalAveragePooling2d({})),[2,F])}})})}e.loadTruncatedMobileNet=x;function _(N,k){return t(this,void 0,void 0,function(){var A,O,R;return n(this,function(T){switch(T.label){case 0:return[4,r.loadLayersModel(N)];case 1:return A=T.sent(),k?[4,y(k)]:[3,3];case 2:return R=T.sent(),[3,4];case 3:R=null,T.label=4;case 4:return O=R,[2,new w(A,O)]}})})}e.load=_;function $(N,k,A){return t(this,void 0,void 0,function(){var O,R,T,S;return n(this,function(F){switch(F.label){case 0:return[4,r.loadLayersModel(r.io.browserFiles([N,k]))];case 1:return O=F.sent(),[4,new Response(A).json()];case 2:return R=F.sent(),A?[4,y(R)]:[3,4];case 3:return S=F.sent(),[3,5];case 4:S=null,F.label=5;case 5:return T=S,[2,new w(O,T)]}})})}e.loadFromFiles=$})),f_e=Ye(((e,t)=>{(function(n,r,s){function a(u){var c=this,h=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=h(" "),c.s1=h(" "),c.s2=h(" "),c.s0-=h(u),c.s0<0&&(c.s0+=1),c.s1-=h(u),c.s1<0&&(c.s1+=1),c.s2-=h(u),c.s2<0&&(c.s2+=1),h=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var h=new a(u),d=c&&c.state,p=h.next;return p.int32=function(){return h.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,d&&(typeof d=="object"&&i(d,h),p.state=function(){return i(h,{})}),p}function l(){var u=4022871197,c=function(h){h=h.toString();for(var d=0;d<h.length;d++){u+=h.charCodeAt(d);var p=.02519603282416938*u;u=p>>>0,p-=u,p*=u,u=p>>>0,p-=u,u+=p*4294967296}return(u>>>0)*23283064365386963e-26};return c}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),m_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var h=0;h<c.length+64;h++)u.x^=c.charCodeAt(h)|0,u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u}function o(l,u){var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(typeof h=="object"&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),g_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var h=0;h<c.length+64;h++)u.x^=c.charCodeAt(h)|0,h==c.length&&(u.d=u.x<<10^u.x>>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(typeof h=="object"&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),v_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this;u.next=function(){var h=u.x,d=u.i,p=h[d],f;return p^=p>>>7,f=p^p<<24,p=h[d+1&7],f^=p^p>>>10,p=h[d+3&7],f^=p^p>>>3,p=h[d+4&7],f^=p^p<<7,p=h[d+7&7],p=p^p<<13,f^=p^p<<9,h[d]=f,u.i=d+1&7,f};function c(h,d){var p,f=[];if(d===(d|0))f[0]=d;else for(d=""+d,p=0;p<d.length;++p)f[p&7]=f[p&7]<<15^d.charCodeAt(p)+f[p+1&7]<<13;for(;f.length<8;)f.push(0);for(p=0;p<8&&f[p]===0;++p);for(p==8?f[7]=-1:f[p],h.x=f,h.i=0,p=256;p>0;--p)h.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(h.x&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),y_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this;u.next=function(){var h=u.w,d=u.X,p=u.i,f,g;return u.w=h=h+1640531527|0,g=d[p+34&127],f=d[p=p+1&127],g^=g<<13,f^=f<<17,g^=g>>>15,f^=f>>>12,g=d[p]=g^f,u.i=p,g+(h^h>>>16)|0};function c(h,d){var p,f,g,v,y,b=[],w=128;for(d===(d|0)?(f=d,d=null):(d=d+"\0",f=0,w=Math.max(w,d.length)),g=0,v=-32;v<w;++v)d&&(f^=d.charCodeAt((v+32)%d.length)),v===0&&(y=f),f^=f<<10,f^=f>>>15,f^=f<<4,f^=f>>>13,v>=0&&(y=y+1640531527|0,p=b[v&127]^=f+y,g=p==0?g+1:0);for(g>=128&&(b[(d&&d.length||0)&127]=-1),g=127,v=512;v>0;--v)f=b[g+34&127],p=b[g=g+1&127],f^=f<<13,p^=p<<17,f^=f>>>15,p^=p>>>12,b[g]=f^p;h.w=y,h.X=b,h.i=g}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(h.X&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),b_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this,c="";u.next=function(){var d=u.b,p=u.c,f=u.d,g=u.a;return d=d<<25^d>>>7^p,p=p-f|0,f=f<<24^f>>>8^g,g=g-d|0,u.b=d=d<<20^d>>>12^p,u.c=p=p-f|0,u.d=f<<16^p>>>16^g,u.a=g-d|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):c+=l;for(var h=0;h<c.length+20;h++)u.b^=c.charCodeAt(h)|0,u.next()}function i(l,u){return u.a=l.a,u.b=l.b,u.c=l.c,u.d=l.d,u}function o(l,u){var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(typeof h=="object"&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),x_e=Ye(((e,t)=>{(function(n,r){var s=this,a=256,i=6,o=52,l="random",u=r.pow(a,i),c=r.pow(2,o),h=c*2,d=a-1,p;function f(_,$,N){var k=[];$=$==!0?{entropy:!0}:$||{};var A=b(y($.entropy?[_,x(n)]:_??w(),3),k),O=new g(k),R=function(){for(var T=O.g(i),S=u,F=0;T<c;)T=(T+F)*a,S*=a,F=O.g(1);for(;T>=h;)T/=2,S/=2,F>>>=1;return(T+F)/S};return R.int32=function(){return O.g(4)|0},R.quick=function(){return O.g(4)/4294967296},R.double=R,b(x(O.S),n),($.pass||N||function(T,S,F,M){return M&&(M.S&&v(M,O),T.state=function(){return v(O,{})}),F?(r[l]=T,S):T})(R,A,"global"in $?$.global:this==r,$.state)}r["seed"+l]=f;function g(_){var $,N=_.length,k=this,A=0,O=k.i=k.j=0,R=k.S=[];for(N||(_=[N++]);A<a;)R[A]=A++;for(A=0;A<a;A++)R[A]=R[O=d&O+_[A%N]+($=R[A])],R[O]=$;(k.g=function(T){for(var S,F=0,M=k.i,L=k.j,z=k.S;T--;)S=z[M=d&M+1],F=F*a+z[d&(z[M]=z[L=d&L+S])+(z[L]=S)];return k.i=M,k.j=L,F})(a)}function v(_,$){return $.i=_.i,$.j=_.j,$.S=_.S.slice(),$}function y(_,$){var N=[],k=typeof _,A;if($&&k=="object")for(A in _)try{N.push(y(_[A],$-1))}catch{}return N.length?N:k=="string"?_:_+"\0"}function b(_,$){for(var N=_+"",k,A=0;A<N.length;)$[d&A]=d&(k^=$[d&A]*19)+N.charCodeAt(A++);return x($)}function w(){try{var _;return p&&(_=p.randomBytes)?_=_(a):(_=new Uint8Array(a),(s.crypto||s.msCrypto).getRandomValues(_)),x(_)}catch{var $=s.navigator,N=$&&$.plugins;return[+new Date,s,N,s.screen,x(n)]}}function x(_){return String.fromCharCode.apply(0,_)}if(b(r.random(),n),typeof t=="object"&&t.exports){t.exports=f;try{p=Bl()}catch{}}else typeof define=="function"&&define.amd&&define(function(){return f})})([],Math)})),w_e=Ye(((e,t)=>{var n=f_e(),r=m_e(),s=g_e(),a=v_e(),i=y_e(),o=b_e(),l=x_e();l.alea=n,l.xor128=r,l.xorwow=s,l.xorshift7=a,l.xor4096=i,l.tychei=o,t.exports=l})),__e=Ye((e=>{var t=e&&e.__extends||(function(){var g=function(v,y){return g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,w){b.__proto__=w}||function(b,w){for(var x in w)w.hasOwnProperty(x)&&(b[x]=w[x])},g(v,y)};return function(v,y){g(v,y);function b(){this.constructor=v}v.prototype=y===null?Object.create(y):(b.prototype=y.prototype,new b)}})(),n=e&&e.__awaiter||function(g,v,y,b){function w(x){return x instanceof y?x:new y(function(_){_(x)})}return new(y||(y=Promise))(function(x,_){function $(A){try{k(b.next(A))}catch(O){_(O)}}function N(A){try{k(b.throw(A))}catch(O){_(O)}}function k(A){A.done?x(A.value):w(A.value).then($,N)}k((b=b.apply(g,v||[])).next())})},r=e&&e.__generator||function(g,v){var y={label:0,sent:function(){if(x[0]&1)throw x[1];return x[1]},trys:[],ops:[]},b,w,x,_={next:$(0),throw:$(1),return:$(2)};return typeof Symbol=="function"&&(_[Symbol.iterator]=function(){return this}),_;function $(k){return function(A){return N([k,A])}}function N(k){if(b)throw new TypeError("Generator is already executing.");for(;y;)try{if(b=1,w&&(x=k[0]&2?w.return:k[0]?w.throw||((x=w.return)&&x.call(w),0):w.next)&&!(x=x.call(w,k[1])).done)return x;switch(w=0,x&&(k=[k[0]&2,x.value]),k[0]){case 0:case 1:x=k;break;case 4:return y.label++,{value:k[1],done:!1};case 5:y.label++,w=k[1],k=[0];continue;case 7:k=y.ops.pop(),y.trys.pop();continue;default:if(x=y.trys,!(x=x.length>0&&x[x.length-1])&&(k[0]===6||k[0]===2)){y=0;continue}if(k[0]===3&&(!x||k[1]>x[0]&&k[1]<x[3])){y.label=k[1];break}if(k[0]===6&&y.label<x[1]){y.label=x[1],x=k;break}if(x&&y.label<x[2]){y.label=x[2],y.ops.push(k);break}x[2]&&y.ops.pop(),y.trys.pop();continue}k=v.call(g,y)}catch(A){k=[6,A],w=0}finally{b=x=0}if(k[0]&5)throw k[1];return{value:k[0]?k[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0}),e.createTeachable=e.TeachableMobileNet=void 0;var s=(ka(),or(gs)),a=(ka(),or(gs)),i=tK(),o=sK(),l=w_e(),u=.15,c=function(g){return typeof g.dataId=="object"&&typeof g.shape=="object"};function h(g,v){var y=new Array(v).fill(0);return y[g]=1,y}function d(g,v){for(var y,b=g.length,w=g.slice(),x=b-1;x>0;x-=1){var _=void 0;v?_=Math.floor(v()*(x+1)):_=Math.floor(Math.random()*(x+1)),y=[w[_],w[x]],w[x]=y[0],w[_]=y[1]}return w}var p=(function(g){t(v,g);function v(y,b){var w=g.call(this,s.sequential(),b)||this;return w.totalSamples=0,w.examples=[],w.truncatedModel=y,w}return Object.defineProperty(v.prototype,"asSequentialModel",{get:function(){return this.model},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"isTrained",{get:function(){return!!this.model&&this.model.layers&&this.model.layers.length>2},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"isPrepared",{get:function(){return!!this.trainDataset},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"numClasses",{get:function(){return this._metadata.labels.length},enumerable:!1,configurable:!0}),v.prototype.addExample=function(y,b){return n(this,void 0,void 0,function(){var w,x,_;return r(this,function($){return w=c(b)?b:i.capture(b,this._metadata.grayscale),x=this.truncatedModel.predict(w),_=x.dataSync(),w.dispose(),x.dispose(),this.examples[y].push(_),this.totalSamples++,[2]})})},v.prototype.predict=function(y,b){return b===void 0&&(b=!1),n(this,void 0,void 0,function(){return r(this,function(w){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,g.prototype.predict.call(this,y,b)]})})},v.prototype.predictTopK=function(y,b,w){return b===void 0&&(b=10),w===void 0&&(w=!1),n(this,void 0,void 0,function(){return r(this,function(x){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,g.prototype.predictTopK.call(this,y,b,w)]})})},v.prototype.prepare=function(){for(var y in this.examples)if(y.length===0)throw new Error("Add some examples before training");var b=this.convertToTfDataset();this.trainDataset=b.trainDataset,this.validationDataset=b.validationDataset},v.prototype.convertToTfDataset=function(){for(var y=0;y<this.examples.length;y++)this.examples[y]=d(this.examples[y],this.seed);for(var b=[],w=[],x=function(O){var R=h(O,_.numClasses),T=_.examples[O].length,S=T-Math.ceil(u*T),F=_.examples[O].slice(0,S).map(function(L){return{data:L,label:R}}),M=_.examples[O].slice(S).map(function(L){return{data:L,label:R}});b=b.concat(F),w=w.concat(M)},_=this,y=0;y<this.examples.length;y++)x(y);b=d(b,this.seed),w=d(w,this.seed);var $=s.data.array(b.map(function(O){return O.data})),N=s.data.array(w.map(function(O){return O.data})),k=s.data.array(b.map(function(O){return O.label})),A=s.data.array(w.map(function(O){return O.label}));return{trainDataset:s.data.zip({xs:$,ys:k}),validationDataset:s.data.zip({xs:N,ys:A})}},v.prototype.save=function(y,b){return n(this,void 0,void 0,function(){return r(this,function(w){return[2,this.model.save(y,b)]})})},v.prototype.train=function(y,b){return b===void 0&&(b={}),n(this,void 0,void 0,function(){var w,x,_,$,N,k,A,O,R,T=this;return r(this,function(S){switch(S.label){case 0:if(w=b.onTrainEnd||(function(){}),b.onTrainEnd=function(F){T.__stopTrainingResolve&&(T.__stopTrainingResolve(),T.__stopTrainingResolve=null),w(F)},this.isPrepared||this.prepare(),x=this.getLabels().length,a.util.assert(x===this.numClasses,function(){return"Can not train, has "+x+" labels and "+T.numClasses+" classes"}),_=this.truncatedModel.outputs[0].shape.slice(1),$=s.util.sizeFromShape(_),this.seed?N=s.initializers.varianceScaling({seed:3.14}):N=s.initializers.varianceScaling({}),this.trainingModel=s.sequential({layers:[s.layers.dense({inputShape:[$],units:y.denseUnits,activation:"relu",kernelInitializer:N,useBias:!0}),s.layers.dense({kernelInitializer:N,useBias:!1,activation:"softmax",units:this.numClasses})]}),k=s.train.adam(y.learningRate),this.trainingModel.compile({optimizer:k,loss:"categoricalCrossentropy",metrics:["accuracy"]}),!(y.batchSize>0))throw new Error("Batch size is 0 or NaN. Please choose a non-zero fraction");return A=this.trainDataset.batch(y.batchSize),O=this.validationDataset.batch(y.batchSize),[4,this.trainingModel.fitDataset(A,{epochs:y.epochs,validationData:O,callbacks:b})];case 1:return S.sent(),R=s.sequential(),R.add(this.truncatedModel),R.add(this.trainingModel),this.model=R,k.dispose(),[2,this.model]}})})},v.prototype.prepareDataset=function(){for(var y=0;y<this.numClasses;y++)this.examples[y]=[]},v.prototype.setLabel=function(y,b){this._metadata.labels[y]=b},v.prototype.setLabels=function(y){this._metadata.labels=y,this.prepareDataset()},v.prototype.getLabel=function(y){return this._metadata.labels[y]},v.prototype.getLabels=function(){return this._metadata.labels},v.prototype.setName=function(y){this._metadata.modelName=y},v.prototype.getName=function(){return this._metadata.modelName},v.prototype.stopTraining=function(){var y=this;return new Promise(function(b,w){y.trainingModel.stopTraining=!0,y.__stopTrainingResolve=b})},v.prototype.dispose=function(){this.trainingModel.dispose(),g.prototype.dispose.call(this)},v.prototype.calculateAccuracyPerClass=function(){return n(this,void 0,void 0,function(){var y,b,w,x,_,$,N,k,A,O,q,R,T,S,F,M,L,z,q,J=this;return r(this,function(re){switch(re.label){case 0:return y=this.validationDataset.mapAsync(function(Y){return n(J,void 0,void 0,function(){return r(this,function(ae){return[2,Y.xs]})})}),b=this.validationDataset.mapAsync(function(Y){return n(J,void 0,void 0,function(){return r(this,function(ae){return[2,Y.ys]})})}),w=Math.min(b.size,32),x=Math.ceil(b.size/w),_=y.batch(w),$=b.batch(w),[4,_.iterator()];case 1:return N=re.sent(),[4,$.iterator()];case 2:k=re.sent(),A=[],O=[],q=0,re.label=3;case 3:return q<x?[4,N.next()]:[3,7];case 4:return R=re.sent(),T=this.trainingModel.predict(R.value),S=T.argMax(1),A.push(S),[4,k.next()];case 5:F=re.sent(),M=F.value.argMax(1),O.push(M),R.value.dispose(),T.dispose(),F.value.dispose(),re.label=6;case 6:return q++,[3,3];case 7:if(L=s.concat(O),z=s.concat(A),x!==1)for(q=0;q<A.length;q++)A[q].dispose(),O[q].dispose();return[2,{reference:L,predictions:z}]}})})},v.prototype.setSeed=function(y){this.seed=l(y)},v})(o.CustomMobileNet);e.TeachableMobileNet=p;function f(g,v){return n(this,void 0,void 0,function(){var y;return r(this,function(b){switch(b.label){case 0:return[4,o.loadTruncatedMobileNet(v)];case 1:return y=b.sent(),[2,new p(y,g)]}})})}e.createTeachable=f})),aK=Te({boundClass:()=>iK,boundMethod:()=>EN,default:()=>S_e});function mx(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?mx=function(n){return typeof n}:mx=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},mx(e)}function EN(e,t,n){var r=n.value;if(typeof r!="function")throw new TypeError("@boundMethod decorator can only be applied to methods not: ".concat(mx(r)));var s=!1;return{configurable:!0,get:function(){if(s||this===e.prototype||this.hasOwnProperty(t)||typeof r!="function")return r;var i=r.bind(this);return s=!0,Object.defineProperty(this,t,{configurable:!0,get:function(){return i},set:function(l){r=l,delete this[t]}}),s=!1,i},set:function(i){r=i}}}function iK(e){var t;return typeof Reflect<"u"&&typeof Reflect.ownKeys=="function"?t=Reflect.ownKeys(e.prototype):(t=Object.getOwnPropertyNames(e.prototype),typeof Object.getOwnPropertySymbols=="function"&&(t=t.concat(Object.getOwnPropertySymbols(e.prototype)))),t.forEach(function(n){if(n!=="constructor"){var r=Object.getOwnPropertyDescriptor(e.prototype,n);typeof r.value=="function"&&Object.defineProperty(e.prototype,n,EN(e,n,r))}}),e}function S_e(){return arguments.length===1?iK.apply(void 0,arguments):EN.apply(void 0,arguments)}var oK=m((()=>{})),I_e=Ye((e=>{var t=e&&e.__decorate||function(u,c,h,d){var p=arguments.length,f=p<3?c:d===null?d=Object.getOwnPropertyDescriptor(c,h):d,g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")f=Reflect.decorate(u,c,h,d);else for(var v=u.length-1;v>=0;v--)(g=u[v])&&(f=(p<3?g(f):p>3?g(c,h,f):g(c,h))||f);return p>3&&f&&Object.defineProperty(c,h,f),f},n=e&&e.__awaiter||function(u,c,h,d){function p(f){return f instanceof h?f:new h(function(g){g(f)})}return new(h||(h=Promise))(function(f,g){function v(w){try{b(d.next(w))}catch(x){g(x)}}function y(w){try{b(d.throw(w))}catch(x){g(x)}}function b(w){w.done?f(w.value):p(w.value).then(v,y)}b((d=d.apply(u,c||[])).next())})},r=e&&e.__generator||function(u,c){var h={label:0,sent:function(){if(f[0]&1)throw f[1];return f[1]},trys:[],ops:[]},d,p,f,g={next:v(0),throw:v(1),return:v(2)};return typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function v(b){return function(w){return y([b,w])}}function y(b){if(d)throw new TypeError("Generator is already executing.");for(;h;)try{if(d=1,p&&(f=b[0]&2?p.return:b[0]?p.throw||((f=p.return)&&f.call(p),0):p.next)&&!(f=f.call(p,b[1])).done)return f;switch(p=0,f&&(b=[b[0]&2,f.value]),b[0]){case 0:case 1:f=b;break;case 4:return h.label++,{value:b[1],done:!1};case 5:h.label++,p=b[1],b=[0];continue;case 7:b=h.ops.pop(),h.trys.pop();continue;default:if(f=h.trys,!(f=f.length>0&&f[f.length-1])&&(b[0]===6||b[0]===2)){h=0;continue}if(b[0]===3&&(!f||b[1]>f[0]&&b[1]<f[3])){h.label=b[1];break}if(b[0]===6&&h.label<f[1]){h.label=f[1],f=b;break}if(f&&h.label<f[2]){h.label=f[2],h.ops.push(b);break}f[2]&&h.ops.pop(),h.trys.pop();continue}b=c.call(u,h)}catch(w){b=[6,w],p=0}finally{d=f=0}if(b[0]&5)throw b[1];return{value:b[0]?b[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0}),e.Webcam=void 0;var s=(oK(),or(aK)),a=nK(),i={facingMode:"user",frameRate:24},o=function(u){return u.facingMode=u.facingMode||i.facingMode,u.frameRate=u.frameRate||i.frameRate,u.aspectRatio=u.aspectRatio||i.aspectRatio,u},l=(function(){function u(c,h,d){c===void 0&&(c=400),h===void 0&&(h=400),d===void 0&&(d=!1),this.width=c,this.height=h,this.flip=d}return u.prototype.getWebcam=function(c){if(c===void 0&&(c={}),!window.navigator.mediaDevices||!window.navigator.mediaDevices.getUserMedia)return Promise.reject("Your browser does not support WebRTC. Please try another one.");c.width=640;var h=o(c),d=document.createElement("video");return window.navigator.mediaDevices.getUserMedia({video:h}).then(function(p){return d.srcObject=p,d.addEventListener("loadedmetadata",function(f){var g=d.videoWidth,v=d.videoHeight;d.width=g,d.height=v}),d},function(){return Promise.reject("Could not open your camera. You may have denied access.")})},u.prototype.setup=function(c){return c===void 0&&(c={}),n(this,void 0,void 0,function(){var h;return r(this,function(d){switch(d.label){case 0:return this.webcam?[3,2]:(h=this,[4,this.getWebcam(c)]);case 1:h.webcam=d.sent(),this.canvas||(this.canvas=document.createElement("canvas"),this.canvas.width=this.width,this.canvas.height=this.height),d.label=2;case 2:return[2]}})})},u.prototype.play=function(){return this.webcam.play()},u.prototype.pause=function(){this.webcam.pause()},u.prototype.stop=function(){this.stopStreamedVideo(this.webcam)},u.prototype.update=function(){this.renderCameraToCanvas()},u.prototype.stopStreamedVideo=function(c){c.srcObject.getTracks().forEach(function(h){h.stop()}),c.srcObject=null},u.prototype.renderCameraToCanvas=function(){if(this.canvas&&this.webcam){var c=this.canvas.getContext("2d");if(this.webcam.videoWidth!==0){var h=a.cropTo(this.webcam,this.width,this.flip);c.drawImage(h,0,0)}}},t([s.default],u.prototype,"getWebcam",null),t([s.default],u.prototype,"setup",null),t([s.default],u.prototype,"play",null),t([s.default],u.prototype,"pause",null),t([s.default],u.prototype,"stop",null),t([s.default],u.prototype,"update",null),t([s.default],u.prototype,"stopStreamedVideo",null),t([s.default],u.prototype,"renderCameraToCanvas",null),u})();e.Webcam=l})),N_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=sK();Object.defineProperty(e,"IMAGE_SIZE",{enumerable:!0,get:function(){return t.IMAGE_SIZE}}),Object.defineProperty(e,"CustomMobileNet",{enumerable:!0,get:function(){return t.CustomMobileNet}}),Object.defineProperty(e,"load",{enumerable:!0,get:function(){return t.load}}),Object.defineProperty(e,"loadFromFiles",{enumerable:!0,get:function(){return t.loadFromFiles}}),Object.defineProperty(e,"loadTruncatedMobileNet",{enumerable:!0,get:function(){return t.loadTruncatedMobileNet}});var n=__e();Object.defineProperty(e,"TeachableMobileNet",{enumerable:!0,get:function(){return n.TeachableMobileNet}}),Object.defineProperty(e,"createTeachable",{enumerable:!0,get:function(){return n.createTeachable}});var r=I_e();Object.defineProperty(e,"Webcam",{enumerable:!0,get:function(){return r.Webcam}});var s=rK();Object.defineProperty(e,"version",{enumerable:!0,get:function(){return s.version}})})),C_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],e.NUM_KEYPOINTS=e.partNames.length,e.partIds=e.partNames.reduce(function(n,r,s){return n[r]=s,n},{});var t=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];e.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]],e.connectedPartIndices=t.map(function(n){var r=n[0],s=n[1];return[e.partIds[r],e.partIds[s]]}),e.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]})),lK=Ye((e=>{var t=e&&e.__awaiter||function(T,S,F,M){return new(F||(F=Promise))(function(L,z){function q(Y){try{re(M.next(Y))}catch(ae){z(ae)}}function J(Y){try{re(M.throw(Y))}catch(ae){z(ae)}}function re(Y){Y.done?L(Y.value):new F(function(ae){ae(Y.value)}).then(q,J)}re((M=M.apply(T,S||[])).next())})},n=e&&e.__generator||function(T,S){var F={label:0,sent:function(){if(z[0]&1)throw z[1];return z[1]},trys:[],ops:[]},M,L,z,q={next:J(0),throw:J(1),return:J(2)};return typeof Symbol=="function"&&(q[Symbol.iterator]=function(){return this}),q;function J(Y){return function(ae){return re([Y,ae])}}function re(Y){if(M)throw new TypeError("Generator is already executing.");for(;F;)try{if(M=1,L&&(z=Y[0]&2?L.return:Y[0]?L.throw||((z=L.return)&&z.call(L),0):L.next)&&!(z=z.call(L,Y[1])).done)return z;switch(L=0,z&&(Y=[Y[0]&2,z.value]),Y[0]){case 0:case 1:z=Y;break;case 4:return F.label++,{value:Y[1],done:!1};case 5:F.label++,L=Y[1],Y=[0];continue;case 7:Y=F.ops.pop(),F.trys.pop();continue;default:if(z=F.trys,!(z=z.length>0&&z[z.length-1])&&(Y[0]===6||Y[0]===2)){F=0;continue}if(Y[0]===3&&(!z||Y[1]>z[0]&&Y[1]<z[3])){F.label=Y[1];break}if(Y[0]===6&&F.label<z[1]){F.label=z[1],z=Y;break}if(z&&F.label<z[2]){F.label=z[2],F.ops.push(Y);break}z[2]&&F.ops.pop(),F.trys.pop();continue}Y=S.call(T,F)}catch(ae){Y=[6,ae],L=0}finally{M=z=0}if(Y[0]&5)throw Y[1];return{value:Y[0]?Y[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var r=(C(),or(B1)),s=C_e();function a(T,S,F){return T<F||S<F}function i(T,S){return s.connectedPartIndices.reduce(function(F,M){var L=M[0],z=M[1];return a(T[L].score,T[z].score,S)||F.push([T[L],T[z]]),F},[])}e.getAdjacentKeyPoints=i;var o=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY;function u(T){return T.reduce(function(S,F){var M=S.maxX,L=S.maxY,z=S.minX,q=S.minY,J=F.position,re=J.x,Y=J.y;return{maxX:Math.max(M,re),maxY:Math.max(L,Y),minX:Math.min(z,re),minY:Math.min(q,Y)}},{maxX:o,maxY:o,minX:l,minY:l})}e.getBoundingBox=u;function c(T){var S=u(T),F=S.minX,M=S.minY,L=S.maxX,z=S.maxY;return[{x:F,y:M},{x:L,y:M},{x:L,y:z},{x:F,y:z}]}e.getBoundingBoxPoints=c;function h(T){return t(this,void 0,void 0,function(){return n(this,function(S){return[2,Promise.all(T.map(function(F){return F.buffer()}))]})})}e.toTensorBuffers3D=h;function d(T,S,F,M,L){return M===void 0&&(M=0),L===void 0&&(L=0),{score:T.score,keypoints:T.keypoints.map(function(z){var q=z.score,J=z.part,re=z.position;return{score:q,part:J,position:{x:re.x*F+L,y:re.y*S+M}}})}}e.scalePose=d;function p(T,S,F,M,L){return M===void 0&&(M=0),L===void 0&&(L=0),F===1&&S===1&&M===0&&L===0?T:T.map(function(z){return d(z,S,F,M,L)})}e.scalePoses=p;function f(T,S){return{score:T.score,keypoints:T.keypoints.map(function(F){var M=F.score,L=F.part,z=F.position;return{score:M,part:L,position:{x:S-1-z.x,y:z.y}}})}}e.flipPoseHorizontal=f;function g(T,S){return S<=0?T:T.map(function(F){return f(F,S)})}e.flipPosesHorizontal=g;function v(T,S){return _(T,S)?T:Math.floor(T/S)*S+1}e.toValidInputResolution=v;function y(T){r.util.assert(typeof T=="number"||typeof T=="object",function(){return"Invalid inputResolution "+T+". Should be a number or an object with width and height"}),typeof T=="object"&&(r.util.assert(typeof T.width=="number",function(){return"inputResolution.width has a value of "+T.width+" which is invalid; it must be a number"}),r.util.assert(typeof T.height=="number",function(){return"inputResolution.height has a value of "+T.height+" which is invalid; it must be a number"}))}e.validateInputResolution=y;function b(T,S){return y(T),typeof T=="object"?[v(T.height,S),v(T.width,S)]:[v(T,S),v(T,S)]}e.getValidInputResolutionDimensions=b;var w=[8,16,32];function x(T){r.util.assert(typeof T=="number",function(){return"outputStride is not a number"}),r.util.assert(w.indexOf(T)>=0,function(){return"outputStride of "+T+" is invalid. It must be either 8, 16, or 32"})}e.assertValidOutputStride=x;function _(T,S){return(T-1)%S===0}function $(T,S){r.util.assert(typeof T[0]=="number"&&typeof T[1]=="number",function(){return"both resolution values must be a number but had values "+T}),r.util.assert(_(T[0],S),function(){return"height of "+T[0]+" is invalid for output stride "+(S+".")}),r.util.assert(_(T[1],S),function(){return"width of "+T[1]+" is invalid for output stride "+(S+".")})}e.assertValidResolution=$;function N(T){return T instanceof r.Tensor?[T.shape[0],T.shape[1]]:[T.height,T.width]}e.getInputTensorDimensions=N;function k(T){return T instanceof r.Tensor?T:r.browser.fromPixels(T)}e.toInputTensor=k;function A(T,S,F,M){return r.tidy(function(){var L=k(T);return M?r.image.resizeBilinear(r.reverse(L,1),[S,F]):r.image.resizeBilinear(L,[S,F])})}e.toResizedInputTensor=A;function O(T,S){var F=S[0],M=S[1],L=N(T),z=L[0],q=L[1],J=M/F,re=q/z,Y=[0,0,0,0],ae=Y[0],ne=Y[1],oe=Y[2],ce=Y[3];return re<J?(ae=0,ne=0,oe=Math.round(.5*(J*z-q)),ce=Math.round(.5*(J*z-q))):(ae=Math.round(.5*(1/J*q-z)),ne=Math.round(.5*(1/J*q-z)),oe=0,ce=0),{resized:r.tidy(function(){var ve=k(T);return ve=r.pad3d(ve,[[ae,ne],[oe,ce],[0,0]]),r.image.resizeBilinear(ve,[F,M])}),padding:{top:ae,left:oe,right:ce,bottom:ne}}}e.padAndResizeTo=O;function R(T,S,F,M,L){var z=S[0],q=S[1],J=F[0],re=F[1],Y=p(T,(z+M.top+M.bottom)/J,(q+M.left+M.right)/re,-M.top,-M.left);return L?g(Y,q):Y}e.scaleAndFlipPoses=R})),uK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t="0.8.6";e.version=t})),cK=Ye((e=>{var t=e&&e.__awaiter||function(b,w,x,_){function $(N){return N instanceof x?N:new x(function(k){k(N)})}return new(x||(x=Promise))(function(N,k){function A(T){try{R(_.next(T))}catch(S){k(S)}}function O(T){try{R(_.throw(T))}catch(S){k(S)}}function R(T){T.done?N(T.value):$(T.value).then(A,O)}R((_=_.apply(b,w||[])).next())})},n=e&&e.__generator||function(b,w){var x={label:0,sent:function(){if(N[0]&1)throw N[1];return N[1]},trys:[],ops:[]},_,$,N,k={next:A(0),throw:A(1),return:A(2)};return typeof Symbol=="function"&&(k[Symbol.iterator]=function(){return this}),k;function A(R){return function(T){return O([R,T])}}function O(R){if(_)throw new TypeError("Generator is already executing.");for(;x;)try{if(_=1,$&&(N=R[0]&2?$.return:R[0]?$.throw||((N=$.return)&&N.call($),0):$.next)&&!(N=N.call($,R[1])).done)return N;switch($=0,N&&(R=[R[0]&2,N.value]),R[0]){case 0:case 1:N=R;break;case 4:return x.label++,{value:R[1],done:!1};case 5:x.label++,$=R[1],R=[0];continue;case 7:R=x.ops.pop(),x.trys.pop();continue;default:if(N=x.trys,!(N=N.length>0&&N[N.length-1])&&(R[0]===6||R[0]===2)){x=0;continue}if(R[0]===3&&(!N||R[1]>N[0]&&R[1]<N[3])){x.label=R[1];break}if(R[0]===6&&x.label<N[1]){x.label=N[1],N=R;break}if(N&&x.label<N[2]){x.label=N[2],x.ops.push(R);break}N[2]&&x.ops.pop(),x.trys.pop();continue}R=w.call(b,x)}catch(T){R=[6,T],$=0}finally{_=N=0}if(R[0]&5)throw R[1];return{value:R[0]?R[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var r=(ka(),or(gs)),s=(_N(),or(y5)),a=lK(),i=uK(),o=(_N(),or(y5)),l=3,u=function(b){return b.packageVersion=b.packageVersion||i.version,b.packageName="@teachablemachine/pose",b.timeStamp=b.timeStamp||new Date().toISOString(),b.userMetadata=b.userMetadata||{},b.modelName=b.modelName||"untitled",b.labels=b.labels||[],b.modelSettings=d(b.modelSettings),b},c=function(b){return!!b&&Array.isArray(b.labels)},h=function(b){return t(void 0,void 0,void 0,function(){var w,x;return n(this,function(_){switch(_.label){case 0:return typeof b!="string"?[3,3]:[4,fetch(b)];case 1:return x=_.sent(),[4,x.json()];case 2:return w=_.sent(),[3,4];case 3:if(c(b))w=b;else throw new Error("Invalid Metadata provided");_.label=4;case 4:return[2,u(w)]}})})},d=function(b){return b===void 0&&(b={}),b.posenet||(b.posenet={}),b.posenet.architecture=b.posenet.architecture||"MobileNetV1",b.posenet.outputStride=b.posenet.outputStride||16,b.posenet.inputResolution=b.posenet.inputResolution||257,b.posenet.multiplier=b.posenet.multiplier||.75,b};function p(b,w,x){return x===void 0&&(x=3),t(this,void 0,void 0,function(){var _;return n(this,function($){switch($.label){case 0:return[4,w.data()];case 1:return _=$.sent(),[2,r.tidy(function(){x=Math.min(x,_.length);for(var N=[],k=0;k<_.length;k++)N.push({value:_[k],index:k});N.sort(function(T,S){return S.value-T.value});for(var A=new Float32Array(x),O=new Int32Array(x),k=0;k<x;k++)A[k]=N[k].value,O[k]=N[k].index;for(var R=[],k=0;k<O.length;k++)R.push({className:b[O[k]],probability:A[k]});return R})]}})})}e.getTopKClasses=p;var f=(function(){function b(w,x,_){this.model=w,this.posenetModel=x,this._metadata=u(_)}return b.prototype.getMetadata=function(){return this._metadata},b.prototype.getClassLabels=function(){return this._metadata.labels},b.prototype.getTotalClasses=function(){return this.model.output.shape[1]},b.prototype.estimatePose=function(w,x){return x===void 0&&(x=!1),t(this,void 0,void 0,function(){var _,$,N,k,A,O,R,T;return n(this,function(S){switch(S.label){case 0:return[4,this.estimatePoseOutputs(w)];case 1:return _=S.sent(),$=_.heatmapScores,N=_.offsets,k=_.displacementFwd,A=_.displacementBwd,O=_.padding,R=this.poseOutputsToAray($,N,k,A),[4,this.poseOutputsToKeypoints(w,$,N,k,A,O,x)];case 2:return T=S.sent(),[2,{pose:T,posenetOutput:R}]}})})},b.prototype.estimatePoseOutputs=function(w){return t(this,void 0,void 0,function(){var x,_,$,N,k,A,O,R,T;return n(this,function(S){switch(S.label){case 0:return x=this.posenetModel.inputResolution,_=a.padAndResizeTo(w,x),$=_.resized,N=_.padding,[4,this.posenetModel.baseModel.predict($)];case 1:return k=S.sent(),A=k.heatmapScores,O=k.offsets,R=k.displacementFwd,T=k.displacementBwd,$.dispose(),[2,{heatmapScores:A,offsets:O,displacementFwd:R,displacementBwd:T,padding:N}]}})})},b.prototype.poseOutputsToAray=function(w,x,_,$){var N=r.concat([w,x],2),k=N.dataSync();return N.dispose(),k},b.prototype.poseOutputsToKeypoints=function(w,x,_,$,N,k,A){return A===void 0&&(A=!1),t(this,void 0,void 0,function(){var O,R,T,S,F,M,L,z,q,J,re,Y,ae;return n(this,function(ne){switch(ne.label){case 0:return O={maxDetections:l,scoreThreshold:.5,nmsRadius:20},R=a.getInputTensorDimensions(w),T=R[0],S=R[1],F=this.posenetModel.baseModel.outputStride,M=this.posenetModel.inputResolution,[4,a.toTensorBuffers3D([x,_,$,N])];case 1:return L=ne.sent(),z=L[0],q=L[1],J=L[2],re=L[3],[4,o.decodeMultiplePoses(z,q,J,re,F,O.maxDetections,O.scoreThreshold,O.nmsRadius)];case 2:return Y=ne.sent(),ae=a.scaleAndFlipPoses(Y,[T,S],M,k,A),x.dispose(),_.dispose(),$.dispose(),N.dispose(),[2,ae[0]]}})})},b.prototype.predict=function(w){return t(this,void 0,void 0,function(){var x,_,$,N,k;return n(this,function(A){switch(A.label){case 0:return x=r.tensor([w]),_=this.model.predict(x),[4,_.data()];case 1:for($=A.sent(),N=[],k=0;k<$.length;k++)N.push({className:this._metadata.labels[k],probability:$[k]});return x.dispose(),_.dispose(),[2,N]}})})},b.prototype.predictTopK=function(w,x){return x===void 0&&(x=l),t(this,void 0,void 0,function(){var _,$,N;return n(this,function(k){switch(k.label){case 0:return _=r.tensor([w]),$=this.model.predict(_),[4,p(this._metadata.labels,$,x)];case 1:return N=k.sent(),_.dispose(),$.dispose(),[2,N]}})})},b.prototype.dispose=function(){this.posenetModel.dispose()},b})();e.CustomPoseNet=f;function g(b){return b===void 0&&(b={}),t(this,void 0,void 0,function(){var w;return n(this,function(x){switch(x.label){case 0:return b=d(b),[4,s.load({architecture:b.posenet.architecture,outputStride:b.posenet.outputStride,inputResolution:b.posenet.inputResolution,multiplier:b.posenet.multiplier})];case 1:return w=x.sent(),[2,w]}})})}e.loadPoseNet=g;function v(b,w){return t(this,void 0,void 0,function(){var x,_,$,N;return n(this,function(k){switch(k.label){case 0:return[4,r.loadLayersModel(b)];case 1:return x=k.sent(),w?[4,h(w)]:[3,3];case 2:return $=k.sent(),[3,4];case 3:$=null,k.label=4;case 4:return _=$,[4,g(_.modelSettings)];case 5:return N=k.sent(),[2,new f(x,N,_)]}})})}e.load=v;function y(b,w,x){return t(this,void 0,void 0,function(){var _,$,N,k,A;return n(this,function(O){switch(O.label){case 0:return[4,r.loadLayersModel(r.io.browserFiles([b,w]))];case 1:return _=O.sent(),[4,new Response(x).json()];case 2:return $=O.sent(),x?[4,h($)]:[3,4];case 3:return k=O.sent(),[3,5];case 4:k=null,O.label=5;case 5:return N=k,[4,g(N.modelSettings)];case 6:return A=O.sent(),[2,new f(_,A,N)]}})})}e.loadFromFiles=y})),$_e=Ye((e=>{var t=e&&e.__extends||(function(){var p=function(f,g){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,y){v.__proto__=y}||function(v,y){for(var b in y)y.hasOwnProperty(b)&&(v[b]=y[b])},p(f,g)};return function(f,g){p(f,g);function v(){this.constructor=f}f.prototype=g===null?Object.create(g):(v.prototype=g.prototype,new v)}})(),n=e&&e.__awaiter||function(p,f,g,v){function y(b){return b instanceof g?b:new g(function(w){w(b)})}return new(g||(g=Promise))(function(b,w){function x(N){try{$(v.next(N))}catch(k){w(k)}}function _(N){try{$(v.throw(N))}catch(k){w(k)}}function $(N){N.done?b(N.value):y(N.value).then(x,_)}$((v=v.apply(p,f||[])).next())})},r=e&&e.__generator||function(p,f){var g={label:0,sent:function(){if(b[0]&1)throw b[1];return b[1]},trys:[],ops:[]},v,y,b,w={next:x(0),throw:x(1),return:x(2)};return typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function x($){return function(N){return _([$,N])}}function _($){if(v)throw new TypeError("Generator is already executing.");for(;g;)try{if(v=1,y&&(b=$[0]&2?y.return:$[0]?y.throw||((b=y.return)&&b.call(y),0):y.next)&&!(b=b.call(y,$[1])).done)return b;switch(y=0,b&&($=[$[0]&2,b.value]),$[0]){case 0:case 1:b=$;break;case 4:return g.label++,{value:$[1],done:!1};case 5:g.label++,y=$[1],$=[0];continue;case 7:$=g.ops.pop(),g.trys.pop();continue;default:if(b=g.trys,!(b=b.length>0&&b[b.length-1])&&($[0]===6||$[0]===2)){g=0;continue}if($[0]===3&&(!b||$[1]>b[0]&&$[1]<b[3])){g.label=$[1];break}if($[0]===6&&g.label<b[1]){g.label=b[1],b=$;break}if(b&&g.label<b[2]){g.label=b[2],g.ops.push($);break}b[2]&&g.ops.pop(),g.trys.pop();continue}$=f.call(p,g)}catch(N){$=[6,N],y=0}finally{v=b=0}if($[0]&5)throw $[1];return{value:$[0]?$[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var s=(ka(),or(gs)),a=(ka(),or(gs)),i=cK(),o=kp(),l=.15;function u(p,f){var g=new Array(f).fill(0);return g[p]=1,g}function c(p,f){for(var g,v=p.length,y=p.slice(),b=v-1;b>0;b-=1){var w=void 0;f?w=Math.floor(f()*(b+1)):w=Math.floor(Math.random()*(b+1)),g=[y[w],y[b]],y[b]=g[0],y[w]=g[1]}return y}var h=(function(p){t(f,p);function f(g,v,y){var b=p.call(this,g,v,y)||this;return b.model=g,b.posenetModel=v,b.examples=[],b}return Object.defineProperty(f.prototype,"isTrained",{get:function(){return!!this.model&&this.model.layers&&this.model.layers.length>2},enumerable:!0,configurable:!0}),Object.defineProperty(f.prototype,"isPrepared",{get:function(){return!!this.trainDataset},enumerable:!0,configurable:!0}),Object.defineProperty(f.prototype,"numClasses",{get:function(){return this._metadata.labels.length},enumerable:!0,configurable:!0}),f.prototype.addExample=function(g,v){return n(this,void 0,void 0,function(){return r(this,function(y){return this.examples[g].push(v),[2]})})},f.prototype.predict=function(g){return n(this,void 0,void 0,function(){return r(this,function(v){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,p.prototype.predict.call(this,g)]})})},f.prototype.predictTopK=function(g,v){return v===void 0&&(v=3),n(this,void 0,void 0,function(){return r(this,function(y){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,p.prototype.predictTopK.call(this,g,v)]})})},f.prototype.prepare=function(){for(var g in this.examples)if(g.length===0)throw new Error("Add some examples before training");var v=this.convertToTfDataset();this.trainDataset=v.trainDataset,this.validationDataset=v.validationDataset},f.prototype.convertToTfDataset=function(){for(var g=0;g<this.examples.length;g++)this.examples[g]=c(this.examples[g],this.seed);for(var v=[],y=[],b=function(k){var A=u(k,w.numClasses),O=w.examples[k].length,R=O-Math.ceil(l*O),T=w.examples[k].slice(0,R).map(function(F){return{data:F,label:A}}),S=w.examples[k].slice(R).map(function(F){return{data:F,label:A}});v=v.concat(T),y=y.concat(S)},w=this,g=0;g<this.examples.length;g++)b(g);v=c(v,this.seed),y=c(y,this.seed);var x=s.data.array(v.map(function(k){return k.data})),_=s.data.array(y.map(function(k){return k.data})),$=s.data.array(v.map(function(k){return k.label})),N=s.data.array(y.map(function(k){return k.label}));return{trainDataset:s.data.zip({xs:x,ys:$}),validationDataset:s.data.zip({xs:_,ys:N})}},f.prototype.save=function(g,v){return n(this,void 0,void 0,function(){return r(this,function(y){return[2,this.model.save(g,v)]})})},f.prototype.train=function(g,v){return v===void 0&&(v={}),n(this,void 0,void 0,function(){var y,b,w,x,_,$,N,k=this;return r(this,function(A){switch(A.label){case 0:if(y=v.onTrainEnd||(function(){}),v.onTrainEnd=function(O){k.__stopTrainingResolve&&(k.__stopTrainingResolve(),k.__stopTrainingResolve=null),y(O)},this.isPrepared||this.prepare(),b=this.getLabels().length,a.util.assert(b===this.numClasses,function(){return"Can not train, has "+b+" labels and "+k.numClasses+" classes"}),w=this.examples[0][1].length,this.seed?x=s.initializers.varianceScaling({seed:3.14}):x=s.initializers.varianceScaling({}),this.model=s.sequential({layers:[s.layers.dense({inputShape:[w],units:g.denseUnits,activation:"relu",kernelInitializer:x,useBias:!0}),s.layers.dropout({rate:.5}),s.layers.dense({units:this.numClasses,kernelInitializer:x,useBias:!1,activation:"softmax"})]}),_=s.train.rmsprop(g.learningRate),this.model.compile({optimizer:_,loss:"categoricalCrossentropy",metrics:["accuracy"]}),!(g.batchSize>0))throw new Error("Batch size is 0 or NaN. Please choose a non-zero fraction");return $=this.trainDataset.batch(g.batchSize),N=this.validationDataset.batch(g.batchSize),[4,this.model.fitDataset($,{epochs:g.epochs,validationData:N,callbacks:v})];case 1:return A.sent(),_.dispose(),[2,this.model]}})})},f.prototype.prepareDataset=function(){for(var g=0;g<this.numClasses;g++)this.examples[g]=[]},f.prototype.stopTraining=function(){var g=this;return new Promise(function(v,y){g.model.stopTraining=!0,g.__stopTrainingResolve=v})},f.prototype.dispose=function(){this.model.dispose(),p.prototype.dispose.call(this)},f.prototype.setLabel=function(g,v){this._metadata.labels[g]=v},f.prototype.setLabels=function(g){this._metadata.labels=g,this.prepareDataset()},f.prototype.getLabel=function(g){return this._metadata.labels[g]},f.prototype.getLabels=function(){return this._metadata.labels},f.prototype.setName=function(g){this._metadata.modelName=g},f.prototype.getName=function(){return this._metadata.modelName},f.prototype.calculateAccuracyPerClass=function(){return n(this,void 0,void 0,function(){var g,v,y,b,w,x,_,$,N,k,L,A,O,R,T,S,F,M,L,z=this;return r(this,function(q){switch(q.label){case 0:return g=this.validationDataset.mapAsync(function(J){return n(z,void 0,void 0,function(){return r(this,function(re){return[2,J.xs]})})}),v=this.validationDataset.mapAsync(function(J){return n(z,void 0,void 0,function(){return r(this,function(re){return[2,J.ys]})})}),y=Math.min(v.size,32),b=Math.ceil(v.size/y),w=g.batch(y),x=v.batch(y),[4,w.iterator()];case 1:return _=q.sent(),[4,x.iterator()];case 2:$=q.sent(),N=[],k=[],L=0,q.label=3;case 3:return L<b?[4,_.next()]:[3,7];case 4:return A=q.sent(),O=this.model.predict(A.value),R=O.argMax(1),N.push(R),[4,$.next()];case 5:T=q.sent(),S=T.value.argMax(1),k.push(S),A.value.dispose(),O.dispose(),T.value.dispose(),q.label=6;case 6:return L++,[3,3];case 7:if(F=s.concat(k),M=s.concat(N),b!==1)for(L=0;L<N.length;L++)N[L].dispose(),k[L].dispose();return[2,{reference:F,predictions:M}]}})})},f.prototype.setSeed=function(g){this.seed=o(g)},f})(i.CustomPoseNet);e.TeachablePoseNet=h;function d(p){return n(this,void 0,void 0,function(){var f;return r(this,function(g){switch(g.label){case 0:return[4,i.loadPoseNet(p.modelSettings)];case 1:return f=g.sent(),[2,new h(s.sequential(),f,p)]}})})}e.createTeachable=d})),hK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=function(){return document.createElement("canvas")};function n(s,a,i){s===void 0&&(s=200),a===void 0&&(a=200),i===void 0&&(i=!1);var o=document.createElement("canvas");if(o.width=s,o.height=a,i){var l=o.getContext("2d");l.translate(s,0),l.scale(-1,1)}return o}e.createCanvas=n;function r(s,a,i,o){i===void 0&&(i=!1),o===void 0&&(o=t());var l=s.width,u=s.height;s instanceof HTMLVideoElement&&(l=s.videoWidth,u=s.videoHeight);var c=a/Math.min(l,u),h=Math.ceil(l*c),d=Math.ceil(u*c),p=h-a,f=d-a;o.width=o.height=a;var g=o.getContext("2d");return g.drawImage(s,~~(p/2)*-1,~~(f/2)*-1,h,d),i&&(g.scale(-1,1),g.drawImage(o,a*-1,0)),o}e.cropTo=r})),k_e=Ye((e=>{var t=e&&e.__decorate||function(u,c,h,d){var p=arguments.length,f=p<3?c:d===null?d=Object.getOwnPropertyDescriptor(c,h):d,g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")f=Reflect.decorate(u,c,h,d);else for(var v=u.length-1;v>=0;v--)(g=u[v])&&(f=(p<3?g(f):p>3?g(c,h,f):g(c,h))||f);return p>3&&f&&Object.defineProperty(c,h,f),f},n=e&&e.__awaiter||function(u,c,h,d){function p(f){return f instanceof h?f:new h(function(g){g(f)})}return new(h||(h=Promise))(function(f,g){function v(w){try{b(d.next(w))}catch(x){g(x)}}function y(w){try{b(d.throw(w))}catch(x){g(x)}}function b(w){w.done?f(w.value):p(w.value).then(v,y)}b((d=d.apply(u,c||[])).next())})},r=e&&e.__generator||function(u,c){var h={label:0,sent:function(){if(f[0]&1)throw f[1];return f[1]},trys:[],ops:[]},d,p,f,g={next:v(0),throw:v(1),return:v(2)};return typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function v(b){return function(w){return y([b,w])}}function y(b){if(d)throw new TypeError("Generator is already executing.");for(;h;)try{if(d=1,p&&(f=b[0]&2?p.return:b[0]?p.throw||((f=p.return)&&f.call(p),0):p.next)&&!(f=f.call(p,b[1])).done)return f;switch(p=0,f&&(b=[b[0]&2,f.value]),b[0]){case 0:case 1:f=b;break;case 4:return h.label++,{value:b[1],done:!1};case 5:h.label++,p=b[1],b=[0];continue;case 7:b=h.ops.pop(),h.trys.pop();continue;default:if(f=h.trys,!(f=f.length>0&&f[f.length-1])&&(b[0]===6||b[0]===2)){h=0;continue}if(b[0]===3&&(!f||b[1]>f[0]&&b[1]<f[3])){h.label=b[1];break}if(b[0]===6&&h.label<f[1]){h.label=f[1],f=b;break}if(f&&h.label<f[2]){h.label=f[2],h.ops.push(b);break}f[2]&&h.ops.pop(),h.trys.pop();continue}b=c.call(u,h)}catch(w){b=[6,w],p=0}finally{d=f=0}if(b[0]&5)throw b[1];return{value:b[0]?b[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var s=(oK(),or(aK)),a=hK(),i={facingMode:"user",frameRate:24},o=function(u){return u.facingMode=u.facingMode||i.facingMode,u.frameRate=u.frameRate||i.frameRate,u.aspectRatio=u.aspectRatio||i.aspectRatio,u},l=(function(){function u(c,h,d){c===void 0&&(c=400),h===void 0&&(h=400),d===void 0&&(d=!1),this.width=c,this.height=h,this.flip=d}return u.prototype.getWebcam=function(c){if(c===void 0&&(c={}),!window.navigator.mediaDevices||!window.navigator.mediaDevices.getUserMedia)return Promise.reject("Your browser does not support WebRTC. Please try another one.");c.width=640;var h=o(c),d=document.createElement("video");return window.navigator.mediaDevices.getUserMedia({video:h}).then(function(p){return d.srcObject=p,d.addEventListener("loadedmetadata",function(f){var g=d.videoWidth,v=d.videoHeight;d.width=g,d.height=v}),d},function(){return Promise.reject("Could not open your camera. You may have denied access.")})},u.prototype.setup=function(c){return c===void 0&&(c={}),n(this,void 0,void 0,function(){var h;return r(this,function(d){switch(d.label){case 0:return this.webcam?[3,2]:(h=this,[4,this.getWebcam(c)]);case 1:h.webcam=d.sent(),this.canvas||(this.canvas=document.createElement("canvas"),this.canvas.width=this.width,this.canvas.height=this.height),d.label=2;case 2:return[2]}})})},u.prototype.play=function(){return this.webcam.play()},u.prototype.pause=function(){this.webcam.pause()},u.prototype.stop=function(){this.stopStreamedVideo(this.webcam)},u.prototype.update=function(){this.renderCameraToCanvas()},u.prototype.stopStreamedVideo=function(c){c.srcObject.getTracks().forEach(function(h){h.stop()}),c.srcObject=null},u.prototype.renderCameraToCanvas=function(){if(this.canvas&&this.webcam){var c=this.canvas.getContext("2d");if(this.webcam.videoWidth!==0){var h=a.cropTo(this.webcam,this.width,this.flip);c.drawImage(h,0,0)}}},t([s.default],u.prototype,"getWebcam",null),t([s.default],u.prototype,"setup",null),t([s.default],u.prototype,"play",null),t([s.default],u.prototype,"pause",null),t([s.default],u.prototype,"stop",null),t([s.default],u.prototype,"update",null),t([s.default],u.prototype,"stopStreamedVideo",null),t([s.default],u.prototype,"renderCameraToCanvas",null),u})();e.Webcam=l})),T_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lK(),n="aqua",r="aqua",s=4,a=2;function i(h,d,p,f,g,v,y){f===void 0&&(f=s),g===void 0&&(g=n),v===void 0&&(v=r),y===void 0&&(y=1);for(var b=0;b<h.length;b++){var w=h[b];if(!(w.score<d)){var x=w.position,_=x.y,$=x.x;o(p,_*y,$*y,f,g,v)}}}e.drawKeypoints=i;function o(h,d,p,f,g,v){h.fillStyle=g,h.strokeStyle=v,h.beginPath(),h.arc(p,d,f,0,2*Math.PI),h.fill(),h.stroke()}e.drawPoint=o;function l(h){return[h.y,h.x]}e.toTuple=l;function u(h,d,p,f,g,v){f===void 0&&(f=a),g===void 0&&(g=r),v===void 0&&(v=1),t.getAdjacentKeyPoints(h,d).forEach(function(y){c(l(y[0].position),l(y[1].position),p,f,g,v)})}e.drawSkeleton=u;function c(h,d,p,f,g,v){var y=h[0],b=h[1],w=d[0],x=d[1];p.beginPath(),p.moveTo(b*v,y*v),p.lineTo(x*v,w*v),p.lineWidth=f,p.strokeStyle=g,p.stroke()}e.drawSegment=c})),E_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cK();e.CustomPoseNet=t.CustomPoseNet,e.load=t.load,e.loadFromFiles=t.loadFromFiles;var n=$_e();e.TeachablePoseNet=n.TeachablePoseNet,e.createTeachable=n.createTeachable;var r=k_e();e.Webcam=r.Webcam;var s=hK();e.createCanvas=s.createCanvas;var a=T_e();e.drawKeypoints=a.drawKeypoints,e.drawSkeleton=a.drawSkeleton,e.drawPoint=a.drawPoint,e.drawSegment=a.drawSegment;var i=uK();e.version=i.version})),dK=Co(N_e(),1),AN=Co(E_e(),1),A_e="@kubohiroya/turbowarp-teachable-machine",R_e="3.5.4",D_e="A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",O_e="Hiroya Kubo <hiroya@cuc.ac.jp>",F_e="MPL-2.0",L_e="https://github.com/kubohiroya/turbowarp-teachable-machine#readme",P_e={type:"git",url:"git+https://github.com/kubohiroya/turbowarp-teachable-machine.git"},M_e={url:"https://github.com/kubohiroya/turbowarp-teachable-machine/issues"},z_e={"./composition":{types:"./dist/types/composition.d.ts",import:"./dist/composition.js"},"./posenet":{types:"./dist/types/posenet.d.ts",import:"./dist/posenet.js"},"./posenet-assets/*":"./dist/posenet/mobilenet-v1-075-stride16/*","./wasm-assets/*":"./dist/wasm/*","./dist/backend-wasm.js":"./dist/backend-wasm.js","./dist/backend-webgpu.js":"./dist/backend-webgpu.js","./runtime":"./dist/runtime.js","./dist/tm.js":"./dist/tm.js","./package.json":"./package.json"},B_e="module",V_e=["dist/","README.md","LICENSE","THIRD_PARTY_NOTICES.md","schemas/","docs/fixed-input-editors.ja.md"],W_e="./dist/tm.js",U_e="./dist/tm.js",G_e={access:"public",registry:"https://registry.npmjs.org/"},H_e="pnpm@11.11.0",j_e={node:">=22.18.0"},q_e={dev:"vite build --watch",typecheck:"tsc --noEmit",build:"pnpm build:extension && pnpm build:composition && pnpm build:runtime && pnpm build:backends && pnpm build:posenet && pnpm build:notices && pnpm build:types","build:extension":"vite build","build:composition":"vite build --config vite.composition.config.ts","build:runtime":"vite build --config vite.runtime.config.ts","build:backends":"vite build --config vite.backend-wasm.config.ts && vite build --config vite.backend-webgpu.config.ts && node scripts/copy-wasm-assets.ts","build:posenet":"vite build --config vite.posenet.config.ts && node scripts/copy-posenet-assets.ts","build:notices":"node scripts/copy-third-party-notices.ts","build:types":"tsc --project tsconfig.build.json","types:composition:check":"tsc --project tsconfig.composition-consumer.json","types:posenet:check":"tsc --project tsconfig.posenet-consumer.json",test:"vitest run",docs:"node scripts/generate-readme.ts","docs:check":"npm run docs && git diff --exit-code -- README.md","docs:pages:check":"node scripts/check-pages.ts","release:consistency:check":"node scripts/check-release-consistency.ts","check:dist":"npm run build && git diff --exit-code -- dist","archive:check":"node scripts/check-github-archive.ts","pack:check":"npm pack --dry-run --ignore-scripts","release:check":"npm publish --dry-run --access public --tag latest",check:"npm run typecheck && npm run test && npm run build && npm run types:composition:check && npm run types:posenet:check && npm run docs:check && npm run docs:pages:check && npm run release:consistency:check && npm run check:dist && npm run archive:check && npm run pack:check",prepack:"npm run build && npm run release:consistency:check"},K_e={"@kubohiroya/turbowarp-camera-source":"0.19.1","@kubohiroya/vite-plugin-turbowarp-extension":"0.6.1","@teachablemachine/image":"0.8.5","@teachablemachine/pose":"0.8.6","@tensorflow-models/posenet":"2.2.2","@tensorflow-models/speech-commands":"0.5.4","@tensorflow/tfjs":"4.22.0","@tensorflow/tfjs-backend-wasm":"4.22.0","@tensorflow/tfjs-backend-webgpu":"4.22.0","@types/node":"^22.20.1",typescript:"^5.9.3",vite:"^8.2.2",vitest:"^4.0.14","@kubohiroya/turbowarp-extension-data-editor":"0.2.1"},X_e=["turbowarp","scratch","extension","pose","image","audio","camera","teachable-machine"],gx={name:A_e,version:R_e,description:D_e,author:O_e,license:F_e,homepage:L_e,repository:P_e,bugs:M_e,exports:z_e,type:B_e,files:V_e,unpkg:W_e,jsdelivr:U_e,publishConfig:G_e,packageManager:H_e,engines:j_e,scripts:q_e,devDependencies:K_e,keywords:X_e},Y_e=class extends Error{code="TM-RUNTIME-ABORTED";constructor(){super("TM runtime model loading was cancelled."),this.name="AbortError"}};function RN(){return new Y_e}function xm(e){if(e?.aborted)throw RN()}function DN(e){return typeof e=="object"&&e!==null}function Z_e(e){return DN(e)&&typeof e.dispose=="function"?e:null}function J_e(e){if(e===void 0)return{};if(!DN(e))throw new TypeError("TM runtime load options must be an object.");const t=e.signal;if(t!==void 0&&(!DN(t)||typeof t.aborted!="boolean"||typeof t.addEventListener!="function"||typeof t.removeEventListener!="function"))throw new TypeError("TM runtime load signal must be an AbortSignal.");const n=e.parallelModelInitialization;if(n!==void 0&&typeof n!="boolean")throw new TypeError("parallelModelInitialization must be a boolean.");return{...t===void 0?{}:{signal:t},...n===void 0?{}:{parallelModelInitialization:n}}}async function ON(e){const t=[...new Set(e.map(Z_e).filter(n=>n!==null))];return(await Promise.allSettled(t.map(n=>Promise.resolve().then(()=>n.dispose())))).flatMap(n=>n.status==="rejected"?[n.reason]:[])}function FN(e,t){const n=[...e,...t];throw n.length===1?n[0]:new AggregateError(n,"TM runtime model loading and cleanup did not complete.")}function Q_e(e,t){return!t?.aborted||e?.name==="AbortError"?[e]:[RN(),e]}async function eSe(e,t,n,r,s){let a,i;try{a=await e.loadClassifier(t,n),xm(s);const o=await e.loadMetadata(r);return xm(s),i=await e.loadPoseNet(o),xm(s),e.createModel(a,i,o)}catch(o){const l=await ON([a,i]);FN(Q_e(o,s),l)}}function LN(e){try{return Promise.resolve(e())}catch(t){return Promise.reject(t)}}async function tSe(e,t,n,r,s){const[a]=await Promise.allSettled([LN(()=>e.loadMetadata(r))]),i=a.status==="fulfilled"?a.value:void 0,o=await Promise.allSettled([LN(()=>e.loadClassifier(t,n)),a.status==="fulfilled"?LN(()=>e.loadPoseNet(i)):Promise.resolve(void 0)]),l=o[0].status==="fulfilled"?o[0].value:void 0,u=o[1].status==="fulfilled"?o[1].value:void 0,c=[...a.status==="rejected"?[a.reason]:[],...o.flatMap(h=>h.status==="rejected"?[h.reason]:[])];if(s?.aborted||c.length>0){const h=await ON([l,u]);FN([...s?.aborted?[RN()]:[],...c],h)}try{return e.createModel(l,u,i)}catch(h){const d=await ON([l,u]);FN([h],d)}}function nSe(e){return async function(n,r,s,a){const i=J_e(a);return xm(i.signal),await e.ready(),xm(i.signal),i.parallelModelInitialization?tSe(e,n,r,s,i.signal):eSe(e,n,r,s,i.signal)}}var rSe=["auto","webgpu","webgl","wasm","cpu"],pK=Object.freeze(["webgpu","webgl","wasm","cpu"]),sSe=Object.freeze({auto:"auto",automatic:"auto",default:"auto",fastest:"auto",自動:"auto",おまかせ:"auto",webgpu:"webgpu",gpu:"webgpu",webgl:"webgl",wasm:"wasm",webassembly:"wasm",simd:"wasm",cpu:"cpu",javascript:"cpu"}),aSe=class extends Error{code="TM-COMPUTE-UNAVAILABLE";mode;attempts;constructor(e,t){const n=t.map(r=>`${r.backend}: ${r.reason}`).join("; ");super(`TM: No compute backend accepted mode "${e}". ${n}`),this.name="ComputeBackendUnavailableError",this.mode=e,this.attempts=Object.freeze([...t])}};function fK(e,t="auto"){const n=String(e??"").trim().toLowerCase();return n===""?t:sSe[n]??t}function iSe(e,t=pK){return Object.freeze(e==="auto"?[...t]:[e,...t.filter(n=>n!==e)])}function oSe(e){const t=e?.message,n=String(t??e??"").trim();return n===""?"activation failed":n}async function lSe(e,t="auto",n=pK){const r=t==="auto"?null:t,s=[];for(const a of iSe(t,n))try{if(!await e.isSupported(a)){s.push({backend:a,reason:"not supported by this browser"});continue}if(await e.prepare(a),!await e.activate(a))throw new Error("TensorFlow.js did not switch to this backend");return await e.verify(a),Object.freeze({mode:t,backend:a,requested:r,fallback:r!==null&&r!==a,attempts:Object.freeze([...s])})}catch(i){s.push({backend:a,reason:oSe(i)})}throw new aSe(t,s)}function uSe(e){const{tf:t}=e;let n=null,r=Promise.resolve(),s=!1;function a(l){return l==="webgpu"?e.hasWebGPU():l==="wasm"?e.hasWebAssembly():!0}const i={isSupported:a,async prepare(l){const u=await e.loadBackend(l);if(!(l!=="wasm"||s)){if(typeof u?.setWasmPaths!="function")throw new Error("the WebAssembly backend bundle did not expose setWasmPaths");u.setWasmPaths(e.wasmAssetBase()),s=!0}},async activate(l){return await t.setBackend(l)?(await t.ready(),t.getBackend()===l):!1},async verify(){const l=t.ones([1,4,4,1]),u=t.ones([3,3,1,1]);let c=null;try{c=t.conv2d(l,u,1,"valid");const h=await c.data();if(h.length!==4||Math.abs(Number(h[0])-9)>.001)throw new Error("the backend returned an incorrect convolution result")}finally{t.dispose([l,u,...c?[c]:[]])}}};function o(l){const u=r.then(l,l);return r=u.catch(()=>{}),u}return Object.freeze({modes:rSe,select(l){const u=fK(l);return o(async()=>(n&&n.mode===u&&t.getBackend()===n.backend||(n=await lSe(i,u)),n))},getSelection:()=>n,getMode:()=>n?.mode??"auto",getBackend:()=>t.getBackend(),isBackendSupported(l){const u=fK(l);return u==="auto"||a(u)}})}var yn=globalThis;if(yn.tf!==void 0&&yn.tf!==gs)throw new Error("TM browser runtime found a different global TensorFlow.js instance.");if(yn.tmPose!==void 0&&yn.tmPose!==AN)throw new Error("TM browser runtime found a different global Teachable Machine Pose instance.");if(yn.tmImage!==void 0&&yn.tmImage!==dK)throw new Error("TM browser runtime found a different global Teachable Machine Image instance.");if(yn.speechCommands!==void 0&&yn.speechCommands!==U5)throw new Error("TM browser runtime found a different global speech-commands instance.");var hd=gx.devDependencies,cSe=`https://cdn.jsdelivr.net/npm/${gx.name}@${gx.version}/dist/`;function hSe(){const e=typeof document>"u"?null:document.currentScript,t=e&&"src"in e?String(e.src??""):"";if(t!=="")try{return new URL("./",t).href}catch{}return cSe}var vx=hSe(),PN=new Map;function mK(e){const t=PN.get(e);if(t)return t;const n=new Promise((r,s)=>{const a=document.createElement("script");a.src=e,a.addEventListener("load",()=>r(),{once:!0}),a.addEventListener("error",()=>{PN.delete(e),s(new Error(`TM: Failed to load compute backend bundle: ${e}`))},{once:!0}),document.head.appendChild(a)});return PN.set(e,n),n}async function dSe(e){return e==="wasm"?(yn.tmBackendWasm||await mK(new URL("backend-wasm.js",vx).href),yn.tmBackendWasm??null):(e==="webgpu"&&(yn.tmBackendWebGPU||await mK(new URL("backend-webgpu.js",vx).href)),null)}var pSe=uSe({tf:gs,loadBackend:dSe,wasmAssetBase:()=>new URL("wasm/",vx).href,hasWebGPU:()=>typeof navigator<"u"&&navigator.gpu!==void 0&&navigator.gpu!==null,hasWebAssembly:()=>typeof WebAssembly=="object"&&typeof WebAssembly.instantiate=="function"});function fSe(e){const t=e?.modelSettings?.posenet??{};return{architecture:t.architecture??"MobileNetV1",outputStride:t.outputStride??16,inputResolution:t.inputResolution??257,multiplier:t.multiplier??.75}}var mSe=nSe({ready:()=>Yx(),loadClassifier:(e,t)=>Tf(uT([e,t])),async loadMetadata(e){const t=await new Response(e).json();if(typeof t!="object"||t===null||!Array.isArray(t.labels))throw new Error("Invalid Metadata provided");return t},loadPoseNet:e=>D5(fSe(e)),createModel:(e,t,n)=>new AN.CustomPoseNet(e,t,n)}),gSe=Object.freeze({...AN,loadFromFiles:mSe}),vSe=Object.freeze({async load(e,t){const n=eK("BROWSER_FFT",void 0,e,t);return await n.ensureModelLoaded(),n}});yn.tf=gs,yn.speechCommands=U5,yn.tmImage=dK,yn.tmPose=gSe,yn.tmAudio=vSe,yn.tmCompute=pSe;var gK=Object.freeze({version:gx.version,tensorflow:hd["@tensorflow/tfjs"],tensorflowBackendWasm:hd["@tensorflow/tfjs-backend-wasm"],tensorflowBackendWebGPU:hd["@tensorflow/tfjs-backend-webgpu"],speechCommands:hd["@tensorflow-models/speech-commands"],teachableMachineImage:hd["@teachablemachine/image"],teachableMachinePose:hd["@teachablemachine/pose"],assetBase:vx});yn[Symbol.for("@kubohiroya/turbowarp-teachable-machine/runtime")]=gK,yn[Symbol.for("@kubohiroya/turbowarp-teachablemachine/runtime")]=gK})();
|
|
5001
|
+
model.`);return r=E0e(t,n),[4,D_(e.modelUrl||r)];case 1:return s=o.sent(),a=new B5(s,t),i=A5(e.inputResolution,a.outputStride),[2,new ux(a,i)]}})})}function D5(e){return e===void 0&&(e=mN),xo(this,void 0,void 0,function(){return wo(this,function(t){return(e=W0e(e)).architecture==="ResNet50"?[2,H0e(e)]:e.architecture==="MobileNetV1"?[2,G0e(e)]:[2,null]})})}var aN,ox,iN,oN,O5,Uu,gm,ud,F5,lN,L5,P5,uN,lx,cN,M5,hN,dN,z5,B5,pN,fN,V5,mN,gN,vN,yN,bN,xN,wN,ux,W5,_N=m((()=>{C(),F_(),aN=function(e,t){return(aN=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)r.hasOwnProperty(s)&&(n[s]=r[s])})(e,t)},ox=function(){return(ox=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var s in t=arguments[n])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)},iN=(function(){function e(t,n){this.model=t,this.outputStride=n;var r=this.model.inputs[0].shape;E(r[1]===-1&&r[2]===-1,function(){return"Input shape ["+r[1]+", "+r[2]+"] must both be equal to or -1"})}return e.prototype.predict=function(t){var n=this;return K(function(){var r=n.preprocessInput(ue(t,"float32")),s=Lt(r,0),a=n.model.predict(s).map(function(o){return Sr(o,[0])}),i=n.nameOutputResults(a);return{heatmapScores:hr(i.heatmap),offsets:i.offsets,displacementFwd:i.displacementFwd,displacementBwd:i.displacementBwd}})},e.prototype.dispose=function(){this.model.dispose()},e})(),oN=(function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return b5(t,e),t.prototype.preprocessInput=function(n){return K(function(){return pe(me(n,127.5),1)})},t.prototype.nameOutputResults=function(n){return{offsets:n[0],heatmap:n[1],displacementFwd:n[2],displacementBwd:n[3]}},t})(iN),O5=(function(){function e(t,n){this.priorityQueue=new Array(t),this.numberOfElements=-1,this.getElementValue=n}return e.prototype.enqueue=function(t){this.priorityQueue[++this.numberOfElements]=t,this.swim(this.numberOfElements)},e.prototype.dequeue=function(){var t=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,t},e.prototype.empty=function(){return this.numberOfElements===-1},e.prototype.size=function(){return this.numberOfElements+1},e.prototype.all=function(){return this.priorityQueue.slice(0,this.numberOfElements+1)},e.prototype.max=function(){return this.priorityQueue[0]},e.prototype.swim=function(t){for(;t>0&&this.less(eN(t),t);)this.exchange(t,eN(t)),t=eN(t)},e.prototype.sink=function(t){for(;2*t<=this.numberOfElements;){var n=2*t;if(n<this.numberOfElements&&this.less(n,n+1)&&n++,!this.less(t,n))break;this.exchange(t,n),t=n}},e.prototype.getValueAt=function(t){return this.getElementValue(this.priorityQueue[t])},e.prototype.less=function(t,n){return this.getValueAt(t)<this.getValueAt(n)},e.prototype.exchange=function(t,n){var r=this.priorityQueue[t];this.priorityQueue[t]=this.priorityQueue[n],this.priorityQueue[n]=r},e})(),Uu=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],gm=Uu.length,ud=Uu.reduce(function(e,t,n){return e[t]=n,e},{}),F5=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]],lN=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]],L5=F5.map(function(e){var t=e[0],n=e[1];return[ud[t],ud[n]]}),P5=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"],uN=lN.map(function(e){var t=e[0],n=e[1];return[ud[t],ud[n]]}),lx=uN.map(function(e){return e[1]}),cN=uN.map(function(e){return e[0]}),M5=1,hN="https://storage.googleapis.com/tfjs-models/savedmodel/posenet/mobilenet/",dN="https://storage.googleapis.com/tfjs-models/savedmodel/posenet/resnet50/",z5=[-123.15,-115.9,-103.06],B5=(function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return b5(t,e),t.prototype.preprocessInput=function(n){return ie(n,z5)},t.prototype.nameOutputResults=function(n){var r=n[0],s=n[1];return{offsets:n[2],heatmap:n[3],displacementFwd:r,displacementBwd:s}},t})(iN),pN=Number.NEGATIVE_INFINITY,fN=Number.POSITIVE_INFINITY,V5=[8,16,32],mN={architecture:"MobileNetV1",outputStride:16,multiplier:.75,inputResolution:257},gN=["MobileNetV1","ResNet50"],vN={MobileNetV1:[8,16,32],ResNet50:[32,16]},yN={MobileNetV1:[.5,.75,1],ResNet50:[1]},bN=[1,2,4],xN={flipHorizontal:!1},wN={flipHorizontal:!1,maxDetections:5,scoreThreshold:.5,nmsRadius:20},ux=(function(){function e(t,n){z0e(t.outputStride),B0e(n,t.outputStride),this.baseModel=t,this.inputResolution=n}return e.prototype.estimateMultiplePoses=function(t,n){return n===void 0&&(n=wN),xo(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d,p,f,g,v,y,b,w,x,_,$,N;return wo(this,function(k){switch(k.label){case 0:return r=ox({},wN,n),U0e(n),s=this.baseModel.outputStride,a=this.inputResolution,i=rN(t),o=i[0],l=i[1],u=R5(t,a),c=u.resized,h=u.padding,d=this.baseModel.predict(c),p=d.heatmapScores,f=d.offsets,g=d.displacementFwd,v=d.displacementBwd,[4,F0e([p,f,g,v])];case 1:return y=k.sent(),b=y[0],w=y[1],x=y[2],_=y[3],[4,C5(b,w,x,_,s,r.maxDetections,r.scoreThreshold,r.nmsRadius)];case 2:return $=k.sent(),N=sN($,[o,l],a,h,r.flipHorizontal),p.dispose(),f.dispose(),g.dispose(),v.dispose(),c.dispose(),[2,N]}})})},e.prototype.estimateSinglePose=function(t,n){return n===void 0&&(n=xN),xo(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d,p,f,g,v,y,b;return wo(this,function(w){switch(w.label){case 0:return r=ox({},xN,n),s=this.baseModel.outputStride,a=this.inputResolution,i=rN(t),o=i[0],l=i[1],u=R5(t,a),c=u.resized,h=u.padding,d=this.baseModel.predict(c),p=d.heatmapScores,f=d.offsets,g=d.displacementFwd,v=d.displacementBwd,[4,$5(p,f,s)];case 1:return y=w.sent(),b=sN([y],[o,l],a,h,r.flipHorizontal),p.dispose(),f.dispose(),g.dispose(),v.dispose(),c.dispose(),[2,b[0]]}})})},e.prototype.estimatePoses=function(t,n){return xo(this,void 0,void 0,function(){return wo(this,function(r){switch(r.label){case 0:return n.decodingMethod!=="single-person"?[3,2]:[4,this.estimateSinglePose(t,n)];case 1:return[2,[r.sent()]];case 2:return[2,this.estimateMultiplePoses(t,n)]}})})},e.prototype.dispose=function(){this.baseModel.dispose()},e})(),W5="2.2.2"}));ka(),_N();var U5=Te({BACKGROUND_NOISE_TAG:()=>px,Dataset:()=>CN,UNKNOWN_TAG:()=>l_e,create:()=>eK,deleteSavedTransferModel:()=>d_e,getMaxIntensityFrameIndex:()=>J5,listSavedTransferModels:()=>h_e,spectrogram2IntensityCurve:()=>Z5,utils:()=>p_e,version:()=>$N});C(),d$(),UO(),m_();var G5=function(e,t){return(G5=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)r.hasOwnProperty(s)&&(n[s]=r[s])})(e,t)};function j0e(e,t){function n(){this.constructor=e}G5(e,t),e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var SN=function(){return(SN=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var s in t=arguments[n])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function wt(e,t,n,r){return new(n||(n=Promise))(function(s,a){function i(u){try{l(r.next(u))}catch(c){a(c)}}function o(u){try{l(r.throw(u))}catch(c){a(c)}}function l(u){var c;u.done?s(u.value):(c=u.value,c instanceof n?c:new n(function(h){h(c)})).then(i,o)}l((r=r.apply(e,t||[])).next())})}function _t(e,t){var n,r,s,a,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(l){return function(u){return(function(c){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(s=2&c[0]?r.return:c[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,c[1])).done)return s;switch(r=0,s&&(c=[2&c[0],s.value]),c[0]){case 0:case 1:s=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,r=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(s=(s=i.trys).length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){i=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){i.label=c[1];break}if(c[0]===6&&i.label<s[1]){i.label=s[1],s=c;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(c);break}s[2]&&i.ops.pop(),i.trys.pop();continue}c=t.call(e,i)}catch(h){c=[6,h],r=0}finally{n=s=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}})([l,u])}}}function ir(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function IN(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r,s,a=n.call(e),i=[];try{for(;(t===void 0||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(o){s={error:o}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(s)throw s.error}}return i}function vm(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(IN(arguments[t]));return e}function q0e(e){return wt(this,void 0,void 0,function(){var t,n,r,s,a,i,o;return _t(this,function(l){switch(l.label){case 0:return t="http://",n="https://",r="file://",e.indexOf(t)!==0&&e.indexOf(n)!==0?[3,3]:[4,fetch(e)];case 1:return[4,l.sent().json()];case 2:return[2,l.sent()];case 3:return e.indexOf(r)!==0?[3,5]:(s=Bl(),a=h$(s.readFile),o=(i=JSON).parse,[4,a(e.slice(r.length),{encoding:"utf-8"})]);case 4:return[2,o.apply(i,[l.sent()])];case 5:throw new Error("Unsupported URL scheme in metadata URL: "+e+". Supported schemes are: http://, https://, and (node.js-only) file://")}})})}var cx=null;function cd(e){return cx??=Zc().epsilon(),K(function(){var t=da(e),n=t.mean,r=t.variance;return me(pe(e,n),ie(Ut(r),cx))})}function H5(e){if(e.length<2)throw new Error("Cannot normalize a Float32Array with fewer than 2 elements.");return cx??=Zc().epsilon(),K(function(){var t=da(Mt(e)),n=t.mean,r=t.variance,s=n.arraySync(),a=Math.sqrt(r.arraySync()),i=Array.from(e).map(function(o){return(o-s)/(a+cx)});return new Float32Array(i)})}function K0e(){return window.AudioContext||window.webkitAudioContext}function X0e(e){return wt(this,void 0,void 0,function(){return _t(this,function(t){return[2,navigator.mediaDevices.getUserMedia({audio:e==null||e,video:!1})]})})}function Y0e(e,t){var n=new(window.AudioContext||window.webkitAudioContext),r=n.createBuffer(1,e.data.length,e.sampleRateHz);r.getChannelData(0).set(e.data);var s=n.createBufferSource();s.buffer=r,s.connect(n.destination),s.start(),s.onended=function(){t?.()}}var NN=(function(){function e(t){var n=this;if(t==null)throw new Error("Required configuration object is missing for BrowserFftFeatureExtractor constructor");if(t.spectrogramCallback==null)throw new Error("spectrogramCallback cannot be null or undefined");if(!(t.numFramesPerSpectrogram>0))throw new Error("Invalid value in numFramesPerSpectrogram: "+t.numFramesPerSpectrogram);if(t.suppressionTimeMillis<0)throw new Error("Expected suppressionTimeMillis to be >= 0, but got "+t.suppressionTimeMillis);if(this.suppressionTimeMillis=t.suppressionTimeMillis,this.spectrogramCallback=t.spectrogramCallback,this.numFrames=t.numFramesPerSpectrogram,this.sampleRateHz=t.sampleRateHz||44100,this.fftSize=t.fftSize||1024,this.frameDurationMillis=this.fftSize/this.sampleRateHz*1e3,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.overlapFactor=t.overlapFactor,this.includeRawAudio=t.includeRawAudio,E(this.overlapFactor>=0&&this.overlapFactor<1,function(){return"Expected overlapFactor to be >= 0 and < 1, but got "+n.overlapFactor}),this.columnTruncateLength>this.fftSize)throw new Error("columnTruncateLength "+this.columnTruncateLength+" exceeds fftSize ("+this.fftSize+").");this.audioContextConstructor=K0e()}return e.prototype.start=function(t){return wt(this,void 0,void 0,function(){var n,r,s;return _t(this,function(a){switch(a.label){case 0:if(this.frameIntervalTask!=null)throw new Error("Cannot start already-started BrowserFftFeatureExtractor");return n=this,[4,X0e(t)];case 1:return n.stream=a.sent(),this.audioContext=new this.audioContextConstructor({sampleRate:this.sampleRateHz}),r=this.audioContext.createMediaStreamSource(this.stream),this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2*this.fftSize,this.analyser.smoothingTimeConstant=0,r.connect(this.analyser),this.freqDataQueue=[],this.freqData=new Float32Array(this.fftSize),this.includeRawAudio&&(this.timeDataQueue=[],this.timeData=new Float32Array(this.fftSize)),s=Math.max(1,Math.round(this.numFrames*(1-this.overlapFactor))),this.tracker=new Z0e(s,Math.round(this.suppressionTimeMillis/this.frameDurationMillis)),this.frameIntervalTask=setInterval(this.onAudioFrame.bind(this),this.fftSize/this.sampleRateHz*1e3),[2]}})})},e.prototype.onAudioFrame=function(){return wt(this,void 0,void 0,function(){var t,n,r,s;return _t(this,function(a){switch(a.label){case 0:return this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0?[2]:(this.freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength)),this.includeRawAudio&&(this.analyser.getFloatTimeDomainData(this.timeData),this.timeDataQueue.push(this.timeData.slice())),this.freqDataQueue.length>this.numFrames&&this.freqDataQueue.shift(),this.tracker.tick()?(t=j5(this.freqDataQueue),n=q5(t,[1,this.numFrames,this.columnTruncateLength,1]),r=void 0,this.includeRawAudio&&(s=j5(this.timeDataQueue),r=q5(s,[1,this.numFrames*this.fftSize])),[4,this.spectrogramCallback(n,r)]):[3,2]);case 1:a.sent()&&this.tracker.suppress(),ke([n,r]),a.label=2;case 2:return[2]}})})},e.prototype.stop=function(){return wt(this,void 0,void 0,function(){return _t(this,function(t){if(this.frameIntervalTask==null)throw new Error("Cannot stop because there is no ongoing streaming activity.");return clearInterval(this.frameIntervalTask),this.frameIntervalTask=null,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop(),[2]})})},e.prototype.setConfig=function(t){throw new Error("setConfig() is not implemented for BrowserFftFeatureExtractor.")},e.prototype.getFeatures=function(){throw new Error("getFeatures() is not implemented for BrowserFftFeatureExtractor. Use the spectrogramCallback field of the constructor config instead.")},e})();function j5(e){var t=e[0].length,n=new Float32Array(e.length*t);return e.forEach(function(r,s){return n.set(r,s*t)}),n}function q5(e,t){var n=new Float32Array(te(t));return n.set(e,n.length-e.length),Vn(n,t)}var Z0e=(function(){function e(t,n){var r=this;this.period=t,this.suppressionTime=n??0,this.counter=0,E(this.period>0,function(){return"Expected period to be positive, but got "+r.period})}return e.prototype.tick=function(){return this.counter++,this.counter%this.period==0&&(this.suppressionOnset==null||this.counter-this.suppressionOnset>this.suppressionTime)},e.prototype.suppress=function(){this.suppressionOnset=this.counter},e})();function hx(e){var t=0;e.forEach(function(s){t+=s.byteLength});var n=new Uint8Array(t),r=0;return e.forEach(function(s){n.set(new Uint8Array(s),r),r+=s.byteLength}),n.buffer}function K5(e){var t=0;e.forEach(function(s){return t+=s.length});var n=new Float32Array(t),r=0;return e.forEach(function(s){n.set(s,r),r+=s.length}),n}function X5(e){if(e==null)throw new Error("Received null or undefind string");for(var t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length),r=0;r<t.length;++r)n[r]=t.charCodeAt(r);return n.buffer}function Y5(e){if(e==null)throw new Error("Received null or undefind buffer");var t=new Uint8Array(e);return decodeURIComponent(escape(String.fromCharCode.apply(String,vm(t))))}function J0e(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}function Q0e(e,t){return Math.floor((t-e)*Math.random())+e}function e_e(e,t,n){return E(n>0&&n<1,function(){return"validationSplit is expected to be >0 and <1, but got "+n}),K(function(){for(var r=zr(t,-1).dataSync(),s=[],a=0;a<r.length;++a){var i=r[a];s[i]??(s[i]=[]),s[i].push(a)}var o=s.length,l=[],u=[];for(s.map(function(p){return $o(p)}),a=0;a<o;++a)for(var c=s[a],h=Math.round(c.length*(1-n)),d=0;d<c.length;++d)d<h?l.push(c[d]):u.push(c[d]);return{trainXs:Gr(e,l),trainYs:Gr(t,l),valXs:Gr(e,u),valYs:Gr(t,u)}})}function t_e(e,t,n){var r,s,a,i,o,l,u,c;E(n>0&&n<1,function(){return"validationSplit is expected to be >0 and <1, but got "+n});for(var h=!Array.isArray(e[0]),d=t,p=[],f=0;f<d.length;++f){var g=d[f];p[g]??(p[g]=[]),p[g].push(f)}var v=p.length,y=[],b=[];for(p.map(function(J){return $o(J)}),f=0;f<v;++f)for(var w=p[f],x=Math.round(w.length*(1-n)),_=0;_<w.length;++_)_<x?y.push(w[_]):b.push(w[_]);if(h){var $=[],N=[],k=[],A=[];try{for(var O=ir(y),R=O.next();!R.done;R=O.next()){var T=R.value;$.push(e[T]),N.push(t[T])}}catch(J){r={error:J}}finally{try{R&&!R.done&&(s=O.return)&&s.call(O)}finally{if(r)throw r.error}}try{for(var S=ir(b),F=S.next();!F.done;F=S.next())T=F.value,k.push(e[T]),A.push(t[T])}catch(J){a={error:J}}finally{try{F&&!F.done&&(i=S.return)&&i.call(S)}finally{if(a)throw a.error}}return{trainXs:$,trainYs:N,valXs:k,valYs:A}}$=[],N=[],k=[],A=[];try{for(var M=ir(y),L=M.next();!L.done;L=M.next())T=L.value,$.push(e[T]),N.push(t[T])}catch(J){o={error:J}}finally{try{L&&!L.done&&(l=M.return)&&l.call(M)}finally{if(o)throw o.error}}try{for(var z=ir(b),q=z.next();!q.done;q=z.next())T=q.value,k.push(e[T]),A.push(t[T])}catch(J){u={error:J}}finally{try{q&&!q.done&&(c=z.return)&&c.call(z)}finally{if(u)throw u.error}}return{trainXs:$,trainYs:N,valXs:k,valYs:A}}var dx="TFJSSCDS",n_e=1,px="_background_noise_",CN=(function(){function e(t){if(this.examples={},this.label2Ids={},t!=null)for(var n=i_e(t),r=0,s=0;s<n.manifest.length;++s){var a=n.manifest[s],i=a.spectrogramNumFrames*a.spectrogramFrameSize;a.rawAudioNumSamples!=null&&(i+=a.rawAudioNumSamples),i*=4,this.addExample(s_e({spec:a,data:n.data.slice(r,r+i)})),r+=i}}return e.prototype.addExample=function(t){E(t!=null,function(){return"Got null or undefined example"}),E(t.label!=null&&t.label.length>0,function(){return"Expected label to be a non-empty string, but got "+JSON.stringify(t.label)});var n=J0e();return this.examples[n]=t,t.label in this.label2Ids||(this.label2Ids[t.label]=[]),this.label2Ids[t.label].push(n),n},e.prototype.merge=function(t){var n,r,s,a;E(t!==this,function(){return"Cannot merge a dataset into itself"});var i=t.getVocabulary();try{for(var o=ir(i),l=o.next();!l.done;l=o.next()){var u=l.value,c=t.getExamples(u);try{for(var h=(s=void 0,ir(c)),d=h.next();!d.done;d=h.next()){var p=d.value;this.addExample(p.example)}}catch(f){s={error:f}}finally{try{d&&!d.done&&(a=h.return)&&a.call(h)}finally{if(s)throw s.error}}}}catch(f){n={error:f}}finally{try{l&&!l.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}},e.prototype.getExampleCounts=function(){var t={};for(var n in this.examples){var r=this.examples[n];r.label in t||(t[r.label]=0),t[r.label]++}return t},e.prototype.getExamples=function(t){var n=this;E(t!=null,function(){return"Expected label to be a string, but got "+JSON.stringify(t)}),E(t in this.label2Ids,function(){return'No example of label "'+t+'" exists in dataset'});var r=[];return this.label2Ids[t].forEach(function(s){r.push({uid:s,example:n.examples[s]})}),r},e.prototype.getData=function(t,n){var r=this;E(this.size()>0,function(){return"Cannot get spectrograms as tensors because the dataset is empty"});var s=this.getVocabulary();t!=null?E(s.indexOf(t)!==-1,function(){return"Label "+t+" is not in the vocabulary ("+JSON.stringify(s)+")"}):E(s.length>1,function(){return"One-hot encoding of labels requires the vocabulary to have at least two words, but it has only "+s.length+" word."}),n??={};var a,i,o=this.getSortedUniqueNumFrames();o.length===1?(a=n.numFrames==null?o[0]:n.numFrames,i=n.hopFrames==null?1:n.hopFrames):(a=n.numFrames,E(a!=null&&Number.isInteger(a)&&a>0,function(){return"There are "+o.length+" unique lengths among the "+r.size()+" examples of this Dataset, hence numFrames is required. But it is not provided."}),E(a<=o[0],function(){return"numFrames ("+a+") exceeds the minimum numFrames ("+o[0]+") among the examples of the Dataset."}),i=n.hopFrames,E(i!=null&&Number.isInteger(i)&&i>0,function(){return"There are "+o.length+" unique lengths among the "+r.size()+" examples of this Dataset, hence hopFrames is required. But it is not provided."}));var l=n.normalize==null||n.normalize;return K(function(){for(var u,c,h,d=[],p=[],f=[],g=0;g<s.length;++g){var v=s[g];if(t==null||v===t){var y=r.label2Ids[v],b=function(ne){var oe,ce,ve=r.examples[ne].spectrogram,_e=ve.frameSize;h==null?h=_e:E(_e===h,function(){return"Mismatch in frameSize ("+_e+" vs "+h+")"});var $e=ve.data.length/_e,Re=null;v!=="_background_noise_"&&(Re=ve.keyFrameIndex==null?J5(ve).dataSync()[0]:ve.keyFrameIndex);var Oe=du(ve.data,[$e,_e,1]),He=o_e($e,Re,a,i),Xe=function(Qe){var lt=K(function(){var at=We(Oe,[Qe[0],0,0],[Qe[1]-Qe[0],-1,-1]);return l?cd(at):at});n.getDataset?p.push(lt.dataSync()):d.push(lt),t??f.push(g)};try{for(var dt=(oe=void 0,ir(He)),nt=dt.next();!nt.done;nt=dt.next())Xe(nt.value)}catch(Qe){oe={error:Qe}}finally{try{nt&&!nt.done&&(ce=dt.return)&&ce.call(dt)}finally{if(oe)throw oe.error}}ke(Oe)};try{for(var w=(u=void 0,ir(y)),x=w.next();!x.done;x=w.next())b(x.value)}catch(ne){u={error:ne}}finally{try{x&&!x.done&&(c=w.return)&&c.call(w)}finally{if(u)throw u.error}}}}n.augmentByMixingNoiseRatio!=null&&r.augmentByMixingNoise(n.getDataset?p:d,f,n.augmentByMixingNoiseRatio);var _=n.shuffle==null||n.shuffle;if(n.getDataset){var $=n.datasetBatchSize==null?32:n.datasetBatchSize,N=n.datasetValidationSplit==null?.15:n.datasetValidationSplit;E(N>0&&N<1,function(){return"Invalid dataset validation split: "+N});var k=p.map(function(ne,oe){return[ne,f[oe]]});$o(k),p=k.map(function(ne){return ne[0]});var A=k.map(function(ne){return ne[1]}),O=t_e(p,A,N),R=O.trainXs,T=O.trainYs,S=O.valXs,F=O.valYs,M=Gf(R).map(function(ne){return du(ne,[a,h,1])}),L=Gf(T).map(function(ne){return Sr(es([ne],s.length),[0])}),z=U_({xs:M,ys:L});_&&(z=z.shuffle(p.length)),z=z.batch($).prefetch(4);var q=Gf(S).map(function(ne){return du(ne,[a,h,1])}),J=Gf(F).map(function(ne){return Sr(es([ne],s.length),[0])}),re=U_({xs:q,ys:J});return[z,re=re.batch($).prefetch(4)]}if(_){var Y=[];d.forEach(function(ne,oe){Y.push({x:ne,y:f[oe]})}),$o(Y),d=Y.map(function(ne){return ne.x}),f=Y.map(function(ne){return ne.y})}var ae=t==null?ue(es(Mt(f,"int32"),s.length),"float32"):void 0;return{xs:mn(d),ys:ae}})},e.prototype.augmentByMixingNoise=function(t,n,r){var s,a;if(t==null||t.length===0)throw new Error("Cannot perform augmentation because data is null or empty");for(var i=t[0]instanceof Float32Array,o=this.getVocabulary(),l=[],u=[],c=0;c<n.length;++c)o[n[c]]==="_background_noise_"?l.push(c):u.push(c);if(l.length===0)throw new Error("Cannot perform augmentation by mixing with noise when there is no example with label "+px);var h=[],d=[],p=function(v){var y=l[Q0e(0,l.length)],b=i?Mt(t[v]):t[v],w=i?Mt(t[y]):t[y],x=K(function(){return cd(ie(b,U(w,r)))});i?h.push(x.dataSync()):h.push(x),d.push(n[v])};try{for(var f=ir(u),g=f.next();!g.done;g=f.next())p(g.value)}catch(v){s={error:v}}finally{try{g&&!g.done&&(a=f.return)&&a.call(f)}finally{if(s)throw s.error}}console.log("Data augmentation: mixing noise: added "+h.length+" examples"),h.forEach(function(v){return t.push(v)}),n.push.apply(n,vm(d))},e.prototype.getSortedUniqueNumFrames=function(){for(var t,n,r=new Set,s=this.getVocabulary(),a=0;a<s.length;++a){var i=s[a],o=this.label2Ids[i];try{for(var l=(t=void 0,ir(o)),u=l.next();!u.done;u=l.next()){var c=u.value,h=this.examples[c].spectrogram,d=h.data.length/h.frameSize;r.add(d)}}catch(f){t={error:f}}finally{try{u&&!u.done&&(n=l.return)&&n.call(l)}finally{if(t)throw t.error}}}var p=vm(r);return p.sort(),p},e.prototype.removeExample=function(t){if(!(t in this.examples))throw new Error("Nonexistent example UID: "+t);var n=this.examples[t].label;delete this.examples[t];var r=this.label2Ids[n].indexOf(t);this.label2Ids[n].splice(r,1),this.label2Ids[n].length===0&&delete this.label2Ids[n]},e.prototype.setExampleKeyFrameIndex=function(t,n){if(!(t in this.examples))throw new Error("Nonexistent example UID: "+t);var r=this.examples[t].spectrogram,s=r.data.length/r.frameSize;E(n>=0&&n<s&&Number.isInteger(n),function(){return"Invalid keyFrameIndex: "+n+". Must be >= 0, < "+s+", and an integer."}),r.keyFrameIndex=n},e.prototype.size=function(){return Object.keys(this.examples).length},e.prototype.durationMillis=function(){var t=0;for(var n in this.examples){var r=this.examples[n].spectrogram,s=23.22|r.frameDurationMillis;t+=r.data.length/r.frameSize*s}return t},e.prototype.empty=function(){return this.size()===0},e.prototype.clear=function(){this.examples={}},e.prototype.getVocabulary=function(){var t=new Set;for(var n in this.examples){var r=this.examples[n];t.add(r.label)}var s=vm(t);return s.sort(),s},e.prototype.serialize=function(t){var n,r,s,a,i=this.getVocabulary();E(!this.empty(),function(){return"Cannot serialize empty Dataset"}),t!=null&&(Array.isArray(t)||(t=[t]),t.forEach(function(y){if(i.indexOf(y)===-1)throw new Error('Word label "'+y+'" does not exist in the vocabulary of this dataset. The vocabulary is: '+JSON.stringify(i)+".")}));var o=[],l=[];try{for(var u=ir(i),c=u.next();!c.done;c=u.next()){var h=c.value;if(t==null||t.indexOf(h)!==-1){var d=this.label2Ids[h];try{for(var p=(s=void 0,ir(d)),f=p.next();!f.done;f=p.next()){var g=f.value,v=r_e(this.examples[g]);o.push(v.spec),l.push(v.data)}}catch(y){s={error:y}}finally{try{f&&!f.done&&(a=p.return)&&a.call(p)}finally{if(s)throw s.error}}}}}catch(y){n={error:y}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}return a_e({manifest:o,data:hx(l)})},e})();function r_e(e){var t=e.rawAudio!=null,n={label:e.label,spectrogramNumFrames:e.spectrogram.data.length/e.spectrogram.frameSize,spectrogramFrameSize:e.spectrogram.frameSize};e.spectrogram.keyFrameIndex!=null&&(n.spectrogramKeyFrameIndex=e.spectrogram.keyFrameIndex);var r=e.spectrogram.data.buffer.slice(0);return t&&(n.rawAudioNumSamples=e.rawAudio.data.length,n.rawAudioSampleRateHz=e.rawAudio.sampleRateHz,r=hx([r,e.rawAudio.data.buffer])),{spec:n,data:r}}function s_e(e){var t={frameSize:e.spec.spectrogramFrameSize,data:new Float32Array(e.data.slice(0,4*e.spec.spectrogramFrameSize*e.spec.spectrogramNumFrames))};e.spec.spectrogramKeyFrameIndex!=null&&(t.keyFrameIndex=e.spec.spectrogramKeyFrameIndex);var n={label:e.spec.label,spectrogram:t};return e.spec.rawAudioNumSamples!=null&&(n.rawAudio={sampleRateHz:e.spec.rawAudioSampleRateHz,data:new Float32Array(e.data.slice(4*e.spec.spectrogramFrameSize*e.spec.spectrogramNumFrames))}),n}function a_e(e){var t=X5(JSON.stringify(e.manifest)),n=X5(dx),r=new Uint32Array([n_e]),s=new Uint32Array([t.byteLength]);return hx([hx([n,r.buffer,s.buffer]),t,e.data])}function i_e(e){E(e!=null,function(){return"Received null or undefined buffer"});var t=0,n=Y5(e.slice(t,dx.length));E(n===dx,function(){return"Deserialization error: Invalid descriptor"}),t+=dx.length,t+=4;var r=new Uint32Array(e,t,1),s=t+=4;t=s+r[0];var a=Y5(e.slice(s,t));return{manifest:JSON.parse(a),data:e.slice(t)}}function o_e(e,t,n,r){if(E(Number.isInteger(e)&&e>0,function(){return"snippetLength must be a positive integer, but got "+e}),t!=null&&E(Number.isInteger(t)&&t>=0,function(){return"focusIndex must be a non-negative integer, but got "+t}),E(Number.isInteger(n)&&n>0,function(){return"windowLength must be a positive integer, but got "+n}),E(Number.isInteger(r)&&r>0,function(){return"windowHop must be a positive integer, but got "+r}),E(n<=e,function(){return"windowLength ("+n+") exceeds snippetLength ("+e+")"}),E(t<e,function(){return"focusIndex ("+t+") equals or exceeds snippetLength ("+e+")"}),n===e)return[[0,e]];var s=[];if(t==null){for(var a=0;a+n<=e;)s.push([a,a+n]),a+=r;return s}var i=t-Math.floor(n/2);for(i<0?i=0:i+n>e&&(i=e-n);!(i-r<0||t>=i-r+n);)i-=r;for(;i+n<=e&&!(t<i);)s.push([i,i+n]),i+=r;return s}function Z5(e){return K(function(){var t=e.data.length/e.frameSize,n=ns(e.data,[t,e.frameSize]);return yt(n,-1)})}function J5(e){return K(function(){return zr(Z5(e))})}var $N="0.5.4",l_e="_unknown_",ym="tfjs-speech-commands-saved-model-metadata",kN="indexeddb://tfjs-speech-commands-model/",bm={localStorage:typeof window>"u"?null:window.localStorage};function u_e(e){return e.split(".").slice(0,2).join(".")}var fx=.25,Q5=(function(){function e(t,n,r){this.MODEL_URL_PREFIX="https://storage.googleapis.com/tfjs-models/tfjs/speech-commands/v"+u_e($N)+"/browser_fft",this.SAMPLE_RATE_HZ=44100,this.FFT_SIZE=1024,this.DEFAULT_SUPPRESSION_TIME_MILLIS=0,this.streaming=!1,this.transferRecognizers={},E(n==null&&r==null||n!=null&&r!=null,function(){return"modelURL and metadataURL must be both provided or both not provided."}),n==null?(t==null?t=e.DEFAULT_VOCABULARY_NAME:E(e.VALID_VOCABULARY_NAMES.indexOf(t)!==-1,function(){return"Invalid vocabulary name: '"+t+"'"}),this.vocabulary=t,this.modelArtifactsOrURL=this.MODEL_URL_PREFIX+"/"+this.vocabulary+"/model.json",this.metadataOrURL=this.MODEL_URL_PREFIX+"/"+this.vocabulary+"/metadata.json"):(E(t==null,function(){return"vocabulary name must be null or undefined when modelURL is provided"}),this.modelArtifactsOrURL=n,this.metadataOrURL=r),this.parameters={sampleRateHz:this.SAMPLE_RATE_HZ,fftSize:this.FFT_SIZE}}return e.prototype.listen=function(t,n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l=this;return _t(this,function(u){switch(u.label){case 0:if(this.streaming)throw new Error("Cannot start streaming again when streaming is ongoing.");return[4,this.ensureModelLoaded()];case 1:if(u.sent(),n??={},r=n.probabilityThreshold==null?0:n.probabilityThreshold,n.includeEmbedding&&(r=0),E(r>=0&&r<=1,function(){return"Invalid probabilityThreshold value: "+r}),s=n.invokeCallbackOnNoiseAndUnknown!=null&&n.invokeCallbackOnNoiseAndUnknown,n.includeEmbedding&&(s=!0),n.suppressionTimeMillis<0)throw new Error("suppressionTimeMillis is expected to be >= 0, but got "+n.suppressionTimeMillis);return a=n.overlapFactor==null?.5:n.overlapFactor,E(a>=0&&a<1,function(){return"Expected overlapFactor to be >= 0 and < 1, but got "+a}),i=function(c,h){return wt(l,void 0,void 0,function(){var d,p,f,g,v,y,b,w,x,_,$;return _t(this,function(N){switch(N.label){case 0:return d=cd(c),n.includeEmbedding?[4,this.ensureModelWithEmbeddingOutputCreated()]:[3,2];case 1:return N.sent(),$=IN(this.modelWithEmbeddingOutput.predict(d),2),p=$[0],f=$[1],[3,3];case 2:p=this.model.predict(d),N.label=3;case 3:return[4,p.data()];case 4:return g=N.sent(),[4,(v=p.argMax(-1)).data()];case 5:return y=N.sent()[0],b=Math.max.apply(Math,vm(g)),ke([p,v,d]),b<r?[2,!1]:[3,6];case 6:return w=void 0,n.includeSpectrogram?(x={},[4,c.data()]):[3,8];case 7:x.data=N.sent(),x.frameSize=this.nonBatchInputShape[1],w=x,N.label=8;case 8:return _=!0,s||this.words[y]!=="_background_noise_"&&this.words[y]!=="_unknown_"||(_=!1),_&&t({scores:g,spectrogram:w,embedding:f}),[2,_]}})})},o=n.suppressionTimeMillis==null?this.DEFAULT_SUPPRESSION_TIME_MILLIS:n.suppressionTimeMillis,this.audioDataExtractor=new NN({sampleRateHz:this.parameters.sampleRateHz,numFramesPerSpectrogram:this.nonBatchInputShape[0],columnTruncateLength:this.nonBatchInputShape[1],suppressionTimeMillis:o,spectrogramCallback:i,overlapFactor:a}),[4,this.audioDataExtractor.start(n.audioTrackConstraints)];case 2:return u.sent(),this.streaming=!0,[2]}})})},e.prototype.ensureModelLoaded=function(){return wt(this,void 0,void 0,function(){var t,n,r,s,a=this;return _t(this,function(i){switch(i.label){case 0:return this.model!=null?[2]:[4,this.ensureMetadataLoaded()];case 1:return i.sent(),typeof this.modelArtifactsOrURL!="string"?[3,3]:[4,Tf(this.modelArtifactsOrURL)];case 2:return t=i.sent(),[3,5];case 3:return[4,Tf(ST(this.modelArtifactsOrURL.modelTopology,this.modelArtifactsOrURL.weightSpecs,this.modelArtifactsOrURL.weightData))];case 4:t=i.sent(),i.label=5;case 5:if(t.inputs.length!==1)throw new Error("Expected model to have 1 input, but got a model with "+t.inputs.length+" inputs");if(t.inputs[0].shape.length!==4)throw new Error("Expected model to have an input shape of rank 4, but got an input shape of rank "+t.inputs[0].shape.length);if(t.inputs[0].shape[3]!==1)throw new Error("Expected model to have an input shape with 1 as the last dimension, but got input shape"+JSON.stringify(t.inputs[0].shape[3])+"}");if((n=t.outputShape).length!==2)throw new Error("Expected loaded model to have an output shape of rank 2,but received shape "+JSON.stringify(n));if(n[1]!==this.words.length)throw new Error("Mismatch between the last dimension of model's output shape ("+n[1]+") and number of words ("+this.words.length+").");return this.model=t,this.freezeModel(),this.nonBatchInputShape=t.inputs[0].shape.slice(1),this.elementsPerExample=1,t.inputs[0].shape.slice(1).forEach(function(o){return a.elementsPerExample*=o}),this.warmUpModel(),r=this.parameters.fftSize/this.parameters.sampleRateHz*1e3,s=t.inputs[0].shape[1],this.parameters.spectrogramDurationMillis=s*r,[2]}})})},e.prototype.ensureModelWithEmbeddingOutputCreated=function(){return wt(this,void 0,void 0,function(){var t,n;return _t(this,function(r){switch(r.label){case 0:return this.modelWithEmbeddingOutput!=null?[2]:[4,this.ensureModelLoaded()];case 1:for(r.sent(),n=this.model.layers.length-2;n>=0;--n)if(this.model.layers[n].getClassName()==="Dense"){t=this.model.layers[n];break}if(t==null)throw new Error("Failed to find second last dense layer in the original model.");return this.modelWithEmbeddingOutput=T0({inputs:this.model.inputs,outputs:[this.model.outputs[0],t.output]}),[2]}})})},e.prototype.warmUpModel=function(){var t=this;K(function(){for(var n=Pt([1].concat(t.nonBatchInputShape)),r=0;r<3;++r)t.model.predict(n)})},e.prototype.ensureMetadataLoaded=function(){return wt(this,void 0,void 0,function(){var t,n,r;return _t(this,function(s){switch(s.label){case 0:return this.words!=null?[2]:typeof this.metadataOrURL!="string"?[3,2]:[4,q0e(this.metadataOrURL)];case 1:return n=s.sent(),[3,3];case 2:n=this.metadataOrURL,s.label=3;case 3:if((t=n).wordLabels==null){if((r=t.words)==null)throw new Error('Cannot find field "words" or "wordLabels" in metadata JSON file');this.words=r}else this.words=t.wordLabels;return[2]}})})},e.prototype.stopListening=function(){return wt(this,void 0,void 0,function(){return _t(this,function(t){switch(t.label){case 0:if(!this.streaming)throw new Error("Cannot stop streaming when streaming is not ongoing.");return[4,this.audioDataExtractor.stop()];case 1:return t.sent(),this.streaming=!1,[2]}})})},e.prototype.isListening=function(){return this.streaming},e.prototype.wordLabels=function(){return this.words},e.prototype.params=function(){return this.parameters},e.prototype.modelInputShape=function(){if(this.model==null)throw new Error("Model has not been loaded yet. Load model by calling ensureModelLoaded(), recognize(), or listen().");return this.model.inputs[0].shape},e.prototype.recognize=function(t,n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d,p,f,g;return _t(this,function(v){switch(v.label){case 0:return n??={},[4,this.ensureModelLoaded()];case 1:return v.sent(),t!=null?[3,3]:[4,this.recognizeOnline()];case 2:r=v.sent(),t=r.data,v.label=3;case 3:if(t instanceof Ve)this.checkInputTensorShape(t),a=t,s=t.shape[0];else{if(t.length%this.elementsPerExample)throw new Error("The length of the input Float32Array "+t.length+" is not divisible by the number of tensor elements per per example expected by the model "+this.elementsPerExample+".");s=t.length/this.elementsPerExample,a=Lg(t,[s].concat(this.nonBatchInputShape))}return o={scores:null},n.includeEmbedding?[4,this.ensureModelWithEmbeddingOutputCreated()]:[3,5];case 4:return v.sent(),l=this.modelWithEmbeddingOutput.predict(a),i=l[0],o.embedding=l[1],[3,6];case 5:i=this.model.predict(a),v.label=6;case 6:return s!==1?[3,8]:(u=o,[4,i.data()]);case 7:return u.scores=v.sent(),[3,10];case 8:return c=Kn(i),h=c.map(function(y){return y.data()}),d=o,[4,Promise.all(h)];case 9:d.scores=v.sent(),ke(c),v.label=10;case 10:return n.includeSpectrogram?(p=o,f={},t instanceof Ve?[4,t.data()]:[3,12]):[3,14];case 11:return g=v.sent(),[3,13];case 12:g=t,v.label=13;case 13:p.spectrogram=(f.data=g,f.frameSize=this.nonBatchInputShape[1],f),v.label=14;case 14:return ke(i),[2,o]}})})},e.prototype.recognizeOnline=function(){return wt(this,void 0,void 0,function(){var t=this;return _t(this,function(n){return[2,new Promise(function(r,s){t.audioDataExtractor=new NN({sampleRateHz:t.parameters.sampleRateHz,numFramesPerSpectrogram:t.nonBatchInputShape[0],columnTruncateLength:t.nonBatchInputShape[1],suppressionTimeMillis:0,spectrogramCallback:function(a){return wt(t,void 0,void 0,function(){var i,o,l;return _t(this,function(u){switch(u.label){case 0:return i=cd(a),[4,this.audioDataExtractor.stop()];case 1:return u.sent(),o=r,l={},[4,i.data()];case 2:return o.apply(void 0,[(l.data=u.sent(),l.frameSize=this.nonBatchInputShape[1],l)]),i.dispose(),[2,!1]}})})},overlapFactor:0}),t.audioDataExtractor.start()})]})})},e.prototype.createTransfer=function(t){if(this.model==null)throw new Error("Model has not been loaded yet. Load model by calling ensureModelLoaded(), recognizer(), or listen().");E(t!=null&&typeof t=="string"&&t.length>1,function(){return"Expected the name for a transfer-learning recognized to be a non-empty string, but got "+JSON.stringify(t)}),E(this.transferRecognizers[t]==null,function(){return"There is already a transfer-learning model named '"+t+"'"});var n=new c_e(t,this.parameters,this.model);return this.transferRecognizers[t]=n,n},e.prototype.freezeModel=function(){var t,n;try{for(var r=ir(this.model.layers),s=r.next();!s.done;s=r.next())s.value.trainable=!1}catch(a){t={error:a}}finally{try{s&&!s.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}},e.prototype.checkInputTensorShape=function(t){var n=this.model.inputs[0].shape.length;if(t.shape.length!==n)throw new Error("Expected input Tensor to have rank "+n+", but got rank "+t.shape.length+" that differs ");var r=t.shape.slice(1),s=this.model.inputs[0].shape.slice(1);if(!Ue(r,s))throw new Error("Expected input to have shape [null,"+s+"], but got shape [null,"+r+"]")},e.VALID_VOCABULARY_NAMES=["18w","directional4w"],e.DEFAULT_VOCABULARY_NAME="18w",e})(),c_e=(function(e){function t(n,r,s){var a=e.call(this)||this;return a.name=n,a.parameters=r,a.baseModel=s,E(n!=null&&typeof n=="string"&&n.length>0,function(){return"The name of a transfer model must be a non-empty string, but got "+JSON.stringify(n)}),a.nonBatchInputShape=a.baseModel.inputs[0].shape.slice(1),a.words=null,a.dataset=new CN,a}return j0e(t,e),t.prototype.collectExample=function(n,r){return wt(this,void 0,void 0,function(){var s,a,i,o,l=this;return _t(this,function(u){if(E(!this.streaming,function(){return"Cannot start collection of transfer-learning example because a streaming recognition or transfer-learning example collection is ongoing"}),E(n!=null&&typeof n=="string"&&n.length>0,function(){return"Must provide a non-empty string when collecting transfer-learning example"}),r??={},r.durationMultiplier!=null&&r.durationSec!=null)throw new Error("durationMultiplier and durationSec are mutually exclusive, but are both specified.");return r.durationSec!=null?(E(r.durationSec>0,function(){return"Expected durationSec to be > 0, but got "+r.durationSec}),a=this.parameters.fftSize/this.parameters.sampleRateHz,s=Math.ceil(r.durationSec/a)):r.durationMultiplier!=null?(E(r.durationMultiplier>=1,function(){return"Expected duration multiplier to be >= 1, but got "+r.durationMultiplier}),s=Math.round(this.nonBatchInputShape[0]*r.durationMultiplier)):s=this.nonBatchInputShape[0],r.snippetDurationSec!=null&&(E(r.snippetDurationSec>0,function(){return"snippetDurationSec is expected to be > 0, but got "+r.snippetDurationSec}),E(r.onSnippet!=null,function(){return"onSnippet must be provided if snippetDurationSec is provided."})),r.onSnippet!=null&&E(r.snippetDurationSec!=null,function(){return"snippetDurationSec must be provided if onSnippet is provided."}),i=this.parameters.fftSize/this.parameters.sampleRateHz,o=i*s,this.streaming=!0,[2,new Promise(function(c){var h=r.snippetDurationSec==null?1:r.snippetDurationSec/o,d=1-h,p=Math.round(1/h),f=0,g=-1,v=[];l.audioDataExtractor=new NN({sampleRateHz:l.parameters.sampleRateHz,numFramesPerSpectrogram:s,columnTruncateLength:l.nonBatchInputShape[1],suppressionTimeMillis:0,spectrogramCallback:function(y,b){return wt(l,void 0,void 0,function(){var w,x,_,$,N,k,A,O,R,T,S,F,M,L,z,q,J,re,Y,ae;return _t(this,function(ne){switch(ne.label){case 0:return r.onSnippet!=null?[3,7]:(w=cd(y),_=(x=this.dataset).addExample,$={label:n},N={},[4,w.data()]);case 1:return $.spectrogram=(N.data=ne.sent(),N.frameSize=this.nonBatchInputShape[1],N),r.includeRawAudio?(A={},[4,b.data()]):[3,3];case 2:return A.data=ne.sent(),A.sampleRateHz=this.audioDataExtractor.sampleRateHz,k=A,[3,4];case 3:k=void 0,ne.label=4;case 4:return _.apply(x,[($.rawAudio=k,$)]),w.dispose(),[4,this.audioDataExtractor.stop()];case 5:return ne.sent(),this.streaming=!1,this.collateTransferWords(),O=c,R={},[4,y.data()];case 6:return O.apply(void 0,[(R.data=ne.sent(),R.frameSize=this.nonBatchInputShape[1],R)]),[3,13];case 7:return[4,y.data()];case 8:for(T=ne.sent(),g===-1&&(g=T.length),S=g-1;T[S]!==0&&S>=0;)S--;return F=g-S-1,g=S+1,M=T.slice(T.length-F,T.length),v.push(M),r.onSnippet!=null&&r.onSnippet({data:M,frameSize:this.nonBatchInputShape[1]}),f++!==p?[3,13]:[4,this.audioDataExtractor.stop()];case 9:return ne.sent(),this.streaming=!1,this.collateTransferWords(),L=H5(K5(v)),z={data:L,frameSize:this.nonBatchInputShape[1]},J=(q=this.dataset).addExample,re={label:n,spectrogram:z},r.includeRawAudio?(ae={},[4,b.data()]):[3,11];case 10:return ae.data=ne.sent(),ae.sampleRateHz=this.audioDataExtractor.sampleRateHz,Y=ae,[3,12];case 11:Y=void 0,ne.label=12;case 12:J.apply(q,[(re.rawAudio=Y,re)]),c(z),ne.label=13;case 13:return[2,!1]}})})},overlapFactor:d,includeRawAudio:r.includeRawAudio}),l.audioDataExtractor.start(r.audioTrackConstraints)})]})})},t.prototype.clearExamples=function(){var n=this;E(this.words!=null&&this.words.length>0&&!this.dataset.empty(),function(){return"No transfer learning examples exist for model name "+n.name}),this.dataset.clear(),this.words=null},t.prototype.countExamples=function(){if(this.dataset.empty())throw new Error("No examples have been collected for transfer-learning model named '"+this.name+"' yet.");return this.dataset.getExampleCounts()},t.prototype.getExamples=function(n){return this.dataset.getExamples(n)},t.prototype.setExampleKeyFrameIndex=function(n,r){this.dataset.setExampleKeyFrameIndex(n,r)},t.prototype.removeExample=function(n){this.dataset.removeExample(n),this.collateTransferWords()},t.prototype.isDatasetEmpty=function(){return this.dataset.empty()},t.prototype.loadExamples=function(n,r){var s,a,i,o;r===void 0&&(r=!1);var l=new CN(n);r&&this.clearExamples();var u=l.getVocabulary();try{for(var c=ir(u),h=c.next();!h.done;h=c.next()){var d=h.value,p=l.getExamples(d);try{for(var f=(i=void 0,ir(p)),g=f.next();!g.done;g=f.next()){var v=g.value;this.dataset.addExample(v.example)}}catch(y){i={error:y}}finally{try{g&&!g.done&&(o=f.return)&&o.call(f)}finally{if(i)throw i.error}}}}catch(y){s={error:y}}finally{try{h&&!h.done&&(a=c.return)&&a.call(c)}finally{if(s)throw s.error}}this.collateTransferWords()},t.prototype.serializeExamples=function(n){return this.dataset.serialize(n)},t.prototype.collateTransferWords=function(){this.words=this.dataset.getVocabulary()},t.prototype.collectTransferDataAsTensors=function(n,r){var s=this.nonBatchInputShape[0];n=n||fx;var a=Math.round(n*s),i=this.dataset.getData(null,SN({numFrames:s,hopFrames:a},r));return{xs:i.xs,ys:i.ys}},t.prototype.collectTransferDataAsTfDataset=function(n,r,s,a){r===void 0&&(r=.15),s===void 0&&(s=32);var i=this.nonBatchInputShape[0];n=n||fx;var o=Math.round(n*i);return this.dataset.getData(null,SN({numFrames:i,hopFrames:o,getDataset:!0,datasetBatchSize:s,datasetValidationSplit:r},a))},t.prototype.train=function(n){return wt(this,void 0,void 0,function(){var r,s=this;return _t(this,function(a){return E(this.words!=null&&this.words.length>0,function(){return"Cannot train transfer-learning model '"+s.name+"' because no transfer learning example has been collected."}),E(this.words.length>1,function(){return"Cannot train transfer-learning model '"+s.name+"' because only 1 word label ('"+JSON.stringify(s.words)+"') has been collected for transfer learning. Requires at least 2."}),n.fineTuningEpochs!=null&&E(n.fineTuningEpochs>=0&&Number.isInteger(n.fineTuningEpochs),function(){return"If specified, fineTuningEpochs must be a non-negative integer, but received "+n.fineTuningEpochs}),n??={},this.model??this.createTransferModelFromBaseModel(),this.secondLastBaseDenseLayer.trainable=!1,this.model.compile({loss:"categoricalCrossentropy",optimizer:n.optimizer||"sgd",metrics:["acc"]}),r=n.fitDatasetDurationMillisThreshold==null?6e4:n.fitDatasetDurationMillisThreshold,this.dataset.durationMillis()>r?(console.log("Detected large dataset: total duration = "+this.dataset.durationMillis()+" ms > "+r+" ms. Training transfer model using fitDataset() instead of fit()"),[2,this.trainOnDataset(n)]):[2,this.trainOnTensors(n)]})})},t.prototype.trainOnDataset=function(n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h;return _t(this,function(d){switch(d.label){case 0:return E(n.epochs>0,function(){return"Invalid config.epochs"}),r=n.batchSize==null?32:n.batchSize,s=n.windowHopRatio||fx,a=IN(this.collectTransferDataAsTfDataset(s,n.validationSplit,r,{augmentByMixingNoiseRatio:n.augmentByMixingNoiseRatio}),2),i=a[0],o=a[1],l=Bt(),[4,this.model.fitDataset(i,{epochs:n.epochs,validationData:n.validationSplit>0?o:null,callbacks:n.callback==null?null:[n.callback]})];case 1:return u=d.sent(),console.log("fitDataset() took "+(Bt()-l).toFixed(2)+" ms"),n.fineTuningEpochs!=null&&n.fineTuningEpochs>0?(c=Bt(),[4,this.fineTuningUsingTfDatasets(n,i,o)]):[3,3];case 2:return h=d.sent(),console.log("fitDataset() (fine-tuning) took "+(Bt()-c).toFixed(2)+" ms"),[2,[u,h]];case 3:return[2,u]}})})},t.prototype.trainOnTensors=function(n){return wt(this,void 0,void 0,function(){var r,s,a,i,o,l,u,c,h,d;return _t(this,function(p){switch(p.label){case 0:r=n.windowHopRatio||fx,s=this.collectTransferDataAsTensors(r,{augmentByMixingNoiseRatio:n.augmentByMixingNoiseRatio}),a=s.xs,i=s.ys,console.log("Training data: xs.shape = "+a.shape+", ys.shape = "+i.shape),p.label=1;case 1:return p.trys.push([1,,6,7]),n.validationSplit!=null?(c=e_e(a,i,n.validationSplit),o=c.trainXs,l=c.trainYs,u=[c.valXs,c.valYs]):(o=a,l=i),[4,this.model.fit(o,l,{epochs:n.epochs==null?20:n.epochs,validationData:u,batchSize:n.batchSize,callbacks:n.callback==null?null:[n.callback]})];case 2:return h=p.sent(),n.fineTuningEpochs!=null&&n.fineTuningEpochs>0?[4,this.fineTuningUsingTensors(n,o,l,u)]:[3,4];case 3:return d=p.sent(),[2,[h,d]];case 4:return[2,h];case 5:return[3,7];case 6:return ke([a,i,o,l,u]),[7];case 7:return[2]}})})},t.prototype.fineTuningUsingTfDatasets=function(n,r,s){return wt(this,void 0,void 0,function(){var a,i,o;return _t(this,function(l){switch(l.label){case 0:return a=this.secondLastBaseDenseLayer.trainable,this.secondLastBaseDenseLayer.trainable=!0,i=n.fineTuningOptimizer==null?"sgd":n.fineTuningOptimizer,this.model.compile({loss:"categoricalCrossentropy",optimizer:i,metrics:["acc"]}),[4,this.model.fitDataset(r,{epochs:n.fineTuningEpochs,validationData:s,callbacks:n.callback==null?null:[n.callback]})];case 1:return o=l.sent(),this.secondLastBaseDenseLayer.trainable=a,[2,o]}})})},t.prototype.fineTuningUsingTensors=function(n,r,s,a){return wt(this,void 0,void 0,function(){var i,o,l;return _t(this,function(u){switch(u.label){case 0:return i=this.secondLastBaseDenseLayer.trainable,this.secondLastBaseDenseLayer.trainable=!0,o=n.fineTuningOptimizer==null?"sgd":n.fineTuningOptimizer,this.model.compile({loss:"categoricalCrossentropy",optimizer:o,metrics:["acc"]}),[4,this.model.fit(r,s,{epochs:n.fineTuningEpochs,validationData:a,batchSize:n.batchSize,callbacks:n.fineTuningCallback==null?null:[n.fineTuningCallback]})];case 1:return l=u.sent(),this.secondLastBaseDenseLayer.trainable=i,[2,l]}})})},t.prototype.evaluate=function(n){return wt(this,void 0,void 0,function(){var r,s=this;return _t(this,function(a){return E(n.wordProbThresholds!=null&&n.wordProbThresholds.length>0,function(){return"Received null or empty wordProbThresholds"}),r=0,E(this.words[r]===px,function(){return"Cannot perform evaluation when the first tag is not "+px}),[2,K(function(){for(var i=[],o=0,l=s.collectTransferDataAsTensors(n.windowHopRatio),u=l.xs,c=l.ys.argMax(-1).dataSync(),h=s.model.predict(u),d=Gn(We(h,[0,1],[h.shape[0],h.shape[1]-1]),-1),p=h.shape[0],f=0;f<n.wordProbThresholds.length;++f){for(var g=n.wordProbThresholds[f],v=d.greater(ye(g)).dataSync(),y=0,b=0,w=0,x=0,_=0;_<p;++_)c[_]===r?(y++,v[_]&&w++):(b++,v[_]&&x++);var $=w/y,N=x/b;i.push({probThreshold:g,fpr:$,tpr:N}),console.log("ROC thresh="+g+": fpr="+$.toFixed(4)+", tpr="+N.toFixed(4)),f>0&&(o+=Math.abs(i[f-1].fpr-i[f].fpr)*(i[f-1].tpr+i[f].tpr)/2)}return{rocCurve:i,auc:o}})]})})},t.prototype.createTransferModelFromBaseModel=function(){var n=this;E(this.words!=null,function(){return"No word example is available for tranfer-learning model of name "+n.name});for(var r=this.baseModel.layers,s=r.length-2;s>=0&&r[s].getClassName().toLowerCase()!=="dense";)s--;if(s<0)throw new Error("Cannot find a hidden dense layer in the base model.");this.secondLastBaseDenseLayer=r[s];var a=this.secondLastBaseDenseLayer.output;this.transferHead=AR(),this.transferHead.add(HR({units:this.words.length,activation:"softmax",inputShape:a.shape.slice(1),name:"NewHeadDense"}));var i=this.transferHead.apply(a);this.model=T0({inputs:this.baseModel.inputs,outputs:i})},t.prototype.modelInputShape=function(){return this.baseModel.inputs[0].shape},t.prototype.getMetadata=function(){return{tfjsSpeechCommandsVersion:$N,modelName:this.name,timeStamp:new Date().toISOString(),wordLabels:this.wordLabels()}},t.prototype.save=function(n){return wt(this,void 0,void 0,function(){var r,s,a;return _t(this,function(i){return r=n!=null,n=n||TN(this.name),r||(s=bm.localStorage.getItem(ym),(a=s==null?{}:JSON.parse(s))[this.name]=this.getMetadata(),bm.localStorage.setItem(ym,JSON.stringify(a))),console.log("Saving model to "+n),[2,this.model.save(n)]})})},t.prototype.load=function(n){return wt(this,void 0,void 0,function(){var r,s,a;return _t(this,function(i){switch(i.label){case 0:if(r=n!=null,n=n||TN(this.name),!r){if((s=JSON.parse(bm.localStorage.getItem(ym)))==null||s[this.name]==null)throw new Error("Cannot find metadata for transfer model named "+this.name+'"');this.words=s[this.name].wordLabels,console.log("Loaded word list for model named "+this.name+": "+this.words)}return a=this,[4,Tf(n)];case 1:return a.model=i.sent(),console.log("Loaded model from "+n+":"),this.model.summary(),[2]}})})},t.prototype.createTransfer=function(n){throw new Error("Creating transfer-learned recognizer from a transfer-learned recognizer is not supported.")},t})(Q5);function TN(e){return""+kN+e}function h_e(){return wt(this,void 0,void 0,function(){var e,t,n;return _t(this,function(r){switch(r.label){case 0:return[4,o$()];case 1:for(n in e=r.sent(),t=[],e)n.startsWith(kN)&&t.push(n.slice(kN.length));return[2,t]}})})}function d_e(e){return wt(this,void 0,void 0,function(){var t;return _t(this,function(n){switch(n.label){case 0:return(t=JSON.parse(bm.localStorage.getItem(ym)))??(t={}),t[e]!=null&&delete t[e],bm.localStorage.setItem(ym,JSON.stringify(t)),[4,l$(TN(e))];case 1:return n.sent(),[2]}})})}function eK(e,t,n,r){if(E(n==null&&r==null||n!=null&&r!=null,function(){return"customModelURL and customMetadataURL must be both provided or both not provided."}),n!=null&&E(t==null,function(){return"vocabulary name must be null or undefined when modelURL is provided."}),e==="BROWSER_FFT")return new Q5(t,n,r);throw e==="SOFT_FFT"?new Error("SOFT_FFT SpeechCommandRecognizer has not been implemented yet."):new Error("Invalid fftType: '"+e+"'")}var p_e={concatenateFloat32Arrays:K5,normalizeFloat32Array:H5,normalize:cd,playRawAudio:Y0e},tK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.cropTensor=e.capture=void 0;var t=(ka(),or(gs));function n(s,a){return t.tidy(function(){return r(t.browser.fromPixels(s),a).expandDims(0).toFloat().div(t.scalar(127)).sub(t.scalar(1))})}e.capture=n;function r(s,a,i){var o=Math.min(s.shape[0],s.shape[1]),l=s.shape[0]/2-o/2,u=s.shape[1]/2-o/2;if(a&&!i){var c=s.slice([l,u,0],[o,o,3]);return c=c.reshape([o*o,1,3]),c=t.mul(c,[.2989,.587,.114]),c=c.reshape([o,o,3]),c=t.sum(c,-1),c=t.expandDims(c,-1),c}return s.slice([l,u,0],[o,o,3])}e.cropTensor=r})),nK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.cropTo=e.resizeMinTo=e.resizeMaxTo=e.resize=void 0;var t=function(){return document.createElement("canvas")};function n(i,o,l){return l===void 0&&(l=t()),l.width=i.width*o,l.height=i.height*o,l.getContext("2d").drawImage(i,0,0,l.width,l.height),l}e.resize=n;function r(i,o,l){return l===void 0&&(l=t()),n(i,o/Math.max(i.width,i.height),l)}e.resizeMaxTo=r;function s(i,o,l){return l===void 0&&(l=t()),n(i,o/Math.min(i.width,i.height),l)}e.resizeMinTo=s;function a(i,o,l,u){l===void 0&&(l=!1),u===void 0&&(u=t());var c=i.width,h=i.height;i instanceof HTMLVideoElement&&(c=i.videoWidth,h=i.videoHeight);var d=o/Math.min(c,h),p=Math.ceil(c*d),f=Math.ceil(h*d),g=p-o,v=f-o;u.width=u.height=o;var y=u.getContext("2d");return y.drawImage(i,~~(g/2)*-1,~~(v/2)*-1,p,f),l&&(y.scale(-1,1),y.drawImage(u,o*-1,0)),u}e.cropTo=a})),rK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.version=void 0;var t="0.8.4-alpha2";e.version=t})),sK=Ye((e=>{var t=e&&e.__awaiter||function(N,k,A,O){function R(T){return T instanceof A?T:new A(function(S){S(T)})}return new(A||(A=Promise))(function(T,S){function F(z){try{L(O.next(z))}catch(q){S(q)}}function M(z){try{L(O.throw(z))}catch(q){S(q)}}function L(z){z.done?T(z.value):R(z.value).then(F,M)}L((O=O.apply(N,k||[])).next())})},n=e&&e.__generator||function(N,k){var A={label:0,sent:function(){if(T[0]&1)throw T[1];return T[1]},trys:[],ops:[]},O,R,T,S={next:F(0),throw:F(1),return:F(2)};return typeof Symbol=="function"&&(S[Symbol.iterator]=function(){return this}),S;function F(L){return function(z){return M([L,z])}}function M(L){if(O)throw new TypeError("Generator is already executing.");for(;A;)try{if(O=1,R&&(T=L[0]&2?R.return:L[0]?R.throw||((T=R.return)&&T.call(R),0):R.next)&&!(T=T.call(R,L[1])).done)return T;switch(R=0,T&&(L=[L[0]&2,T.value]),L[0]){case 0:case 1:T=L;break;case 4:return A.label++,{value:L[1],done:!1};case 5:A.label++,R=L[1],L=[0];continue;case 7:L=A.ops.pop(),A.trys.pop();continue;default:if(T=A.trys,!(T=T.length>0&&T[T.length-1])&&(L[0]===6||L[0]===2)){A=0;continue}if(L[0]===3&&(!T||L[1]>T[0]&&L[1]<T[3])){A.label=L[1];break}if(L[0]===6&&A.label<T[1]){A.label=T[1],T=L;break}if(T&&A.label<T[2]){A.label=T[2],A.ops.push(L);break}T[2]&&A.ops.pop(),A.trys.pop();continue}L=k.call(N,A)}catch(z){L=[6,z],R=0}finally{O=T=0}if(L[0]&5)throw L[1];return{value:L[0]?L[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0}),e.loadFromFiles=e.load=e.loadTruncatedMobileNet=e.CustomMobileNet=e.getTopKClasses=e.IMAGE_SIZE=void 0;var r=(ka(),or(gs)),s=(ka(),or(gs)),a=tK(),i=nK(),o=rK(),l=1,u="conv_pw_13_relu",c="out_relu",h=.25,d=.35;e.IMAGE_SIZE=224;var p=function(N){return N.packageVersion=N.packageVersion||o.version,N.packageName=N.packageName||"@teachablemachine/image",N.timeStamp=N.timeStamp||new Date().toISOString(),N.userMetadata=N.userMetadata||{},N.modelName=N.modelName||"untitled",N.labels=N.labels||[],N.imageSize=N.imageSize||e.IMAGE_SIZE,N},f=function(N){return!!N&&Array.isArray(N.labels)},g=function(N,k){if(N===1){if(k!==.25&&k!==.5&&k!==.75&&k!==1)return console.warn("Invalid alpha. Options are: 0.25, 0.50, 0.75 or 1.00."),console.log("Loading model with alpha: ",h.toFixed(2)),h}else if(k!==.35&&k!==.5&&k!==.75&&k!==1)return console.warn("Invalid alpha. Options are: 0.35, 0.50, 0.75 or 1.00."),console.log("Loading model with alpha: ",d.toFixed(2)),d;return k},v=function(N){if(N=N||{},N.checkpointUrl&&N.trainingLayer)return(N.alpha||N.version)&&console.warn("Checkpoint URL passed to modelOptions, alpha options are ignored"),[N.checkpointUrl,N.trainingLayer];if(N.version=N.version||l,N.version===1){N.alpha=N.alpha||h,N.alpha=g(N.version,N.alpha),console.log("Loading mobilenet "+N.version+" and alpha "+N.alpha);var k=N.alpha.toFixed(2);return k==="1.00"&&(k="1.0"),["https://storage.googleapis.com/tfjs-models/tfjs/mobilenet_v1_"+k+"_"+e.IMAGE_SIZE+"/model.json",u]}else{if(N.version===2)return N.alpha=N.alpha||d,N.alpha=g(N.version,N.alpha),console.log("Loading mobilenet "+N.version+" and alpha "+N.alpha),["https://storage.googleapis.com/teachable-machine-models/mobilenet_v2_weights_tf_dim_ordering_tf_kernels_"+N.alpha.toFixed(2)+"_"+e.IMAGE_SIZE+"_no_top/model.json",c];throw new Error("MobileNet V"+N.version+" doesn't exist")}},y=function(N){return t(void 0,void 0,void 0,function(){var k,A;return n(this,function(O){switch(O.label){case 0:return typeof N!="string"?[3,3]:[4,fetch(N)];case 1:return A=O.sent(),[4,A.json()];case 2:return k=O.sent(),[3,4];case 3:if(f(N))k=N;else throw new Error("Invalid Metadata provided");O.label=4;case 4:return[2,p(k)]}})})};function b(N,k,A){return A===void 0&&(A=3),t(this,void 0,void 0,function(){var O;return n(this,function(R){switch(R.label){case 0:return[4,k.data()];case 1:return O=R.sent(),[2,r.tidy(function(){A=Math.min(A,O.length);for(var T=[],S=0;S<O.length;S++)T.push({value:O[S],index:S});T.sort(function(z,q){return q.value-z.value});for(var F=new Float32Array(A),M=new Int32Array(A),S=0;S<A;S++)F[S]=T[S].value,M[S]=T[S].index;for(var L=[],S=0;S<M.length;S++)L.push({className:N[M[S]],probability:F[S]});return L})]}})})}e.getTopKClasses=b;var w=(function(){function N(k,A){this.model=k,this._metadata=p(A)}return Object.defineProperty(N,"EXPECTED_IMAGE_SIZE",{get:function(){return e.IMAGE_SIZE},enumerable:!1,configurable:!0}),N.prototype.getMetadata=function(){return this._metadata},N.prototype.getTotalClasses=function(){return this.model.output.shape[1]},N.prototype.getClassLabels=function(){return this._metadata.labels},N.prototype.predictTopK=function(k,A,O){return A===void 0&&(A=10),O===void 0&&(O=!1),t(this,void 0,void 0,function(){var R,T,S,F=this;return n(this,function(M){switch(M.label){case 0:return R=i.cropTo(k,this._metadata.imageSize,O),T=r.tidy(function(){var L=a.capture(R,F._metadata.grayscale);return F.model.predict(L)}),[4,b(this._metadata.labels,T,A)];case 1:return S=M.sent(),s.dispose(T),[2,S]}})})},N.prototype.predict=function(k,A){return A===void 0&&(A=!1),t(this,void 0,void 0,function(){var O,R,T,S,F,M=this;return n(this,function(L){switch(L.label){case 0:return O=i.cropTo(k,this._metadata.imageSize,A),R=r.tidy(function(){var z=a.capture(O,M._metadata.grayscale);return M.model.predict(z)}),[4,R.data()];case 1:for(T=L.sent(),S=[],F=0;F<T.length;F++)S.push({className:this._metadata.labels[F],probability:T[F]});return s.dispose(R),[2,S]}})})},N.prototype.dispose=function(){this.truncatedModel.dispose()},N})();e.CustomMobileNet=w;function x(N){return t(this,void 0,void 0,function(){var k,A,O,R,T,S,F,T,S,F;return n(this,function(M){switch(M.label){case 0:return k=v(N),A=k[0],O=k[1],[4,r.loadLayersModel(A)];case 1:return R=M.sent(),N&&N.version===1?(T=R.getLayer(O),S=r.model({inputs:R.inputs,outputs:T.output}),F=r.sequential(),F.add(S),F.add(r.layers.flatten()),[2,F]):(T=R.getLayer(O),S=r.model({inputs:R.inputs,outputs:T.output}),F=r.sequential(),F.add(S),F.add(r.layers.globalAveragePooling2d({})),[2,F])}})})}e.loadTruncatedMobileNet=x;function _(N,k){return t(this,void 0,void 0,function(){var A,O,R;return n(this,function(T){switch(T.label){case 0:return[4,r.loadLayersModel(N)];case 1:return A=T.sent(),k?[4,y(k)]:[3,3];case 2:return R=T.sent(),[3,4];case 3:R=null,T.label=4;case 4:return O=R,[2,new w(A,O)]}})})}e.load=_;function $(N,k,A){return t(this,void 0,void 0,function(){var O,R,T,S;return n(this,function(F){switch(F.label){case 0:return[4,r.loadLayersModel(r.io.browserFiles([N,k]))];case 1:return O=F.sent(),[4,new Response(A).json()];case 2:return R=F.sent(),A?[4,y(R)]:[3,4];case 3:return S=F.sent(),[3,5];case 4:S=null,F.label=5;case 5:return T=S,[2,new w(O,T)]}})})}e.loadFromFiles=$})),f_e=Ye(((e,t)=>{(function(n,r,s){function a(u){var c=this,h=l();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=h(" "),c.s1=h(" "),c.s2=h(" "),c.s0-=h(u),c.s0<0&&(c.s0+=1),c.s1-=h(u),c.s1<0&&(c.s1+=1),c.s2-=h(u),c.s2<0&&(c.s2+=1),h=null}function i(u,c){return c.c=u.c,c.s0=u.s0,c.s1=u.s1,c.s2=u.s2,c}function o(u,c){var h=new a(u),d=c&&c.state,p=h.next;return p.int32=function(){return h.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,d&&(typeof d=="object"&&i(d,h),p.state=function(){return i(h,{})}),p}function l(){var u=4022871197,c=function(h){h=h.toString();for(var d=0;d<h.length;d++){u+=h.charCodeAt(d);var p=.02519603282416938*u;u=p>>>0,p-=u,p*=u,u=p>>>0,p-=u,u+=p*4294967296}return(u>>>0)*23283064365386963e-26};return c}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),m_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this,c="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var d=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^d^d>>>8},l===(l|0)?u.x=l:c+=l;for(var h=0;h<c.length+64;h++)u.x^=c.charCodeAt(h)|0,u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u}function o(l,u){var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(typeof h=="object"&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),g_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this,c="";u.next=function(){var d=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(d^d<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:c+=l;for(var h=0;h<c.length+64;h++)u.x^=c.charCodeAt(h)|0,h==c.length&&(u.d=u.x<<10^u.x>>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(typeof h=="object"&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),v_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this;u.next=function(){var h=u.x,d=u.i,p=h[d],f;return p^=p>>>7,f=p^p<<24,p=h[d+1&7],f^=p^p>>>10,p=h[d+3&7],f^=p^p>>>3,p=h[d+4&7],f^=p^p<<7,p=h[d+7&7],p=p^p<<13,f^=p^p<<9,h[d]=f,u.i=d+1&7,f};function c(h,d){var p,f=[];if(d===(d|0))f[0]=d;else for(d=""+d,p=0;p<d.length;++p)f[p&7]=f[p&7]<<15^d.charCodeAt(p)+f[p+1&7]<<13;for(;f.length<8;)f.push(0);for(p=0;p<8&&f[p]===0;++p);for(p==8?f[7]=-1:f[p],h.x=f,h.i=0,p=256;p>0;--p)h.next()}c(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(h.x&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),y_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this;u.next=function(){var h=u.w,d=u.X,p=u.i,f,g;return u.w=h=h+1640531527|0,g=d[p+34&127],f=d[p=p+1&127],g^=g<<13,f^=f<<17,g^=g>>>15,f^=f>>>12,g=d[p]=g^f,u.i=p,g+(h^h>>>16)|0};function c(h,d){var p,f,g,v,y,b=[],w=128;for(d===(d|0)?(f=d,d=null):(d=d+"\0",f=0,w=Math.max(w,d.length)),g=0,v=-32;v<w;++v)d&&(f^=d.charCodeAt((v+32)%d.length)),v===0&&(y=f),f^=f<<10,f^=f>>>15,f^=f<<4,f^=f>>>13,v>=0&&(y=y+1640531527|0,p=b[v&127]^=f+y,g=p==0?g+1:0);for(g>=128&&(b[(d&&d.length||0)&127]=-1),g=127,v=512;v>0;--v)f=b[g+34&127],p=b[g=g+1&127],f^=f<<13,p^=p<<17,f^=f>>>15,p^=p>>>12,b[g]=f^p;h.w=y,h.X=b,h.i=g}c(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(h.X&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),b_e=Ye(((e,t)=>{(function(n,r,s){function a(l){var u=this,c="";u.next=function(){var d=u.b,p=u.c,f=u.d,g=u.a;return d=d<<25^d>>>7^p,p=p-f|0,f=f<<24^f>>>8^g,g=g-d|0,u.b=d=d<<20^d>>>12^p,u.c=p=p-f|0,u.d=f<<16^p>>>16^g,u.a=g-d|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):c+=l;for(var h=0;h<c.length+20;h++)u.b^=c.charCodeAt(h)|0,u.next()}function i(l,u){return u.a=l.a,u.b=l.b,u.c=l.c,u.d=l.d,u}function o(l,u){var c=new a(l),h=u&&u.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var p=((c.next()>>>11)+(c.next()>>>0)/4294967296)/(1<<21);while(p===0);return p},d.int32=c.next,d.quick=d,h&&(typeof h=="object"&&i(h,c),d.state=function(){return i(c,{})}),d}r&&r.exports?r.exports=o:s&&s.amd?s(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)})),x_e=Ye(((e,t)=>{(function(n,r){var s=this,a=256,i=6,o=52,l="random",u=r.pow(a,i),c=r.pow(2,o),h=c*2,d=a-1,p;function f(_,$,N){var k=[];$=$==!0?{entropy:!0}:$||{};var A=b(y($.entropy?[_,x(n)]:_??w(),3),k),O=new g(k),R=function(){for(var T=O.g(i),S=u,F=0;T<c;)T=(T+F)*a,S*=a,F=O.g(1);for(;T>=h;)T/=2,S/=2,F>>>=1;return(T+F)/S};return R.int32=function(){return O.g(4)|0},R.quick=function(){return O.g(4)/4294967296},R.double=R,b(x(O.S),n),($.pass||N||function(T,S,F,M){return M&&(M.S&&v(M,O),T.state=function(){return v(O,{})}),F?(r[l]=T,S):T})(R,A,"global"in $?$.global:this==r,$.state)}r["seed"+l]=f;function g(_){var $,N=_.length,k=this,A=0,O=k.i=k.j=0,R=k.S=[];for(N||(_=[N++]);A<a;)R[A]=A++;for(A=0;A<a;A++)R[A]=R[O=d&O+_[A%N]+($=R[A])],R[O]=$;(k.g=function(T){for(var S,F=0,M=k.i,L=k.j,z=k.S;T--;)S=z[M=d&M+1],F=F*a+z[d&(z[M]=z[L=d&L+S])+(z[L]=S)];return k.i=M,k.j=L,F})(a)}function v(_,$){return $.i=_.i,$.j=_.j,$.S=_.S.slice(),$}function y(_,$){var N=[],k=typeof _,A;if($&&k=="object")for(A in _)try{N.push(y(_[A],$-1))}catch{}return N.length?N:k=="string"?_:_+"\0"}function b(_,$){for(var N=_+"",k,A=0;A<N.length;)$[d&A]=d&(k^=$[d&A]*19)+N.charCodeAt(A++);return x($)}function w(){try{var _;return p&&(_=p.randomBytes)?_=_(a):(_=new Uint8Array(a),(s.crypto||s.msCrypto).getRandomValues(_)),x(_)}catch{var $=s.navigator,N=$&&$.plugins;return[+new Date,s,N,s.screen,x(n)]}}function x(_){return String.fromCharCode.apply(0,_)}if(b(r.random(),n),typeof t=="object"&&t.exports){t.exports=f;try{p=Bl()}catch{}}else typeof define=="function"&&define.amd&&define(function(){return f})})([],Math)})),w_e=Ye(((e,t)=>{var n=f_e(),r=m_e(),s=g_e(),a=v_e(),i=y_e(),o=b_e(),l=x_e();l.alea=n,l.xor128=r,l.xorwow=s,l.xorshift7=a,l.xor4096=i,l.tychei=o,t.exports=l})),__e=Ye((e=>{var t=e&&e.__extends||(function(){var g=function(v,y){return g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,w){b.__proto__=w}||function(b,w){for(var x in w)w.hasOwnProperty(x)&&(b[x]=w[x])},g(v,y)};return function(v,y){g(v,y);function b(){this.constructor=v}v.prototype=y===null?Object.create(y):(b.prototype=y.prototype,new b)}})(),n=e&&e.__awaiter||function(g,v,y,b){function w(x){return x instanceof y?x:new y(function(_){_(x)})}return new(y||(y=Promise))(function(x,_){function $(A){try{k(b.next(A))}catch(O){_(O)}}function N(A){try{k(b.throw(A))}catch(O){_(O)}}function k(A){A.done?x(A.value):w(A.value).then($,N)}k((b=b.apply(g,v||[])).next())})},r=e&&e.__generator||function(g,v){var y={label:0,sent:function(){if(x[0]&1)throw x[1];return x[1]},trys:[],ops:[]},b,w,x,_={next:$(0),throw:$(1),return:$(2)};return typeof Symbol=="function"&&(_[Symbol.iterator]=function(){return this}),_;function $(k){return function(A){return N([k,A])}}function N(k){if(b)throw new TypeError("Generator is already executing.");for(;y;)try{if(b=1,w&&(x=k[0]&2?w.return:k[0]?w.throw||((x=w.return)&&x.call(w),0):w.next)&&!(x=x.call(w,k[1])).done)return x;switch(w=0,x&&(k=[k[0]&2,x.value]),k[0]){case 0:case 1:x=k;break;case 4:return y.label++,{value:k[1],done:!1};case 5:y.label++,w=k[1],k=[0];continue;case 7:k=y.ops.pop(),y.trys.pop();continue;default:if(x=y.trys,!(x=x.length>0&&x[x.length-1])&&(k[0]===6||k[0]===2)){y=0;continue}if(k[0]===3&&(!x||k[1]>x[0]&&k[1]<x[3])){y.label=k[1];break}if(k[0]===6&&y.label<x[1]){y.label=x[1],x=k;break}if(x&&y.label<x[2]){y.label=x[2],y.ops.push(k);break}x[2]&&y.ops.pop(),y.trys.pop();continue}k=v.call(g,y)}catch(A){k=[6,A],w=0}finally{b=x=0}if(k[0]&5)throw k[1];return{value:k[0]?k[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0}),e.createTeachable=e.TeachableMobileNet=void 0;var s=(ka(),or(gs)),a=(ka(),or(gs)),i=tK(),o=sK(),l=w_e(),u=.15,c=function(g){return typeof g.dataId=="object"&&typeof g.shape=="object"};function h(g,v){var y=new Array(v).fill(0);return y[g]=1,y}function d(g,v){for(var y,b=g.length,w=g.slice(),x=b-1;x>0;x-=1){var _=void 0;v?_=Math.floor(v()*(x+1)):_=Math.floor(Math.random()*(x+1)),y=[w[_],w[x]],w[x]=y[0],w[_]=y[1]}return w}var p=(function(g){t(v,g);function v(y,b){var w=g.call(this,s.sequential(),b)||this;return w.totalSamples=0,w.examples=[],w.truncatedModel=y,w}return Object.defineProperty(v.prototype,"asSequentialModel",{get:function(){return this.model},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"isTrained",{get:function(){return!!this.model&&this.model.layers&&this.model.layers.length>2},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"isPrepared",{get:function(){return!!this.trainDataset},enumerable:!1,configurable:!0}),Object.defineProperty(v.prototype,"numClasses",{get:function(){return this._metadata.labels.length},enumerable:!1,configurable:!0}),v.prototype.addExample=function(y,b){return n(this,void 0,void 0,function(){var w,x,_;return r(this,function($){return w=c(b)?b:i.capture(b,this._metadata.grayscale),x=this.truncatedModel.predict(w),_=x.dataSync(),w.dispose(),x.dispose(),this.examples[y].push(_),this.totalSamples++,[2]})})},v.prototype.predict=function(y,b){return b===void 0&&(b=!1),n(this,void 0,void 0,function(){return r(this,function(w){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,g.prototype.predict.call(this,y,b)]})})},v.prototype.predictTopK=function(y,b,w){return b===void 0&&(b=10),w===void 0&&(w=!1),n(this,void 0,void 0,function(){return r(this,function(x){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,g.prototype.predictTopK.call(this,y,b,w)]})})},v.prototype.prepare=function(){for(var y in this.examples)if(y.length===0)throw new Error("Add some examples before training");var b=this.convertToTfDataset();this.trainDataset=b.trainDataset,this.validationDataset=b.validationDataset},v.prototype.convertToTfDataset=function(){for(var y=0;y<this.examples.length;y++)this.examples[y]=d(this.examples[y],this.seed);for(var b=[],w=[],x=function(O){var R=h(O,_.numClasses),T=_.examples[O].length,S=T-Math.ceil(u*T),F=_.examples[O].slice(0,S).map(function(L){return{data:L,label:R}}),M=_.examples[O].slice(S).map(function(L){return{data:L,label:R}});b=b.concat(F),w=w.concat(M)},_=this,y=0;y<this.examples.length;y++)x(y);b=d(b,this.seed),w=d(w,this.seed);var $=s.data.array(b.map(function(O){return O.data})),N=s.data.array(w.map(function(O){return O.data})),k=s.data.array(b.map(function(O){return O.label})),A=s.data.array(w.map(function(O){return O.label}));return{trainDataset:s.data.zip({xs:$,ys:k}),validationDataset:s.data.zip({xs:N,ys:A})}},v.prototype.save=function(y,b){return n(this,void 0,void 0,function(){return r(this,function(w){return[2,this.model.save(y,b)]})})},v.prototype.train=function(y,b){return b===void 0&&(b={}),n(this,void 0,void 0,function(){var w,x,_,$,N,k,A,O,R,T=this;return r(this,function(S){switch(S.label){case 0:if(w=b.onTrainEnd||(function(){}),b.onTrainEnd=function(F){T.__stopTrainingResolve&&(T.__stopTrainingResolve(),T.__stopTrainingResolve=null),w(F)},this.isPrepared||this.prepare(),x=this.getLabels().length,a.util.assert(x===this.numClasses,function(){return"Can not train, has "+x+" labels and "+T.numClasses+" classes"}),_=this.truncatedModel.outputs[0].shape.slice(1),$=s.util.sizeFromShape(_),this.seed?N=s.initializers.varianceScaling({seed:3.14}):N=s.initializers.varianceScaling({}),this.trainingModel=s.sequential({layers:[s.layers.dense({inputShape:[$],units:y.denseUnits,activation:"relu",kernelInitializer:N,useBias:!0}),s.layers.dense({kernelInitializer:N,useBias:!1,activation:"softmax",units:this.numClasses})]}),k=s.train.adam(y.learningRate),this.trainingModel.compile({optimizer:k,loss:"categoricalCrossentropy",metrics:["accuracy"]}),!(y.batchSize>0))throw new Error("Batch size is 0 or NaN. Please choose a non-zero fraction");return A=this.trainDataset.batch(y.batchSize),O=this.validationDataset.batch(y.batchSize),[4,this.trainingModel.fitDataset(A,{epochs:y.epochs,validationData:O,callbacks:b})];case 1:return S.sent(),R=s.sequential(),R.add(this.truncatedModel),R.add(this.trainingModel),this.model=R,k.dispose(),[2,this.model]}})})},v.prototype.prepareDataset=function(){for(var y=0;y<this.numClasses;y++)this.examples[y]=[]},v.prototype.setLabel=function(y,b){this._metadata.labels[y]=b},v.prototype.setLabels=function(y){this._metadata.labels=y,this.prepareDataset()},v.prototype.getLabel=function(y){return this._metadata.labels[y]},v.prototype.getLabels=function(){return this._metadata.labels},v.prototype.setName=function(y){this._metadata.modelName=y},v.prototype.getName=function(){return this._metadata.modelName},v.prototype.stopTraining=function(){var y=this;return new Promise(function(b,w){y.trainingModel.stopTraining=!0,y.__stopTrainingResolve=b})},v.prototype.dispose=function(){this.trainingModel.dispose(),g.prototype.dispose.call(this)},v.prototype.calculateAccuracyPerClass=function(){return n(this,void 0,void 0,function(){var y,b,w,x,_,$,N,k,A,O,q,R,T,S,F,M,L,z,q,J=this;return r(this,function(re){switch(re.label){case 0:return y=this.validationDataset.mapAsync(function(Y){return n(J,void 0,void 0,function(){return r(this,function(ae){return[2,Y.xs]})})}),b=this.validationDataset.mapAsync(function(Y){return n(J,void 0,void 0,function(){return r(this,function(ae){return[2,Y.ys]})})}),w=Math.min(b.size,32),x=Math.ceil(b.size/w),_=y.batch(w),$=b.batch(w),[4,_.iterator()];case 1:return N=re.sent(),[4,$.iterator()];case 2:k=re.sent(),A=[],O=[],q=0,re.label=3;case 3:return q<x?[4,N.next()]:[3,7];case 4:return R=re.sent(),T=this.trainingModel.predict(R.value),S=T.argMax(1),A.push(S),[4,k.next()];case 5:F=re.sent(),M=F.value.argMax(1),O.push(M),R.value.dispose(),T.dispose(),F.value.dispose(),re.label=6;case 6:return q++,[3,3];case 7:if(L=s.concat(O),z=s.concat(A),x!==1)for(q=0;q<A.length;q++)A[q].dispose(),O[q].dispose();return[2,{reference:L,predictions:z}]}})})},v.prototype.setSeed=function(y){this.seed=l(y)},v})(o.CustomMobileNet);e.TeachableMobileNet=p;function f(g,v){return n(this,void 0,void 0,function(){var y;return r(this,function(b){switch(b.label){case 0:return[4,o.loadTruncatedMobileNet(v)];case 1:return y=b.sent(),[2,new p(y,g)]}})})}e.createTeachable=f})),aK=Te({boundClass:()=>iK,boundMethod:()=>EN,default:()=>S_e});function mx(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?mx=function(n){return typeof n}:mx=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},mx(e)}function EN(e,t,n){var r=n.value;if(typeof r!="function")throw new TypeError("@boundMethod decorator can only be applied to methods not: ".concat(mx(r)));var s=!1;return{configurable:!0,get:function(){if(s||this===e.prototype||this.hasOwnProperty(t)||typeof r!="function")return r;var i=r.bind(this);return s=!0,Object.defineProperty(this,t,{configurable:!0,get:function(){return i},set:function(l){r=l,delete this[t]}}),s=!1,i},set:function(i){r=i}}}function iK(e){var t;return typeof Reflect<"u"&&typeof Reflect.ownKeys=="function"?t=Reflect.ownKeys(e.prototype):(t=Object.getOwnPropertyNames(e.prototype),typeof Object.getOwnPropertySymbols=="function"&&(t=t.concat(Object.getOwnPropertySymbols(e.prototype)))),t.forEach(function(n){if(n!=="constructor"){var r=Object.getOwnPropertyDescriptor(e.prototype,n);typeof r.value=="function"&&Object.defineProperty(e.prototype,n,EN(e,n,r))}}),e}function S_e(){return arguments.length===1?iK.apply(void 0,arguments):EN.apply(void 0,arguments)}var oK=m((()=>{})),I_e=Ye((e=>{var t=e&&e.__decorate||function(u,c,h,d){var p=arguments.length,f=p<3?c:d===null?d=Object.getOwnPropertyDescriptor(c,h):d,g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")f=Reflect.decorate(u,c,h,d);else for(var v=u.length-1;v>=0;v--)(g=u[v])&&(f=(p<3?g(f):p>3?g(c,h,f):g(c,h))||f);return p>3&&f&&Object.defineProperty(c,h,f),f},n=e&&e.__awaiter||function(u,c,h,d){function p(f){return f instanceof h?f:new h(function(g){g(f)})}return new(h||(h=Promise))(function(f,g){function v(w){try{b(d.next(w))}catch(x){g(x)}}function y(w){try{b(d.throw(w))}catch(x){g(x)}}function b(w){w.done?f(w.value):p(w.value).then(v,y)}b((d=d.apply(u,c||[])).next())})},r=e&&e.__generator||function(u,c){var h={label:0,sent:function(){if(f[0]&1)throw f[1];return f[1]},trys:[],ops:[]},d,p,f,g={next:v(0),throw:v(1),return:v(2)};return typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function v(b){return function(w){return y([b,w])}}function y(b){if(d)throw new TypeError("Generator is already executing.");for(;h;)try{if(d=1,p&&(f=b[0]&2?p.return:b[0]?p.throw||((f=p.return)&&f.call(p),0):p.next)&&!(f=f.call(p,b[1])).done)return f;switch(p=0,f&&(b=[b[0]&2,f.value]),b[0]){case 0:case 1:f=b;break;case 4:return h.label++,{value:b[1],done:!1};case 5:h.label++,p=b[1],b=[0];continue;case 7:b=h.ops.pop(),h.trys.pop();continue;default:if(f=h.trys,!(f=f.length>0&&f[f.length-1])&&(b[0]===6||b[0]===2)){h=0;continue}if(b[0]===3&&(!f||b[1]>f[0]&&b[1]<f[3])){h.label=b[1];break}if(b[0]===6&&h.label<f[1]){h.label=f[1],f=b;break}if(f&&h.label<f[2]){h.label=f[2],h.ops.push(b);break}f[2]&&h.ops.pop(),h.trys.pop();continue}b=c.call(u,h)}catch(w){b=[6,w],p=0}finally{d=f=0}if(b[0]&5)throw b[1];return{value:b[0]?b[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0}),e.Webcam=void 0;var s=(oK(),or(aK)),a=nK(),i={facingMode:"user",frameRate:24},o=function(u){return u.facingMode=u.facingMode||i.facingMode,u.frameRate=u.frameRate||i.frameRate,u.aspectRatio=u.aspectRatio||i.aspectRatio,u},l=(function(){function u(c,h,d){c===void 0&&(c=400),h===void 0&&(h=400),d===void 0&&(d=!1),this.width=c,this.height=h,this.flip=d}return u.prototype.getWebcam=function(c){if(c===void 0&&(c={}),!window.navigator.mediaDevices||!window.navigator.mediaDevices.getUserMedia)return Promise.reject("Your browser does not support WebRTC. Please try another one.");c.width=640;var h=o(c),d=document.createElement("video");return window.navigator.mediaDevices.getUserMedia({video:h}).then(function(p){return d.srcObject=p,d.addEventListener("loadedmetadata",function(f){var g=d.videoWidth,v=d.videoHeight;d.width=g,d.height=v}),d},function(){return Promise.reject("Could not open your camera. You may have denied access.")})},u.prototype.setup=function(c){return c===void 0&&(c={}),n(this,void 0,void 0,function(){var h;return r(this,function(d){switch(d.label){case 0:return this.webcam?[3,2]:(h=this,[4,this.getWebcam(c)]);case 1:h.webcam=d.sent(),this.canvas||(this.canvas=document.createElement("canvas"),this.canvas.width=this.width,this.canvas.height=this.height),d.label=2;case 2:return[2]}})})},u.prototype.play=function(){return this.webcam.play()},u.prototype.pause=function(){this.webcam.pause()},u.prototype.stop=function(){this.stopStreamedVideo(this.webcam)},u.prototype.update=function(){this.renderCameraToCanvas()},u.prototype.stopStreamedVideo=function(c){c.srcObject.getTracks().forEach(function(h){h.stop()}),c.srcObject=null},u.prototype.renderCameraToCanvas=function(){if(this.canvas&&this.webcam){var c=this.canvas.getContext("2d");if(this.webcam.videoWidth!==0){var h=a.cropTo(this.webcam,this.width,this.flip);c.drawImage(h,0,0)}}},t([s.default],u.prototype,"getWebcam",null),t([s.default],u.prototype,"setup",null),t([s.default],u.prototype,"play",null),t([s.default],u.prototype,"pause",null),t([s.default],u.prototype,"stop",null),t([s.default],u.prototype,"update",null),t([s.default],u.prototype,"stopStreamedVideo",null),t([s.default],u.prototype,"renderCameraToCanvas",null),u})();e.Webcam=l})),N_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=sK();Object.defineProperty(e,"IMAGE_SIZE",{enumerable:!0,get:function(){return t.IMAGE_SIZE}}),Object.defineProperty(e,"CustomMobileNet",{enumerable:!0,get:function(){return t.CustomMobileNet}}),Object.defineProperty(e,"load",{enumerable:!0,get:function(){return t.load}}),Object.defineProperty(e,"loadFromFiles",{enumerable:!0,get:function(){return t.loadFromFiles}}),Object.defineProperty(e,"loadTruncatedMobileNet",{enumerable:!0,get:function(){return t.loadTruncatedMobileNet}});var n=__e();Object.defineProperty(e,"TeachableMobileNet",{enumerable:!0,get:function(){return n.TeachableMobileNet}}),Object.defineProperty(e,"createTeachable",{enumerable:!0,get:function(){return n.createTeachable}});var r=I_e();Object.defineProperty(e,"Webcam",{enumerable:!0,get:function(){return r.Webcam}});var s=rK();Object.defineProperty(e,"version",{enumerable:!0,get:function(){return s.version}})})),C_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],e.NUM_KEYPOINTS=e.partNames.length,e.partIds=e.partNames.reduce(function(n,r,s){return n[r]=s,n},{});var t=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];e.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]],e.connectedPartIndices=t.map(function(n){var r=n[0],s=n[1];return[e.partIds[r],e.partIds[s]]}),e.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]})),lK=Ye((e=>{var t=e&&e.__awaiter||function(T,S,F,M){return new(F||(F=Promise))(function(L,z){function q(Y){try{re(M.next(Y))}catch(ae){z(ae)}}function J(Y){try{re(M.throw(Y))}catch(ae){z(ae)}}function re(Y){Y.done?L(Y.value):new F(function(ae){ae(Y.value)}).then(q,J)}re((M=M.apply(T,S||[])).next())})},n=e&&e.__generator||function(T,S){var F={label:0,sent:function(){if(z[0]&1)throw z[1];return z[1]},trys:[],ops:[]},M,L,z,q={next:J(0),throw:J(1),return:J(2)};return typeof Symbol=="function"&&(q[Symbol.iterator]=function(){return this}),q;function J(Y){return function(ae){return re([Y,ae])}}function re(Y){if(M)throw new TypeError("Generator is already executing.");for(;F;)try{if(M=1,L&&(z=Y[0]&2?L.return:Y[0]?L.throw||((z=L.return)&&z.call(L),0):L.next)&&!(z=z.call(L,Y[1])).done)return z;switch(L=0,z&&(Y=[Y[0]&2,z.value]),Y[0]){case 0:case 1:z=Y;break;case 4:return F.label++,{value:Y[1],done:!1};case 5:F.label++,L=Y[1],Y=[0];continue;case 7:Y=F.ops.pop(),F.trys.pop();continue;default:if(z=F.trys,!(z=z.length>0&&z[z.length-1])&&(Y[0]===6||Y[0]===2)){F=0;continue}if(Y[0]===3&&(!z||Y[1]>z[0]&&Y[1]<z[3])){F.label=Y[1];break}if(Y[0]===6&&F.label<z[1]){F.label=z[1],z=Y;break}if(z&&F.label<z[2]){F.label=z[2],F.ops.push(Y);break}z[2]&&F.ops.pop(),F.trys.pop();continue}Y=S.call(T,F)}catch(ae){Y=[6,ae],L=0}finally{M=z=0}if(Y[0]&5)throw Y[1];return{value:Y[0]?Y[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var r=(C(),or(B1)),s=C_e();function a(T,S,F){return T<F||S<F}function i(T,S){return s.connectedPartIndices.reduce(function(F,M){var L=M[0],z=M[1];return a(T[L].score,T[z].score,S)||F.push([T[L],T[z]]),F},[])}e.getAdjacentKeyPoints=i;var o=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY;function u(T){return T.reduce(function(S,F){var M=S.maxX,L=S.maxY,z=S.minX,q=S.minY,J=F.position,re=J.x,Y=J.y;return{maxX:Math.max(M,re),maxY:Math.max(L,Y),minX:Math.min(z,re),minY:Math.min(q,Y)}},{maxX:o,maxY:o,minX:l,minY:l})}e.getBoundingBox=u;function c(T){var S=u(T),F=S.minX,M=S.minY,L=S.maxX,z=S.maxY;return[{x:F,y:M},{x:L,y:M},{x:L,y:z},{x:F,y:z}]}e.getBoundingBoxPoints=c;function h(T){return t(this,void 0,void 0,function(){return n(this,function(S){return[2,Promise.all(T.map(function(F){return F.buffer()}))]})})}e.toTensorBuffers3D=h;function d(T,S,F,M,L){return M===void 0&&(M=0),L===void 0&&(L=0),{score:T.score,keypoints:T.keypoints.map(function(z){var q=z.score,J=z.part,re=z.position;return{score:q,part:J,position:{x:re.x*F+L,y:re.y*S+M}}})}}e.scalePose=d;function p(T,S,F,M,L){return M===void 0&&(M=0),L===void 0&&(L=0),F===1&&S===1&&M===0&&L===0?T:T.map(function(z){return d(z,S,F,M,L)})}e.scalePoses=p;function f(T,S){return{score:T.score,keypoints:T.keypoints.map(function(F){var M=F.score,L=F.part,z=F.position;return{score:M,part:L,position:{x:S-1-z.x,y:z.y}}})}}e.flipPoseHorizontal=f;function g(T,S){return S<=0?T:T.map(function(F){return f(F,S)})}e.flipPosesHorizontal=g;function v(T,S){return _(T,S)?T:Math.floor(T/S)*S+1}e.toValidInputResolution=v;function y(T){r.util.assert(typeof T=="number"||typeof T=="object",function(){return"Invalid inputResolution "+T+". Should be a number or an object with width and height"}),typeof T=="object"&&(r.util.assert(typeof T.width=="number",function(){return"inputResolution.width has a value of "+T.width+" which is invalid; it must be a number"}),r.util.assert(typeof T.height=="number",function(){return"inputResolution.height has a value of "+T.height+" which is invalid; it must be a number"}))}e.validateInputResolution=y;function b(T,S){return y(T),typeof T=="object"?[v(T.height,S),v(T.width,S)]:[v(T,S),v(T,S)]}e.getValidInputResolutionDimensions=b;var w=[8,16,32];function x(T){r.util.assert(typeof T=="number",function(){return"outputStride is not a number"}),r.util.assert(w.indexOf(T)>=0,function(){return"outputStride of "+T+" is invalid. It must be either 8, 16, or 32"})}e.assertValidOutputStride=x;function _(T,S){return(T-1)%S===0}function $(T,S){r.util.assert(typeof T[0]=="number"&&typeof T[1]=="number",function(){return"both resolution values must be a number but had values "+T}),r.util.assert(_(T[0],S),function(){return"height of "+T[0]+" is invalid for output stride "+(S+".")}),r.util.assert(_(T[1],S),function(){return"width of "+T[1]+" is invalid for output stride "+(S+".")})}e.assertValidResolution=$;function N(T){return T instanceof r.Tensor?[T.shape[0],T.shape[1]]:[T.height,T.width]}e.getInputTensorDimensions=N;function k(T){return T instanceof r.Tensor?T:r.browser.fromPixels(T)}e.toInputTensor=k;function A(T,S,F,M){return r.tidy(function(){var L=k(T);return M?r.image.resizeBilinear(r.reverse(L,1),[S,F]):r.image.resizeBilinear(L,[S,F])})}e.toResizedInputTensor=A;function O(T,S){var F=S[0],M=S[1],L=N(T),z=L[0],q=L[1],J=M/F,re=q/z,Y=[0,0,0,0],ae=Y[0],ne=Y[1],oe=Y[2],ce=Y[3];return re<J?(ae=0,ne=0,oe=Math.round(.5*(J*z-q)),ce=Math.round(.5*(J*z-q))):(ae=Math.round(.5*(1/J*q-z)),ne=Math.round(.5*(1/J*q-z)),oe=0,ce=0),{resized:r.tidy(function(){var ve=k(T);return ve=r.pad3d(ve,[[ae,ne],[oe,ce],[0,0]]),r.image.resizeBilinear(ve,[F,M])}),padding:{top:ae,left:oe,right:ce,bottom:ne}}}e.padAndResizeTo=O;function R(T,S,F,M,L){var z=S[0],q=S[1],J=F[0],re=F[1],Y=p(T,(z+M.top+M.bottom)/J,(q+M.left+M.right)/re,-M.top,-M.left);return L?g(Y,q):Y}e.scaleAndFlipPoses=R})),uK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t="0.8.6";e.version=t})),cK=Ye((e=>{var t=e&&e.__awaiter||function(b,w,x,_){function $(N){return N instanceof x?N:new x(function(k){k(N)})}return new(x||(x=Promise))(function(N,k){function A(T){try{R(_.next(T))}catch(S){k(S)}}function O(T){try{R(_.throw(T))}catch(S){k(S)}}function R(T){T.done?N(T.value):$(T.value).then(A,O)}R((_=_.apply(b,w||[])).next())})},n=e&&e.__generator||function(b,w){var x={label:0,sent:function(){if(N[0]&1)throw N[1];return N[1]},trys:[],ops:[]},_,$,N,k={next:A(0),throw:A(1),return:A(2)};return typeof Symbol=="function"&&(k[Symbol.iterator]=function(){return this}),k;function A(R){return function(T){return O([R,T])}}function O(R){if(_)throw new TypeError("Generator is already executing.");for(;x;)try{if(_=1,$&&(N=R[0]&2?$.return:R[0]?$.throw||((N=$.return)&&N.call($),0):$.next)&&!(N=N.call($,R[1])).done)return N;switch($=0,N&&(R=[R[0]&2,N.value]),R[0]){case 0:case 1:N=R;break;case 4:return x.label++,{value:R[1],done:!1};case 5:x.label++,$=R[1],R=[0];continue;case 7:R=x.ops.pop(),x.trys.pop();continue;default:if(N=x.trys,!(N=N.length>0&&N[N.length-1])&&(R[0]===6||R[0]===2)){x=0;continue}if(R[0]===3&&(!N||R[1]>N[0]&&R[1]<N[3])){x.label=R[1];break}if(R[0]===6&&x.label<N[1]){x.label=N[1],N=R;break}if(N&&x.label<N[2]){x.label=N[2],x.ops.push(R);break}N[2]&&x.ops.pop(),x.trys.pop();continue}R=w.call(b,x)}catch(T){R=[6,T],$=0}finally{_=N=0}if(R[0]&5)throw R[1];return{value:R[0]?R[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var r=(ka(),or(gs)),s=(_N(),or(y5)),a=lK(),i=uK(),o=(_N(),or(y5)),l=3,u=function(b){return b.packageVersion=b.packageVersion||i.version,b.packageName="@teachablemachine/pose",b.timeStamp=b.timeStamp||new Date().toISOString(),b.userMetadata=b.userMetadata||{},b.modelName=b.modelName||"untitled",b.labels=b.labels||[],b.modelSettings=d(b.modelSettings),b},c=function(b){return!!b&&Array.isArray(b.labels)},h=function(b){return t(void 0,void 0,void 0,function(){var w,x;return n(this,function(_){switch(_.label){case 0:return typeof b!="string"?[3,3]:[4,fetch(b)];case 1:return x=_.sent(),[4,x.json()];case 2:return w=_.sent(),[3,4];case 3:if(c(b))w=b;else throw new Error("Invalid Metadata provided");_.label=4;case 4:return[2,u(w)]}})})},d=function(b){return b===void 0&&(b={}),b.posenet||(b.posenet={}),b.posenet.architecture=b.posenet.architecture||"MobileNetV1",b.posenet.outputStride=b.posenet.outputStride||16,b.posenet.inputResolution=b.posenet.inputResolution||257,b.posenet.multiplier=b.posenet.multiplier||.75,b};function p(b,w,x){return x===void 0&&(x=3),t(this,void 0,void 0,function(){var _;return n(this,function($){switch($.label){case 0:return[4,w.data()];case 1:return _=$.sent(),[2,r.tidy(function(){x=Math.min(x,_.length);for(var N=[],k=0;k<_.length;k++)N.push({value:_[k],index:k});N.sort(function(T,S){return S.value-T.value});for(var A=new Float32Array(x),O=new Int32Array(x),k=0;k<x;k++)A[k]=N[k].value,O[k]=N[k].index;for(var R=[],k=0;k<O.length;k++)R.push({className:b[O[k]],probability:A[k]});return R})]}})})}e.getTopKClasses=p;var f=(function(){function b(w,x,_){this.model=w,this.posenetModel=x,this._metadata=u(_)}return b.prototype.getMetadata=function(){return this._metadata},b.prototype.getClassLabels=function(){return this._metadata.labels},b.prototype.getTotalClasses=function(){return this.model.output.shape[1]},b.prototype.estimatePose=function(w,x){return x===void 0&&(x=!1),t(this,void 0,void 0,function(){var _,$,N,k,A,O,R,T;return n(this,function(S){switch(S.label){case 0:return[4,this.estimatePoseOutputs(w)];case 1:return _=S.sent(),$=_.heatmapScores,N=_.offsets,k=_.displacementFwd,A=_.displacementBwd,O=_.padding,R=this.poseOutputsToAray($,N,k,A),[4,this.poseOutputsToKeypoints(w,$,N,k,A,O,x)];case 2:return T=S.sent(),[2,{pose:T,posenetOutput:R}]}})})},b.prototype.estimatePoseOutputs=function(w){return t(this,void 0,void 0,function(){var x,_,$,N,k,A,O,R,T;return n(this,function(S){switch(S.label){case 0:return x=this.posenetModel.inputResolution,_=a.padAndResizeTo(w,x),$=_.resized,N=_.padding,[4,this.posenetModel.baseModel.predict($)];case 1:return k=S.sent(),A=k.heatmapScores,O=k.offsets,R=k.displacementFwd,T=k.displacementBwd,$.dispose(),[2,{heatmapScores:A,offsets:O,displacementFwd:R,displacementBwd:T,padding:N}]}})})},b.prototype.poseOutputsToAray=function(w,x,_,$){var N=r.concat([w,x],2),k=N.dataSync();return N.dispose(),k},b.prototype.poseOutputsToKeypoints=function(w,x,_,$,N,k,A){return A===void 0&&(A=!1),t(this,void 0,void 0,function(){var O,R,T,S,F,M,L,z,q,J,re,Y,ae;return n(this,function(ne){switch(ne.label){case 0:return O={maxDetections:l,scoreThreshold:.5,nmsRadius:20},R=a.getInputTensorDimensions(w),T=R[0],S=R[1],F=this.posenetModel.baseModel.outputStride,M=this.posenetModel.inputResolution,[4,a.toTensorBuffers3D([x,_,$,N])];case 1:return L=ne.sent(),z=L[0],q=L[1],J=L[2],re=L[3],[4,o.decodeMultiplePoses(z,q,J,re,F,O.maxDetections,O.scoreThreshold,O.nmsRadius)];case 2:return Y=ne.sent(),ae=a.scaleAndFlipPoses(Y,[T,S],M,k,A),x.dispose(),_.dispose(),$.dispose(),N.dispose(),[2,ae[0]]}})})},b.prototype.predict=function(w){return t(this,void 0,void 0,function(){var x,_,$,N,k;return n(this,function(A){switch(A.label){case 0:return x=r.tensor([w]),_=this.model.predict(x),[4,_.data()];case 1:for($=A.sent(),N=[],k=0;k<$.length;k++)N.push({className:this._metadata.labels[k],probability:$[k]});return x.dispose(),_.dispose(),[2,N]}})})},b.prototype.predictTopK=function(w,x){return x===void 0&&(x=l),t(this,void 0,void 0,function(){var _,$,N;return n(this,function(k){switch(k.label){case 0:return _=r.tensor([w]),$=this.model.predict(_),[4,p(this._metadata.labels,$,x)];case 1:return N=k.sent(),_.dispose(),$.dispose(),[2,N]}})})},b.prototype.dispose=function(){this.posenetModel.dispose()},b})();e.CustomPoseNet=f;function g(b){return b===void 0&&(b={}),t(this,void 0,void 0,function(){var w;return n(this,function(x){switch(x.label){case 0:return b=d(b),[4,s.load({architecture:b.posenet.architecture,outputStride:b.posenet.outputStride,inputResolution:b.posenet.inputResolution,multiplier:b.posenet.multiplier})];case 1:return w=x.sent(),[2,w]}})})}e.loadPoseNet=g;function v(b,w){return t(this,void 0,void 0,function(){var x,_,$,N;return n(this,function(k){switch(k.label){case 0:return[4,r.loadLayersModel(b)];case 1:return x=k.sent(),w?[4,h(w)]:[3,3];case 2:return $=k.sent(),[3,4];case 3:$=null,k.label=4;case 4:return _=$,[4,g(_.modelSettings)];case 5:return N=k.sent(),[2,new f(x,N,_)]}})})}e.load=v;function y(b,w,x){return t(this,void 0,void 0,function(){var _,$,N,k,A;return n(this,function(O){switch(O.label){case 0:return[4,r.loadLayersModel(r.io.browserFiles([b,w]))];case 1:return _=O.sent(),[4,new Response(x).json()];case 2:return $=O.sent(),x?[4,h($)]:[3,4];case 3:return k=O.sent(),[3,5];case 4:k=null,O.label=5;case 5:return N=k,[4,g(N.modelSettings)];case 6:return A=O.sent(),[2,new f(_,A,N)]}})})}e.loadFromFiles=y})),$_e=Ye((e=>{var t=e&&e.__extends||(function(){var p=function(f,g){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,y){v.__proto__=y}||function(v,y){for(var b in y)y.hasOwnProperty(b)&&(v[b]=y[b])},p(f,g)};return function(f,g){p(f,g);function v(){this.constructor=f}f.prototype=g===null?Object.create(g):(v.prototype=g.prototype,new v)}})(),n=e&&e.__awaiter||function(p,f,g,v){function y(b){return b instanceof g?b:new g(function(w){w(b)})}return new(g||(g=Promise))(function(b,w){function x(N){try{$(v.next(N))}catch(k){w(k)}}function _(N){try{$(v.throw(N))}catch(k){w(k)}}function $(N){N.done?b(N.value):y(N.value).then(x,_)}$((v=v.apply(p,f||[])).next())})},r=e&&e.__generator||function(p,f){var g={label:0,sent:function(){if(b[0]&1)throw b[1];return b[1]},trys:[],ops:[]},v,y,b,w={next:x(0),throw:x(1),return:x(2)};return typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function x($){return function(N){return _([$,N])}}function _($){if(v)throw new TypeError("Generator is already executing.");for(;g;)try{if(v=1,y&&(b=$[0]&2?y.return:$[0]?y.throw||((b=y.return)&&b.call(y),0):y.next)&&!(b=b.call(y,$[1])).done)return b;switch(y=0,b&&($=[$[0]&2,b.value]),$[0]){case 0:case 1:b=$;break;case 4:return g.label++,{value:$[1],done:!1};case 5:g.label++,y=$[1],$=[0];continue;case 7:$=g.ops.pop(),g.trys.pop();continue;default:if(b=g.trys,!(b=b.length>0&&b[b.length-1])&&($[0]===6||$[0]===2)){g=0;continue}if($[0]===3&&(!b||$[1]>b[0]&&$[1]<b[3])){g.label=$[1];break}if($[0]===6&&g.label<b[1]){g.label=b[1],b=$;break}if(b&&g.label<b[2]){g.label=b[2],g.ops.push($);break}b[2]&&g.ops.pop(),g.trys.pop();continue}$=f.call(p,g)}catch(N){$=[6,N],y=0}finally{v=b=0}if($[0]&5)throw $[1];return{value:$[0]?$[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var s=(ka(),or(gs)),a=(ka(),or(gs)),i=cK(),o=kp(),l=.15;function u(p,f){var g=new Array(f).fill(0);return g[p]=1,g}function c(p,f){for(var g,v=p.length,y=p.slice(),b=v-1;b>0;b-=1){var w=void 0;f?w=Math.floor(f()*(b+1)):w=Math.floor(Math.random()*(b+1)),g=[y[w],y[b]],y[b]=g[0],y[w]=g[1]}return y}var h=(function(p){t(f,p);function f(g,v,y){var b=p.call(this,g,v,y)||this;return b.model=g,b.posenetModel=v,b.examples=[],b}return Object.defineProperty(f.prototype,"isTrained",{get:function(){return!!this.model&&this.model.layers&&this.model.layers.length>2},enumerable:!0,configurable:!0}),Object.defineProperty(f.prototype,"isPrepared",{get:function(){return!!this.trainDataset},enumerable:!0,configurable:!0}),Object.defineProperty(f.prototype,"numClasses",{get:function(){return this._metadata.labels.length},enumerable:!0,configurable:!0}),f.prototype.addExample=function(g,v){return n(this,void 0,void 0,function(){return r(this,function(y){return this.examples[g].push(v),[2]})})},f.prototype.predict=function(g){return n(this,void 0,void 0,function(){return r(this,function(v){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,p.prototype.predict.call(this,g)]})})},f.prototype.predictTopK=function(g,v){return v===void 0&&(v=3),n(this,void 0,void 0,function(){return r(this,function(y){if(!this.model)throw new Error("Model has not been trained yet, called train() first");return[2,p.prototype.predictTopK.call(this,g,v)]})})},f.prototype.prepare=function(){for(var g in this.examples)if(g.length===0)throw new Error("Add some examples before training");var v=this.convertToTfDataset();this.trainDataset=v.trainDataset,this.validationDataset=v.validationDataset},f.prototype.convertToTfDataset=function(){for(var g=0;g<this.examples.length;g++)this.examples[g]=c(this.examples[g],this.seed);for(var v=[],y=[],b=function(k){var A=u(k,w.numClasses),O=w.examples[k].length,R=O-Math.ceil(l*O),T=w.examples[k].slice(0,R).map(function(F){return{data:F,label:A}}),S=w.examples[k].slice(R).map(function(F){return{data:F,label:A}});v=v.concat(T),y=y.concat(S)},w=this,g=0;g<this.examples.length;g++)b(g);v=c(v,this.seed),y=c(y,this.seed);var x=s.data.array(v.map(function(k){return k.data})),_=s.data.array(y.map(function(k){return k.data})),$=s.data.array(v.map(function(k){return k.label})),N=s.data.array(y.map(function(k){return k.label}));return{trainDataset:s.data.zip({xs:x,ys:$}),validationDataset:s.data.zip({xs:_,ys:N})}},f.prototype.save=function(g,v){return n(this,void 0,void 0,function(){return r(this,function(y){return[2,this.model.save(g,v)]})})},f.prototype.train=function(g,v){return v===void 0&&(v={}),n(this,void 0,void 0,function(){var y,b,w,x,_,$,N,k=this;return r(this,function(A){switch(A.label){case 0:if(y=v.onTrainEnd||(function(){}),v.onTrainEnd=function(O){k.__stopTrainingResolve&&(k.__stopTrainingResolve(),k.__stopTrainingResolve=null),y(O)},this.isPrepared||this.prepare(),b=this.getLabels().length,a.util.assert(b===this.numClasses,function(){return"Can not train, has "+b+" labels and "+k.numClasses+" classes"}),w=this.examples[0][1].length,this.seed?x=s.initializers.varianceScaling({seed:3.14}):x=s.initializers.varianceScaling({}),this.model=s.sequential({layers:[s.layers.dense({inputShape:[w],units:g.denseUnits,activation:"relu",kernelInitializer:x,useBias:!0}),s.layers.dropout({rate:.5}),s.layers.dense({units:this.numClasses,kernelInitializer:x,useBias:!1,activation:"softmax"})]}),_=s.train.rmsprop(g.learningRate),this.model.compile({optimizer:_,loss:"categoricalCrossentropy",metrics:["accuracy"]}),!(g.batchSize>0))throw new Error("Batch size is 0 or NaN. Please choose a non-zero fraction");return $=this.trainDataset.batch(g.batchSize),N=this.validationDataset.batch(g.batchSize),[4,this.model.fitDataset($,{epochs:g.epochs,validationData:N,callbacks:v})];case 1:return A.sent(),_.dispose(),[2,this.model]}})})},f.prototype.prepareDataset=function(){for(var g=0;g<this.numClasses;g++)this.examples[g]=[]},f.prototype.stopTraining=function(){var g=this;return new Promise(function(v,y){g.model.stopTraining=!0,g.__stopTrainingResolve=v})},f.prototype.dispose=function(){this.model.dispose(),p.prototype.dispose.call(this)},f.prototype.setLabel=function(g,v){this._metadata.labels[g]=v},f.prototype.setLabels=function(g){this._metadata.labels=g,this.prepareDataset()},f.prototype.getLabel=function(g){return this._metadata.labels[g]},f.prototype.getLabels=function(){return this._metadata.labels},f.prototype.setName=function(g){this._metadata.modelName=g},f.prototype.getName=function(){return this._metadata.modelName},f.prototype.calculateAccuracyPerClass=function(){return n(this,void 0,void 0,function(){var g,v,y,b,w,x,_,$,N,k,L,A,O,R,T,S,F,M,L,z=this;return r(this,function(q){switch(q.label){case 0:return g=this.validationDataset.mapAsync(function(J){return n(z,void 0,void 0,function(){return r(this,function(re){return[2,J.xs]})})}),v=this.validationDataset.mapAsync(function(J){return n(z,void 0,void 0,function(){return r(this,function(re){return[2,J.ys]})})}),y=Math.min(v.size,32),b=Math.ceil(v.size/y),w=g.batch(y),x=v.batch(y),[4,w.iterator()];case 1:return _=q.sent(),[4,x.iterator()];case 2:$=q.sent(),N=[],k=[],L=0,q.label=3;case 3:return L<b?[4,_.next()]:[3,7];case 4:return A=q.sent(),O=this.model.predict(A.value),R=O.argMax(1),N.push(R),[4,$.next()];case 5:T=q.sent(),S=T.value.argMax(1),k.push(S),A.value.dispose(),O.dispose(),T.value.dispose(),q.label=6;case 6:return L++,[3,3];case 7:if(F=s.concat(k),M=s.concat(N),b!==1)for(L=0;L<N.length;L++)N[L].dispose(),k[L].dispose();return[2,{reference:F,predictions:M}]}})})},f.prototype.setSeed=function(g){this.seed=o(g)},f})(i.CustomPoseNet);e.TeachablePoseNet=h;function d(p){return n(this,void 0,void 0,function(){var f;return r(this,function(g){switch(g.label){case 0:return[4,i.loadPoseNet(p.modelSettings)];case 1:return f=g.sent(),[2,new h(s.sequential(),f,p)]}})})}e.createTeachable=d})),hK=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=function(){return document.createElement("canvas")};function n(s,a,i){s===void 0&&(s=200),a===void 0&&(a=200),i===void 0&&(i=!1);var o=document.createElement("canvas");if(o.width=s,o.height=a,i){var l=o.getContext("2d");l.translate(s,0),l.scale(-1,1)}return o}e.createCanvas=n;function r(s,a,i,o){i===void 0&&(i=!1),o===void 0&&(o=t());var l=s.width,u=s.height;s instanceof HTMLVideoElement&&(l=s.videoWidth,u=s.videoHeight);var c=a/Math.min(l,u),h=Math.ceil(l*c),d=Math.ceil(u*c),p=h-a,f=d-a;o.width=o.height=a;var g=o.getContext("2d");return g.drawImage(s,~~(p/2)*-1,~~(f/2)*-1,h,d),i&&(g.scale(-1,1),g.drawImage(o,a*-1,0)),o}e.cropTo=r})),k_e=Ye((e=>{var t=e&&e.__decorate||function(u,c,h,d){var p=arguments.length,f=p<3?c:d===null?d=Object.getOwnPropertyDescriptor(c,h):d,g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")f=Reflect.decorate(u,c,h,d);else for(var v=u.length-1;v>=0;v--)(g=u[v])&&(f=(p<3?g(f):p>3?g(c,h,f):g(c,h))||f);return p>3&&f&&Object.defineProperty(c,h,f),f},n=e&&e.__awaiter||function(u,c,h,d){function p(f){return f instanceof h?f:new h(function(g){g(f)})}return new(h||(h=Promise))(function(f,g){function v(w){try{b(d.next(w))}catch(x){g(x)}}function y(w){try{b(d.throw(w))}catch(x){g(x)}}function b(w){w.done?f(w.value):p(w.value).then(v,y)}b((d=d.apply(u,c||[])).next())})},r=e&&e.__generator||function(u,c){var h={label:0,sent:function(){if(f[0]&1)throw f[1];return f[1]},trys:[],ops:[]},d,p,f,g={next:v(0),throw:v(1),return:v(2)};return typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function v(b){return function(w){return y([b,w])}}function y(b){if(d)throw new TypeError("Generator is already executing.");for(;h;)try{if(d=1,p&&(f=b[0]&2?p.return:b[0]?p.throw||((f=p.return)&&f.call(p),0):p.next)&&!(f=f.call(p,b[1])).done)return f;switch(p=0,f&&(b=[b[0]&2,f.value]),b[0]){case 0:case 1:f=b;break;case 4:return h.label++,{value:b[1],done:!1};case 5:h.label++,p=b[1],b=[0];continue;case 7:b=h.ops.pop(),h.trys.pop();continue;default:if(f=h.trys,!(f=f.length>0&&f[f.length-1])&&(b[0]===6||b[0]===2)){h=0;continue}if(b[0]===3&&(!f||b[1]>f[0]&&b[1]<f[3])){h.label=b[1];break}if(b[0]===6&&h.label<f[1]){h.label=f[1],f=b;break}if(f&&h.label<f[2]){h.label=f[2],h.ops.push(b);break}f[2]&&h.ops.pop(),h.trys.pop();continue}b=c.call(u,h)}catch(w){b=[6,w],p=0}finally{d=f=0}if(b[0]&5)throw b[1];return{value:b[0]?b[1]:void 0,done:!0}}};Object.defineProperty(e,"__esModule",{value:!0});var s=(oK(),or(aK)),a=hK(),i={facingMode:"user",frameRate:24},o=function(u){return u.facingMode=u.facingMode||i.facingMode,u.frameRate=u.frameRate||i.frameRate,u.aspectRatio=u.aspectRatio||i.aspectRatio,u},l=(function(){function u(c,h,d){c===void 0&&(c=400),h===void 0&&(h=400),d===void 0&&(d=!1),this.width=c,this.height=h,this.flip=d}return u.prototype.getWebcam=function(c){if(c===void 0&&(c={}),!window.navigator.mediaDevices||!window.navigator.mediaDevices.getUserMedia)return Promise.reject("Your browser does not support WebRTC. Please try another one.");c.width=640;var h=o(c),d=document.createElement("video");return window.navigator.mediaDevices.getUserMedia({video:h}).then(function(p){return d.srcObject=p,d.addEventListener("loadedmetadata",function(f){var g=d.videoWidth,v=d.videoHeight;d.width=g,d.height=v}),d},function(){return Promise.reject("Could not open your camera. You may have denied access.")})},u.prototype.setup=function(c){return c===void 0&&(c={}),n(this,void 0,void 0,function(){var h;return r(this,function(d){switch(d.label){case 0:return this.webcam?[3,2]:(h=this,[4,this.getWebcam(c)]);case 1:h.webcam=d.sent(),this.canvas||(this.canvas=document.createElement("canvas"),this.canvas.width=this.width,this.canvas.height=this.height),d.label=2;case 2:return[2]}})})},u.prototype.play=function(){return this.webcam.play()},u.prototype.pause=function(){this.webcam.pause()},u.prototype.stop=function(){this.stopStreamedVideo(this.webcam)},u.prototype.update=function(){this.renderCameraToCanvas()},u.prototype.stopStreamedVideo=function(c){c.srcObject.getTracks().forEach(function(h){h.stop()}),c.srcObject=null},u.prototype.renderCameraToCanvas=function(){if(this.canvas&&this.webcam){var c=this.canvas.getContext("2d");if(this.webcam.videoWidth!==0){var h=a.cropTo(this.webcam,this.width,this.flip);c.drawImage(h,0,0)}}},t([s.default],u.prototype,"getWebcam",null),t([s.default],u.prototype,"setup",null),t([s.default],u.prototype,"play",null),t([s.default],u.prototype,"pause",null),t([s.default],u.prototype,"stop",null),t([s.default],u.prototype,"update",null),t([s.default],u.prototype,"stopStreamedVideo",null),t([s.default],u.prototype,"renderCameraToCanvas",null),u})();e.Webcam=l})),T_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lK(),n="aqua",r="aqua",s=4,a=2;function i(h,d,p,f,g,v,y){f===void 0&&(f=s),g===void 0&&(g=n),v===void 0&&(v=r),y===void 0&&(y=1);for(var b=0;b<h.length;b++){var w=h[b];if(!(w.score<d)){var x=w.position,_=x.y,$=x.x;o(p,_*y,$*y,f,g,v)}}}e.drawKeypoints=i;function o(h,d,p,f,g,v){h.fillStyle=g,h.strokeStyle=v,h.beginPath(),h.arc(p,d,f,0,2*Math.PI),h.fill(),h.stroke()}e.drawPoint=o;function l(h){return[h.y,h.x]}e.toTuple=l;function u(h,d,p,f,g,v){f===void 0&&(f=a),g===void 0&&(g=r),v===void 0&&(v=1),t.getAdjacentKeyPoints(h,d).forEach(function(y){c(l(y[0].position),l(y[1].position),p,f,g,v)})}e.drawSkeleton=u;function c(h,d,p,f,g,v){var y=h[0],b=h[1],w=d[0],x=d[1];p.beginPath(),p.moveTo(b*v,y*v),p.lineTo(x*v,w*v),p.lineWidth=f,p.strokeStyle=g,p.stroke()}e.drawSegment=c})),E_e=Ye((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cK();e.CustomPoseNet=t.CustomPoseNet,e.load=t.load,e.loadFromFiles=t.loadFromFiles;var n=$_e();e.TeachablePoseNet=n.TeachablePoseNet,e.createTeachable=n.createTeachable;var r=k_e();e.Webcam=r.Webcam;var s=hK();e.createCanvas=s.createCanvas;var a=T_e();e.drawKeypoints=a.drawKeypoints,e.drawSkeleton=a.drawSkeleton,e.drawPoint=a.drawPoint,e.drawSegment=a.drawSegment;var i=uK();e.version=i.version})),dK=Co(N_e(),1),AN=Co(E_e(),1),A_e="@kubohiroya/turbowarp-teachable-machine",R_e="3.5.6",D_e="A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",O_e="Hiroya Kubo <hiroya@cuc.ac.jp>",F_e="MPL-2.0",L_e="https://github.com/kubohiroya/turbowarp-teachable-machine#readme",P_e={type:"git",url:"git+https://github.com/kubohiroya/turbowarp-teachable-machine.git"},M_e={url:"https://github.com/kubohiroya/turbowarp-teachable-machine/issues"},z_e={"./composition":{types:"./dist/types/composition.d.ts",import:"./dist/composition.js"},"./posenet":{types:"./dist/types/posenet.d.ts",import:"./dist/posenet.js"},"./posenet-assets/*":"./dist/posenet/mobilenet-v1-075-stride16/*","./wasm-assets/*":"./dist/wasm/*","./dist/backend-wasm.js":"./dist/backend-wasm.js","./dist/backend-webgpu.js":"./dist/backend-webgpu.js","./runtime":"./dist/runtime.js","./dist/tm.js":"./dist/tm.js","./package.json":"./package.json"},B_e="module",V_e=["dist/","README.md","LICENSE","THIRD_PARTY_NOTICES.md","schemas/","docs/fixed-input-editors.ja.md"],W_e="./dist/tm.js",U_e="./dist/tm.js",G_e={access:"public",registry:"https://registry.npmjs.org/"},H_e="pnpm@11.11.0",j_e={node:">=22.18.0"},q_e={dev:"vite build --watch",typecheck:"tsc --noEmit",build:"pnpm build:extension && pnpm build:composition && pnpm build:runtime && pnpm build:backends && pnpm build:posenet && pnpm build:notices && pnpm build:types","build:extension":"vite build","build:composition":"vite build --config vite.composition.config.ts","build:runtime":"vite build --config vite.runtime.config.ts","build:backends":"vite build --config vite.backend-wasm.config.ts && vite build --config vite.backend-webgpu.config.ts && node scripts/copy-wasm-assets.ts","build:posenet":"vite build --config vite.posenet.config.ts && node scripts/copy-posenet-assets.ts","build:notices":"node scripts/copy-third-party-notices.ts","build:types":"tsc --project tsconfig.build.json","types:composition:check":"tsc --project tsconfig.composition-consumer.json","types:posenet:check":"tsc --project tsconfig.posenet-consumer.json",test:"vitest run",docs:"node scripts/generate-readme.ts","docs:check":"npm run docs && git diff --exit-code -- README.md","docs:pages:check":"node scripts/check-pages.ts","release:consistency:check":"node scripts/check-release-consistency.ts","check:dist":"npm run build && git diff --exit-code -- dist","archive:check":"node scripts/check-github-archive.ts","pack:check":"npm pack --dry-run --ignore-scripts","release:check":"npm publish --dry-run --access public --tag latest",check:"npm run typecheck && npm run test && npm run build && npm run types:composition:check && npm run types:posenet:check && npm run docs:check && npm run docs:pages:check && npm run release:consistency:check && npm run check:dist && npm run archive:check && npm run pack:check",prepack:"npm run build && npm run release:consistency:check"},K_e={"@kubohiroya/turbowarp-camera-source":"0.19.3","@kubohiroya/vite-plugin-turbowarp-extension":"0.6.1","@teachablemachine/image":"0.8.5","@teachablemachine/pose":"0.8.6","@tensorflow-models/posenet":"2.2.2","@tensorflow-models/speech-commands":"0.5.4","@tensorflow/tfjs":"4.22.0","@tensorflow/tfjs-backend-wasm":"4.22.0","@tensorflow/tfjs-backend-webgpu":"4.22.0","@types/node":"^22.20.1",typescript:"^5.9.3",vite:"^8.2.2",vitest:"^4.0.14","@kubohiroya/turbowarp-extension-data-editor":"0.2.1"},X_e=["turbowarp","scratch","extension","pose","image","audio","camera","teachable-machine"],gx={name:A_e,version:R_e,description:D_e,author:O_e,license:F_e,homepage:L_e,repository:P_e,bugs:M_e,exports:z_e,type:B_e,files:V_e,unpkg:W_e,jsdelivr:U_e,publishConfig:G_e,packageManager:H_e,engines:j_e,scripts:q_e,devDependencies:K_e,keywords:X_e},Y_e=class extends Error{code="TM-RUNTIME-ABORTED";constructor(){super("TM runtime model loading was cancelled."),this.name="AbortError"}};function RN(){return new Y_e}function xm(e){if(e?.aborted)throw RN()}function DN(e){return typeof e=="object"&&e!==null}function Z_e(e){return DN(e)&&typeof e.dispose=="function"?e:null}function J_e(e){if(e===void 0)return{};if(!DN(e))throw new TypeError("TM runtime load options must be an object.");const t=e.signal;if(t!==void 0&&(!DN(t)||typeof t.aborted!="boolean"||typeof t.addEventListener!="function"||typeof t.removeEventListener!="function"))throw new TypeError("TM runtime load signal must be an AbortSignal.");const n=e.parallelModelInitialization;if(n!==void 0&&typeof n!="boolean")throw new TypeError("parallelModelInitialization must be a boolean.");return{...t===void 0?{}:{signal:t},...n===void 0?{}:{parallelModelInitialization:n}}}async function ON(e){const t=[...new Set(e.map(Z_e).filter(n=>n!==null))];return(await Promise.allSettled(t.map(n=>Promise.resolve().then(()=>n.dispose())))).flatMap(n=>n.status==="rejected"?[n.reason]:[])}function FN(e,t){const n=[...e,...t];throw n.length===1?n[0]:new AggregateError(n,"TM runtime model loading and cleanup did not complete.")}function Q_e(e,t){return!t?.aborted||e?.name==="AbortError"?[e]:[RN(),e]}async function eSe(e,t,n,r,s){let a,i;try{a=await e.loadClassifier(t,n),xm(s);const o=await e.loadMetadata(r);return xm(s),i=await e.loadPoseNet(o),xm(s),e.createModel(a,i,o)}catch(o){const l=await ON([a,i]);FN(Q_e(o,s),l)}}function LN(e){try{return Promise.resolve(e())}catch(t){return Promise.reject(t)}}async function tSe(e,t,n,r,s){const[a]=await Promise.allSettled([LN(()=>e.loadMetadata(r))]),i=a.status==="fulfilled"?a.value:void 0,o=await Promise.allSettled([LN(()=>e.loadClassifier(t,n)),a.status==="fulfilled"?LN(()=>e.loadPoseNet(i)):Promise.resolve(void 0)]),l=o[0].status==="fulfilled"?o[0].value:void 0,u=o[1].status==="fulfilled"?o[1].value:void 0,c=[...a.status==="rejected"?[a.reason]:[],...o.flatMap(h=>h.status==="rejected"?[h.reason]:[])];if(s?.aborted||c.length>0){const h=await ON([l,u]);FN([...s?.aborted?[RN()]:[],...c],h)}try{return e.createModel(l,u,i)}catch(h){const d=await ON([l,u]);FN([h],d)}}function nSe(e){return async function(n,r,s,a){const i=J_e(a);return xm(i.signal),await e.ready(),xm(i.signal),i.parallelModelInitialization?tSe(e,n,r,s,i.signal):eSe(e,n,r,s,i.signal)}}var rSe=["auto","webgpu","webgl","wasm","cpu"],pK=Object.freeze(["webgpu","webgl","wasm","cpu"]),sSe=Object.freeze({auto:"auto",automatic:"auto",default:"auto",fastest:"auto",自動:"auto",おまかせ:"auto",webgpu:"webgpu",gpu:"webgpu",webgl:"webgl",wasm:"wasm",webassembly:"wasm",simd:"wasm",cpu:"cpu",javascript:"cpu"}),aSe=class extends Error{code="TM-COMPUTE-UNAVAILABLE";mode;attempts;constructor(e,t){const n=t.map(r=>`${r.backend}: ${r.reason}`).join("; ");super(`TM: No compute backend accepted mode "${e}". ${n}`),this.name="ComputeBackendUnavailableError",this.mode=e,this.attempts=Object.freeze([...t])}};function fK(e,t="auto"){const n=String(e??"").trim().toLowerCase();return n===""?t:sSe[n]??t}function iSe(e,t=pK){return Object.freeze(e==="auto"?[...t]:[e,...t.filter(n=>n!==e)])}function oSe(e){const t=e?.message,n=String(t??e??"").trim();return n===""?"activation failed":n}async function lSe(e,t="auto",n=pK){const r=t==="auto"?null:t,s=[];for(const a of iSe(t,n))try{if(!await e.isSupported(a)){s.push({backend:a,reason:"not supported by this browser"});continue}if(await e.prepare(a),!await e.activate(a))throw new Error("TensorFlow.js did not switch to this backend");return await e.verify(a),Object.freeze({mode:t,backend:a,requested:r,fallback:r!==null&&r!==a,attempts:Object.freeze([...s])})}catch(i){s.push({backend:a,reason:oSe(i)})}throw new aSe(t,s)}function uSe(e){const{tf:t}=e;let n=null,r=Promise.resolve(),s=!1;function a(l){return l==="webgpu"?e.hasWebGPU():l==="wasm"?e.hasWebAssembly():!0}const i={isSupported:a,async prepare(l){const u=await e.loadBackend(l);if(!(l!=="wasm"||s)){if(typeof u?.setWasmPaths!="function")throw new Error("the WebAssembly backend bundle did not expose setWasmPaths");u.setWasmPaths(e.wasmAssetBase()),s=!0}},async activate(l){return await t.setBackend(l)?(await t.ready(),t.getBackend()===l):!1},async verify(){const l=t.ones([1,4,4,1]),u=t.ones([3,3,1,1]);let c=null;try{c=t.conv2d(l,u,1,"valid");const h=await c.data();if(h.length!==4||Math.abs(Number(h[0])-9)>.001)throw new Error("the backend returned an incorrect convolution result")}finally{t.dispose([l,u,...c?[c]:[]])}}};function o(l){const u=r.then(l,l);return r=u.catch(()=>{}),u}return Object.freeze({modes:rSe,select(l){const u=fK(l);return o(async()=>(n&&n.mode===u&&t.getBackend()===n.backend||(n=await lSe(i,u)),n))},getSelection:()=>n,getMode:()=>n?.mode??"auto",getBackend:()=>t.getBackend(),isBackendSupported(l){const u=fK(l);return u==="auto"||a(u)}})}var yn=globalThis;if(yn.tf!==void 0&&yn.tf!==gs)throw new Error("TM browser runtime found a different global TensorFlow.js instance.");if(yn.tmPose!==void 0&&yn.tmPose!==AN)throw new Error("TM browser runtime found a different global Teachable Machine Pose instance.");if(yn.tmImage!==void 0&&yn.tmImage!==dK)throw new Error("TM browser runtime found a different global Teachable Machine Image instance.");if(yn.speechCommands!==void 0&&yn.speechCommands!==U5)throw new Error("TM browser runtime found a different global speech-commands instance.");var hd=gx.devDependencies,cSe=`https://cdn.jsdelivr.net/npm/${gx.name}@${gx.version}/dist/`;function hSe(){const e=typeof document>"u"?null:document.currentScript,t=e&&"src"in e?String(e.src??""):"";if(t!=="")try{return new URL("./",t).href}catch{}return cSe}var vx=hSe(),PN=new Map;function mK(e){const t=PN.get(e);if(t)return t;const n=new Promise((r,s)=>{const a=document.createElement("script");a.src=e,a.addEventListener("load",()=>r(),{once:!0}),a.addEventListener("error",()=>{PN.delete(e),s(new Error(`TM: Failed to load compute backend bundle: ${e}`))},{once:!0}),document.head.appendChild(a)});return PN.set(e,n),n}async function dSe(e){return e==="wasm"?(yn.tmBackendWasm||await mK(new URL("backend-wasm.js",vx).href),yn.tmBackendWasm??null):(e==="webgpu"&&(yn.tmBackendWebGPU||await mK(new URL("backend-webgpu.js",vx).href)),null)}var pSe=uSe({tf:gs,loadBackend:dSe,wasmAssetBase:()=>new URL("wasm/",vx).href,hasWebGPU:()=>typeof navigator<"u"&&navigator.gpu!==void 0&&navigator.gpu!==null,hasWebAssembly:()=>typeof WebAssembly=="object"&&typeof WebAssembly.instantiate=="function"});function fSe(e){const t=e?.modelSettings?.posenet??{};return{architecture:t.architecture??"MobileNetV1",outputStride:t.outputStride??16,inputResolution:t.inputResolution??257,multiplier:t.multiplier??.75}}var mSe=nSe({ready:()=>Yx(),loadClassifier:(e,t)=>Tf(uT([e,t])),async loadMetadata(e){const t=await new Response(e).json();if(typeof t!="object"||t===null||!Array.isArray(t.labels))throw new Error("Invalid Metadata provided");return t},loadPoseNet:e=>D5(fSe(e)),createModel:(e,t,n)=>new AN.CustomPoseNet(e,t,n)}),gSe=Object.freeze({...AN,loadFromFiles:mSe}),vSe=Object.freeze({async load(e,t){const n=eK("BROWSER_FFT",void 0,e,t);return await n.ensureModelLoaded(),n}});yn.tf=gs,yn.speechCommands=U5,yn.tmImage=dK,yn.tmPose=gSe,yn.tmAudio=vSe,yn.tmCompute=pSe;var gK=Object.freeze({version:gx.version,tensorflow:hd["@tensorflow/tfjs"],tensorflowBackendWasm:hd["@tensorflow/tfjs-backend-wasm"],tensorflowBackendWebGPU:hd["@tensorflow/tfjs-backend-webgpu"],speechCommands:hd["@tensorflow-models/speech-commands"],teachableMachineImage:hd["@teachablemachine/image"],teachableMachinePose:hd["@teachablemachine/pose"],assetBase:vx});yn[Symbol.for("@kubohiroya/turbowarp-teachable-machine/runtime")]=gK,yn[Symbol.for("@kubohiroya/turbowarp-teachablemachine/runtime")]=gK})();
|
package/dist/tm.js
CHANGED
|
@@ -1228,7 +1228,7 @@
|
|
|
1228
1228
|
}
|
|
1229
1229
|
var package_default = {
|
|
1230
1230
|
name: "@kubohiroya/turbowarp-teachable-machine",
|
|
1231
|
-
version: "3.5.
|
|
1231
|
+
version: "3.5.6",
|
|
1232
1232
|
description: "A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",
|
|
1233
1233
|
author: "Hiroya Kubo <hiroya@cuc.ac.jp>",
|
|
1234
1234
|
license: "MPL-2.0",
|
|
@@ -1298,7 +1298,7 @@
|
|
|
1298
1298
|
"prepack": "npm run build && npm run release:consistency:check"
|
|
1299
1299
|
},
|
|
1300
1300
|
devDependencies: {
|
|
1301
|
-
"@kubohiroya/turbowarp-camera-source": "0.19.
|
|
1301
|
+
"@kubohiroya/turbowarp-camera-source": "0.19.3",
|
|
1302
1302
|
"@kubohiroya/vite-plugin-turbowarp-extension": "0.6.1",
|
|
1303
1303
|
"@teachablemachine/image": "0.8.5",
|
|
1304
1304
|
"@teachablemachine/pose": "0.8.6",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubohiroya/turbowarp-teachable-machine",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.6",
|
|
4
4
|
"description": "A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",
|
|
5
5
|
"author": "Hiroya Kubo <hiroya@cuc.ac.jp>",
|
|
6
6
|
"license": "MPL-2.0",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"prepack": "npm run build && npm run release:consistency:check"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@kubohiroya/turbowarp-camera-source": "0.19.
|
|
77
|
+
"@kubohiroya/turbowarp-camera-source": "0.19.3",
|
|
78
78
|
"@kubohiroya/vite-plugin-turbowarp-extension": "0.6.1",
|
|
79
79
|
"@teachablemachine/image": "0.8.5",
|
|
80
80
|
"@teachablemachine/pose": "0.8.6",
|